June 29-July 3, 2014 | Tel-Aviv, Israel

SELA|DEVELOPER|PRACTICE

Professional developers conference

57 sessions

30 speakers

Sessions

  • Sunday, June 29: Pre-Conference Workshops

    Improving .NET Performance 09:00 - 16:30 Sasha Goldshtein

    In this one-day session you will learn how to measure and improve methodically the performance of .NET applications. We will use tools such as PerfView, Windows Performance Toolkit, and the Visual Studio Profiler to analyze high CPU utilization, memory leaks, excessive allocations, and unresponsive UI. At the end of the day we will also discuss some of the CLR internals that can adversely affect performance.

    Level: 300
    Prerequisites: Strong .NET development background

    ASP.NET MVC and Web API 09:00 - 16:30 Ido Flatow

    In this workshop you will learn how to build modern web applications with ASP.NET MVC and Web API. We will discuss when to use each and how to structure your server-side application around MVC and Web API controllers, how to access the database, how to construct views, and how to expose a REST API to your clients based on JSON or other data formats.

    Level: 300
    Prerequisites: Web and C# development experience

    Building SPAs with the MEAN Stack 09:00 - 16:30 Moshe Levi

    The MEAN stack -- MongoDB, Express, Angular, and Node -- is gaining huge traction and popularity with Web developers. In this workshop we will build a Web application from scratch, complete with client and server, using the Angular framework for the client, Express for the server-side MVC, Node for hosting, and MongoDB for data storage.

    Level: 300
    Prerequisites: Familiarity with Web application development

    Modern .NET Debugging 09:00 - 16:30 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

    Root Cause Analysis in Software Testing 09:00 - 16:30 Alon Linetzki

    In many cases, we pick solutions to problems without sufficient analysis. This results in implementing a cover-up of the symptom rather than a solution to the "real problem underneath". When this is done, the problem will most likely to surface again in one disguise or another, and we may mishandle it, just as we mishandled it initially. Getting into the bottom of problems, is the right way to both save money (from things to happen again in the future) and to solve the problem (which we are facing now). In this workshop, Alon Linetzki describes and identifies a few root cause analysis techniques that are widely used in the industry (manufacturing and software alike), gives examples on how to use them, runs an exercise to demonstrate how to implement them, and discuss how to connect them to our day to day testing context. Alon illustrates this method with data from experience in real life projects.

    Level: 300
    Prerequisites: Testing or development experience

    Developing Windows Phone and Windows 8 Apps (3 Days) 09:00 - 16:30 Alex Golesh

    In this three day workshop (delivered on 29/6, 30/6, 2/7) you will learn how to develop universal applications for Windows Phone and Windows 8. At //build, Microsoft announced more details about the upcoming platform convergence, which brings the Windows Runtime to Windows Phone 8.1 devices and makes it possible to develop universal applications with better code sharing than ever before. You will learn about Windows Runtime APIs and development principles, display information on various screen resolutions, navigate between pages, store data in files, communicate with other applications, and use live tiles and push notifications. This three day workshop will include many practical hands-on labs.

    Level: 300
    Prerequisites: C# development experience

  • Monday, June 30: Breakout Sessions

    Microsoft Cloud 09:00 - 09:30 Shmulik Goldstein

    It's the cloud that turns massive streams of data into insight, helps drive unparalleled productivity, transforms a mobile workforce into a connected team, and scales rapidly to meet your needs. This is the Microsoft Cloud. In this keynote we will go over the newest and latest Microsoft Cloud releases and take a glimpse at what's expected ahead.

    Level: 200
    Prerequisites: None

    Visual Studio Online as Part of the Cloud Story 09:30 - 10:20 Baruch Frei

    Visual Studio Online brings together Microsoft Visual Studio, Team Foundation Server, and Microsoft Azure into an easy-to-consume cloud-hosted solution for application lifecycle management. In this demo-heavy session, we will start from scratch and quickly build a solution to manage our code base, inviting friends to collaborate, planning and tracking our backlog, building our project in the cloud, and load testing our solution using the cloud-based load testing capabilities.

    Level: 200
    Prerequisites: None

    DevOps: The Big Picture 10:35 - 11:25 Shmulik Segal

    All the cool kids are doing DevOps, and your organization probably is too. In this session we will explore best practices for a DevOps-oriented organization, including continuous deployment, managing and monitoring production systems, and more -- using Microsoft System Center, InRelease, and 3rd party tools.

    Level: 200
    Prerequisites: None

    State of the Platforms 11:40 - 12:30 Sasha Goldshtein

    The first half of 2014 has been very exciting in terms of new technology releases from Microsoft. In this session we will look at what's new on the Microsoft roadmap in Windows Azure, Windows, Windows Phone, and the managed languages. We will look at Roslyn, C# 6.0, Windows Azure Mobile Services, .NET Native, RyuJIT, SIMD support, Universal applications for Windows 8.1 and Windows Phone 8.1, and many other topics.

    Level: 200
    Prerequisites: None

    The Wisdom of Software Crowdsourcing 13:30 - 14:20 Moshe Shemi

    Crowdsourcing can drive users to your application and give you a lot of useful data, but it can also help develop better software products that delight users every time. We will explore some situations in which crowdsourcing and gameification help build better software and see tools and best practices for how to apply them.

    Level: 200
    Prerequisites: None

    There's Gold in 'Dem Data! 14:35 - 15:25 Yuval Mazor

    Data is all around us. It is easily available from many sources and seems to only be growing. And inside these huge collections, there are many treasures to be found. In the past, many organizations could not take advantage of this data due to major resource issues. Today, however, we have easily available cloud facilities and machine-learning algorithms. These, in turn, make it very easy to extract useful patterns and insights from the massive stores that are available to us. In this talk we'll discuss the tools and capabilities available to you for mining your data, and show examples based on data stored in Team Foundation Server.

    Level: 200
    Prerequisites: None

    Ask Us Anything: Sela MVP Panel 15:40 - 16:30 Sasha Goldshtein

    In this panel, Sela's MVPs will take live questions from the audience as well as talk to you informally about where our development platforms are heading, the most recent Microsoft Build announcements, and other news from the software industry.

    Level: 200
    Prerequisites: None

    Single Page Applications with BackboneJS 09:30 - 10:20 Gil Fink

    BackboneJS is a popular Web development framework that gives structure to web applications. In this session we will learn about binding and collections in Backbone, and how to connect them to the Web application server using REST and JSON.

    Level: 200
    Prerequisites: Web application development experience

    Introduction to RavenDB 10:35 - 11:25 Sasha Goldshtein

    The majority of today’s systems are built on top of relational databases and architects fight to keep incoming requirements within the boundaries of an existing fixed schema. RavenDB is a document database that weds the approach of classic relational databases with flexible schemas more adapted to modern applications. The session is designed to introduce relational developers to NoSQL and RavenDB in particular. You will learn how to design data for storage in RavenDB, how to query data efficiently using indexes, and how to perform full-text search and issue "did you mean?" suggestions.

    Level: 300
    Prerequisites: None

    What's New in ECMAScript 6 11:40 - 12:30 Ran Wahle

    ECMAScript 6 is the next language standard for JavaScript, and it includes many experimental features that are already supported by some browsers. In this session we will explore the features that can make your lives as Web developers easier, such as modules, classes, observers, and many API improvements.

    Level: 300
    Prerequisites: Familiarity with Web application development

    A Tour of ASP.NET Web API 13:30 - 14:20 Ido Flatow

    If you've ever developed web applications you've been in this situation: to create a service that exposes your resources over HTTP, you plan on adopting the REST architectural style, use URI templates, support multiple content types and control client-side cache. And to top it all off, you want your service to be easily creatable and highly testable. So which technology do you choose? The new ASP.NET Web APIs of course. With the new Web APIs you can do all of the above, and still have plenty of time left for a cup of coffee. In this session we will see how to create HTTP services with ASP.NET Web APIs, consume the services from various clients, and use ASP.NET Web API with HTTP streaming and caching.

    Level: 300
    Prerequisites: None

    Modern Production Debugging with Windows Performance Toolkit 14:35 - 15:25 Gad Meir

    Software system debugging and analysis is moving from static memory dump analysis and performance-counters-based analysis to precise event logging analysis based on the Event Tracing for Windows (ETW) infrastructure. ETW enables you to record live production (and QA) systems with almost no overhead and a negligible observer effect, to get precise information about almost any aspect of the system operation including memory and CPU pressure, hangs and waits, semaphore contentions and much more. The Windows Performance Toolkit (WPT) package suite of tools is freely available and can be easily used even in strict no-install systems, and contains great analysis tools. In this talk we will cover WPT and demonstrate several application- and system-level fault analyses.

    Level: 300
    Prerequisites: None

    Python, WSGI, and Django on Windows Azure 15:40 - 16:30 Uri London

    Python is the fastest growing language these days, a "top 5" language by any measurement. It is object oriented, high level, dynamic language, that support multiple paradigms. Python modules and packages encourage code reuse and modularity. You will find Python on the server, on the desktop, or in mobile application. Google is using Python for websites such as YouTube, and DropBox is using Python for both the servers and their desktop application. The Web Server Gateway Interface (WSGI) is the specification that dictates how web servers interfaces with web application. On top of WSGI, Django became the de-facto standard framework for building data-driven web sites very fast. In this session, we'll go through all the steps of creating a Django based web site, starting with data modeling, implement server side logic in Python, use a templating engine for the view, and eventually upload our application to Windows Azure.

    Level: 200
    Prerequisites: Server-side web development experience

    Hadoop, Hive, and HDInsight 09:30 - 10:20 Manu Cohen-Yashar

    Hadoop is the most popular framework for cloud-scale data processing today. In this session we will explore typical use cases for Hadoop and see how to approach data using the Hive query language. We will also see how to host Hadoop clusters on Windows Azure using HDInsight.

    Level: 200
    Prerequisites: None

    All Queued Up 10:35 - 11:25 Yaniv Rodenski

    Message queues are one of the most versatile and robust mechanisms used in distributed systems. Despite their old age, message queues keep evolving to support todays' distributed systems workload and architecture, providing features such as transactions, persistence and scalability. In this session we will take a look at some of the most interesting queuing mechanisms available today including innovating solutions varying from cloud based solutions such as Windows Azure Queue Storage and Amazon Simple Queue Service to scalable monstrosities such as Apache Kafka and LMAX’s disruptor. We will explore the different capabilities as well as some of the tradeoffs we need to make when planning a queue-based solution.

    Level: 300
    Prerequisites: None

    Using Storm on Windows Azure 11:40 - 12:30 Richard Conway

    Storm is the real-time engine behind twitter which has shot to notoriety due to its sheer scalability. In this session Richard Conway will look at how this works and is deployed to Windows Azure. He has written an open source "spout" which he’ll use to show how to ingest thousands of messages per minute from the Windows Azure Service Bus and apply data transformations to them in real time.

    Level: 300
    Prerequisites: None

    The Telerik Platform: End-to-End Cross-Platform Development 13:30 - 14:20 Noam Kfir

    Get to know the newest and most complete PaaS contender. The Telerik Platform combines many of Telerik's well-known products into one integrated solution and is designed for businesses of any size. It offers a slew of online and offline tools for end-to-end cross-platform development, including an online IDE, Visual Studio integration, prototyping, automated cross-platform testing and deployment, rich analytics, authentication and other backend services, and much more.

    Level: 300
    Prerequisites: None

    DevOps: Monitoring, Deployment, Scaling 14:35 - 15:25 Shani Feldman

    In this session we will look at how to apply DevOps principles to monitor production systems, deploy them automatically, and scale them based on user load. We will use tools such as Chef to manage production deployments in cloud and on-premise environments.

    Level: 200
    Prerequisites: None

    Architecting for IT and DevOps 15:40 - 16:30 Gad Meir

    Most software architects don't have extensive knowledge about the operations environment and IT. As a result their designs lack many important features and requirements that influence the smooth integration of the design into the operations environment. Those requirements, features and design decisions are a crucial factor in reducing the operations costs of the product and have direct effect on reducing TCO. In this talk we will cover the parameters and constraints of the operations and production environments and discuss the implications it imposes on the architect's design decisions. Instrumentation and other related Microsoft built-in operating system services and technologies that will make the design and project more DevOps and IT friendly will be discussed and demonstrated. The talk is based on real life experience in production environments.

    Level: 200
    Prerequisites: None

  • Tuesday, July 1: Breakout Sessions

    Universal and Cross-Platform Apps 09:00 - 09:30 Noa Franko-Ohana

    The last few years have proven the mobile platform to be the fastest growing market in the industry, which brings many new opportunities for growth and innovations. Still, cross-platform development remains a significant challenge given the diversity of mobile operating systems, languages, tools, and form-factors. Join us for a talk about the new possibilities in developing cross platform applications in C# and XAML, using Xamarin and Universal Apps, with maximum code sharing and without compromising on the user experience.

    Level: 200
    Prerequisites: None

    What's New in Windows Phone 8.1 09:30 - 10:20 Alex Golesh

    The new release of Windows Phone dramatically expands the ways in which developers can build applications and games, by adding several new programming models, and also expanding the application model to support a broader set of developer scenarios. The Windows Runtime now provides the foundation for both Windows and Windows Phone apps, providing developers with thousands of APIs to build innovative experiences. The Windows Phone Silverlight based apps are supported and even provide extra benefits for some scenarios. Come learn about all the new features in Windows Runtime apps, Windows Phone Silverlight 8.1 apps, and upgrading existing Silverlight 8.0 apps.

    Level: 200
    Prerequisites: None

    Building Cross-Platform Games with Unity 10:35 - 11:25 Lidan Hackmon

    Unity is a powerful platform for game development, which can help build games that run on a large variety of operating systems using C#. In this session we will build a cross-platform game with Unity that will run on iOS, Android, and Windows Phone.

    Level: 300
    Prerequisites: None

    Sencha Touch 11:40 - 12:30 Sebastian Pederiva

    Sencha Touch is a high-performance framework for building mobile applications with HTML5. It supports iOS, Android, Windows Phone, and additional platforms. Sencha Touch supports PhoneGap and provides on top of it a set of components and themes and an MVC system for building powerful mobile applications. In this session we will explore the framework and build a cross-platform mobile app from scratch.

    Level: 300
    Prerequisites: JavaScript development experience

    Developing XAML Apps for Multiple Devices 13:30 - 14:20 Alex Golesh

    Windows applications can run on phones, tablets, PCs and beyond. Come learn about the common XAML UI framework for Windows and Windows Phone. This session will cover the common XAML APIs across Windows and Windows Phone, techniques and limitations when using common XAML to build experiences both Windows and Windows Phone, as well as cover device-specific XAML APIs that enable customized experiences.

    Level: 300
    Prerequisites: XAML development experience

    C# Everywhere: Introduction to Xamarin 14:35 - 15:25 Ofir Makmal

    Xamarin is a framework and runtime that supports C# applications on iOS, Android, and OS X. In this session we will learn how to develop applications that will run on Windows Phone, Windows 8, iOS, and Android, while leveraging our C# and .NET knowledge. We will also see how to share our app's business logic across all platforms.

    Level: 300
    Prerequisites: None

    From XAML and C# to HTML5 and JavaScript 15:40 - 16:30 Michael Haberman

    Many XAML and C# developers are making the plunge to web applications. In this session we will highlight some of the commonalities as well as the differences between the platforms, and lay out a path for making this transition as smoothly as possible. We will look at language differences, UI layout differences, and other considerations.

    Level: 200
    Prerequisites: XAML development experience

    Open Source on Windows Azure 09:00 - 09:30 Rachel Yehezkel

    With the latest announcements of tons of new features in Microsoft Azure, the sky is limit when it comes to Web development and Big Data in the cloud. Any web developer working with Node.js, Java, PHP, Python, Ruby, or .NET would be amazed to find out how fast it is to deploy a web app in the cloud. And what about Big Data as a service? Hadoop, HBase, MongoDB and Redis -- are all one click away. Join us to find out about all new exciting services in the cloud that will make you a hero.

    Level: 200
    Prerequisites: None

    Introduction to Neo4j 09:30 - 10:20 Jim Webber

    Neo4j is the world's leading graph database, and 2013 marked the advent of the fabulous new 2.0 release. In this talk we'll discuss the motivation for graph data, introduce the Neo4j database and its labelled property graph model, and demonstrate its humane query language Cypher with an air-travel example. We'll then go on to discuss how Cypher allows us to manipulate and query large, sophisticated semi-structured data rapidly in real time. Using retail recommendations as our example domain, we'll show how graphs excel for recommendation engines, and how Cypher makes it simple enough for anyone to implement.

    Level: 300
    Prerequisites: .NET or Java development experience

    Couchbase Server 10:35 - 11:25 David Ostrovsky

    Couchbase is a NoSQL document database that helps build complex applications without relying on a rigid database schema. Couchbase offers very fast reads and writes with a clustered architecture that is very easy to scale and configure to your needs, and has a powerful .NET client for C#/VB applications. In this session we will build a system with Couchbase and explore its scalability, performance, and data modeling capabilities.

    Level: 300
    Prerequisites: None

    ElasticSearch 11:40 - 12:30 Itamar Syn-Hershko

    Search engine technologies are everywhere. It's not only when you Google that you use one; the technology behind search engines is also used to allow for easy information drill-down, live reporting, auto-completion, spatial search and more. ElasticSearch is an open-source, cloud-ready, super scalable search engine which is gaining a lot of popularity. It is mostly known for being extremely easy to setup and integrate with any technology stack. In this talk we will introduce ElasticSearch, and demonstrate some common and innovative use cases and advanced features. We will then scale them out and use multiple nodes, showing ElasticSearch's amazing scaling out capabilities.

    Level: 300
    Prerequisites: None

    Light Up Your Data with Spark 13:30 - 14:20 Yaniv Rodenski

    Apache Spark is a general purpose framework for processing large datasets. In a niche market dominated by Hadoop, Spark is becoming more and more popular due to its fast performance, simplicity, and powerful capabilities. Spark can be used to process data using a simple programming model. Spark can run on its own or on Hadoop using YARN, can be integrated with Hive using Shark, and has models for streaming, graph processing and machine learning. In this session we will get up and running with Spark and see how we can easily master big data locally and on AWS.

    Level: 300
    Prerequisites: None

    Recommendation Systems for High-Scale Websites 14:35 - 15:25 Richard Conway

    Recommendation systems have shot to notoriety through websites such as Amazon and Netflix. In this session Richard Conway will describe how to build a model which will allow user and item data to be recommended to new users. This session will contain some basic statistics and focus on how to use frameworks such as Mahout and MLLib both in isolation and across Hadoop clusters.

    Level: 300
    Prerequisites: None

    Big Data and Solr 15:40 - 16:30 Doron Caspin

    Solr is the widespread, blazing fast open source enterprise search platform from the Apache Lucene project. Its major features include powerful full-text search, hit highlighting, faceted search, near real-time indexing, dynamic clustering, database integration, rich document handling, and geospatial search. Solr is highly reliable, scalable and fault tolerant, providing distributed indexing, replication and load-balanced querying, automated failover and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites. In this talk we'll discuss the motivation to use Solr in Big Data environments, introduce Solr and SolrCloud and its feature list and large scale capabilities using Big Data technologies.

    Level: 200
    Prerequisites: None

    AngularJS 09:30 - 10:20 Moshe Levi

    Today we do not write websites anymore. We write web applications. They are complex and may contain hundreds of thousands of lines of JavaScript code. As this is not a simple task we need a framework to make development faster and maintenance easier. AngularJS is an advanced client-side framework based on the MVC pattern that allows developers to extend the HTML vocabulary and make the written code much more expressive and readable. With AngularJS, developers can create custom HTML elements with complex behaviors, two way data binding and much more. In this session we will see how to use AngularJS to create single page applications with ease.

    Level: 300
    Prerequisites: Web development experience

    Front-End Unit Testing with Jasmine 10:35 - 11:25 Gil Fink

    Jasmine is a unit-testing framework for JavaScript front-end code that has no dependencies on any other frameworks and does not require using the DOM. It has a behavior-driven syntax that you can use to easily write tests. In this session we will explore Jasmine suites and specs to build a behavior-driven test system for your JavaScript applications.

    Level: 300
    Prerequisites: JavaScript development experience

    Debugging the Web with Fiddler 11:40 - 12:30 Ido Flatow

    Every web developer needs to see what goes on "the wire," whether it is a jQuery call from JavaScript, a Windows Communication Foundation (WCF) service call from a client app, or a simple GET request for a web page. With Fiddler, the most popular HTTP sniffer, this is simple enough to do. Fiddler is more than just a sniffer. With Fiddler you can intercept, alter, record messages, and even write your own message visualizer. In this session, we will learn how to use Fiddler from bottom to top to debug, test, and improve web applications.

    Level: 300
    Prerequisites: Web development experience

    Introducing ASP.NET vNext 13:30 - 14:20 Ido Flatow

    At TechEd, Microsoft announced its plans and vision for ASP.NET vNext. ASP.NET vNext is being 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 ASP.NET with a smaller memory footprint, and truly do side-by-side deployment where even the .NET framework is a NuGet package. This is the new ASP.NET vNext. In this session, we will explore the eco-system of ASP.NET vNext, its new project system and configuration system, and how to use it to build exciting web applications.

    Level: 300
    Prerequisites: Web development experience

    Bootstrap and Responsive Web Design 14:35 - 15:25 Shlomo Goldberg

    Twitter Bootstrap is an extremely popular CSS and JavaScript framework for laying out and constructing complex websites. Bootstrap is in heavy use across the web today, and has first-class features for responsive website design. In this session we will look at Bootstrap in detail and see how to use it to implement a website that looks great on both mobile and desktop platforms.

    Level: 200
    Prerequisites: Web development experience

    HTML5 Web Workers and IndexedDB 15:40 - 16:30 Dovi Perla

    IndexedDB is part of the HTML5 standard and offers a powerful key-value local store for JavaScript applications. Web Workers, also part of HTML5, bring multithreading to JavaScript and can run work in the background. In this session we will explore how combining the two is useful for complex Web applications that operate on large datasets on the client.

    Level: 300
    Prerequisites: JavaScript development experience

  • Wednesday, July 2: Post-Conference Workshops

    Neo4j: The Graph Database 09:00 - 16:30 Jim Webber

    Neo4j at a Microsoft-focussed conference? Don't worry about the "4j" part, .NET developers have great Neo4j support (via Neo4jClient on NuGet) and are warmly welcomed to this highly practical tutorial. Each session of this tutorial consists of a small amount of theory combined with a set of REPL-assisted practical exercises designed to reinforce how to achieve sophisticated goals with Neo4j. You will work with Neo4j's Cypher query language through a set of exercises which gradually become more challenging until you are capable of implementing sophisticated graph queries and operations with Neo4j. Starting from the basics of graph data and the labelled property graph model, you will learn the Neo4j dev environment and rock with the Cypher REPL, understand Neo4j's data model and its whiteboard-friendliness, practice creating and maintaining connected graph data in Neo4j, and Query large graphs for sophisticated information goals in near real-time.

    Level: 300
    Prerequisites: Java or .NET development experience

    Building Scalable JavaScript Apps 09:00 - 16:30 Gil Fink

    Building and maintaining large and scalable JavaScript web apps is not at all easy. So how you build such things without being driven into madness? Using and combining proven JavaScript patterns will do the trick. In this one-day workshop, we will talk about the patterns behind some of the largest JavaScript apps, such as Gmail and Twitter, and how to apply them in your own apps. We will start from object patterns and then focus in on module patterns, promises, timers, and more.

    Level: 300
    Prerequisites: JavaScript development experience

    Making Web Applications Faster (Web Performance) 09:00 - 16:30 Sebastian Pederiva

    This session will start with a traditional ASP.NET web site and show step by step how to improve it for both client experience and scalability. Review the basics of caching and learn how to avoid costly server round trips by using expirations to maximize use of the client's browser and also reduce server side execution time with data caching on the server. Use HTTP compression, minification of JavaScript and CSS, and image optimization to reduce client downloads by 50-75%. Take advantage of free CDN networks to host jQuery and Ajax files. See how tools such as Fiddler and Google Page speed can be used to help diagnose and verify improvements. Use jQuery to lazy load images only as they are about to be displayed. Learn the techniques that can have the largest impact on web performance with the least amount of work.

    Level: 300
    Prerequisites: Knowledge of C# and ASP.NET

    Building Mobile Web Apps with jQuery Mobile and PhoneGap 09:00 - 16:30 Dovi Perla

    jQuery Mobile is a UI framework for JavaScript mobile applications, and PhoneGap is a framework for cross-platform mobile application development and packaging. Together, jQuery Mobile and PhoneGap help build complex mobile apps that rely on large amounts of data, communicate with the server, and present information beautifully in a way that is suited for mobile. In this demo-packed workshop we will explore both frameworks and build a cross-platform mobile app from scratch. Part of the workshop will be delivered jointly with Roni Furer, a development manager at EL AL Israel Airlines, who worked with Microsoft tools and technologies for over 15 years and developed mobile apps and web-based products.

    Level: 300
    Prerequisites: JavaScript development experience

    Use TDD to Destroy the Legacy Code Black Hole 09:00 - 16:30 Noam Kfir

    You're finally doing TDD, but your past mistakes are catching up with you. No matter what you do, you can't get rid of the gaping black holes caused by your legacy code. Learn how to test untestable code, revive and simplify incomprehensible code, and repair the rift in the time-space continuum.

    Level: 300
    Prerequisites: C# development experience and familiarity with unit testing

    Making The Most of C++11/14 09:00 - 16:30 Sasha Goldshtein

    The C++11 standard is already behind us, and C++14 is just around the corner. With a huge variety of language features such as lambdas, rvalue references, auto and decltype, and variadic templates, it's easy to get lost in C++. In fact, it often seems like a completely new and foreign language. In this workshop we will look at the most important language features that improve system performance and developer productivity, with a glimpse towards what C++14 will bring. We will make the most of Visual C++ 2013 and see how to convert and refactor code to use modern C++ idioms.

    Level: 300
    Prerequisites: C++ development experience

  • Thursday, July 3: Post-Conference Workshops

    Making The Most of C++11/14 09:00 - 16:30 Sasha Goldshtein

    The C++11 standard is already behind us, and C++14 is just around the corner. With a huge variety of language features such as lambdas, rvalue references, auto and decltype, and variadic templates, it's easy to get lost in C++. In fact, it often seems like a completely new and foreign language. In this workshop we will look at the most important language features that improve system performance and developer productivity, with a glimpse towards what C++14 will bring. We will make the most of Visual C++ 2013 and see how to convert and refactor code to use modern C++ idioms.

    Level: 300
    Prerequisites: C++ development experience

    Hadoop Bootcamp 09:00 - 16:30 Richard Conway

    A bootcamp offering an introduction to Hadoop. If you have interest in Big Data and the Cloud then this course is for you. The day's agenda will be tutorials and hands-on labs on the following topics: Introduction to Hadoop and Data Science; HDInsight through the Windows Azure Management management portal; hands-on lab (building and testing your first map-reduce in C#); data analytics and machine learning; hands-on lab (using HIVE); building solutions using PIG with a hands-on lab; the future of Hadoop.

    Level: 300
    Prerequisites: None

    Building Mobile Apps with Xamarin 09:00 - 16:30 Ofir Makmal

    Xamarin is a framework and runtime that supports C# applications on iOS, Android, and OS X. In this full-day workshop we will learn how to develop applications that will run on Windows Phone, Windows 8, iOS, and Android, while leveraging our C# and .NET knowledge and how to share our app's business logic across all platforms. The application we build will access the Internet, display complex data, and perform operations asynchronously. We will also explore useful NuGet packages and additional components from the Xamarin Component Store.

    Level: 300
    Prerequisites: C# development experience

    Entity Framework 6 for Your Enterprise 09:00 - 16:30 Bnaya Eshet

    Entity Framework 6 is a mature object-relational mapper with powerful capabilities for bridging the gap between your application and the database. In this workshop we will dive deep into Entity Framework 6 and review fine-tuning tips and best practices for using it effectively in an enterprise-scale deployment. This day will put you on a solid ground and offer best practices based on real-life scenarios.

    Level: 300
    Prerequisites: None

    Parallel Programming with the TPL 09:00 - 16:30 David Ostrovsky

    The Task Parallel Library, introduced in .NET 4.0, makes it easier to manage threads and work items and parallelize common workloads. In this workshop we will explore the task and data parallelism APIs. We will learn about the Task class, continuations, and cancellation, and the C# 5.0 async/await support. We will also see how to parallelize loops and LINQ queries. At the end of the day you will be equipped to introduce parallelism and concurrency to your own systems.

    Level: 300
    Prerequisites: None

    Java 8 - The Biggest Change in Java, Ever 09:00 - 16:30 Moshe Shemi

    Java 8 is the biggest change in the Java language. It redefines fundamental concepts that you are familiar with from Java programming. In this workshop we will talk about the new lambda expressions, default methods on interfaces, and working with collections using the new Stream API. These features will affect almost every line of existing Java code.

    Level: 300
    Prerequisites: Java development experience