May 31 - Jun 4, 2015 | Tel-Aviv, Israel

SELA|DEVELOPER|PRACTICE

Professional developers conference

42 sessions

21 speakers

Sessions

  • Sunday, May 31: Pre-Conference Workshops

    Modern .NET Debugging 09:00 - 17:00 Ofir Makmal

    In the modern day and age, debugging managed applications is no longer just about Visual Studio. In this workshop, we will explore modern tools for debugging .NET applications in production. We will discuss dump files and see how to capture and open them in Visual Studio, and how to explore difficult problems outside Visual Studio with ClrMD and PerfView. Among the things we will look at are memory leaks, outright crashes, and deadlocks.

    Level: 300
    Prerequisites: None

    From Classic ASP.NET to ASP.NET 5 and MVC 6 09:00 - 17:00 Ido Flatow

    ASP.NET 5 was designed from the bottom up to be a lean and composable .NET stack for building web and cloud-based applications. Envision an ASP.NET stack where MVC, Web API, and Web pages are all merged into the same framework, where you have a server-optimized version of .NET with a smaller memory footprint, truly do side-by-side deployment where even the .NET Framework is a NuGet package, decouple yourself from Windows and IIS, and even host your ASP.NET application on Linux or Mac. This is the new ASP.NET 5. During this 1-day workshop, we will explore the new eco-system of ASP.NET 5: project system, unified pipeline, customizable configuration, built-in dependency injection, multiple runtime environments, and cross-platform hosting. We will also learn how to use MVC 6 to create both UI and web APIs, and how this is different from the "old days" of using MVC 5 and Web API 2.x.

    Level: 300
    Prerequisites: Web development experience

    AngularJS from 0 to 60 09:00 - 17:00 Ran Wahle

    AngularJS is an extremely opinionated framework that extends HTML and helps build interactive single-page applications. With syntax that feels very natural for XAML developers, Angular brings the power of data binding, templates, and powerful code organization features to HTML and JavaScript apps. In this workshop you will learn Angular from scratch, and at the end of the day will be equipped to integrate it in your web applications.

    Level: 300
    Prerequisites: Web development experience

    Introduction to HTML5 09:00 - 17:00 Liron Ratzabi

    HTML5, the long-expected new standard for the web, is here to stay. In this workshop we will walk through a number of useful new features supported by a majority of modern browsers: geolocation, real-time drawing, offline apps, history API, and others.

    Level: 200
    Prerequisites: Web development experience

  • Monday, June 1: Breakout Sessions

    KEYNOTE 09:30 - 10:30 TBD

    TBD

    Level: 200
    Prerequisites: None

    Angular 2.0 10:50 - 11:50 Ran Wahle

    Angular 2.0 is a complete rewrite (!) of the most popular front-end JavaScript framework. It emphasizes mobile-first, modular, extensible and simple development, where the framework gets out of your way. Unfortunately, it also means a lot of breaking changes. In this session we will explore what Angular 2.0 means for your existing applications, and how to use it most effectively for new development.

    Level: 300
    Prerequisites: Experience with Angular development

    Tips for Large Angular Applications 12:10 - 13:10 Sebastian Pederiva

    Angular was released in 2009, but has exploded in popularity in the last 2 years or so. After several years of building large-scale systems with Angular, there are multi-million LOC JavaScript codebases today. In this session we will discuss some tips and best practices for managing a large-scale Angular application and constructing it in a maintainable, extensible, and testable way.

    Level: 300
    Prerequisites: Experience with Angular development

    MVC vs. SPA, Part 1 14:10 - 15:10 Michael Haberman

    The field of Web development is growing so fast that we can hardly keep up with it. With new server frameworks coming out every couple of years, and client libraries springing up like mushrooms after the rain, the task of choosing how to implement your web application is becoming harder than ever. Will you go for Single Page Application (SPA) development, based on libraries and frameworks such as AngularJS, Knockout, etc., or will you "play it safe" with server-side frameworks such as ASP.NET MVC? In this 2-hour session, we will explore both those options and show you the pros and cons of each platform and technology. Using several common scenarios of web development, we will give you the tools to decide which is best for your scenario.

    Level: 300
    Prerequisites: Familiarity with web development

    MVC vs. SPA, Part 2 15:30 - 16:30 Ido Flatow

    The field of Web development is growing so fast that we can hardly keep up with it. With new server frameworks coming out every couple of years, and client libraries springing up like mushrooms after the rain, the task of choosing how to implement your web application is becoming harder than ever. Will you go for Single Page Application (SPA) development, based on libraries and frameworks such as AngularJS, Knockout, etc., or will you "play it safe" with server-side frameworks such as ASP.NET MVC? In this 2-hour session, we will explore both those options and show you the pros and cons of each platform and technology. Using several common scenarios of web development, we will give you the tools to decide which is best for your scenario.

    Level: 300
    Prerequisites: Familiarity with web development

    What's New in Windows 10 App Development 10:50 - 11:50 TBD

    Windows 10 is just around the corner, and it is rumored to bring a unified development experience across desktops, tablets, phones, and game consoles. This session will reveal the future of universal application development for Windows 10 across devices. More details will be available after the Microsoft Build conference.

    Level: 200
    Prerequisites: None

    Unity 5.0 12:10 - 13:10 Lidan Hackmon

    Unity is an ultimate game engine that allows you to develop once and run everywhere! It has support for mobile, desktop, and browsers across all platforms, and is extremely easy to get started with compared to heavy-weight graphics toolsets such as DirectX. Unity 5.0 brings considerable improvements including physical-based shaders, a new game audio system, WebGL deployment, and more.

    Level: 200
    Prerequisites: None

    Deep Dive into Xamarin and MvvmCross 14:10 - 15:10 Ofir Makmal

    Xamarin is an extremely popular toolset for building Android and iOS application in C#, without compromising on performance or feature availability. Any production Xamarin application needs a lot of thinking around structuring cross-platform code assets, especially around UI -- which is completely different in Android and in iOS. MvvmCross is a popular open source framework that brings the power of data binding, commands, and other MVVM goodies to the non-XAML Xamarin UI frameworks. In this session we will explore the MvvmCross offering and how to use it to structure your application correctly for cross-platform development on iOS, Android, and Windows Phone.

    Level: 300
    Prerequisites: Experience with Xamarin development

    Wear Your C# Code 15:30 - 16:30 Liron Ratzabi

    Android Wear, Apple Watch, Microsoft Band -- 2015 is likely to be the year wearables explode in popularity and attract mainstream developer attention. Did you know you can use C# to develop for all these platforms? In this session, packed with cool demos and beautiful gadgets, we will see how Visual Studio and Xamarin can be used to build wearable apps.

    Level: 200
    Prerequisites: None

    Clean Coding 10:50 - 11:50 Noam Kfir

    TBD

    Level: 200
    Prerequisites: None

    Functional Programming 12:10 - 13:10 Elad Avneri

    Functional Programming is here already since the 1950s. But suddenly there is a new hype around it and it is becoming popular as it was never before -- and for good reasons. In this session we'll see why Functional Programming fits well with other technologies currently emerging. We will review the main concepts of Functional Programming also in comparison with OOP. And finally, we'll walk through a comparative review of some of the "Functional Programming enabled" languages.

    Level: 200
    Prerequisites: None

    Implementing a Release Pipeline with Release Management 14:10 - 15:10 Shmulik Segal

    Release management is one of the key processes in a DevOps strategy. The faster your software is deployed, the quicker you can get feedback. With release management in Visual Studio 2013 you can configure, approve and deploy your applications for any environment. This session will cover how to implement a simple to complex approval workflow, how to automate common deployments scenarios across multiple stages, and how to diagnose and audit releases. During the session we’ll discuss also how RM can support Chef, open source, PowerShell DSC, and other build systems and deployment mechanisms.

    Level: 200
    Prerequisites: None

    Best Practices for Developing Valuable Test Automation 15:30 - 16:30 Arnon Axelrod

    With today's tools it's pretty easy to get started with Test Automation. However, the tools themselves rarely ensure that your automatic tests will be easy to maintain over time, and that they'll provide the best value you can possibly get out of your test automation suite. Automated tests have different constraints than manual tests and also different benefits, and for these reasons require a different mindset. In this session we'll go on a tour of an imaginary test automation project, where we'll encounter some of the most common problems that you may encounter in the real world. For each of these problems, we will see how simple best practice techniques can help you solve or avoid them. These techniques will lead us also to the mindset that will help you get the most value out of your test automation.

    Level: 200
    Prerequisites: None

  • Tuesday, June 2: Breakout Sessions

    Elements of Modern C++ Style 09:30 - 10:30 Sasha Goldshtein

    Modern C++ is not just about new language features, APIs, or cool tricks to impress fellow developers. Modern C++ is how we write code today, in 2015, and it is on par (or even exceeds) competing object-oriented, generic, and functional languages. In this keynote session we will take a look at the elements of modern C++, ranging from simple language features that help code readability and correctness, through paragidm shifts in resource management, to more emphasis on generic code and policy-based design.

    Level: 200
    Prerequisites: C++ development experience

    Modern C++ Threading Libraries and Async Programming 10:50 - 11:50 Ady Shimony

    Did you know C++ has a portable (yes, portable) threading library? Armed with a bunch of new classes like std::thread, std::atomic, and std::mutex, you can write cross-platform code that works with threads and locks. On a higher level, standard facilities such as std::async help lift your async programming to the next level. And it doesn't stop there -- Microsoft, for one, is actively pushing for a set of new language extensions to bring the C# async/await experience to modern C++.

    Level: 300
    Prerequisites: C++ development experience

    Test-Driven Development in C++ 12:10 - 13:10 Ziv Gilad

    TDD is such a modern idea that marrying it with C++ seems a little odd. But it's actually a perfectly good match for a modern, powerful language that is known for making mistakes pretty expensive. We will take a look at fundamental TDD concepts, and explore the tools and libraries for using TDD with modern C++.

    Level: 300
    Prerequisites: C++ development experience

    Five Cool Things You Never Thought C++ Could Do 14:10 - 15:10 Sasha Goldshtein

    This session is dedicated to incredibly impressive but occasionally hard to implement micro-frameworks that you probably wouldn't imagine C++ can support. Here are a couple: we will build a compile-time and runtime-safe version of printf so that if you pass in the wrong number of arguments, it DOES NOT COMPILE. We will build a 50-line serialization framework that recognizes containers and goes through them automatically, with the magic of compile-time reflection. And there are three more little gems like this -- you have to come to the talk to see what they are.

    Level: 400
    Prerequisites: C++ development experience

    Visual C++ 2015 - What's In It For Me 15:30 - 16:30 TBD

    Visual Studio 2015 is a big release overall, and a very important release for C++ developers specifically. The Visual C++ compiler has been updated with even more support for C++11, and some support for C++14 and the draft C++17. The debugger and performance tools has been revamped to support memory leak detection and analysis while a C++ application is running. New optimizations such as loop vectorization and parallelization have been around for a while. Even if you're stuck with Visual Studio 2010, or worse -- Visual C++ 6 -- you have to learn what the future holds for you.

    Level: 200
    Prerequisites: C++ development experience

    Docker on Azure 09:30 - 10:30 Rotem Or

    Docker is the virtual machine of the 21st century, allowing independent application containers to run in isolated on a single host. Docker offers incredibly fast startup and shutdown times for containers while completely protecting the host from the contained application. Microsoft has already committed to providing support for Docker containers in the next version of Windows Server, but you can already use Docker on Microsoft Azure with Linux virtual machines. In this session we will explore how Docker makes a lot of scenarios much faster and easier, and how to use it most effectively with the Azure cloud offering.

    Level: 300
    Prerequisites: None

    Web Components 10:50 - 11:50 Ran Wahle

    We​b components are a new and revolutionary set of web standards already supported by most browsers, allowing us to put our HTML, markup and JavaScript in one package and use it as an isolated component. In this session we'll ​discuss web components standards, show how to build an entire application using web components, show some libraries built on top of web components, and wrap up with polyfill libraries for browsers that haven't implemented web components support yet.

    Level: 300
    Prerequisites: None

    Internet of Things on Azure 12:10 - 13:10 Ido Flatow

    Internet of Things (IoT) is here, and every day a new sensor or device starts to generate more data. Within a few years, we'll have surpassed the 100 billion devices mark. But with so much data, the BIG question is how you ingest and process it (or in other words, how do you persist it and use it). Fortunately, Microsoft Azure has some solutions for us with Azure Event Hubs for persisting the data, and Azure Stream Analytics and Azure Data Factory for processing it. In this session, we will explore these three cloud offerings for IoT, and demonstrate how their interconnectivity can help us build cool devices and intelligent systems.

    Level: 200
    Prerequisites: None

    MongoDB on Azure 14:10 - 15:10 Noam Kfir

    MongoDB is probably the most popular NoSQL document database today, and it has very good clients for most modern programming languages. But managing, monitoring, and scaling your own Mongo instance can be pretty daunting. The Microsoft Azure cloud offers a set of hosted MongoDB offerings that reduce management overhead and concerns. In this session we will see some best practices for using MongoDB on Microsoft Azure to build large production systems.

    Level: 200
    Prerequisites: None

    Orleans 15:30 - 16:30 Israel Olcha

    Orleans is a framework for building distributed systems in the actor model, designed for the cloud by Microsoft Research and used extensively by Microsoft products such as the Halo 4 cloud services. In this session we will explore the Orleans architecture and design, and see how to easily build concurrent, scalable applications using the actor approach.

    Level: 300
    Prerequisites: None

    TBD 09:30 - 10:30 TBD

    TBD

    Level: 200
    Prerequisites: None

    Open Source .NET 10:50 - 11:50 Lidan Hackmon

    In late 2014, .NET has gone open source. And it's not the kind of open source where the project lead dumps 200KLOC on GitHub once every few months. It is the kind of open source where design and development happen in the open, the community can contribute designs, issues, bug fixes, and feature implementations, and more and more code is being brought into the open every week. At this point, large parts of the .NET Core are open source, and the CLR itself (including the GC, JIT, and other components) are open source as well. We will see what open sourcing .NET means for us, .NET developers, and how bringing .NET to other platforms (Linux and OS X, for starters) is going to revolutionize cross-platform development. A closing thought: would Java be where it is today if .NET was open source from the get-go? ¯\_(ツ)_/¯

    Level: 200
    Prerequisites: None

    Real-Time Web Applications with SignalR 12:10 - 13:10 Elad Avneri

    The days in which web users had to hit Refresh to get up-to-date information are long gone now. Today's technologies enable websites to push new data to their clients in real time and asynchronously. ASP.NET SignalR is a library for ASP.NET developers that makes it incredibly simple to add real-time web functionality to their applications. Lately, SignalR also made its way to the cloud as it has been integrated with Azure -- supporting scale-out of SignalR applications as well as mobile devices by integration with Azure Mobile Services. In this session, we will review the architecture of SignalR and get a taste of it by building a SignalR application that targets the cloud.

    Level: 300
    Prerequisites: None

    WinDbg.NET 14:10 - 15:10 Ofir Makmal

    WinDbg, the powerful Windows debugger, is as powerful as it is occasionally incomprehensible and hard to use, especially when debugging .NET applications. Well, these days can be behind us! Almost two years ago, Microsoft released an incredibly useful .NET library called ClrMD, which is an API around DbgEng (WinDbg's debugger engine) and SOS. We are going to build some amazing debugging tools with ClrMD in just under an hour, with none of this SOS nonsense. Leave your .foreach (obj {!dumpheap -mt 0014fab8 -short}) {!gcroot ${obj}} behind, and embrace clean C# debugging code.

    Level: 400
    Prerequisites: None

    Visual Studio 2015 Gems 15:30 - 16:30 Liron Ratzabi

    Visual Studio 2015 is almost out, and there are many cool features for developers of all shapes and colors. .NET developers will be happy to learn about debugging and diagnostic improvements, and the new NuGet browser experience. Web developers will love the new ASP.NET project system, browser integration, and more powerful JavaScript editor support. And mobile developers will embrace cross-platform tools for both C++ and Cordova applications.

    Level: 200
    Prerequisites: None

  • Wednesday, June 3: Post-Conference Workshops

    Windows 10 Application Development (1/2) 09:00 - 17:00 Lidan Hackmon

    Windows 10 is here! The new OS brings great experiences to users and dramatic changes to developers. There are many devices out there that will run Windows 10: Surface Hub, PCs, Laptops, Tablets, Xbox One, HoloLens, Raspberry Pi 2 and Intel Galileo. In this two-day workshop we will cover all the great features of Windows 10, learn how to develop our applications once and to deploy it on every Windows 10 device mentioned above. We will get to know the new UI controls, design adaptive UI for all resolutions, learn about best practice development methodologies and most importantly develop your own applications.

    Level: 300
    Prerequisites: C# development experience

    IIS for Developers 09:00 - 17:00 Ido Flatow

    For years we have been using IIS to host our Web applications, but many of us haven't used more than its basic features and configuration. You knew there is a compression feature, but did you know you can change the compression ratio? Are you using the advanced logging module or the default simple logging? Have you ever wondered when to use the application pool’s process orphaning option? In this one-day workshop, we will learn how IIS works, the new features released in the latest versions of IIS (7-8.5), how to configure IIS for better performance, how to use its logging and debugging features, and how to automate the deployment of our Web applications to IIS.

    Level: 300
    Prerequisites: Web development experience

    Monitoring .NET Performance with ETW 09:00 - 17:00 Sasha Goldshtein

    Event Tracing for Windows (ETW) has been on the scene for several years, but it is only recently that is has become so popular for performance monitoring in production and development environments. Today, .NET developers can use freely available tools with a minimal performance overhead to monitor their application performance: CPU utilization, blocked threads, memory usage, and garbage collection metrics. In this workshop we will explore the rich world of ETW through free tools such as the Windows Performance Toolkit and PerfView. We will also see how to produce ETW logs from .NET applications and how to monitor ETW data in real-time from .NET code. This workshop includes labs in which you will practice performance measurement and diagnostic techniques.

    Level: 300
    Prerequisites: .NET development experience

    Node.js 09:00 - 17:00 Nir Noy

    All the cool kids are using Node.js, and that includes Silicon Valley startups and enterprises like Microsoft and eBay. In its essence, Node is JavaScript on the server: it is a runtime that you can use to build web services and stand-alone applications in JavaScript and run them outside the browser. In this workshop we will explore Node.js fundamentals, and talk about some frameworks that you can use with Node, including the popular Express MVC framework for web applications.

    Level: 200
    Prerequisites: JavaScript development experience

    Parallel Programming with the TPL 09:00 - 17:00 Bnaya Eshet

    The Task Parallel Library is a real gem, a beautifully designed framework for building parallel applications for .NET servers and clients. In this full-day workshop you will learn fundamental concepts such as threads vs. tasks, async programming in C# 5.0, parallelizing loops and simple algorithms, and some of the newer features introduced in recent versions of the TPL.

    Level: 300
    Prerequisites: .NET development experience

  • Thursday, June 4: Post-Conference Workshops

    Telerik Platform 09:00 - 17:00 Noam Kfir

    The Telerik platform is a comprehensive offering for building JavaScript applications that run on all mobile platforms -- iOS, Android, and Windows Phone. It comes with a powerful web-based IDE and testing environment, simulators for all platforms, and a rich prototyping and design tool. The platform also offers backend data storage and push notification services, and can connect to existing databases. In this workshop we will explore the Telerik platform offering and build several applications using the Telerik tools.

    Level: 200
    Prerequisites: Web development experience

    Cross-Platform Mobile Apps with Xamarin and Xamarin.Forms 09:00 - 17:00 Ofir Makmal

    Xamarin brings C# to Android, iOS, and Mac, bridging the gap between .NET developers and billions of mobile devices. Xamarin has not been resting on the laurels: they have recently announced Xamarin.Forms, a cross-platform C#/XAML framework for building UI as well as business logic across all platforms. 90% code reuse is not unheard of when using Xamarin, which positions it as a very attractive cross-platform development alternative that doesn't sacrifice performance and productivity.

    Level: 200
    Prerequisites: C# development experience

    Windows 10 Application Development (2/2) 09:00 - 17:00 Lidan Hackmon

    Windows 10 is here! The new OS brings great experiences to users and dramatic changes to developers. There are many devices out there that will run Windows 10: Surface Hub, PCs, Laptops, Tablets, Xbox One, HoloLens, Raspberry Pi 2 and Intel Galileo. In this two-day workshop we will cover all the great features of Windows 10, learn how to develop our applications once and to deploy it on every Windows 10 device mentioned above. We will get to know the new UI controls, design adaptive UI for all resolutions, learn about best practice development methodologies and most importantly develop your own applications.

    Level: 300
    Prerequisites: C# development experience

    Troubleshooting ASP.NET Web Applications 09:00 - 17:00 Ido Flatow

    Your web application is up and running? Great. Now count the minutes before your first problem. What do you do now? Check logs? Debug? Stare at the screen and hope for the best? In this 1-day workshop we will go over the list of tools every web developer should have in their toolset, from the smallest tracing wrench to the memory dump crowbars. We will learn which tools to use to test slow web sites, random exceptions, memory consuming apps, and hung w3wp processes.

    Level: 300
    Prerequisites: Web development experience

    Modern C++ 09:00 - 17:00 Sasha Goldshtein

    Staying up to date in C++ is not just about learning new language features, it's also about effectively using libraries and syntactic constructs that are pervasive in modern C++ code. In this workshop you will learn how to take your C++ code to the next level by integrating new C++ 11/14 language features such as lambdas and move semantics, by introducing exception safety and clean RAII behaviors, and by using the STL to its fullest. We will see multiple examples of how C++ code can be modernized without a complete rewrite.

    Level: 300
    Prerequisites: C++ development experience