Denver Dev Day - June 23, 2017

Microsoft, Denver Tech Center
June 23, 2017 8:00 AM - 6:00 PM

Sessions / Agenda

June 23 - 9:00 AM - Room 1 & 2 (Maroon Bells 1 & 2)

Improving Code Quality… One Developer At A Time

Speaker: David McCarter

Code quality starts with you, the developer. If you are writing your first app or have been through the battel field many times trying to improve code quality within your team, this session is for you. This fast paced session will discuss the core things you need to remember every day of your coding life along with real world examples and solutions. Other topics discussed will be architecture, performance, testing, security, the cloud and much, much  more.

June 23 - 10:30 AM - Room 2 (Maroon Bells 2)

Windows 10: Lighting up your UI

Speaker: Daren May

Have you ever wondered why iOS and Android apps look great yet Windows Store Apps look... not so great? In this session we will explore new features in Windows 10 Creators update and the upcoming Windows 10 Fall Creators Update that brings the beautiful back to Windows.

June 23 - 10:30 AM - Room 1 (Maroon Bells 1)

Application Security in .NET

Speaker: James McKee

Everyone knows that you should check your parameters, and watch out for SQL injection, but is that really enough? The problem: most developers have never performed a sql injection attack, cross site scripting attack, or direct object access attack, so they neither know what they look like or how to protect against them. More than ever, the web is becoming an increasingly hostile environment, and because of it developers really need to step up their game. In this session we will go over some of the methodologies that we use internally to test applications, helping developers to think more strategically about designing applications for general security.

June 23 - 10:30 AM - Room 4 (Pyramid Peak)

Monitor your web app front-end with Application Insights

Speaker: Laurie Atkinson

Application Insights is an Azure service for monitoring web applications. It includes analytics tools to help you understand application usage and to diagnose issues. In addition to its integration with a variety of back-end web platforms, Application Insights also includes browser analytics. In this session, we’ll add an App Insights service in Azure, configure an Angular application with the necessary dependencies, consume the App Insights SDK from TypeScript, and view the metrics in the Azure portal, including AJAX calls, exceptions, and page view tracking.

June 23 - 10:30 AM - Room 3 (Pikes Peak)

Build Better Business Logic with Typescript :: Implementing and Using Design Patterns for Angular Apps

Speaker: Matt Vaughn

The session will show you how to use and implement design patterns (like Composite, Builder, Template Method and others) using Typescript. The session will demonstrate code reuse strategies and extensibility techniques for building robust Angular Services and Business Logic.

The session will demonstrate how to implement shared Angular services and how to use them in Angular domain services. The services will include rich business logic layers that use the angular-rules-engine and angular-actions NPM packages.

June 23 - 12:15 PM - Room 3 (Pikes Peak)

Building Angular Apps on ASP.Net Core

Speaker: Ely Lucas

ASP.Net Core is a productive, cross platform web application framework the has some great new features for hosting and building modern web applications on it.  In this session, we will go over  writing an Angular app and how the new JavaScript Services makes it easy to get started fast in ASP.Net Core.

June 23 - 12:15 PM - Room 4 (Pyramid Peak)

You Say "Authentication", I Say "Authorization", Let's Call the Whole Thing "Auth"

Speaker: George Young

A deep dive into using Azure Active Directory for authorization and authentication in your ASP.NET/MVC web apps.  We'll build some sample apps using users, groups, and roles in the standard ASP.NET/MVC Authorize attributes, and wade through the weeds to get you up and running quickly!

June 23 - 12:15 PM - Room 1 (Maroon Bells 1)

Secure Coding in .NET - Injection

Speaker: Mike Triplett

The OWASP Top Ten ( and the CWE/Mitre Top 25 ( rank the top threats facing web applications. Injection has been ranked #1 by both organizations for many years. In this session we'll take a look at Injection attacks, their various forms and how we can utilize .NET to protect our applications from them.

June 23 - 12:15 PM - Room 2 (Maroon Bells 2)

UWP Community Toolkit - RAH!

Speaker: Parker Smart

A short demonstration of what I did to add to the UWP Community Toolkit and what inspired me to help.  I would hope to motivate others without having to resort to bribery.

June 23 - 1:45 PM - Room 2 (Maroon Bells 2)

Writing Concurrent Applications without the Headaches of Locks

Speaker: Atiq Mir

We’ll start with an overview of today’s multi-core CPU architectures and how that necessitates obscure locking primitives that often lead our multi-threaded applications into deadlocks.
We’ll learn an alternative concurrency architecture called Dataflow and the programming model called the Actor Model that allows us to write concurrent applications without the headaches of such synchronization primitives.

June 23 - 1:45 PM - Room 1 (Maroon Bells 1)

Want to be a Better Developer? Cheat!

Speaker: David Thielen

A discussion of various practices, approaches, tricks, etc. that lead to both being more productive and writing more solid code.

June 23 - 1:45 PM - Room 4 (Pyramid Peak)

Reliable Asynchronous Messaging

Speaker: Donald Lutz

This talk will be about Reactive systems which are a set of architectural design principles for building systems that are well prepared to meet the increasing demands of availability, recoverability, and scalability using asynchronous messages in large scale distributed systems. There be a discussion of actor systems such as Akka.NET,, Orleans, and Service Fabric and as well as messaging systems such as RabbitMQ and Kafka.

June 23 - 1:45 PM - Room 3 (Pikes Peak)

Modern JavaScript Development

Speaker: Nathan Renner

In this session, we'll take a look at the language of the web, JavaScript. Looking for a deep dive on syntax or a specific library? You’re not going to find it here. This presentation will take a holistic view of web development to help us identify just where the current challenges reside. Technical areas will cover the latest features of JavaScript, an overview of transpilers, and ways to distinguish the many SPA frameworks that are currently available.

June 23 - 3:15 PM - Room 3 (Pikes Peak)

Great Database Design

Speaker: Armen Stein

All development projects should start with great database structures.  Do yours?  Armen will present the database design techniques and naming conventions that J Street Technology uses in their projects.  Slides and documents will be available to attendees.


June 23 - 3:15 PM - Room 1 (Maroon Bells 1)

Continuous Delivery with .NET Core, Docker, Azure, & Visual Studio Team Services

Speaker: Dave Milner

Advances in Microsoft's ALM stack have progressed tremendously, offering the ability to set up a pipeline to deliver value to customers at a much more rapid pace than ever before.  This session will explore many of these advancements and show developers how to increase their effectiveness by taking full advantage of Visual Studio Team Services (or TFS on premise)  to deliver value to their customers at a rapid pace.

June 23 - 3:15 PM - Room 4 (Pyramid Peak)

Using Bash on Windows to Increase Your Productivity

Speaker: Ryan McIntyre

Did you know Windows 10 can run Bash on Linux?? While it may seem weird seeing those words together, that’s no reason to shy away and not consider how this new capability can be leveraged to increase your day to day productivity. Think about all the Linux features, code samples, tutorials and tools that are out in the world. Now think about all the Windows counterparts. Bash on Windows gives us the option to use all of it on a single operating system and I’ll show you how!
This session will show you how to get up and running and then we’ll spend some time looking at specific development scenarios and why you would want to use Bash. If development isn’t your focus, we’ll also look at some DevOps scenarios targeting Azure. Finally, I’ll show you some of my favorite tools, tips and tricks along the way that can help you leave the room with knowledge you can immediately put to good use.

June 23 - 3:15 PM - Room 2 (Maroon Bells 2)

Introduction to .NET Standard

Speaker: Scott Golightly

Creating cross platform .NET applications has been difficult. With different APIs supported on Windows, mobile, and web finding one set of code that can be shared across all of them can be confusing and frustrating. .NET Standard aims to alleviate all that pain by providing a common API that can be used everywhere.

June 23 - 4:45 PM - Room 2 (Maroon Bells 2)

Building Chatbots with the Microsoft Bot Framework

Speaker: Joe Mayo

Developers, like you, are increasingly adding conversational user interfaces (CUI) to their applications and tools for enabling this are getting better. One of these new tools is the Microsoft Bot Framework. Learn how these tools can help you add more intelligent interaction directly into your applications. You'll learn how to write your own bot to communicate with a user as well as managing conversation state. You'll also learn how to use Microsoft's Language Understanding Intelligence Service (LUIS) to add Natural Language Processing (NLP) to your chatbot.

June 23 - 4:45 PM - Room 3 (Pikes Peak)

Including Your Database In DevOps

Speaker: Steve Jones

DevOps is changing today's software development world by helping us build better software, faster. However most of the knowledge and experience with DevOps is based around application software and ignores the database. We will examine how the concepts and principles of DevOps can be applied to database development by looking at both automated comparison analysis as well as migration script management. Automated building, testing, and deployment of database changes will be shown.

June 23 - 4:45 PM - Room 4 (Pyramid Peak)

Microservices vs. Monoliths - The Reality Beyond the Hype

Speaker: Thomas Betts

It's clear that microservices are the current hot architectural pattern, covered extensively on blogs, in the tech news at software conferences. But is it all just hype and a pattern useful at startups working on greenfield applications? And is the dreaded monolith, the antithesis of a microservices architecture, really dying a slow death, barely limping along until it someone writes a complete replacement?

The reality is the answer that any software architect will recognize: It depends. Both architectures come with compromises, and it is important to understand all the trade-offs before deciding that the monolith has to go, and microservices are the answer.

This presentation will cover some of the research and practical guidance from experts who have implemented successful, maintainable systems across the spectrum of microservices to monoliths. We'll look at examples of companies that have made a successful transition, at least in part, towards microservices. Finally, we look at how advances in cloud computing have allowed this transition to ever smaller, deployable components, including what lies beyond microservices.

June 23 - 4:45 PM - Room 1 (Maroon Bells 1)

Communicating with the Non-Technical for the Tech Worker

Speaker: Tim Goldstein

Learn to understand the needs of the Non-Technical co-worker and how to communicate effectively. Tim starts with an introduction to Neurodiversity and the concept that the technical worker's brain is on a different operating system. Once having established the neurotypical non-technical think, process, and sense in very different ways that us tech workers, Tim shows the critical items the non-technical workers need to get so they feel understood and realize you are on the same team. This will seem crazy as if it is a bad remake of the Matrix. But once you understand that what the non-technical want to hear is no stranger that what you need to know seems like to them.