Introduction to ASP.NET vNext

8:30 am in
Bill WolffMVP, Rob KeiserMVP

ASP.NET 5 is a significant redesign of ASP.NET. This session introduces the new concepts in ASP.NET 5 and explains how they help you develop modern web apps. ASP.NET 5 includes the following features:

  • New flexible and cross-platform runtime
  • New modular HTTP request pipeline
  • Cloud-ready environment configuration
  • Unified programming model that combines MVC, Web API, and Web Pages
  • Ability to see changes without re-building the project
  • Side-by-side versioning of the .NET Framework
  • Ability to self-host or host on IIS
  • New tools in Visual Studio 2015
  • Open source in GitHub

F# in the Web

8:30 am in
Riccardo TerrellMVP

F# is a fantastic modern cross-platform programming language that can be used to develop Web based solutions.
In this session, we’ll go over several features that F# provides to write simple yet high-performance web based solutions.  We will discuss the benefits utilizing a functional approach including composition, type providers and computation expressions.
We will use the CQRS (Command Query Responsibility Segregation) pattern in an MVC Web project leveraging the power of Reactive Extension combined with the efficiency of SignalR for bi-directional communication between web servers and clients.
You will leave with the skills needed to enhance your development skills for modern web applications, by adding a modern programming language to your “tool box”.

Mobile App Development with Xamarin and F#

10:00 am in
Rachel Reese

With the release of Swift, functional programming for mobile apps suddenly flew into the limelight. But did you realize that F# has been a solid mobile option for much longer? It’s entirely possible to write fully native, cross-platform mobile apps completely in F#! For this session, I’ll concentrate on the features of F# that make it uniquely and especially suited to iOS development, while covering both iOS basics and F# basics, so you’ll have all the tools to run with your own app idea when we’re done!

F# Best Practices

11:30 am in
David Crook

We will cover best practices of F# used in a production system along with how to implement. This is a 200-300 level coding session, with minimal to no F# experience necessary. We will cover how we structured our projects, how we test things out, how we handle errors, how code is structured, how we deal with coding side effects, interop with C# and more.
Part of the F# track.

(Nearly) Everything You Ever Wanted to Know About F# Active Patterns but were Afraid to Ask

1:30 pm in
Paulmichael Blasucci

This presentation will provide a concise, but thorough, review of one of the more unique features of the F# language: active patterns. Also known as active recognizers, this feature allows one to extend the pattern-matching capabilities of the language. Active patterns may be put to great effect in taming unruly APIs, improving the declarative style of one’s code, constructing embedded DSLs, and much more. This talk will be given in a lecture format, interspersing digestible code samples with detailed breakdown of syntax. Additional consideration will be given, time permitting, to appropriate use-cases for active patterns and a discussion of the under-lying mechanics. The review is aimed at advanced beginners who are familiar with F#’s general syntax and usage. Also, while not strictly necessary, those wishing to follow along via computer are encouraged to have, at least, version 2.0 of the core F# tools. Information on obtaining the latest version of F# (for your platform of choice) may be found at:

Angular Bootcamp

8:30 am in
Jess ChadwickMVP

Sold Out

In this session Jess Chadwick walks you through everything you need to know in order to begin developing AngularJS applications today. Attendees will quickly move past the simplest of Hello World samples and right into how to solve real-world problems using battle-tested patterns and techniques.

Though focusing on the current stable AngularJS release (1.x), the session will also speak to the new version of Angular 2 coming later this year to help make your transition to the new version as painless as possible.

Getting pushy with SignalR and Reactive Extensions

8:30 am in
Jim WooleyMVP

As our systems increasingly demand more real-time updates, we need better ways of working with these live streams of information. Traditional pull models fail to provide the real-time responsiveness and scale needs that modern systems expect. Moving to a push model allows us to scale easier and react to new data as it becomes available. SignalR facilitates push notifications over HTTP to a variety of clients. The Reactive Extensions were designed to allow for asynchronous LINQ over push based collections. In this talk, you’ll see how the synergy of these two technologies merge to make otherwise difficult tasks, a push over.

PowerShell for Developers

10:00 am in
Doug FinkeMVP

PowerShell V5.0 ships with Windows 10

Doug Finke, author of “PowerShell for Developers” and 7 time Microsoft MVP takes you through the newest version of PowerShell. You’ll experience the wide range of PowerShell’s power for automating tasks, making your life easier. Come see the game changing features in PowerShell v5. Learn why the command line REPL enables you to deliver results faster and with more quality. Learn to integrate/debug PowerShell from and to C# code, how to use reflection at the command line, object pipelining, and much much more.

Building Mobile Cross Platform Apps using Cordova

11:30 am in
Mostafa ElzoghbiMS

This session will cover how to build cross platform mobile applications using Apache Cordova. Cordova allows web developers to use their existing web development skills to build cross platform mobile apps. Write a single code base in HTML/JS/CSS and deploy your app to iOS, Android and Windows Phone. The session will cover how to use JS libraries such as Angular and Backbone to build Apps in Visual Studio 2015.

The session will cover insights on understanding the project structure and best practices in building Cordova apps and it is demo driven!

Creating Scalable Event-Driven Solutions (with Akka.NET)

1:30 pm in
David HoersterMVP

Oftentimes, we see workflow driven applications as a series of long running processes that just wait. Sometimes we see threads being put to sleep and awoken after several minutes to see if things have changed. Usually, in these situations, we end up being dependent on the order of items in our system and we end up spending much of our time programming for the situations where these items occur “out of order”. Event-driven systems take a lot of that “out of order” complexity away and treat events happening in our system as always “being in order” and our application ends up managing the overall state. In this talk, we’ll look at the pros and cons to this approach to system architecture and design and how we can build a simple event driven system using a messaging framework/toolset like, but not only, Akka.NET.

Get Your Site Microsoft Edge Ready

3:00 pm in
Mostafa ElzoghbiMS

Microsoft Edge – what are the technical details of Microsoft’s new browser, what’s new in Edge, and what’s the best way to develop for it? This session will go over the technical details of Microsoft Edge. We’ll discuss the value of the browser and how you can make sure your web sites are ready for Edge!

Functional Reactive Programming for Natural User Interface

8:30 am in
Riccardo TerrellMVP

Functional reactive programming supports elegant programming of dynamic and reactive systems by providing first-class, composable abstractions for behaviors (time-varying values) and events (streams of timed values). Using Functional Reactive Programming to handle event-stream of values over time provides an alternative to the Observer pattern, which produces a series of unique responses to discrete changes in state. Reactive Programming is useful anywhere the Observer pattern is common, and provides an elegant way to express computation in domains such as video games, networking, user interfaces and simulation. Once understood, it can greatly simplify your project and code dealing with asynchronous events with nested callbacks, complex list filtering/transformation, or timing concerns. During this presentation I will create, consume and compose event streams with Observables introducing the concept of FRP integrating time flow and compositional events to build Natural User Interfaces with Kinect and Leap using F#. You will walk away with the knowledge and excitement of how to use the Functional Reactive Programming approach and how to leverage the reactive programming power to build Natural User Interfaces.

TypeScript: JavaScript Evolved

10:00 am in
Jess ChadwickMVP

JavaScript is in your browser, your freezer and everywhere in between. Though it’s true that today’s world runs on JavaScript, the language was created with form validation and basic DOM manipulation in mind so it leaves a lot to be desired when it comes to writing real-world applications with it. So much so that Douglas Crockford felt the need to write a book entitled, “JavaScript the Good Parts” and Anders Hejlsberg, the father of C#, decided to focus his decades of language development expertise into bringing JavaScript into the world of mature, respectable languages by creating TypeScript.

In this presentation I’ll show just what TypeScript is, how it relates to the concepts you already know today, and why you would might consider writing all your web applications in TypeScript rather than plain old JavaScript from now on.

What’s New In C# 6

11:30 am in
Scott Kay

C# 6 introduces many new features aimed to reduce clutter and better express the intent of your code. In this session, you’ll learn all the new syntax through code demos and see how the new features can help simplify common coding patterns. We’ll also explore improvements to the .Net runtime that you can take advantage of in C# and peek at what’s on the horizon for C# Next.

Cutting Through The Static

1:30 pm in
Dave GlickMVP

The use of static site generators has been growing, propelled by a desire for ever-faster content delivery and less complex architectures. In addition, the availability of hosted web services, cloud infrastructure, and client-side frameworks have made them more practical than ever. For context, I will introduce the history and concept of static site generation followed by a brief look at some of the more popular generators across different languages. Then we will focus on .NET and what sort of options exist for leveraging your existing knowledge. This includes looking at several generators written in .NET as well as how to apply concepts such as Razor, server-side MVC, and routing.

Write Better Code With Live Analyzers

3:00 pm in
Scott Kay

Visual Studio and Roslyn make it easier than ever for developers to provide live code analyzers than can emit errors and warnings as you type. Codify your team’s best practices and let Visual Studio enforce them in real time.

In this session, you’ll learn step-by-step how to create Visual Studio extensions for analyzing code using the Roslyn API. You’ll also learn how to create code fixes for your teammates to immediately apply and get back on track to writing clean code. No prior experience with the Roslyn API is necessary or assumed.

Modern Data Services

8:38 am in
Ken Lovely

In this all day hands on session you will learn what it takes to develop Micro Data Services. Together we will create a Code First Data model that we will expose through a WebApi. Our first WebApi will be using MVC 5, followed an Owin hosted WebApi running as a Windows Service and then we will port it over to Asp.Net Core.

We will learn how routing works; how and why naming your routing is important; how to create custom responses, How do GET, POST, PUT, PATCH and DELETE; how to test your api; how to secure your Api with by user and by application using bearer tokens; how to use OWIN middleware, how to do background processing so your API is always responsive, how to cache data and optimize and how to do Entity Framework Code First implementations.

By the end of the day you will have 3 services that all returns data in proper JSON format that can easily be consumed by JQuery, C#, Java, Objective-C, PHP. etc…

Monads – as simple as it is

8:30 am in
Eduard Kremer

Monad is programming construct used practically by all functional languages, including F#, and causing serious difficulties in understanding.

Monads were introduced in the computer science from the abstract branch of mathematics and follow the mathematical tradition to attack every problem axiomatically, in some kind of “follow me” style. Entities and constructs introduced on this way look strange and meaning is vague. “And it is monad!” on the end of the tutorial doesn’t bring clarity.

On the other site it is evident that the power of monads roots not in its mathematical origin only but in the nature of the programming problems to which monads are applied. Based on this we can start from a specific problem typical for all functional languages and will try to solve it in a logical and sequential manner, just as a programming problem. Surprisingly, all weird properties and “laws” associated with monads can be recreated on this way.

Metaprogramming in .NET

10:00 am in
Stachu Korick

Metaprogramming is a very wide topic with many gray lines between other topics such as DSLs and dynamic programming. In short, metaprogramming is “code you write so you have to write less code.” As we all know, more code that people have to think about typically results in a higher chance of defects.

In this talk, we’ll cover what metaprogramming is, some good and bad examples of metaprogramming, and then cover a few technologies in the .NET space relevant to the topic.

In particular, we’ll cover Reflection, the Reflection.Emit API, CodeDOM, T4, DSLs, F# Type Providers, Roslyn, IL Rewriting, and more. We don’t have time to take the deepest dives possible into any of these subjects, but we’ll certainly be able to open up a can of worms that could save us all immeasurable headaches and time!

Write Better C# Code With Live Analyzers

11:30 am in
Scott Kay

Analyzers enable project teams to codify their best practices and library authors to provide extra guidance on their usage, all exposed through Visual Studio’s hints and compiler messages. With the help of the .Net Compiler Platform (codename Roslyn), it’s never been easier to build and share your own live code analyzer. In this session, you’ll learn step-by-step how to create and share code analyzers for C# code utilizing the Roslyn API. You’ll also learn how to create code fixes for your teammates or users to immediately apply and get back on the track to writing clean code. No prior experience with the Roslyn API is necessary or assumed.

Explore Serverless Architectures with Microsoft Azure Functions

1:30 pm in
Jason van Brackel

From Microsoft:
“Azure Functions is a serverless event driven experience that extends the existing Azure App Service platform. These nano-services can scale based on demand and you pay only for the resources you consume.”

NoOps has enabled companies like SnapChat, Instagram, and Whatsapp to grow rapidly serving user bases in the hundreds of millions while keeping operations organization overhead at a fraction of what it was just a decade ago.

Come to an introduction of serverless architectures, while exploring the first steps to harnessing this emerging pattern with Microsoft Azure Functions.

DevOps: C# and SQL Server Management Objects (SMO)

3:00 pm in
TJ Cappelletti

If you’ve ever written an application that generates a SQL command string to create a database, perform a backup, or setup permissions you’ve been doing it the hard way. Since SQL Server 2005, Microsoft has provided a library to programmatically interact with SQL Server. The library is known as SQL Server Management Objects or SMO. This is the same library that is used by SQL Server Management Studio (SSMS) and handles much of the “guess” work at generating SQL command text to do almost any kind of management you want. In this session, I’ll show you how to create SQL Server monitoring and management tools for environments that can’t afford commercial tools like Idera or Red Gate.