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

50 Opinions for ASP.NET Core

Wed 10:45 AM: Ironwood 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.

Dockerize Your Development Environment

Wed 10:45 AM: 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!

Core Azure Solutions - Theory in Practice

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

TypeScript for the Microsoft Developer

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

Better: Fearless Feedback for Software Teams

Wed 2:15 PM: Rosewood Room

The feedback loop is easily the most effective way to improve individual and team performance. When it is given well and received willingly, feedback can be a powerful ally in growing happy teams who work together effectively to deliver great software. Here's the challenge: giving and receiving feedback are skills, and many of us haven't had the chance to develop those skills. Maybe we find giving feedback intimidating. Maybe receiving feedback makes us feel defensive. Maybe we simply haven't had much positive experience with open, honest conversations about performance. It's not easy to do feedback "right", and when it is given badly or received poorly, feedback can cause a team's relationships to disintegrate. This talk will introduce the fundamentals of effective feedback; provide strategies for giving, receiving, and processing feedback; and discuss the challenges and rewards of using feedback as a tool to improve team performance.

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

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

Bots are the New Apps: Building Bots with ASP.NET WebAPI & Language Understanding

Wed 3:30 PM: Rosewood Room

Bots (or conversation agents) are rapidly becoming an integral part of your users’ digital experience – they are as vital a way for users to interact with a service or application as is a web site or a mobile experience. Developers writing bots all face the same problems: bots require basic I/O; they must have language and dialog skills; and they must connect to users – preferably in any conversation experience and language the user chooses. In this session, you will learn how to build and connect intelligent bots to interact with your users naturally wherever they are, from text/sms to Skype, Slack, Facebook, e-mail and other popular services. We will explore the Microsoft Bot Framework, which provides just what you need to build and connect intelligent bots that interact naturally wherever your users are talking. Through live demos, we’ll cover the Bot Connector in the cloud, the open source Bot Build SDK with ASP.NET WebAPI & C# (Node.js is also supported) and we’ll also explore how to handle natural language input from the user with the Language Understanding Intelligent Service (LUIS) from Microsoft Cognitive Services. Every business needs bots to provide a more personal experience to its users and customers. Come learn how you can build your own bots in just a few hours.

Continuous deployment from scratch with VSTS and Octopus Deploy

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


Wed 3:30 PM: Sagewood Room

Imagine if you will, your Manager asks you to develop a new desktop application. You're so used to web development that you don't know how to get started. What should you do? Dig out your old VB 6 books or learn a new technology? Better yet, keep those web skills and use Electron. Electron is the cross-platform application shell GitHub originally built for the Atom editor. The focus of this talk will allow you to leave with the starting skills to set up your development environment, generate your starter project, and build some business logic. We will also start building a killer UX with the Photon control kit. Chris Woodruff will be your guide to leveraging your valuable skills for the desktop.

Real World Container Deployments Using Linux, Docker and Azure

Wed 5:00 PM: Salons D/E

Containers are a hot topic these days and it is easy to get started with them in development but what happens when you are ready to go to production? In the talk, we will look at some of the possible scenarios for deploying Linux containers in Azure. We will start out looking at Azure Web Apps for Linux to see how it can enable us to deploy any application (Node.JS/Python/ASP.NET Core/etc) and learn how to scale the site based on demand. We then use Docker Swarm to deploy a more complex application scenario discussing the differences in the services. By the end, you will have seen several ways to deploy your applications to Azure understand the tradeoff between services.

Angular 4 Overview

Wed 5:00 PM: 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.

Adding AI Smarts to your Software Solutions with Microsoft Cognitive Services

Wed 5:00 PM: Ironwood Room

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.

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

Wed 5:00 PM: Sagewood 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.

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

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

Thu 9:30 AM: 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.

Getting started with Entity Framework Core

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

Building a SPA with Angular 4 and Firebase

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

Building beautiful RESTful APIs with ASP.NET Core

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

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

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

Introduction to MobX with React

Thu 2:15 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.

Building an IoT Massive Multiplayer Game in 60 Minutes

Thu 2:15 PM: 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: 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.

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

Thu 2:15 PM: 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.

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

Thu 3:30 PM: Salons D/E

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.

DI Why? Getting a Grip on Dependency Injection

Thu 3:30 PM: Rosewood Room

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.

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

Thu 3:30 PM: 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: 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?

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

Thu 4:45 PM: Salons D/E

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!

self.improve(): Building a Technical Career

Thu 4:45 PM: Rosewood Room

How do we find success and fulfillment as software developers? We learn to code, we learn to use code as a tool to solve difficult problems, we get better at both coding and problem-solving, and then... what's next? Beyond technical growth, how do you find fulfillment in your work? If you've ever struggled to picture what your career could look like in 5 years, this talk is for you. Discover how learning continuously, teaching others, caring for yourself, and asking the right questions can get you where you want to go (even if you aren't sure where that is yet). This talk will explore what comes after code: digging into new challenges, expanding perspective, and turning fears into pathways for growth.

Which Azure Database Should I Choose?

Thu 4:45 PM: 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: 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: 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: 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.

The Road to Becoming VS Code Debugging Master

Fri 9:30 AM: Sagewood Room

Visual Studio Code is so much more than a simple text editor. It includes a powerful debugger than can debug code written in many languages. In this session you'll learn from the mistakes I've made as I learned how to wield this incredible tool. Many times the journey is just as important as the destination!

Object-Oriented JavaScript: Sugar for Maximum Productivity

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

Establishing a SOLID Foundation - An Intro To Software Design

Fri 10:45 AM: Sagewood Room

Are you tired of opening classes that have hundreds or thousands of lines of code? Do you feel that you spend too much time trying to understand how something (that should be simple) in your application works? Are you frustrated with following spaghetti-like logic through your code’s core?

In this presentation, we’re going to examine a set of design principles that yield easy-to-read, decoupled code referred to as SOLID. To start, we’ll explore the history of SOLID and establish the problems it solves. From there, we’ll dive into the different principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion) by defining what each principle means, how to spot violations, and how to resolve them.

Intended for developers wanting to learn more about software design, by the end of the presentation, you should be able to describe what SOLID code is. In addition, you should also be able to spot trouble areas in your codebase and have the tools to undo the damage.

Deploying Straight to Production: A guide to the Holy Grail

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

C# 7 New Language Features

Fri 1:00 PM: 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!

How Functional Programming Made Me A Better Developer

Fri 1:00 PM: Sagewood Room

With the rise in popularity recently, functional programming has become "The Next Big Thing". As of today, there are tons of frameworks and tools that can be used to for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don't need to learn functional programming, right?

In this talk, I'll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and now how I think about programming with regards to both functional and object-oriented paradigms.

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.

Test automation of serverless code

Fri 2:15 PM: Salons D/E

A journey in this new territory: which tools can you use to unit test C# or Java code designed to run serverless i.e. as Azure Function or AWS Lambda?
Is it easy or hard? What issue will you face on integration tests?

The agenda covers a quick intro to serverless computing, the challenges of testing it and the possibile solutions with pros and cons.

Microsoft Azure for .NET Developers

Fri 2:15 PM: Rosewood Room

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.

Graduating from Bootstrap with help from Atomic Design

Fri 2:15 PM: 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 React

Fri 3:30 PM: Salons D/E

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.

Creating and debugging hybrid mobile apps with ManifoldJS & VorlonJS

Fri 3:30 PM: Rosewood Room

ManifoldJS aims to make the life of a mobile developer easier than ever, by utilizing  Web App Manifests,  which allowing websites to declare app-like properties.

VorlonJS is an open source, extensible, platform-agnostic tool for remotely debugging and testing your JavaScript. Powered by node.js and socket.io. It is easy to set up, works on any platform, and extensible.

When we combine the two, we can create applications at near-native speed which can be deployed in a number of app stores, and utilizing largely one code base. There is no silver bullet for mobile development, but this certain makes the process easier.

Getting pushy with SignalR and Reactive Extensions

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

How We Deploy to Production

Fri 3:30 PM: Sagewood Room

We’ve all heard the advice: Deploy manageable features and patches to production often and with confidence. Like most small SAAS companies, EnergyCAP has had its struggles with deployments. Issues around configuration management and resource allocation where just a few of those struggles.

Now, EnergyCAP has heeded the call. Features and patches are flighted regularly to production with confidence. In this session, we’ll go over the tooling and process that brought confidence to EnergyCAP’s deployments.

38 speakers giving 59 sessions (View all stats)