December 20-24, 2015 | Tel-Aviv, Israel

SELA|DEVELOPER|PRACTICE

Professional developers conference

47 sessions

29 speakers

Sessions

  • Sunday, December 20: Pre-Conference Workshops

    Securing ASP.NET Applications 09:00 - 17:00 Ido Flatow

    When you think of ASP.NET security, the first things that come to mind are Windows authentication and forms authentication using ASP.NET Membership. For years, those were the common authentication techniques for ASP.NET applications and services. But with the new releases to the ASP.NET Identity system, those days are long gone. For the enterprise, ASP.NET broadened its support from the on-premises Active Directory to include Microsoft Azure Active Directory. By supporting external identity providers, such as Facebook, Microsoft Account and Twitter, the new ASP.NET Identity system makes the process of securing an application less scary than ever. In this workshop, Ido will start from the basics of getting to know concepts such as SSL, OAuth, OpenID and claim-based authorisation. From there we will continue to explore the various scenarios of using self-managed identities, Active Directory and ADFS, external identity providers (Facebook, Google, Microsoft) and Microsoft Azure Active Directory.

    Level: 300
    Prerequisites: ASP.NET development experience

    Windows 10 UWP (1/2) 09:00 - 17:00 Alex Golesh

    The Universal Windows Platform (UWP) is available across all Windows device families. From PCs to tablets, phones, and more, you can reach all these devices and look great on them all using one store and one codebase. In this two-days instructor-led workshop we will cover the prerequisites and basics of UWP development, common APIs, Extension SDKs and Adaptive Controls. We will cover techniques used for development targeting multiple device families device such as capabilities considerations, screens/resolutions, different input methods, etc.

    Level: 300
    Prerequisites: XAML and C# experience

  • Monday, December 21: Breakout Sessions

    KEYNOTE 09:30 - 10:20 Shimon Schocken

    Consider the following challenge: you have 18 months to develop 500 interactive games that cover mathematics education from kindergarten to grade 6. The software that you develop must run as-is in 10 different languages on web platforms in browsers, as well as on Android and IOS devices, outside a browser, using the very same code base. HTML5, Flash, and the garden variety of multi-platform engines like Unity are off limits. How would you go about it? This, in a nutshell, was the starting point of www.matific.com. Today, Matific is a cross-platform math teaching and learning system that runs on laptops and tablets in more than 15 countries and 10 languages, including Hebrew and Arabic. In this talk we'll discuss the software frameworks and engineering principles that we've developed to make it happen. In particular, we'll talk about our thin-objects framework, our cross-platform MVC model, our authoring system, and our problem description and generation languages. Most of this infrastructure was built by our chief software architect, Shmulik London.

    Level: 100
    Prerequisites: None

    Developing for Multiple Devices with Windows 10 UWP 10:40 - 11:30 Alex Golesh

    The Universal Windows Platform (UWP) is available across all Windows device families. From PCs to tablets, phones, and more, you can reach all these devices and look great on them all using one store and one codebase. During this session we will cover the prerequisites and basics of UWP development, common APIs, Extension SDKs, Adaptive Controls and device capabilities considerations.

    Level: 200
    Prerequisites: XAML and C# experience

    Node.js on Windows IoT 11:40 - 12:30 Nir Noy

    TBD

    Level: 300
    Prerequisites: None

    Advanced Native Debugging Techniques 13:30 - 14:30 Ofek Shilon

    The Visual Studio debuggers include a tremendous wealth of debugging features that are somewhat low on discoverability (which is a fancy way of saying you can find them only if you already know what to look for). In this talk we'll share 3 C++ debugging stories from deep in the trenches, and use them to demonstrate both some advanced VS debugging techniques - and some broad debugging guidelines and insights.

    Level: 300
    Prerequisites: C++ development and debugging experience

    Windows Game Development with MonoGame 14:40 - 15:30 Alex Golesh

    MonoGame is an open source implementation of the Microsoft XNA 4 Framework. The project goal is to allow XNA developers on Xbox 360, Windows & Windows Phone to port their games to iOS, Android, Mac OS X, Linux and Windows UWP. During this session we will cover the basics of MonoGame project and porting techniques of XNA games to the Windows UWP for use on PCs and tablets, with the goal of gaining familiarity with issues in porting games, including code sharing, multiple input forms, and different screen resolutions.

    Level: 200
    Prerequisites: Experience with XNA, Windows Phone, or Windows 8.x development

    The C++ and CLR Memory Models 15:40 - 16:30 Sasha Goldshtein

    The words "memory model" are known to induce fear, sleep, or even coma among the best of developers. Truly understanding the intricate relationship between the compiler, the processor, and the memory system is necessary if you plan to design low-level synchronization, write lock-free code, or even debug race conditions that are already present in your code. In this deep session we will climb down into the abyss of the CLR and C++ memory models, affectionately known as SC-DRF. We will talk about volatile and atomic variables, see multiple examples of compiler- and processor-induced reorderings, and see how a lot of code we assume to be correct in fact happens to be totally broken on non-Intel processors.

    Level: 400
    Prerequisites: C# and/or C++ development experience

    Introducing Visual Studio 2015 10:40 - 11:30 TBD

    TBD

    Level: 200
    Prerequisites: None

    Programming with Millions of Examples 11:40 - 12:30 Hila Peleg

    The vast amount of code available on the web is increasing on a daily basis. Open-source hosting sites such as GitHub contain billions of lines of code. Community question-answering sites provide millions of code snippets with corresponding text and metadata. Programmers use all of those, but very few at a time, at best. Fortunately, recent research leverages such "big code" to provide programmers with easier, better, more correct ways to learn by example. Allergen warning: may contain traces of automata, abstractions, tracelets, and other academic terms.

    Level: 200
    Prerequisites: None

    What's Next for ECMAScript? 13:30 - 14:30 Noam Kfir

    JavaScript is evolving faster than ever: ES6 is already out, ES7 is on the fast track and ES8 is set to follow short on its heels. In this talk, we'll take a quick look at some of the more useful improvements, such as arrow functions, template strings, modules and classes, Map, Set and other important new types, and show some of the tools that help us use them in today's projects. We're also going to examine the significant paradigm shift these changes represent. The "old" JavaScript has always been a smorgasbord of haphazard features from different types of languages -- object-oriented but prototypal, functional but mutative, interpreted but compiled -- whereas the new versions of the language standard have set out to normalize the language and prepare it for the scale, complexity and diversity of modern JavaScript apps. The changes are useful, but there are many and they come at a cost.

    Level: 200
    Prerequisites: JavaScript development experience

    Angular Performance and Internals 14:40 - 15:30 Sebastian Pederiva

    TBD

    Level: 300
    Prerequisites: Angular development experience

    Automatic Generation of Test Code 15:40 - 16:30 Natalia Meergus

    TBD

    Level: 200
    Prerequisites: None

    The Microservices (R)evolution 10:40 - 11:30 Moshe Shemi

    TBD

    Level: 200
    Prerequisites: None

    The Worst Mistakes We Saw Our Customers Make 11:40 - 12:30 Ido Flatow

    TBD

    Level: 200
    Prerequisites: None

    MVP Panel 13:30 - 14:30 Sasha Goldshtein

    Join present and former Microsoft MVPs Sasha Goldshtein, Ido Flatow, Alex Golesh, and Ido Katz for an open discussion on Microsoft and non-Microsoft technologies. Ask us anything and hear our thoughts and rants on the technology landscape and roadmap for 2016.

    Level: 200
    Prerequisites: None

    Agile as a Culture and Mindset 14:40 - 15:30 Elad Avneri

    Usually, when talking about Agile development we are referring to "Agile" as a process. In this session we will see why for a successful Agile implementation in your organization you should first and foremost treat it as a culture and a mindset -- only then and based on these comes the process. Unfortunately, the cultural aspect of Agile is usually neglected while companies tend to give their entire attention to the process and the tools. There is a good reason for this -- adopting a culture is the most difficult aspect when transitioning to Agile. Following this, we will see what are the cultural ideas which Agile promotes, what are the challenges and pitfalls when promoting such changes and what practices can be useful for overcoming these challenges. We'll use real-world examples coming from our experience and yours.

    Level: 200
    Prerequisites: None

    Round Tables 15:40 - 16:30 TBD

    TBD

    Level: 200
    Prerequisites: None

  • Tuesday, December 22: Breakout Sessions

    Developing Positive Thinking Patterns 09:30 - 10:20 Galit Dayan

    In this session we will discuss models that provide strategic and applicative tools for generating changes in the way people think and make decisions. We will learn to identify patterns that influence the day-to-day activities and understand the implications of positive and negative patterns. We will introduce an AI model for strategic leadership, which empowers positive thinking, as well as other models.

    Level: 100
    Prerequisites: None

    ASP.NET 5 and MVC 6 10:40 - 11:30 Amir Adler

    TBD

    Level: 300
    Prerequisites: None

    Web Application Vulnerabilities 11:40 - 12:30 Dovi Perla

    TBD

    Level: 300
    Prerequisites: None

    Entity Framework 7.0 13:30 - 14:30 Liron Ratzabi

    TBD

    Level: 300
    Prerequisites: None

    Introducing HTTP 2.0 14:40 - 15:30 Ido Flatow

    TBD

    Level: 200
    Prerequisites: None

    Using Neo4j to Build OneDrop 15:40 - 16:30 Roi Katz

    TBD

    Level: 300
    Prerequisites: None

    Building Big Data Solutions on Azure 09:30 - 10:20 Eyal Benivri

    TBD

    Level: 300
    Prerequisites: None

    The Docker Revolution 10:40 - 11:30 Rotem Or

    TBD

    Level: 200
    Prerequisites: None

    How We Analyzed Thousands of Dumps in Minutes 11:40 - 12:30 Dina Goldshtein

    BrightSource's production environment is disconnected from the main network, and there's no easy way to perform remote debugging or get live monitoring data from the field. By configuring Windows to automatically generate crash dumps, the BrightSource operations team obtained hundreds of dump files from multiple servers while working on the latest release. There was no way they could analyze these dumps by hand, triage the bugs, and assign them to the relevant developers. That's when Dina discovered ClrMD – a Microsoft NuGet package that provides a dump debugging API. In this talk Dina will explain how we built a tool with ClrMD to automatically analyze dumps and obtain exception information, thread call stacks, and memory usage. Dina also integrated this tool with Redmine, a popular project and work item management tool, to file bugs automatically to the relevant developer based on the tool’s initial analysis.

    Level: 300
    Prerequisites: None

    Azure Service Fabric Actor Model 13:30 - 14:30 Bnaya Eshet

    TBD

    Level: 300
    Prerequisites: None

    Azure Traffic Manager 14:40 - 15:30 Ido Katz

    The Microsoft Azure Traffic Manager provides global DNS load balancing methods of distributing internet traffic among two or more endpoints (for example: Virtual Machines or WebApps) on different cloud services that could be located on a different regions, all accessible with the same URL, in one or more Microsoft Azure datacenters around the world. In this session Ido will explain the different methods, show how to configure the Traffic Manager, and will present a little demo. At the end of this session you'll be able to provide better performance, redundancy and high availability to your services and applications by using the Microsoft Azure Traffic Manager.

    Level: 300
    Prerequisites: None

    TBD 15:40 - 16:30 TBD

    TBD

    Level: 300
    Prerequisites: None

    Migrating to Angular 2.0 09:30 - 10:20 Ran Wahle

    Angular 2.0 is a complete rewrite, it embraces new standards, removes the old Angular 1.x dependency injection, scopes and more. Therefore, you might think that migrating your Angular 1.x application requires a complete rewrite. In this session we will go through what we can do to perform a migration easier than a complete rewrite and learn some new tools and tricks to do so.

    Level: 300
    Prerequisites: Angular development experience

    Working with Git 10:40 - 11:30 Noam Kfir

    Git is powerful, fast, flexible... and confusing as heck. It is fast becoming the most popular version control system (VCS) in the world and has replaced TFVC, SVN and a host of others as the de facto VCS for open source and proprietary projects alike. And yet, Git's robustness raises many questions. Is a distributed VCS really better? Should you use feature branches? What about pull requests? What’s the difference between merge and rebase? Isn't rewriting history a Bad Thing(TM)? This talk will re-introduce Git as a powerful tool for managing different workflows and try to answer these and other questions. You'll learn about these workflows, how to implement them and what to watch out for. Whether you're a lone wolf working on the next big thing as a side project, or a team member in a large enterprise working on complex projects with tens or hundreds of developers, Git gives you the solid foundation you need to work effectively, provided you use it correctly.

    Level: 300
    Prerequisites: Basic familiarity with Git commands

    The Frontend Developers' Toolkit 11:40 - 12:30 Nir Noy

    TBD

    Level: 300
    Prerequisites: None

    TBD 13:30 - 14:30 Karen Cohen

    TBD

    Level: 200
    Prerequisites: None

    Building Cross-Platform Mobile Apps with Visual Studio 14:40 - 15:30 Liron Ratzabi

    TBD

    Level: 200
    Prerequisites: None

    Introduction to ATDD and SpecFlow 15:40 - 16:30 Arnon Axelrod

    TBD

    Level: 200
    Prerequisites: None

  • Wednesday, December 23: Post-Conference Workshops

    Modern C++ 09:00 - 17:00 Ady Shimony

    TBD

    Level: 300
    Prerequisites: C++ development experience

    Windows 10 UWP (2/2) 09:00 - 17:00 Alex Golesh

    The Universal Windows Platform (UWP) is available across all Windows device families. From PCs to tablets, phones, and more, you can reach all these devices and look great on them all using one store and one codebase. In this two-days instructor-led workshop we will cover the prerequisites and basics of UWP development, common APIs, Extension SDKs and Adaptive Controls. We will cover techniques used for development targeting multiple device families device such as capabilities considerations, screens/resolutions, different input methods, etc.

    Level: 300
    Prerequisites: XAML and C# experience

    Angular Master Class (1/2) 09:00 - 17:00 Ran Wahle

    TBD

    Level: 300
    Prerequisites: None

    Introduction to Puppet 09:00 - 17:00 Moshe Shemi

    TBD

    Level: 300
    Prerequisites: None

    The Swift Programming Language 09:00 - 17:00 Liron Ratzabi

    TBD

    Level: 300
    Prerequisites: None

    ASP.NET MVC 6 From The Ground Up 09:00 - 17:00 Amir Adler

    TBD

    Level: 300
    Prerequisites: None

  • Thursday, December 24: Post-Conference Workshops

    Building Reactive Websites with Meteor 09:00 - 17:00 Noam Kfir

    The Meteor framework is a rising star. Other frameworks focus on separation of concerns or data binding or look and feel, but only Meteor really puts all the pieces together. Meteor is a full-stack universal ("isomorphic") JavaScript framework for writing reactive web and mobile apps that share code with the server and the database. It supports live updates and hot deploys, optionally integrates with Cordova, AngularJS and other frameworks and tools, significantly simplifies most common workflow tasks and deployment, and has a unified package system for server and client packages. In this workshop, you will build a reactive universal JavaScript app from scratch. The workshop will introduce Meteor and MongoDB and cover latency compensation, reactive principles, working with data, Meteor’s modern yet simple UI framework Blaze, security and deployment. If time permits, we will also talk about testing, mobile, using TypeScript, integrating with AngularJS, and working with SQL databases.

    Level: 300
    Prerequisites: Experience with JavaScript, HTML, and CSS

    Angular Master Class (2/2) 09:00 - 17:00 Sebastian Pederiva

    TBD

    Level: 300
    Prerequisites: None

    Introduction to PhoneGap 09:00 - 17:00 Dovi Perla

    TBD

    Level: 200
    Prerequisites: None

    Xamarin Unleashed 09:00 - 17:00 Ofir Makmal

    TBD

    Level: 300
    Prerequisites: None

    The Magic of C++ Template Metaprogramming 09:00 - 17:00 Sasha Goldshtein

    TBD

    Level: 400
    Prerequisites: Significant C++ development experience and thorough understanding of C++ templates