2017 Sessions

Zero to DevOps with VSTS

Wed 9:00 AM: Salons D/E

DevOps is about people, process and products. Getting it all right requires effort but the benefits to your organization and customers can be huge. Microsoft has a fantastic set of products that can adapt to any language on any platform. In this demo-heavy keynote, Donovan Brown will show you how to go from "zero to DevOps" like a pro. Starting from just a blank desktop, he will create a new team project and a complete pipeline. He will also deploy an ASP.NET MVC application into Azure all live and hands on.

Introduction to ASP.NET Core

Wed 10:45 AM: LEADTOOLS - Rosewood Room

ASP.NET Core is a newish open-source and cross-platform framework for building modern cloud-based internet connected applications, such as web apps, IoT applications, and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac, and Linux.

We’ll do a quick overview of ASP.NET Core, then we’ll build application or two using web API, web UI, and ASP.NET Core MVC.

You talking to me? Building Bots with the Bot Framework for the enterprise and beyond.

Wed 10:45 AM: Octopus Deploy - Ironwood Room

With the bot framework, we can connect intelligent bots to interact with your users naturally wherever they are – from your website or app to text/SMS, Skype, Slack, Facebook Messenger, Office 365 mail, or other popular services.

I’ll give you brief history of the natural language processing, how to create bots, and close with several code samples on how to put this all together.

Dockerize Your Development Environment

Wed 10:45 AM: HomeNet - Sagewood Room

It works on my machine. We’ve all heard it. Most of us have said it. It’s been impossible to get around it… until now. Not only can Docker-izing your development environment solve that issue, but it can make it drop-dead simple to onboard new developers, keep a team working forward and allow everyone on the team use their desired tools!
I will show you how to get Docker set up to use as the run environment for your projects, how to maintain the docker environment, and even how easy it will be to deploy the whole environment to production in a way that you are actually developing in an environment that isn’t just “like” production. It IS the production environment!
You will learn the basics of Docker, how to use it to develop and how to deploy your “development” environment as the production environment!

50 Opinions for ASP.NET Core

Wed 1:00 PM: LEADTOOLS - Rosewood Room

Improve the architecture, design, and code inside your ASP.NET Core applications with an opinionated approach to ASP.NET.
In this talk, we’ll look at strategies for organizing projects, solutions, files and folders. We'll look at data access alternatives and see some tips for writing unit and integrations tests.

TypeScript for the Microsoft Developer

Wed 1:00 PM: Octopus Deploy - Ironwood 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 to 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.

Containers on Windows: Ready for Deployment

Wed 1:00 PM: HomeNet - Sagewood Room

Using containers to develop day-to-day is one thing – but having containers in production is a whole different beast. When we use containers locally, we usually don’t care about things like service discovery , routing, redundancy and fail-over. In the session, we will take the next step in containerization on Windows – using them in production.

.NET Standard for Mere Mortals

Wed 2:15 PM: Salons D/E

.NET Standard is a buzzword that Microsoft started using with the Build event in 2016. What is .NET Standard, and how does this framework effect how I'm building applications today? Come learn from one of the .NET team members about how .NET Standard makes writing code that works on any operating system with any project model a snap. You'll be able to build packages that work on your iPhone, web server, and docker containers when you finish this session.

How I Taught My Dog to Text Selfies

Wed 2:15 PM: LEADTOOLS - Rosewood Room

This talk is for the web developer who wants to get into hardware hacking but feels intimidated, or just doesn't know how to get started. This talk is about getting started hardware hacking on Raspberry Pi. We'll use Python, a webcam, and a big red button, and we'll live code a device for dogs to text selfies. Yes, really.

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

Wed 2:15 PM: Octopus Deploy - Ironwood Room

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.

Release Management with Team Services

Wed 2:15 PM: HomeNet - Sagewood Room

Learn the fundamentals of Release Management, how it relates to DevOps, and benefits it and continuous deployment bring to any organization. More specifically, I will present an overview of Release Management. I will also cover what Visual Studio Team Services and Team Foundation Services are. We will look at the new Cross-Platform build system, discuss DevOps practices, and benefits of Release Management. Walk away with the knowledge you need to get started with Release Management Team Services.

Exploring the Actor Model for Concurrent Systems using Akka.NET

Wed 3:30 PM: Salons D/E

As more and more data and systems grow larger and more complex, designing massively-concurrent systems becomes both more and more challenging and more and more common a problem facing developers. In this talk, we'll explore Akka.NET, a platform with run-time capabilities and behavior inspired by the Akka framework for Java.

Along the way, we'll come to understand the actor model and how it can greatly simplify both the development of massively-parallel systems and our ability to reason about them as developers. We'll also understand how AKKA.NET (and other actor-model-inspired frameworks) might have a role to play in your solutions even if you're not building the next multi-petabyte parallel processing system in your basement.

Building Mixed Reality Experiences for HoloLens & Immersive Headsets in Unity

Wed 3:30 PM: LEADTOOLS - Rosewood Room

Mixed Reality blends people, places and things across a full spectrum ranging from the real-world to digital virtual worlds. This session is your introduction to building 3D applications and games for Windows Mixed Reality using C#, Visual Studio and Unity. We’ll start with a quick recap of Mixed Reality, the HoloLens device, immersive headsets and the Universal Windows Platform (UWP), and talk about interacting with holograms using gaze, gestures and voice. Next, we’ll dive into building 3D apps for Windows Mixed Reality in Unity with C#, using the Mixed Reality Toolkit for Unity, exporting our project to Visual Studio and running it on either a HoloLens device, an immersive Mixed Reality headset or the HoloLens Emulator. Science fiction becomes science fact, and Unity & UWP developers are at the front of this revolution. Come learn how to get started and build your journey into a world of holograms you create.

Continuous deployment from scratch with VSTS and Octopus Deploy

Wed 3:30 PM: Octopus Deploy - Ironwood Room

Visual Studio Team Services and Octopus Deploy are incredible tools that work beautifully together. And they're so simple to set up, we can do it in a single presentation! If deploying your app is harder than making a cup of coffee, this is a session you can't miss.

Starting from scratch with a new Team Services Project and fresh machines, we'll work our way towards a complete deployment automation pipeline for an example application. I'll start from File New Project in Visual Studio, commit code to a new git repository in Team Services, and configure a continuous build. For deployment I'll install and configure the Octopus components, define environments, set up projects, and add deployment steps. By the end of the session, I'll be deploying our app with a complete, working, continuous delivery pipeline.

Despite being demo-centric, this session won't just be about the how. As we progress there'll be explanations of how and why Team Services and Octopus work the way they do, and we'll discuss some of the DevOps best practices that drive the products. Whatever your level of exposure to these tools, this session has something for you.

Modernizing Traditional.NET Apps with Docker

Wed 3:30 PM: HomeNet - Sagewood Room

Docker has the potential to revolutionize how we build, deliver, support and even design software. But it doesn't have to be a violent revolution. The end goal might be breaking your existing ASP.NET monolith into microservices which run cross-platform on .NET Core, but the first step can be as simple as packaging your whole .Net Framework application as-is into a Docker image and running it as a container. In this session I'll take an existing ASP.NET WebForms application and package it as a Docker image, which can run in a container on Windows Server 2016 and Windows 10. I'll show you how to run the app and a SQL Server database in Docker containers on Windows, and how to use Docker Compose to define the structure of a distributed application. Then I'll iteratively add functionality to the app, making use of the Docker platform to modernize the monolith without a full rebuild. I'll take a feature-driven approach and show you how Docker makes it easy to address performance, usability and design issues.

[Panel] Master Class in Developer Productivity

Wed 5:00 PM: Salons D/E

What's the best way for a developer to provide true "value"?

Join our panel of experienced developers as they discuss their patterns, practices, methodologies, frameworks, tips and tricks that help them reach their maximum productivity. Whether it's solving customer problems (usually with code), contributing to or running open source projects, or even curating online content like video training courses, these panelists tell you their secrets of how the "get stuff done."


Angular 4 Overview

Wed 5:00 PM: LEADTOOLS - Rosewood Room

Angular 4 is the latest version of the popular Google framework that builds on core Angular 1 and 2 principles like dependency injection, testability, data binding, and components. The syntax changes are considerable but make sense given new directions in modern web development. Learn how W3C components are the modern building blocks that package templates, inputs, outputs, controller code, and even styles in reusable packages. We dive into reactive programming to see how RxJS and Observables expand on legacy JavaScript promises. The new routing engine helps build a flexible and performant single page application. Tooling is provided by Visual Studio Code, TypeScript, Angular CLI, and WebPack.

Core Azure Solutions - Theory in Practice

Wed 5:00 PM: Octopus Deploy - Ironwood Room

This session will cover an actual on-prem to cloud migration scenario, where DevTest Labs are used to provide developers with metered sandboxes for POC development, Site Recovery and Backup are used to ensure business continuity and DR, and a line of business application is transformed from a legacy distributed application to a globally distributed and scalable platform. A fairly important tenet of this session is to stress that enterprise cloud architecture is much more than copying a few QuickStart templates and configuring a couple of application servers. Information security, corporate IT networks, stakeholder (and shareholder) concerns are all real-world concerns to take in when designing and implementing core solutions in Azure.

Technologies covered: Azure Active Directory, Azure Automation, Azure Backup, Azure ExpressRoute, Azure IaaS, Azure Operational Insights, Azure Site Recovery, Azure Storage, CE - Azure Dev., CE - Azure IT, Cloud App Security, Event Hubs, OMS Operations Management Suite, Service Bus, Visual Studio, Visual Studio Team Services

Infusing Continuous Quality In Delivery Pipeline: A Journey from Dev-Ops to Dev-Test-Ops #FromGoodToGreat

Wed 5:00 PM: HomeNet - Sagewood Room

In today’s dynamic business environment and competitive global ecosystem, organizations strive to speed time-to-market and increase organizational effectiveness by doing better with less. As companies realize the need for rapid application development, they resort to DevOps methodologies that are progressively becoming the de facto standards for software development/delivery. Embracing DevOps practices without establishing a culture of quality, however, often results in a struggle to ship high-quality software out to market. This, in turn, results in poor customer experience and consequently loss in business.

Gajan discusses how to ensure quality driven development through DevOps while maintaining delivery speed. Primarily, he focuses on the shift an organization needs to make in culture, process, and technology/tools to frequently ship high-quality software, the importance of efficient testing feedback mechanism and some infamous fallouts, if quality is overlooked. Gajan also dives into a roadmap to build quality into the fabrics of DevOps and fostering quality driven mindset across an organization. He then briefly explores a spectrum of tools such as Docker, Bamboo, Selenium, AppDynamics etc. that can be used to infuse continuous quality throughout the software delivery pipeline.

Join Gajan to discuss the need for quality-centric DevOps ecosystem and take away how to optimize the value stream and ensure continuous quality while implementing DevOps.

.NET in 2017

Thu 9:30 AM: Salons D/E

There has never been a better time to be a .NET developer; you can now build Android, iOS, Linux, Mac, and Windows applications with a complete Open Source stack. In 2017 we have new tools like Visual Studio for Mac, C# 7, and .NET Standard 2.0. In this session we will discuss some of these innovations and why they will make you a more productive and better developer.

Build amazing apps with Azure Cognitive Services

Thu 9:30 AM: LEADTOOLS - Rosewood Room

Teach computers to understand the world as humans do. Tap into high-quality vision, speech, language, and knowledge technologies, developed with decades of Microsoft research to build intelligent apps. In this session, I'll present the API offerings of Cognitive Services and show you how to build your own smart apps on Azure. This session will show numerous compelling demos which will show how you can immediately start utilizing the APIs to perform facial recognition, voice recognition, live translation of languages, image analysis, and face redaction from video feeds - all on the secure Azure platform!

dotnet new aurelia

Thu 9:30 AM: Octopus Deploy - Ironwood Room

ASP.NET Core has delivered a generational leap in productivity for building rich web applications. Aurelia is a next generation JavaScript framework for building the client-side half of the rich web application. Join Microsoft MVP Ashley Grant as we discover the best practices for getting started with ASP.NET Core and Aurelia.

Building a SPA with Angular 4 and Firebase

Thu 9:30 AM: HomeNet - Sagewood Room

Even after all the advances made in cloud services and web technology, building even simple web apps is time consuming and difficult. Angular with the Firebase real-time NoSql backend is the perfect startup web developer toolset to quickly bring your ideas to market. In this session I will create a fully functional single page web app using Angular and Firebase. Firebase is much more than a real-time database. Learn how to use its out-of-the-box features like authentication and cloud messaging along with the RESTful api for data.

Getting started with Entity Framework Core

Thu 10:45 AM: LEADTOOLS - Rosewood Room

With the cross-platform version of .Net, Microsoft has had to rewrite many of the core components that we have come to depend on. If you include data in your applications, chances are you have used Entity Framework in the past. In this session, you'll learn how to get started using EF Core and how to handle the changes in this version.

Windows Container Orchestration with Kubernetes

Thu 10:45 AM: Octopus Deploy - Ironwood Room

Kubernetes is a fantastic solution for managing containers in both public and private cloud scenarios. In this session we'll explore container capabilities in Windows Server 2016, introduce Kubernetes and equip developers with next steps for taking advantage of these exciting technologies.

User Validation in Agile Delivery Process – The Key To Creating Customer Value #PuttingTheUserFirst

Thu 10:45 AM: HomeNet - Sagewood Room

In the quest for business and enterprise agility, many organizations progressively started adapting agile practices over the past decade for software development and delivery. However the push to increase the speed of delivery and do better with less, more often result in being not customer centric and not creating the intended value to customers. If you ever wondered how this can be prevented and wanted to introspect and brainstorm, then this might just be the session for you.

In this session, Gajan discusses the transition an organization needs to make the user satisfaction the highest priority and highlights some infamous business blunders due to poor user experiences. He focuses on increasing customer collaboration throughout the product development lifecycle, which is the first and foremost principle of the agile manifesto, by using efficient user validation feedback mechanism. Gajan also dives into a case study of implementing user validation as an agile development practice in a large FinTech organization. He then briefly explores some tools and templates that can be used to implement user validation as part of the software delivery pipeline.

Join Gajan to discuss the need for user validation in an agile environment and take away how to implement user validation based on his experience rolling it out in an organization with 100+ cross-functional, delivery teams.

Building beautiful RESTful APIs with ASP.NET Core

Thu 1:00 PM: LEADTOOLS - Rosewood Room

Many APIs claim to be "RESTful", but what does that actually mean? What does it take to build a scalable API with ASP.NET Core? What is HATEOAS and why is it a great conversation-starter around the campfire?

In this talk, Nate will share best practices for building APIs on the ASP.NET Core stack, as well as the "hows" and "whys" of designing RESTful interfaces. The session will include real code examples and a discussion of REST best practices.

Topics covered include:

* Why API design matters
* What is REST and HATEOAS?
* How to represent hypermedia in JSON
* Building clean API controllers in ASP.NET Core

C# 7 And Beyond

Thu 1:00 PM: Octopus Deploy - Ironwood Room

It's never been more exciting to be a C# developer! C# has evolved into an open source project with a modern compiler which makes it easier and quicker than ever before to extend and build out the language. C# 7 introduces many new features, including a friction-less way for working with tuples and a pattern matching syntax to help simplify common coding patterns.

In this session, you'll learn the new C# 7 syntax through code demos and take an in-depth look at what's currently in development for vNext.

Creating a Solid Web Application Architecture Using Angular (2+) and ASP.NET Core Web API

Thu 1:00 PM: HomeNet - Sagewood Room

Modern web applications built today typically consist of various technologies used to deliver the final solution. Over the last several of months, there have been significant new developments both in front-end frameworks for building single page applications as well as back-end frameworks designed for applications hosted in the cloud. In this session, we will explore using ASP.NET Core to host a Web API that provides services to an Angular (2+) single page application. As a developer, you will take away from this session a solid understanding of how to design a modern web application using these technologies.

Lean & Mean Application stack Using Docker EE, Golang & Multi Stage builds

Thu 2:15 PM: Salons D/E

Using Docker as the core technology, this session will demonstrate how one can run an application with the smallest footprint using an application built on golang. We will see how easy it is to scale up or down services using docker swarm cluster features and to integrate the application with the enterprise features within Docker EE.

Building an IoT Massive Multiplayer Game in 60 Minutes

Thu 2:15 PM: LEADTOOLS - Rosewood Room

The realm of Internet of Things (IoT) is quite trendy these days. Take hundreds (or thousands, or millions) of devices, gather information at scale, make educated decisions and send commands back to the devices in order to get a really cool system up and running. Sounds easy? No? Well, while setting up an IoT system can be quite hard, there are platforms which make this process significantly easier.

In this one hour session we'll see just how we can utilize the Azure IoT platform to build live on stage an IoT system which is actually a massive multiplayer game complete with sensors, devices, analytics and commands. Oh, and you will be a part of it too…

Custom Middleware & Microservices with ASP.NET Core

Thu 2:15 PM: Octopus Deploy - Ironwood Room

At the core of ASP.NET Core is Microsoft’s implementation of the OWIN standard, giving developers full control over the ASP.NET pipeline. In this session I will explain what OWIN is and how it can empower you to quickly and easily reconfigure an entire web application. Now in full control, you can do everything from injecting custom code (middleware) into any stage of the pipeline to running lightweight applications and microservices without MVC.

Introduction to React

Thu 2:15 PM: HomeNet - Sagewood Room

Come to get a feel for what React is, what it does and doesn't do for you, as well as the basics of how to use it. In addition to the overview, we'll delve into the code for a simple sample app and components to see React in action.

DI Why? Getting a Grip on Dependency Injection

Thu 3:30 PM: Salons D/E

What is Dependency Injection? And why would we want to use it? That's what we're here to answer. We'll start by looking at the problems caused by tight coupling. Then we'll use some DI patterns such as constructor injection and property injection to break that tight coupling. We'll see how loosely-coupled applications are easier to extend and test. With a better understanding of the basic patterns, we'll remove the magic behind DI containers so that we can use the tools appropriately in our code.

Multi-targeting the world: a single project to rule them all

Thu 3:30 PM: LEADTOOLS - Rosewood Room

Into to creating single and multi-targeted .NET Standard class libraries using the new "SDK-style" project system. We'll recap what .NET Standard is and then dive into how to use the new "SDK-style" project type in VS 2017 to create projects that create platform-specific and .NET Standard outputs.

Building an Azure IoT Controlled Device in Less Than 60 Minutes That Costs Less Than 10 USD

Thu 3:30 PM: Octopus Deploy - Ironwood Room

Azure IoT Client SDK can be used to connect many different types of devices. At the lowest end, you can use it to connect a less than 3$ WiFi capable system on a chip microcontroller, such as the NodeMcu and WeMOS D1.
In this lecture we will see how to build a WiFI capable, Arduino based, cloud controlled IoT smart switch. We will then use a cross platform Xamarin based application to activate the smart switch. Using this application installed on a mobile phone we will open a car gate on stage as well as 7500 Miles (12,000 KM) away.
You will learn:
• An Internet of Thing system overview
• How to create and use the Azure IoT Hub
• Implementing an Azure IoT client SDK based solution
• Provisioning IoT devices, sending information to the cloud and receiving commands
• Arduino development using Visual Studio with Visual Micro

Flying High with Xamarin!

Thu 3:30 PM: HomeNet - Sagewood Room

Cross-platform mobile development has been democratized for .NET developers – thanks to Xamarin & Microsoft. Let’s build a cool aviation app together – targeting all platforms from the comforts of Visual Studio or Xamarin Studio. Real world apps need design, cloud data connectivity, navigation, storage, lifecycle management and polished UI – let’s do all that. Let’s look at some tooling for professional Xamarin developers. Oh, and we will throw in some passion for aviation in the app, like private jets and supersonic possibilities. Loads of fun while learning cutting-edge mobile development – you in?

Adding AI Smarts to your Software Solutions with Microsoft Cognitive Services

Thu 4:45 PM: Salons D/E

In all its previous hype-cycles, Artificial Intelligence (AI) repeatedly fell far short of its promises. Computers were under-powered 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.

Building an Alexa skill with ASP.NET Core and AWS Lambda

Thu 4:45 PM: LEADTOOLS - Rosewood Room

AI is expanding more into our daily lives, and devices and agents like Siri, Cortana, Amazon Alexa, and Google Home are gaining huge traction in homes and phones around the globe. What better way to embrace our AI overlords than to build your own Alexa skill?

Learn how to use open-source tools and ASP.NET Core to build an deploy a custom Alexa skill. The project will utilize AWS Lambda for friction-free deployment and scaling. If the demo gods smile upon us, a live demo will be included!

Which Azure Database Should I Choose?

Thu 4:45 PM: Octopus Deploy - Ironwood Room

Deciding which of the many database options to choose from in Azure can be overwhelming. There are many options, and it’s impossible for everyone to know all of them. Traditionally, the choice has been to select which relational database to choose. But with all the NoSql databases available, there are many more choices that may be a better fit for your application. What are the trade offs among all the choices? Why pick just one? I will give some practical examples of how to combine different types of databases. Microsoft released Document DB a couple of years ago, which was their first managed NoSql cloud database. Just recently Cosmos DB has expanded those offerings and made it easier than ever to use. Cosmos DB is a service that contains several types of databases: Relational, Key Value Pair, Document and Graph. I will explain what each of these are, along with some code samples for each one to get you started. You will leave this session with a greater understanding of the different types of NoSql databases and what kinds of problems each of them solves best.

Bot-tender: A chat bot walks into a bar

Thu 4:45 PM: HomeNet - Sagewood Room

Chat bots are a rising and exciting new way to interact with your users and engage them wherever they are. You most probably have a web site, you might have a mobile application, and if you're really serious (or bored) you might have a desktop application as well. But do you have a chat bot? Be it in Slack, Skype, Facebook or anywhere else - your users are already there, so why not allow them to interact with your service directly from there in a human, natural way?

In this session you'll get to know the Microsoft Bot Framework and the Azure Bot Service, as we use them to build a real live bot bartender on stage and tackle all of the development issues one by one. So do you have a bot yet? Now is a great time!

Building for the Best of Us - Design and Development with Kids in Mind

Fri 9:30 AM: Salons D/E

Building an API easy enough for kids to understand (in C++) is a challenge. Every design decision, from the circuit board to the plastic can effect the results. We'll talk about product design, manufacturing, firmware, software, and Arduino AP as we cover the Jewelbots timeline from Kickstarter to shipping to distribution.

ASP.NET Core – Coming to All Devices Near You!

Fri 9:30 AM: LEADTOOLS - Rosewood Room

Change is in the air for ASP.NET developers, as vNext ushers in a new era and aligns to modern web development.

Let’s talk about:

• .NET Core
• ASP.NET Core
• Open Source
• Various .NETs
• .NET Standard
• WebForms
• Cross-Platform Tooling
• Package Management
• Omnisharp.NET
• CLI Tools
• Visual Studio integrations
• Docker.

Join me as we explore all that’s new & shiny. This is one of the best times to be an ASP.NET developer – let me show you why!

Azure Application Insights for Telemetry

Fri 9:30 AM: Octopus Deploy - Ironwood Room

Application Insights is a cloud based telemetry management system. We start creating Availability Tests with Alerts. Resource groups and Tags are used to catalog each test. The Metrics Explorer, Analytics and PowerBI help you dig into the data. PowerShell is used to automate the creation of additional tests. Continuous export allows the historical data to be harvested to on-premise storage. We finish with Visual Studio integration with Asp.NET Core projects and JavaScript customization of browser activity.

  To The Cloud!  How We Moved our SaaS to Azure (and it made us better!)

Fri 9:30 AM: HomeNet - Sagewood Room

Two years ago we had to make a decision whether to double down with new hardware in our Colo or go another way to grow our SaaS.  We moved into Azure and haven't looked back.

In this talk we'll walk through the challenges we've faced moving from our own hardware to Azure including:
* Taking advantage of auto-scaling to reduce costs.
* Growing 100x without controlling the hardware.
* When it all goes wrong and Azure falls over.
* How Azure has improved the performance of our on-premises installs too

Far from a theoretical conversation about how you could use the cloud, we'll share real data from our production implementation, both the good and the bad.  Finally, we'll talk about where we're going with what we've learned.

Object-Oriented JavaScript: Sugar for Maximum Productivity

Fri 10:45 AM: LEADTOOLS - Rosewood Room

Classes: A familiar, consistent, and reliable way to build applications. They're widely used everywhere: Ruby, Python, C#, Java. Many think in 'classes' and find them highly productive, and you can use them today with modern JavaScript!

Together we'll explore well-authored object-oriented code in today's modern JavaScript era. Steering straight into modules, the `class` keyword, and other modern constructs we'll connect the dots to your existing knowledge, and explore some new techniques to pair with an object-oriented approach -- including decorators, the async/await keywords, and more!

ASP.NET Quick WIns - 20 Tips and Tricks for Better Performance

Fri 10:45 AM: Octopus Deploy - Ironwood Room

Does your ASP.NET application run slowly? Don't worry, you are not alone.

Over the past 15 years, ASP.NET has grown to make some of the most mundane web development tasks non-issues. Applications are rapidly built and deployed, but often there is not any time to evaluate the performance indications you might be missing. Sometimes the smallest tweak to an application can have the largest effect. In this presentation, you will learn about 20 "quick wins" for almost instantly making your ASP.NET applications more performant. Some of these tips are so simple, you could push them live into production before the talk is over.

Migrating to Modern JavaScript

Fri 10:45 AM: HomeNet - Sagewood Room

Writing JavaScript used to mean a tangled mess of hacks to avoid global variables, jQuery, and callback hell. 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 darned JavaScript Frameworks that keep popping up! You'll learn how modern browser JavaScript engines provides 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!

Deploying Straight to Production: A guide to the Holy Grail

Fri 1:00 PM: LEADTOOLS - Rosewood Room

You've toiled hard on your code, tested it locally, and you're confident it's ready to go. But how long until you see it in production? For some teams, it can be months or even years. By the time your new feature or bug fix gets used in anger, you've forgotten what you did! But with a great deployment pipeline and some clever architecture, there's a better way.

This session is packed with war stories and real world successes. We'll walk through the realities of a no-touch deployment pipeline that you can trust all the way to production, and we'll examine some clever architectural patterns to enable true software agility. By the end, you'll be convinced that if it's not in production, it doesn't count. If you struggle to get updates in the hands of users, this is the session for you.

Help! My database is the bottleneck

Fri 1:00 PM: Octopus Deploy - Ironwood Room

More and more companies are automating their application changes, but what about the database? Database changes are harder and most organizations still rely on separate processes and DBAs that are not part of the team. Database changes need to be reliable so you don’t corrupt, lose, or leak Production data or cause downtime. Including your database changes in the same processes as your application changes can really help to deliver value to users quickly and safely.

In this session, we’ll talk about the additional challenges the database presents, different options for including your database in Continuous Integration and Continuous Delivery processes, and demo how easy it is to include database changes alongside the application.

Developers and Depression

Fri 1:00 PM: HomeNet - Sagewood Room

Depression, anxiety, ADHD, and a host of other conditions run rampant amongst the developer community, but their stigma too often causes folks to suffer alone and keeps them from getting the help that they need. In this talk I'll share lessons learned from my struggle with bipolar disorder, and what to do if you suspect that you, a friend or a colleague might be suffering from mental illness.

[1:00 PM - 4:00 PM] Jewelbots Build

Fri 1:00 PM: River Rooms

Looking for a fun way to spark your child's interest in coding?

#JewelbotsBuild at TechBash will have:

* An entry-level coding workshop geared towards kids (also fun for grown-ups)
* Face Painting
* Coding for Arduino
* A Craft Table
* Learning and fun for all ages!

#JewelbotsBuild is a hands-on event for kids and adults ages 8 and up to dig in, learn and code in C++ via the Jewelbots API. The goal of the event is to introduce adults and kids alike to the fun and magic of coding while learning about connected hardware and making new friends!

#JewelbotsBuild is a formula for a fun, inclusive family-friendly event for experienced coders and newbies alike.

Microsoft Azure for .NET Developers

Fri 2:15 PM: Salons D/E

In this session we'll take an ASP.NET Core application and make the application secure and scalable using Microsoft Azure. We'll see how to take advantage of load balancers, content delivery networks, auto-scale settings, and implement identity features using Azure Active Directory B2C.

Training AI models for greater effectiveness

Fri 2:15 PM: LEADTOOLS - Rosewood Room

Enriching your user experience with machine learning is now more convenient than ever. There is a large offering of pre-trained models an API call away for use in your software. What happens however, if the models available are very close to what you need, but not quite there? How do you train model adaptations? And which services allow you to provide your own training data?

I'll answer these questions with a focus on Microsoft Cognitive Services. We'll cover several vision and speech services and how to train them. After a basic overview of how machine learning works, we'll deep dive into some examples of what training data looks like, how to source it, and how to reduce human bias from the equation. There'll be real demonstrations and existing tool recommendations so that you'll walk away confident about using machine learning and excited to explore further possibilities.

C# 7 New Language Features

Fri 2:15 PM: Octopus Deploy - Ironwood Room

This presentation will cover the new language features of C# 7. This demo-heavy session will cover features such as tuples, pattern matching, local functions, out variables, expression bodied members, literal improvements, throw expressions, and more. If you’re a C# developer, come learn about the new language tools that you can put in your toolbox!

Graduating from Bootstrap with help from Atomic Design

Fri 2:15 PM: HomeNet - Sagewood Room

Bootstrap defines itself as "... the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web." and it's not wrong. At 105,000 stars, and over 48,000 forks on GitHub, it comes in as the second most popular repository of all time. Bootstrap is an amazing tool, but it's not without it's problems. Have you ever found yourself overriding a default Bootstrap style? Including CSS or JS for components you don't use? Or maybe you're just tired of your website looking like everyone else's? We put up with this technical debt because of the wins Bootstrap provides, but what if we could keep the benefits without all of the headache? Enter Atomic Design.

In this discussion, we will start by exploring the problems Atomic design solves, how it promotes consistency/cohesion, easily traverses from abstract to concrete, and provides methodology for crafting an effective design system. Next we will get our hands dirty by digging into a concrete implementation of an Atomic Design based toolkit. Finally, we will go over resources for further education, how to begin the process of integrating Atomic Design into your process, and next steps. By the end of this talk you will be comfortable with Atomic Design basics and have the knowledge and resources necessary to create your own atomically driven comprehensive component library.

Introduction to MobX with React

Fri 3:30 PM: Salons D/E

Building on the Introduction to React session, you will get an intro to the design rationale behind MobX and see it applied by refactoring the simple React app to use MobX.

While it's not necessary to attend the Intro to React session, this session will assume that you have at least that much knowledge of React and be using that vanilla React sample as a contrast with doing the same thing with MobX.

Getting pushy with SignalR and Reactive Extensions

Fri 3:30 PM: LEADTOOLS - 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.

Modernizing Traditional.NET Apps with Docker

Fri 3:30 PM: HomeNet - Sagewood Room

Docker has the potential to revolutionize how we build, deliver, support and even design software. But it doesn't have to be a violent revolution. The end goal might be breaking your existing ASP.NET monolith into microservices which run cross-platform on .NET Core, but the first step can be as simple as packaging your whole .Net Framework application as-is into a Docker image and running it as a container. In this session I'll take an existing ASP.NET WebForms application and package it as a Docker image, which can run in a container on Windows Server 2016 and Windows 10. I'll show you how to run the app and a SQL Server database in Docker containers on Windows, and how to use Docker Compose to define the structure of a distributed application. Then I'll iteratively add functionality to the app, making use of the Docker platform to modernize the monolith without a full rebuild. I'll take a feature-driven approach and show you how Docker makes it easy to address performance, usability and design issues.

39 speakers giving 59 sessions (View all stats)