2018 Sessions

Clean Code: Homicidal Maniacs Read Code, Too!

There's no such thing as a write-once application. The world is constantly changing, and our code needs to change with it. We'll think in small pieces and take a look at some principles and techniques that will keep our code manageable and understandable. Think about the developer who will come after you. Now, imagine that he's a homicidal maniac who knows where you live.


How Microsoft Does DevOps

Learn how the Visual Studio Team Services (VSTS) team at Microsoft has changed their approach to building software and services by adopting an Agile culture and mindset. Paul Hacker takes you on a journey of contrasting the “old way” with the “new way”, and shares key changes that contributed to the transformation including thoughts on teams, roles, sprints, planning, and learning.


Welcome Session: Software Development in 2018 - The New Team Sport

Wed 8:45 AM: Salon E

Agile Development practices are now a common practice and we've all become familiar with the practices of agile sprints, continuous integration, and continuous delivery. The next great shift in software development practices is upon us. What is your team doing to support open source projects and dependencies? Are you managing your projects in the open? Can your customers access your source code and log issues easily? We'll take a look at how to integrate tools like Visual Studio Live Share and GitHub projects into your development processes. A leader of several development teams that build products you probably rely on, join Jeff Fritz as he shows you the next level tools, techniques, and transparency you should have with your software customers.


DevOps with Kubernetes and Helm

Wed 10:00 AM: Salon E

In this session, we will show you how you can use standard DevOps practices such as infrastructure as code, continuous integration & continuous deployment, automated release and more in conjunction with Kubernetes (AKS) and Helm. For those who don’t know, Helm is a tool that streamlines installing and managing Kubernetes applications; it’s like homebrew for Kubernetes, but it’s also so much more.

By the end of this session, you will understand how key DevOps practices tie right into container orchestration with Kubernetes and Helm.
You will have more confidence and tools in your toolbox when it comes to Kubernetes.
You will have a deeper understanding of what Helm is, how it came to be, and how it correlates to Kubernetes.
After providing a brief, high-level overview of DevOps and Kubernetes/Helm, we will dive into a live demo showcasing how to get started with Kubernetes by deploying a Go app through a full CI/CD pipeline using a pre-configured Helm chart.


Making Use of New C# Features

Wed 10:00 AM: Rosewood Room

New features are constantly being added to Microsofts flagship language, C#, and the pace of this change is increasing. In the past couple of years, we welcomed C# 6 and C# 7, the last languages release of their size. Microsoft is now releasing updates to the language in point releases, since C# is no longer tightly coupled to Visual Studio. In 2017 and 2018, Microsoft shipped C# versions 7.0, 7.1, 7.2, and 7.3 without any sign of slowing.

Normally, sessions about new language features only happen well before the release of the new language, leaving you with time to forget everything you've learned by the time you're actually able to adopt the new language! In this fast-paced session, Brendan will show you the recent, practical improvements added to C# that you can take back with you and immediately start using to clean up and improve your own code. This is definitely a session you won't want to miss!


Building a Serverless Microservice with Microsoft Azure

Wed 10:00 AM: Ironwood Room

In this session we will walk through the considerations and thought process for planning and building a serverless microservice using Microsoft Azure Functions. Serverless functions are a great way to quickly build an event driven backend in the cloud that can support the majority of web use cases and provide a potential cost savings for hosting. Attendees will learn about the planning that goes into building a microservice like this and the decisions they need to make for their own implementations and what tools can help them solve problems.


Mocking .NET Without Hurting Its Feelings

Wed 10:00 AM: Sagewood Room

Unit testing has become an accepted part of our lives as .NET programmers. To help focus our tests to only the code we want to validate, Mocking Frameworks are a powerful tool in our toolbox. Like many tools, if you have an understanding of how the tool works under the hood, you can bend it to your will (and also know where it'll break if you bend too much).

In this session, you'll learn about the two main types of mocking frameworks: constrained frameworks (like RhinoMocks and Moq) and unconstrained frameworks (such as Typemock Isolator and Telerik JustMock). I'll dig into how the two actually do their magic and we'll discuss the pros, cons, and limits of both. We'll look at examples of how to use the frameworks in your tests, mocking out dependencies from your own code and even third-party logic.

You'll get the most out of this session if you're comfortable reading C# code and have a general understanding of class inheritance in .NET, along with some experience writing and running unit tests. Prior experience using mocking frameworks is not necessary.


Creating a Release Pipeline with Azure DevOps

Wed 11:10 AM: Salon E

Teams go through an entire project without knowing if their applications work or compile anywhere other than a developer's machine. It's often thought that creating a Continuous build and release process is really difficult to do. By creating a robust Release Pipeline, you can reduce your team's cycle time and increase your ability to have a healthy codebase.
We will use Team Services to create a continuous integration build and release process that will help you go from coding in Visual Studio 2017 to running your code in Azure in just a few simple actions. Your release pipeline with compile your code, run unit tests, create multiple Azure environments, run functional tests and load tests, and ensure that you have working and deployable software throughout your entire project.

You will learn about the build and release system in Azure DevOps (formerly Team Services), deploying infrastructure to Azure, and how to create a reliable process that will help you build quality into your software development process.


Who Needs Visual Studio? A look at .NET Core on Linux

Wed 11:10 AM: Rosewood Room

.NET Core promises to remove the shackles from Windows and Visual Studio. What does the development process look like and can you really use a Linux desktop as your daily development driver? Can you really go to production on Linux with your applications?

This talk explores .NET Core and ASP.NET Core from a different angle. What if we start in Linux and stay in Linux? It will explore the daily development life when you are going to be completely outside Visual Studio. This means getting to know the dotnet command line interface a little better. Then we'll explore how you can deploy your applications on Linux, including containers and deployment to the cloud.

This session is perfect for .NET veterans who are brand new to .NET Core and want to see what the brave new world looks and feels like. It’s okay if you’re unfamiliar with Linux, but are interested in having options available to you. And if you're curious what it's like to work in other tools such as Visual Studio Code and Rider, this session is for you.


Deliver what the client wants instead of what they ask for! Getting your clients to tell you what they need.

Wed 11:10 AM: Ironwood Room

As software developers, our goal is to typically write software that meets the needs of our clients, whether they be internal or external clients. Often times, when we miss the mark, it is due to a communication breakdown between the developer team and the client team on what the actual requirements are.

Communication breakdowns generally occur between people with different communication styles. So how do we bridge that gap and get the information we need from people who communicate differently than we do?

This talk will be an exploration of communication styles and how we can recognize our own communication style as well as easily determine the communication style of others. With this information we can communicate with someone in the style in which they best receive information. When we communicate with others in their learning style, we break down barriers and are more able to accurately get to the pain points that they need a solution for. Once the communication barriers are down, it becomes easier to get the requirements that we are looking for.


Building Better REST APIs in ASP.NET and ASP.NET Core

Wed 11:10 AM: Sagewood Room

Web API is the RESTful API framework for ASP.NET, now simply part of the MVC framework in .NET Core. With service layers becoming an increasingly important part of all kinds of different applications, getting better at implementing this layer of an application is becoming a critically important skill.

Join me while I walk you through some of the coolest, most practical and useful things I've learned while developing services using Web API and ASP.NET. We'll look at some useful patters, amazing Nuget packages that save you lots of time and effort, tips, and even some anti-patterns that hold you back. Everyone should walk away with at least a few new things they can use to develop a better service layer in ASP.NET.


Getting Started with Blazor: the .NET WebAssembly SPA

Wed 1:00 PM: Salon E

WebAssembly is a new standard that is currently supported by the major browsers and the W3C, something which will augment JavaScript and allow for new integrations with other languages. Blazor is (currently) an experimental framework being worked on at Microsoft which attempts to, with the help of the Mono WASM runtime, allow developers to write pure client Single Page Applications (SPAs) in C# using .NET Core. In this talk, we will walk through the features of Blazor and how to use it.


Xamarin.Forms Takes You Places!

Wed 1:00 PM: Rosewood Room

You’ve heard the buzz – target every mobile platform from a single C#/XAML codebase. Sounds too good to be true? The story is actually even better - let’s unpack the promise of Xamarin.Forms. The reach goes beyond just mobile platforms of iOS, Android & Windows – did you know your Xamarin.Forms apps could target MacOS, Smart Watches, Smart TVs, Refrigerators & Hololens? And it’s not just futuristic devices or platforms, you could take Xamarin.Forms goodness back to WPF & even Web! This isn’t utopia, but an absolute reality today. Let’s dive into each platform and unearth the magic behind the cross-platform development democratization for .NET developers.


Feed your inner data scientist: JavaScript tools for data visualization and filtering.

Wed 1:00 PM: Ironwood Room

It seems like every day a new JavaScript framework is created and it can be overwhelming keeping up with them. This session will discuss some JavaScript libraries that make analyzing and displaying data a snap.

We will discuss D3.js, CrossFilter.js, DC.js and jQuery DataTables.  These are very robust community supported libraries.  Use them in your client application to add interactive visualizations and data analysis tools.


OOP, SOLID, and Mixins with TypeScript

Wed 1:00 PM: Sagewood Room

TypeScript is a fully OO superset of JavaScript. As a result, it can do everything you'd expect from an OOP language. In this talk, we'll demonstrate those things, including encapsulation, inheritance, polymorphism, the SOLID Principles, and Mixins. All demos will naturally be done in TypeScript.


Introduction to Docker

Wed 2:10 PM: Salon E

A general introductory talk on containers and their building blocks. We will discuss the docker platform, the included suite of tools, general command line operation to manage containers, how to build & store images and improve security. Introductory topics around orchestration using Swarm and Kubernetes will also be included.


Look into your Application with Azure Application Insights

Wed 2:10 PM: Rosewood Room

Azure Application Insights helps you to detect issues, diagnoses crashes and track your application usage in your application, both web, and mobile.

Let’s see how you can get alerts on performance and availability issues, monitor our applications usage and performance, get telemetry for our application without needing to redeploy the applications, search traces, and exceptions logs to figure out what is wrong. Oh, did I mention we can monitor Android, iOS, Windows Mobile applications as well as ASP.NET applications?

We’ll also take a look at how we can analyze request load, server performance counters and response times across dependencies. Get multi-dimensional analyzes over standard metrics or define your own. Diagnose exceptions, mobile application crashes, and failed requests, correlating with events and traces.


Clean Code: Homicidal Maniacs Read Code, Too!

Wed 2:10 PM: Ironwood Room

There's no such thing as a write-once application. The world is constantly changing, and our code needs to change with it. We'll think in small pieces and take a look at some principles and techniques that will keep our code manageable and understandable. Think about the developer who will come after you. Now, imagine that he's a homicidal maniac who knows where you live.


Programming the Blockchain with .NET Core

Wed 2:10 PM: Sagewood Room

A Blockchain is a digitized, decentralized, and encrypted database for recording transactions. It becomes one of the technologies that got a lot of attentions this year. People even said that the Blockchain will become “the New Internet”. As software developers, we need to understand Blockchain, try Blockchain, and be ready for the disruption introduced by the Blockchain. I have been learning and trying Blockchain for a while. I founded a Blockchain club at my company. I created Blockchain Applications at Hackathons. Today, I am going to give a brief introduction of Blockchain and show everybody how to programming the Blockchain with .NET Core.


Enterprise Serverless: The Ghost isn't in the Machine, it IS the Machine

Wed 3:30 PM: Salon E

Serverless isn't about no servers, but less server concerns. Learn how to use Azure's serverless platform to build event-driven code that scales instantly using Azure Functions, connect disparate data sources and cloud-based resources and orchestrate complex workflows with Logic Apps, and architect applications that leverage a pub/sub platform with guaranteed sub-second latency that costs less than a dollar to process millions of transactions. Finally, monitor advanced telemetry, diagnose problems and build custom analytics with Application Insights.


Dev Oops! Common mistakes implementing DevOps and how to avoid them

Wed 3:30 PM: Rosewood Room

If you ask for a definition of DevOps, you are likely to get many different answers. Is DevOps someone's job title? Is it just Developers and Operations team sitting together? Is it automation? Is it yet another buzzword? In this session, we'll get a common understanding of DevOps and cover common mistakes that teams run into as they implement DevOps in their organization.
DevOps encompasses a broad range of mindsets, practices, and tools that build upon organizational agility to take software delivery to the next level of maturity. Applied correctly, these are truly transformative: they accelerate and amplify feedback loops, shorten cycle times, optimize resources, enable quality and consistency, and foster collaboration and creativity throughout your organization.
Some of the challenges that DevOps aims to fix include:
• Limited human and/or technical resources for testing
• Manual, ad-hoc, or inconsistent deployments
• Resolving production issues may be slow and/or highly disruptive
• Deployments are large and take a substantial periods of time to deliver
• High infrastructure costs and/or budget constraints
• Challenges in testing
• Lack of collaboration between organizations such as business, IT, and Development


You will learn about DevOps concepts and the path that an organization should take to implement DevOps practices. We will cover the ways that a company can start transforming their culture and defining the processes that enable DevOps. This session will teach you about the tools that you can use to get started on your DevOps path, including Visual Studio, Team Services, and cloud computing with Azure.


Creating Awesome Chat Bots with the Bot Framework and C#

Wed 3:30 PM: Ironwood Room

Microsoft makes it easy to create chat bots with the Bot Framework. They provide the basic building blocks and I’ll show you how to put it all together. In this talk I’ll demonstrate how to use LUIS (Natural Language Processing), QnA Maker, and Bot Builder Framework v4 to create an awesome chatbot with C#. Bot Builder v4 just went from "preview" to "general availabilty".


Build the Realtime Web with SignalR Core and Azure SignalR service

Wed 4:40 PM: Salon E

ASP.NET developers have been using SignalR to build real-time web applications since 2013. Now, with ASP.NET Core 2.1, we’re bringing SignalR over to ASP.NET Core so you can build real-time web applications with all the benefits of ASP.NET Core like better performance and cross-platform support. Come learn about the new design and how to take advantage of the infinite scale of the Azure cloud that gives you a much more flexible platform on which to build the future of real-time .NET server applications.


Typescript for the Microsoft Developer

Wed 4:40 PM: Rosewood Room

Whether you like it or not, if you are building applications for the Web you are going to need to know JavaScript. Sorry, Flash and Silverlight! Unfortunately, JavaScript is not the easiest language to learn or to understand and the tooling for it is not really good. This is where TypeScript comes in. TypeScript is a superset of JavaScript that tries to solve a lot of these problems and make the code more structured, and less error-prone. And it also offers tooling support in a way that JavaScript just can’t.


Developing ASP.NET Core 2.1 Web APIs for your Web and Mobile Apps

Wed 4:40 PM: Ironwood Room

ASP.NET Core 2.1 is a cross-platform web framework that can be deployed to Windows, macOS, Linux or even to Containers! It is the perfect framework to develop the Web APIs which drive the hottest web and mobile apps. The key is to have the right architecture in place to support the many benefits that ASP.NET Core provides.

In this session, we will discuss how using the Hexagonal Architecture (or the Ports and Adapter Pattern) allows your APIs to work more efficiently by allowing a clear decoupling of the API architecture. We will also discuss Data Access (Synthetic or Production) and Data Domain implications and the API endpoints (Controllers) that have no knowledge of the Data Domain. Finally, we’ll discuss how different Data Access technologies can easily be switched out without impacting the Domain or API Endpoints and how this impacts testing.

By using the Hex Architecture, your development story becomes easier, and your end user gets a much more stable API set to consume. We will discuss these concepts and get you started on using these tools with your ASP.NET Core 2.0 Web API projects.


Keynote

Thu 8:30 AM: Salon E

Learn about the past, present and the future of the.NET Platform. We will look at the current state of .NET, it's incredible growth and what is new in .NET Core. We will also show exciting direction .NET is headed to help you build cutting-edge solutions for the future.


.NET Framework Improvements, Tips, and Tricks

Thu 10:00 AM: Salon E

There's a lot of talk about the .NET Core framework, but what about the .NET Framework for Windows? With the recent releases of .NET and the Windows 10 Updates, there are lots of improvements that you can use in your existing applications. Join us as we learn about the new features for Windows Forms, and ASP.NET developers in Visual Studio 2017 and Windows.


Grappling the JavaScript Ecosystem with F# and Fable

Thu 10:00 AM: Rosewood Room

You can do *anything* with JavaScript, from web applications to artificial intelligence.
That said, not all of us love working in a weakly-typed dynamic language.

Fable is a free and open-source tool that can solve not only these pains but further fulfill the desire to write full-stack web and mobile applications in a single language while sharing code across platforms.

In this session, be prepared for a head-first overview of F#, how to compile it to JavaScript, and learn about how real businesses use F# to create full-stack mobile and web applications powered by Fable. You'll walk away with concrete next steps any road of success Fable can lead you on.


What can Visual Studio do for Mobile Developers?

Thu 10:00 AM: Ironwood Room

So you are a Mobile developer? Looking for sanity amidst a plethora of platforms, frameworks and tooling options? Wondering if Visual Studio is the right IDE for you? Let me convince you why .. let’s talk:

• Visual Studio for Windows & Mac
• Easy getting started experience
• Mobile to Cloud end-to-end tooling
• Emulator/Simulator choices
• Live deployments and device testing
• DevOps with Visual Studio App Center
• Polished UI through Extensions

Visual Studio is the epitome of Microsoft's 'Mobile First, Cloud First' mantra. With rich tooling for mobile developers across Windows and Mac, Visual Studio is paving the way for true cross-platform mobile development from a single rich IDE.


Developer Tools in Chrome for Modern Web Development

Thu 10:00 AM: Sagewood Room

With so many developers launching into deep JavaScript Front End Frameworks like React or Angular from a background of IDE development, many developers are not fully leveraging browser tooling to debug and understand everything in their code. This presentation will include a deep look at all the built in tools in Chrome, as well as some of the more important and popular browser extensions for front end development.


Five Azure services every developer should know

Thu 11:10 AM: Salon E

Microsoft Azure is a powerful platform with amazing services available at your fingertips! However, it can also be hard to know which services to pick when you’re getting started with cloud application development. In this session, we cover how to get started with cloud development in Azure using the five most common services that most applications need to run in the cloud. We'll show .NET but this works for Node, Java, Ruby and Python too!


There is a Bot for that: Building chat bots from idea to production

Thu 11:10 AM: Rosewood Room

Chat bots are turning up everywhere. Helpdesks, ordering a pizza, ChatOps, everywhere you look there's chat bots being created. How do you create your own successful chat bot?

In this session Geert will explain how to build your own bots using .Net, C#, Azure and the Microsoft Bot Framework. During the session we will cover all areas involved in building a successful production ready bot. Starting from the initial idea to getting a prototype working as fast as possible to actually running it in production on channels such as skype, facebook or telegram.

After this session you'll be fully ready to build your own bot that will conquer the world (if Sarah Connor doesn't stop it)


Alternative Device Interfaces and Machine Learning

Thu 11:10 AM: Ironwood Room

In this presentation, we will look at the how users interface with machines without the use of touch. These different types of interaction have their benefits and pitfalls. To showcase the power of these user interactions we will explore: Voice commands with mobile applications, Speech Recognition, and Computer Vision. After this presentation, attendees will have the knowledge to create applications that can utilize voice, video, and machine learning.


Entity Framework performance monitoring and tuning

Thu 11:10 AM: Sagewood Room

Object Relational Mapping technologies, including the Entity Framework can drastically simplify the programming model against databases, but when done carelessly, performance can suffer. In this session, we'll explore some real-life strategies that have solved performance issues in production applications that I have encountered at a variety of customers. We'll discuss the pros and cons of working without stored procs and cover strategies for monitoring and tuning your entity queries.


Raising the Value of Your Unit Tests

Thu 1:00 PM: Salon E

For any non-trivial application created today, software engineers must not only deliver on application features but also include associated unit tests to improve efficiency, to reduce risk when making code changes, and to improve quality by identifying bugs as early as possible. One may think having unit tests to increase code coverage is the goal but that is missing the mark. Software engineers should be focused on delivering unit tests that have meaningful value to support current and future software development. In this session, you will learn several unit test styles, how identify weaknesses in unit tests, and how increase the value of the unit tests you create.


Defense Against The Dark Arts: Application Security and You

Thu 1:00 PM: Rosewood Room

As more of the world uses the magic of applications to get things done there is an ever increasing threat from those who would use your code to do harm. Security vulnerabilities are real and can have a significant impact on your employment. In this session we will review the most significant threats to your applications and learn techniques to harden your applications against them. We will also cover some techniques that can improve your security standing before you even write the first line of code.


No Strings Attached: JavaScript without Webpack, Transpilers, or Framework

Thu 1:00 PM: Ironwood Room

Writing JavaScript used to mean a tangled mess of hacks to avoid global variables, jQuery, and oh so many callbacks. ES2015 and beyond have changed all that. We'll migrate a jQuery based website to a more modern foundation, and we'll do it without using any of those JavaScript Frameworks that keep popping up! You'll learn how modern browser JavaScript engines provide a great place to write more readable and maintainable code, and you'll see that you often don't need polyfills or transpilers to use these features!


View Components and Tag Helpers in .NET Core

Thu 1:00 PM: Sagewood Room

View Components were a new feature released as part of .NET Core MVC. They are a great way to create reuseable bits of code that are accessible in your MVC applications. I will walk you through code to create a View Component in an external library and consume it using the Tag Helper syntax in an MVC application


AI for the Masses: Democratizing Access to AI with Microsoft Cognitive Services

Thu 2:10 PM: Salon E

In all its previous hype-cycles, Artificial Intelligence (AI) repeatedly fell far short of its promises. Computers were underpowered and consuming AI was too complicated, leaving its benefits unapproachable to all but a small group of experts. But now advances in Machine Learning coupled with the scale of the Azure Cloud bring us Microsoft Cognitive Services, a collection of purpose-built capabilities based on AI and Machine Learning that make it possible for developers of all backgrounds to easily enrich their own projects with these powerful capabilities.

In this talk we’ll explore the universe of Microsoft’s Cognitive Services and understand how to use them in your own software projects. We’ll explore services for Facial Recognition, object detection, Natural Language Processing (NLP), as well as Topic Extraction and Sentiment Analysis. We’ll apply these services to various media types from still images to video to text to discover how easy it can be to bring the power of AI and Machine Learning into your own software systems.


Intro to the Microsoft Bot Framework

Thu 2:10 PM: Rosewood Room

Bots are a powerful new application platform. This talk will introduce the basics of the Microsoft Bot Framework and show 5 different ways to create a bot in just minutes!


Leveraging and Expanding Web Viewing Support in your Application

Thu 2:10 PM: Ironwood Room

An application’s viewing support dictates feel, workflow and user acceptance. Join us to discuss how leveraging web browsers can add significant value to your solution and see how companies are optimizing their viewers to be the baseline for all types of workflow, regardless of the industry. Use this session as a source of ideas to add significant value to your application and increase your competitive advantage or internal efficiency.


React vs Angular vs Vue

Thu 3:30 PM: Salon E

The three most popular JavaScript UI frameworks are React from Facebook, Angular from Google, and Vue from and ex-Google guy. We develop the same single page application in all three frameworks while carefully calling out similarities and differences. The same app is used to compare and contrast bootstrapping, component definition, markup syntax, file structures, component communication, routing, data services, Flux architecture, providers, Visual Studio Code tooling, Typescript, CLIs, browser add-ons, and Material Design integration.


Enable IoT with Edge Computing and Machine Learning

Thu 3:30 PM: Rosewood Room

The next evolution in cloud computing is a smarter application not in the cloud. As the cloud has continued to evolve, the applications that utilize it have had more and more capabilities of the cloud. This presentation will show how to push logic and machine learning from the cloud to an edge application. Afterward, creating edge applications which utilize the intelligence of the cloud should become effortless.


Improving code quality with Static Analyzers

Thu 3:30 PM: Ironwood Room

How do you keep code consistent across a team or make sure your independent code follows accepted standards, use a Static Analyzer tool. See how to use some of these tools for your .Net, JavaScript, Style sheets, etc. to improve your code as an independent or large team lead.

Whether you're an independent developer that needs assistance reviewing your code, or a member of a large team that wants to keep code consistency among the team, static analyzer tools can help identify and optionally fix issues in your code. Many platforms have their own version to help based on the language, including Roslyn, JsLint, CssLint, SonarQube. FxCop, StyleCop, etc. We'll take a look at some of these tools and explore how they can help identify issues in your code and improve maintainability and decrease errors before you deploy to production. We'll also look at the ability to build your own tool to enforce rules in your specific domain.


git up to speed: an introduction to distributed version control with git

Thu 3:30 PM: Sagewood Room

This talk introduces the concepts of distributed version control, using git.

Topics include:
- Getting to know the repository
- Staging and committing
- Pushing and pulling
- Branching
- Merging
- Solving conflicts


Learn to Love Lambdas (and LINQ, Too!)

Thu 4:40 PM: Salon E

Lambda expressions can be confusing the first time you walk up to them. But once you get to know them, you’ll see that they are a great addition to your toolbox. Used properly, they can add elegance and simplicity to your code. And some .NET constructs (such as LINQ and Task) lend themselves to lambda expressions. We’ll take a look at how lambda expressions work and see them in action.


Using WebUSB to create modern interfaces for hardware and robotics

Thu 4:40 PM: Rosewood Room

The browser’s capibilities have snuck up on us over the years, and it’s turned into a full blown operating system! "But wait," I hear you protest, "it’s not like the browser can talk to stuff I have plugged in to my USB ports!". Ah! But it can!

The new WebUSB spec has arrived, and is already supported in at least one browser today. The previous hacks of connecting browsers to robots and other hardware will soon be a thing of the past. WebUSB as a first class API citizen opens up some great opportunities to create new and delightful experiences with robotics.

I’ll introduce you to the WebUSB API, its history, and compare it to previous ’hacks’ to demonstrate why this is such a big deal for you, as a web developer. There will be real hardware shown on stage ready to inspire you to think outside of the box of what browsers are really meant to be used for.


Optimizing ReactJS

Thu 4:40 PM: Ironwood Room

ReactJS is a powerful library that makes it easy to build, reason about, and organize HTML user interfaces. The library is very fast and efficient, but you can encounter issues at scale if you don't know what to look out for. In this session, we'll build a simple single page ReactJS app and explore how to use tools and libraries to measure and then optimize performance.


Simply Containers: For times when Orchestration is Overkill

Thu 4:40 PM: Sagewood Room

Kubernetes, Docker Swarm and Mesos are amazing container orchestration platforms. These tools provide a proven platform for container management and resource density. They are also complex distributed applications. We all know that just adding more bits to our stack doesn’t necessarily solve our problems. We’ll cover how to get started with containers in production via manual management and simplified container orchestrations tools, like Azure Container Instances.


I know ... Kung Fu - Serverless & Schemaless with Azure Functions and CosmosDB

Fri 8:30 AM: Salon E

Remember the scene from The Matrix where Neo goes "I know ... Kung Fu". Consider this your "I know ... Kung Fu" moment but for Serverless. These days some of the best solutions are Serverless - code executing in the cloud, reading and writing data to datastores in the cloud, without having to worry about minuate like the data schema and scaling issues. This talk goes beyond the Serverless hype and discusses some use cases and practical implementations for truly going Serverless using Azure Functions, CosmosDB and C#.


CSS in a component-based world

Fri 8:30 AM: Rosewood Room


React has caught a lot of criticism for the full mixing of HTML and JS, but it is a large portion of the rising tide of the JS landscape today - and many more websites are componentizing all the parts of the front end. Why are we leaving our CSS behind in giant stylesheets? CSS deserves the improved scope and modular building that we incorporate into today's HTML and JS. The goal of this talk is to approach the pros and cons of several different styles of handling CSS in a modular way, and reveal myths about performance that hold many back, while acknowledging the limitations of all the approaches. While focused on React examples, the core takeaways about modular CSS are not dependent on React, and apply to most component-based UI.


Getting Fired Was The Best Thing To Ever Happen To My Career... TWICE

Fri 8:30 AM: Ironwood Room

Losing your job is never fun. Whether it is getting fired, being laid off, or the company going out of business, it isn't fun. We can build up an emergency fund so that we're financially okay, but we're still going to have to find a new job before that fund runs out.

But good can come from hardship. Come get inspired by my hardship and see how losing your job might end up being the best thing to ever happen to your career!


Getting pushy with SignalR and Reactive Extensions

Fri 8:30 AM: Sagewood Room

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.


Introduction to Docker

Fri 9:40 AM: Salon E

A general introductory talk on containers and their building blocks. We will discuss the docker platform, the included suite of tools, general command line operation to manage containers, how to build & store images and improve security. Introductory topics around orchestration using Swarm and Kubernetes will also be included.


Patterns for Building a Chatbot that doesn’t Suck

Fri 9:40 AM: Rosewood Room

To believe the hype today, “Chatbots are the new mobile app” (if you don’t have one, you’re probably some sort of throwback to a bygone age). We’ve all been told that the confluence of the explosion of the number of chat messaging platforms, the increasing amount of attention users give to messaging experiences (at the expense of other experiences), huge improvements in NLP (Natural Language Processing), and the increased efficacy of Artificial Intelligence are all combining to make chatbots “the next frontier in user engagement”. And yet, if all that is true, why is Facebook pulling back on its promotion of Facebook Messenger Chatbots as their own data shows up to 70% of current Facebook chatbots are considered a “failure” by Facebook users?

In this talk, we’ll try to separate the hype from reality about the current (and future) state of chatbots. Through this process, we’ll identify a series of important design considerations that can form the foundation of any successful chatbot project and explore the patterns and techniques that can help you develop a truly useful conversational experience for your users. Using node.js, the Microsoft Bot Framework, and Microsoft Cognitive Services as an example platform, we’ll explore a detailed implementation built using all the principles that can help make your chatbot successful.


Twitch Bots and Live Streaming

Fri 9:40 AM: Ironwood Room

Have you seen people talking about programming live streams? Are you interested to learn more about them? Then this session from Brendan is for you! In 2015, Brendan started up a programming live stream called DevChatter (https://www.twitch.tv/DevChatter/), but he put it on hold until February of 2018 when he started it up again and has been streaming regularly since.

In this session, Brendan talks about what he has learned so far and wishes he knew when he started about live streaming. Whether you want to live stream or are just interested in it, you will learn about getting started on Twitch using OBS, the hardware and setup needed, and how to keep an audience entertained on a live stream!

This is one session that you won't want to miss!


The JavaScript Quiz Show

Fri 9:40 AM: Sagewood Room

"On a scale of 1-5 (5 being 'expert'), how would you rate your JavaScript expertise?"

What would happen if you were to have an in-depth technical interview on JavaScript RIGHT NOW? How well would you do?

In this highly-interactive presentation I'm turning the tables on the standard "lecture and learn" style and putting you in the hot seat. Sure, the discussion will cover the concepts, patterns and practices of JavaScript experts, only I'll be asking the questions and everyone else will be giving the answers.

This format allows plenty of room for everyone to participate however they choose, regardless of skill level or experience. In other words, feel free to join in the discussion, simply sit back, listen, and learn from the folks around you, or anywhere in between - your level of involvement is entirely up to you.

Here's your opportunity to go on that really difficult technical interview, only in a much more forgiving environment where a wrong answer doesn't cost you the shot at your dream job.

Are you game?


Visual Studio Code and SQL Operations Studio

Fri 10:50 AM: Salon E

Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages such as C++, C#, Java, Python, PHP, Go and runtimes such as .NET and Unity. SQL Operations Studio provides database query development with multiple tab windows, a rich T-SQL editor, IntelliSense, keyword completion, code snippets, code navigation, and source control integration. Come see why these cross platform Microsoft tools are gaining in popularity and learn some useful tips and techniques.


The Future of C#

Fri 10:50 AM: Rosewood Room

It's an exciting time to be a C# developer! C# is now an open source project with a new modern compiler which makes it easier and quicker than ever before to evolve the language. In this session, we'll review recently released features, demonstrate what's scheduled for the next release, and explore the concepts under consideration for future major milestones.


Why loop in JavaScript when you can map, reduce or filter?

Fri 10:50 AM: Ironwood Room

Traditionally, when developers see large arrays of data their "go to" tool for parsing and searching has been the for loop. But JavaScript provides a more declarative approach that can help you find what you're looking for in fewer lines of code that is cleaner, easier to read, and maintain. Come see how the map(), reduce(), and filter() functions can help you!


Clean Code: Homicidal Maniacs Read Code, Too!

Fri 10:50 AM: Sagewood Room

There's no such thing as a write-once application. The world is constantly changing, and our code needs to change with it. We'll think in small pieces and take a look at some principles and techniques that will keep our code manageable and understandable. Think about the developer who will come after you. Now, imagine that he's a homicidal maniac who knows where you live.


ASP.NET Core's Built-in Dependency Injection Framework

Fri 12:40 PM: Salon E

ASP.NET Core comes with its own built-in dependency injection (DI) framework. DI allows you to write better, more loosely-coupled code, and now with it built right into your favorite web development framework, you don't have to do anything extra to be able to use this important design pattern in your code.

Already have your own favorite DI framework? No worries, you can use that too. I'll show you how to integrate a few popular DI frameworks into the highly-extensible ASP.NET framework. I'll show you how to do it all and show you examples in this session.


You won’t believe what’s hidden in your data. How visualization transforms how you see information

Fri 12:40 PM: Rosewood Room

No one questions that data is vital to your company or organization. The future wellbeing of your business could depend on the clues hidden inside the vast data stores in your data center. Some days, looking at the data opens your eyes to possibilities, yet another day the data is opaque and hard to parse. Often the only difference between these two results is the way the information is visualized and presented to your eyes.
Choosing the correct visual representation of the data becomes vital. Do it wrong and the data is merely wrapped in pretty graphics; do it right and the information emerges in clear and meaningful patterns.

This fast paced and entertaining session starts by looking at how your brain and optical system perceive data. Walt explores the overall visualization concepts that make data easier to grasp, and the best way to show data so that the information is clear and understandable.


Outrun the 🐻Performance Optimizations for Progressive Web Apps

Fri 12:40 PM: Ironwood Room

Struggling to get your website to load in less than 5 seconds on a mobile phone? You’re not alone! At Comcast we’ve built many responsive sites and work hard at optimizing for performance. Using the latest PRPL pattern and Progressive Web API’s, we provide a compelling alternative to native apps. This talk will cover why performance of your site is so important and dive into the Chrome performance tools to explain exactly how a browser loads a site and what causes things to slow down. We’ll cover what a PWA is and why service workers are a bear.


Cross Platform Mobile Application Development using Xamarin and Azure

Fri 12:40 PM: Sagewood Room

In the circles of web development, “Mobile First”, developing for mobile clients before considering desktop clients, has become an accepted approach to delivering solutions. It is the recognition that many application users are using their mobile device as the primary tool for utilizing software. In some scenarios, the mobile web experience falls short of the user experience expected. As a result, there is a large demand for native mobile applications.

With combining the features of Xamarin and Azure, software providers can deliver cross platform, globally scalable, and secure native mobile applications for the most popular mobile platforms. Utilizing existing skills, developers can significantly reduce time to market and capitalize on the growing trend of mobile devices as a primary tool to use software and consume data.

In this talk, we will explore how Xamarin can be used to leverage your existing skills to deliver fully native mobile applications for the most popular mobile platforms. In addition, we will add Azure Mobile Apps to our solution to provide the backend data store for data synchronization, user authentication, and support push notifications.


Say Yes to NoSQL for the .NET SQL Developer

Fri 1:50 PM: Salon E

NoSQL is not about saying "no" to SQL but "yes" to new possibilities. Learn what key/value, column store, document, and graph databases have to offer compared to traditional relational database models. See hands-on how to create your own databases in seconds that are geo-replicated, highly available and offer guaranteed rates of throughput without purchasing expensive servers or configuring virtual machines by taking advantage of the serverless Azure CosmosDB. Discover for yourself why NoSQL is being widely adopted and used in petabyte sized production databases that need to visualize data fast.


Living on the Edge with Web Assembly (Blazor and C#)

Fri 1:50 PM: Rosewood Room

A peek into the future of web development, what the heck is Web Assembly and why should developers care!. With the introduction of Microsoft experimental web UI framework Blazor its now possible to harness your C#/.Net Skills to build full blown Web Assembly applications. Come learn and discuss the future of web development.


Dockerize an ASP.NET Core 2.0 Application

Fri 1:50 PM: Ironwood Room

Docker is a tool that can package an application and its dependencies in a virtual container to run on any computer. It helps enable flexibility and portability on where the application can run. ASP.NET Core is an open source, cross platform, performant, and scalable web application framework. The modularity and lightweight nature of .NET Core makes it perfect for containers. Today, I am going to give a brief introduction of Docker and show everybody how to run an ASP.NET Core 2.0 Application in Docker containers.


What's new in Visual Studio and C# 7

Fri 1:50 PM: Sagewood Room

Visual Studio is a consistently great tool for developing applications on the Windows platform. In this talk we will discuss the productivity improvements added to Visual Studio 2017 that make it even better.

Along with the improvements to Visual Studio, C# was also improved. We will also talk about the new language features introduced in C# 7. Starting in December of 2015, C# 7 was developed in the open with involvement from the community. We will talk about the results of that process.


I'll Get Back to You: Task, Await, and Asynchronous Methods

Fri 3:00 PM: Salon E

There's a lot of confusion about async/await, Task/TPL, and asynchronous and parallel programming in general. So let's start with the basics and look at how we can consume asynchronous methods using Task and then see how the "await" operator can makes things easier for us. Along the way, we’ll look at continuations, cancellation, and exception handling.


Angular for Rank Beginners

Fri 3:00 PM: Rosewood Room

Heard of Angular but aren't sure what it is? Want to get a ground-floor look as this powerful and broad-ranging framework? In this talk we'll cover everything from the ground up. We'll code a basic application, covering all the parts and features of Angular, including the Command Line Interface, TypeScript, the structure of an Angular application, and how you can piece together components to build a single-page application.


git gone wild: how to recover from common git mistakes.

Fri 3:00 PM: Ironwood Room

"Oh no! I just typed something into git and now my work is gone! Ahh!"

Don't panic. Contrary to popular belief, git is one of the most non-destructive version control systems available. When used right, git
never loses any data, and even when misused, chances are very high you can still recover.

This talk will present turn-by-turn directions on how to recover from a wide array of common git mistakes, and also provide some workflows
to minimize them.

Examples include, but are not limited to:
* Changing spelling errors in commit messages.
* Split commits into multiple commits with logical separation.
* Combining multiple commits into one.
* Resetting the base commit when you accidentally branch off of the wrong branch.
* Recovering from merge conflicts.

As well as more advanced topics, such as:
* Extracting parts (e.g. sub-directory) of a repository as a new repository.
* Merging multiple repositories into one while retaining version history.
* Removing confidential data accidentally committed.


(Fr)agile: How Agile Falls Apart, and What You Can Do to Hold It All Together

Fri 3:00 PM: Sagewood Room

Working in an agile mindset – especially when favoring specific approaches – can go wrong in about 100 ways. In this talk, I describe some lessons as a technical lead working on agile teams, holding it together with duct tape and a little help from my friends.


46 speakers giving 73 sessions (View all stats)