2018 Sessions

Welcome Session

Wed 8:45 AM: Salon E

Welcome Session

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.

Xamarin.Forms Takes You Places!

Wed 10:00 AM: Sagewood 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.

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.

Creating a Release Pipeline with Team Services

Wed 1:00 PM: Rosewood Room

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 Team Services, deploying infrastructure to Azure, and how to create a reliable process that will help you build quality into your software development process.

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.

Getting Started with Blazor: the .NET WebAssembly SPA

Wed 2:10 PM: Rosewood Room

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.

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.

Look into your Application with Azure Application Insights

Wed 2:10 PM: Sagewood 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.

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.

Getting pushy with SignalR and Reactive Extensions

Wed 3:30 PM: Rosewood 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.

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

Wed 3:30 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.

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

Wed 3:30 PM: Sagewood 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.

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.

Gaining Value from Telemetry

Wed 4:40 PM: Ironwood Room

As developers, we know the power of telemetry. Telemetry events and logs provide diagnostic insights of our applications and infrastructure in a detailed, expressive and concise manner. In this talk we’ll navigate which metrics and tooling help us as web application developers, and how these various insights can be leverage across the office. By sharing application-oriented metrics, we can help the business side understand development and application struggles and gain their own insights to power business decisions-- all from those numbers that we already love to see.

Mocking .NET Without Hurting Its Feelings

Wed 4:40 PM: 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.


Thu 8:30 AM: Salon E

TechBash Keynote

.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.

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.

View Components and Tag Helpers in .NET Core

Thu 11:10 AM: 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

Programming the Blockchain with .NET Core

Thu 1:00 PM: Rosewood 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.

Aurelia: Blazing Fast Web Apps

Thu 1:00 PM: Ironwood Room

Aurelia is a JavaScript client framework for web, mobile and desktop that leverages simple conventions to empower your creativity. It's written with next-generation EcmaScript and the framework has no external dependencies. This session is an introduction to this simple to learn, and yet extremely powerful framework that will leave a smile on your face for years.

Entity Framework debugging using SQL Server: A Detective Story

Thu 1:00 PM: Sagewood Room

What happens when the code for your Entity Framework LINQ queries looks good, but your app is very slow? Are you looking in the right place? Don’t be afraid to start looking at your database. Knowing how to investigate and debug what your LINQ queries are doing in SQL Server is as important as the actual LINQ query in your .NET solutions. We will be looking at database server configurations, using MSSQL database profiling tools and understanding Query Execution Plans to get the most out of Entity Framework. In the end, learning to be an Entity Framework detective will make your project sound and snappy.

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.

Raising the Value of Your Unit Tests

Thu 2:10 PM: Rosewood Room

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.

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.

Intro to the Microsoft Bot Framework

Thu 2:10 PM: Sagewood 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!

Enable IoT with Edge Computing and Machine Learning

Thu 3:30 PM: Salon E

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.

React vs Angular vs Vue

Thu 3:30 PM: Rosewood Room

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.

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.

Zen and the Art of Asynchronous JavaScript

Fri 8:30 AM: Ironwood Room

Promises. For so long, the sales pitch was "Promises save us from callbacks!" But how? And why? Other than keeping us from having to scroll horizontally, how are Promises solving things?

This session will start with explaining exactly what a Promise is, and how it deals with the shortcomings of callbacks. We'll look at how Promises allow us to do things that aren't really possible with callback code and thus how they really are a game changer. Next, we'll look at how we can use our newfound understanding of Promises to better exploit the power of the new async and await keywords that make asynchronous code look and feel more like synchronous code. We'll see how a deep understanding of what Promises are, and how to work with them are still extremely important when writing code using async and await.

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!

Visual Studio Code and SQL Operations Studio

Fri 9:40 AM: Sagewood Room

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!

Cross Platform Mobile Application Development using Xamarin and Azure

Fri 10:50 AM: 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.

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.

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

Fri 12:40 PM: Sagewood Room

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.

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.

How Microsoft Does DevOps

Fri 3:00 PM: Salon E

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.

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.

42 speakers giving 67 sessions (View all stats)