Selected Sessions

The preliminary list of selected sessions for the upcoming Code Camp NYC 2016 event is available in the following table which supports paging, sorting, and full-text searches.

Sessions in this list with the Status of Selected have been selected for the event.  Sessions with the Status of Standby will be used in place of any last-minute cancellations by Speakers.

Please note that there may be minor changes to this list as the event approaches and the schedule is finalized.

StatusSpeaker NameSession TitleSession LevelSession Abstract
SelectedAlex LindgrenBuilding an ecommerce bot using the Microsoft Bot Framework200Conversational interfaces are becoming mainstream and Microsoft’s Bot Framework makes it easier to get started building chat bots. In this session, learn how to build an ecommerce chat bot using Microsoft’s Bot Framework. The bot will utilize Microsoft’s Cognitive Service LUIS (Language Understanding Intelligent Service) and the Merchello ecommerce platform to enable a user to shop and buy products via a chat interface.
SelectedAlvin RogersPart II "Finding Black and Hispanic Programmers" by Alvin Rogers & Chris Gomez 100projector and surface tablet
SelectedAnthony AbateLow Latency C# Programming300How fast is fast? This topic will discuss various low-latency performance critical techniques that can provide speed boosts by utilizing concepts such as lock-free and non-blocking operations as well as generalized code optimization.

Measuring extreme performance becomes a problem in itself, so specialized logging techniques are introduced to capture live data points for post run time analysis.

The performance implications of .net locking and synchronization primitives (signals/events, lock/monitor, interlocked) and various threading (thread pool, tasks, async) patterns are compared along with their latency implications.

Design patterns such as pessimistic vs optimistic concurrency, lock-free circular queues and the disrupter pattern will be discussed and demonstrated.
SelectedBenjamin T. GalluzzoMongoDB For Developers And Accessing MongoDB data100This is where .NET, MongoDB, and SSIS meet. We'll begin with an overview of what MongoDB and NoSQL are and how it is often used in the world. Then, we'll go over some of terminology of MongoDB and how these terms map to the SQL world. Lastly, we'll demonstrate how we can work with MongoDB from SSIS using .NET code to make all of the connections.
SelectedBhakthi LiyanageHow to build your own weather station using IoT and Azure cloud200The Internet of Things (IoT) starts with your things—the things that matter most to you or your business. Welcome to the Internet of Your Things.In this heavy demo based session I will demonstrate how to build your own weather system by connecting sensors to the Windows Azure cloud by using Azure IoT platform and share the telemetry data in the cloud.
SelectedBrian MinisiMaturing DevOps to Optimize Value Delivery200In this ever changing world, IT agility is becoming increasingly critical to remain competitive. Increasing flexibility and delivery while keeping the cost of development, testing and operations under control is a key factor in driving DevOps practices. See how we can embrace the DevOp movement using Visual Studio and Azure Cloud solutions. We will cover many DevOps practices such as Infrastructure as Code, Release Management, DevTest in the Cloud and using Azure environments to manage and monitor development, test, operations and more.
SelectedChris GomezWho needs Visual Studio? A look at using .NET Core everywhere else.200.NET Core is here! We've heard how it is lightweight and cross-platform and that you can use the tools that make you happy. Most of us are going to let Visual Studio do the heavy lifting, and that's fine, but you can learn much about how things work under the hood if you put the IDE aside and work with .NET Core without ever touching it.

To demonstrate, Chris will demonstrate acquisition and use of .NET Core on a VM untouched by a Visual Studio installation. We'll compare the outcome to doing the same on Linux, and learn what the Omnisharp effort is all about.

The goal is to talk about how you can achieve the most friction-free experience for projects that want to be accessible on different platforms for people with different tastes. This session is perfect for .NET veterans who are brand new to .NET Core and want to see what the brave new world looks and feels like.
SelectedChris GomezGit: A practical guide for the rest of us100Git burst onto the scene and became the hot new must-have source control system. Boasting of a "distributed model", you've probably heard how there's no central server or that everyone has their own repository. You might have also heard that sometimes you just have to throw your repo away and start over when you get stuck... because that's just how it is. Maybe you experienced similar frustration yourself.

Join Chris as we go over an introduction to Git as a source control system. We'll get some myths out of the way, and look at practical ways to use Git in your organization or to contribute to source on GitHub. With a few simple techniques, you can then decide for yourself to use tools for some tasks or be a command line jockey if you like.
SelectedEd CharbeneauDon’t be a stereotype, rapid prototype100In just about every industry, rapid prototyping is described as “A group of techniques used to quickly produce a working model”, and web development should be no different. Rapid prototyping allows developers to quickly communicate and collaborate on the product they are creating while investing minimal resources. When used effectively, a prototype can provide structure to a project, ensuring that the development team and the customer are working towards the same vision and goal.
SelectedEd CharbeneauRefactoring CSS with Sass200Does your CSS code remind you of an episode of Hoarders? In this session we'll look at how to apply back-end development principles like OOP, DRY, SoC, and Encapsulation to CSS using Sass and Compass. We'll explore techniques to build modular, semantic and intelligent CSS. Prepare yourself for the next evolution in front end development.

Code demonstrations will be shown using Visual Studio, ASP.NET Core
SelectedEddie ZaneskiA Crash Course In React.js100React.js is a JavaScript library for building user interfaces that is growing in popularity and usage thanks to it's declarative and expressive syntax. In this session we'll dive to take you from blank directory to a working React.js app. Coding along is welcome. Knowledge of JavaScript is necessary.
SelectedGael FraiteurAutomate design patterns with PostSharp and aspect-oriented programming100Design patterns are now universally accepted and have significantly improved the way we design software. However, they had relatively little impact on how we implement it. Except rare exceptions like the 'using' or 'lock' keywords, most patterns must still be implemented by hand, resulting in large quantities of boilerplate code that must be validated by peer review. However, development tools could do a better job by automatically implementing some parts of the pattern, and automatically validating hand-written code against pattern rules. This talk shows how to remove this redundant code with aspect-oriented programming (AOP) and PostSharp, the reference AOP framework for .NET.
SelectedGael FraiteurHow to train your dragon II – a tale of leadership100Hiccup is called by his father to become the tribe’s leader, but he does not feel quite ready yet. Is he really this kind of man? After all, he does not have half of his father’s stature. Hiccup goes on an odyssey that will confront him to several models of leadership for good and evil. This talk is dedicated to all people who feel they are the depository of a special spark – be it a talent, a vision or a message – but that feel internally obstructed from realizing it. The talk borrows from my own personal path – from an awkward geeky teenager to an unsuccessful and frustrated employee to an open-source developer and international technical speaker to the founder of PostSharp Technologies, a successful tech business. In this unusual session, we will analyze the messages, models and stereotypes that are keeping your spark from taking fire.
SelectedGreg ShacklesGoing Serverless: Event-Driven Service Architecture Without The Infrastructure200Technologies like Amazon Lambda and Azure Functions make it possible to build services and APIs without needing to provision or manage servers. Instead of managing servers in the cloud and scaling out by adding instances, you simply pay for the resources you consume and the scaling happens for you. On top of that, you're also not paying when your code isn't running, without needing to worry about shutting down your instances. Your functions can be triggered by events from other AWS or Azure services, or you can even expose them as APIs that can be accessed from your other applications. In this session we'll dig into the ins and outs of this type of architecture, and what it looks like to build real systems with it, from simple bot integrations to full-fledged backend systems.
SelectedGreg ShacklesMonitoring Your Mobile Apps in the Wild100Now that you've released your app out to the world, do you know how it's performing in the hands of real users? How long are they waiting for screens to load, or are they using that new feature you're so excited about? If you can't answer questions like these, you're effectively flying blind.

There's a lot of guidance for monitoring on the web, but what about mobile apps? In this session we'll look at the kinds of things you should be paying attention to, and then take an existing app and walk through adding various forms of instrumentation to it.
SelectedJames Bender Level-Up Your Test-fu with BDD & SpecFlow200A key concept of any Agile methodology is communication. It’s no longer normal or acceptable for developers to sit and develop applications in isolation from the business. To that end, developers and business domain experts have been trying to find better ways to communicate. While developers tend to speak in terms of “code and technology” most business domain experts are more comfortable communicating in terms of scenarios, workflows and business rules.
Test Driven Development (TDD) was the first step in getting these two groups to communicate in the same way. Developers could write unit tests that expressed business requirements with the hope that business users could validate that what was being tested was in fact what the desired behavior was. But, unit tests are still code and while it was better, the communication was still stilted and inefficient.

To help this communication new techniques such as Behavior Driven Development (BDD) and Acceptance Test Driven Development (ATDD) have become popular. Along with these new ideas, new tools like SpecFlow have become popular as a means to express unit tests in a way that the business can better understand and validate.

This session will demonstrate how SpecFlow can be leveraged in your BDD or ATDD practices. The Gherkin language and the “Given, When, Then” paradigm will be explained and you will see how to write tests in a way that business users are not only capable of reading, but can also help you create them.
SelectedJames BenderHow I Learned to Love Dependency Injection100Tightly coupled applications lead to heartache. They are difficult to manage. They are difficult to maintain. The create applications that are inflexible. They make TDD, or even TAD (Test After Development) all but impossible. It doesn't have to be this way. You've probably heard fancy terms like "Dependency Injection" and "Inversion of Control" but what do these mean and can they really help you write better applications and make testing easier? What about all those exotic frameworks? And what the heck is a "container?!" The bad news; this knowledge is a MUST HAVE for most testable applications these days. The good news, they are simpler than you think and besides simply making your code testable will also lead to good architecture practices that will help you develop better applications. This session will explain and demonstrate how these concepts some easy to use frameworks can help make your C# or VB.NET application more loosely coupled, easier to work with, more flexible, more maintainable and more testable.
SelectedJay HarrisRebooting the ASP.NET Franchise100Are you an ASP.NET developer that is tired of the baggage and cruft within the framework? Do you wish you could use OS X for developing ASP.NET apps? Are you new to ASP.NET, but are adverse to installing Windows and Visual Studio? Everything has changed: ASP.NET isn’t just for Visual Studio, anymore. Learn how ASP.NET has broken free from Windows and has turned into a fresh, cross-platform, OS-agnostic framework. Develop ASP.NET applications on your OS, with your editor, in your way. No more compromises, no VMs, no workarounds. Grab some popcorn an experience the reboot of the ASP.NET Franchise.
SelectedJay HarrisDesign for Non-Designers from a Non-Designer100Elegant design requires talent, but talent is not a prerequisite for avoiding bad design. If you lack artistic touch and prefer rules and logic over the ethereal art form, the fundamental tenets of composition can enable you to apply Design as a programming paradigm. Spend an hour with a coder learning the logic of design--hacking pixels instead of bits--and free yourself of your excuse for horrible designs.
SelectedJeff StraussAdding ES6 to Your Developer Toolbox200Web developers constantly look for the latest and greatest ways to hone their craft, but changes come fast. From jQuery to Angular to Ember to React, CoffeeScript to TypeScript, it seems there is always something new. But ES6 is something different. With ES6 we are seeing the evolution of core JavaScript. It includes syntactic improvements and great new features never before seen in client-side code. Linters and transpilers for ES6 are readily available and easy to use. There is no need to wait; learn how to leverage the power of "the new JavaScript" in your applications today!
SelectedJerry NixonAn introduction to Inclusive Design100Inclusive design dramatically increases the potential audience for your software by paying attention to usability, design and features for every user. Inclusive design is an intentional strategy to make your experience better for everyone.
SelectedJoe KuemerleDefense Against The Dark Arts: Application security and you200As more of the world uses the magic of applications to get things done there is an ever increasing threat from those who would use your code to do harm. Security vulnerabilities are real and can have a significant impact on your employment. In this session we will review the most significant threats to your applications and learn techniques to harden your applications against them. We will also cover methodologies that can improve your security standing before you even write the first line of code.
SelectedJoe KuemerleIs your API leaking? Breaking APIs to increase security.200Smartphone apps, single page web applications and most other applications are required to use various APIs in order to accomplish work. While this technology is wonderfully powerful, many developers are unaware of all the ways in which an improperly implemented API can cause data breaches and lead to expensive publicity disasters or compromise of internal systems. In this session we will dive into ways to investigate and compromise web based APIs in order to increase the security and stability of our applications.
SelectedJoel CochranThe Road to the White House Goes Through the Cloud: How data will decide the next President100Today's Presidential campaigns have the technical sophistication of a modern enterprise, the constrained environment of a startup, and a relentless timeframe. Political rhetoric may get air time, but data wins elections. Political operatives use data analytics to target communications, identify supporters, garner donations, organize field staff, drive voter turnout, and predict outcomes. In this session, Microsoft's Campaign Technology Services team will discuss: its role in the 2016 U.S. Presidential campaigns; the Iowa Caucuses and the party conventions; our customers' adoption of Machine Learning, various Azure data platform tools, and the broad implementation of Power BI visualizations.
SelectedJohn BennettBuilding a multi-tenant SaaS application200In this session, we will walk through some of the major considerations when creating a multi-tenant SaaS application, including: authentication, keeping each tenant's data safely isolated, managing complex authorization challenges, and customizing UI and data schemas per tenant. In short: maximizing the cost savings of shared resources, while minimizing the risk that one tenant can affect another, either inadvertently or maliciously.

Our app will consist of a single-page application (SPA) built with React and Redux, backed by an API built with Node and Restify. But the concepts covered apply regardless of what tools you are using.
SelectedJohn BennettDevelop, test and deploy with Docker200Docker has rapidly emerged as the leading container implementation. In this session, we will create a complete, automated dev-test-deploy workflow with Docker, using GitHub, CircleCI, and DockerHub. We will create Docker-hosted environments in both AWS and Azure. The demo application will include three separate components: a single-page web app, a REST API, and a MongoDB database.

You will learn the basics of using Docker locally and in the cloud, your choices when creating a Docker cloud environment, and the gotchas to watch out for. In addition, you'll have a complete set of scripts to use in automating your own Docker-based workflow.

You should have some familiarity with creating and managing resources in either AWS or Azure. Familiarity with Docker is helpful.
SelectedJohn ZablockiDigging for Data in Documents200COUNT(*)? SUM(*)? AVG(*)? Working with non-relational databases requires learning new methods for performing basic data aggregation. This talk will explore the real-time aggregation options available in two popular document databases. Couchbase's SQL for Documents, and map-reduce view engine will be covered, along with MongoDB's aggregation framework. Designing a schema for aggregation will also be part of the discussion. Some experience with a document database is expected.
SelectedJohn PetersenLeveraging the power of dynamic lambda statements200Lambda expressions and Linq in general are powerful tools in .Net. Sometimes, we need the ability to construct lambdas dynamically based on user requirements. In this session, John will review the basics of what expression trees and lambdas are and the techniques you need to construct dynamic lambda statements in your .Net applications.
SelectedJohn PetersenIntellectual Property Fundamentals for the Technologist100Today, more than ever, technologists need to be aware of the basics of Copyright, Trademarks, Patents and Trade Secrets as well as the basics of Non Disclosure Agreements. There's a myth that if something is available on the internet, it's free to copy and use as we please. Nothing could be further from the truth. In this session, John will cover the basics of intellectual property law so that you can be a more informed technology professional.
SelectedJonathan MillsHabits of highly effective JavaScript developers200Javascript is easy to do very badly, but also fantastic when done well. In this session, Jon will walk through some JavaScript best practices to make you a more productive developer. From linting your code, to adhering to common patterns, Jon will give you practical tips to help prevent some common JavaScript troubles.
SelectedJonathan MillsDesign Patterns in Practice200If your experience with design patterns does not venture much past the repository or factory patterns, then this session is for you. Design patterns are often fun to talk about or interesting from an academic standpoint, but many struggle with how to implement them practically in the real world. In this session, I will walk you through the different categories of design patterns and show you practical implementations for many design patterns.
SelectedJohn BrownASP.Net Core - Gettting Started100ASP.NET Core is a familiar yet a whole new way of developing web apps on .NET. This talk will start with Hello World and build a functioning web app to see how each piece of middleware adds to the overall process and allows you to specifically configure your application.

You will learn:
* How to startup your app and prepare the middleware pipeline
* How where and how the configuration of ASP.NET Core is done
* Prepare Entity Framework Core to work with ASP.NET Core
* You will learn how to setup for production configuration
* Where to get started with a new application
SelectedJames SturtevantIntroduction to Service Fabric100Orchestration, automation, and monitoring are just some of the challenges when moving to container technology. Service Fabric is a distributed services platform that solves these challenges and more. It is a battle tested system that is used inside Microsoft for its mission critical applications such as Azure SQL, Document DB, and Bing Cortana - processing more than 500 million evaluations per second. In this session we will explore Service Fabric and see how it helps to solve the challenges of distributed computing.
SelectedKarl ShifflettRapid Xamarin.Forms XAML Data Entry Form Creation from MVVM ViewModel200Come learn how you can rapidly create XAML data entry forms for iOS & Android (via Xamarin.Forms), UWP, and WPF applications using "XAML Power Toys for Visual Studio 2015" (aka the tool), is a free, open source, RAD, data-driven, drag & drop tool for rapidly creating data entry forms for current Microsoft XAML technologies: Xamarin.Forms, UWP, and WPF.

After a lightning fast demo of the tool, we will get everyone on the same page with MVVM, PCL, Shared Projects, and Xamarin.Forms. We'll spend the remainder of the session creating data entry forms with a focus on iOS & Android via Xamarin.Forms, and Windows 10/UWP scenarios.

Gone are the days of tedious XAML editing for data entry forms. This is a free Visual Studio 2015 package that both mobile & desktop developers will enjoy.
SelectedKendall MillerTo The Cloud! How We Moved our SaaS to Azure (and it made us better!)200Two 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.
SelectedKendall MillerScaling Systems: Architectures that Grow200It's harder than ever to predict the load your application will need to handle in advance, so how do you design your architecture so you can afford to implement as you go and be ready for whatever comes your way. It's easy to focus on optimizing each part of your application but your application architecture determines the options you have to make big leaps in scalability. In this talk we'll cover practical patterns you can build today to meet the needs of rapid development while still creating systems that can scale up and out. Specific code examples will focus on .NET but the principles apply across many technologies. Real world systems will be discussed based on our experience helping customers around the world optimize their enterprise applications.
SelectedKevin S. GoffIntroduction to Data Warehousing Patterns 100If you've worked primarily with OLTP database applications and would like to learn more about data warehousing and business intelligence solutions, this session is for you!

I'll cover some of the fundamental concepts (using the Ralph Kimball methodology) and how to implement them using the SQL Server platform. If you're interested in what fact and dimension tables are for, what slowly changing dimensions are (and why you should care), then come to this session!

This is an introductory session and only makes the assumption that the attendee has worked with normalized, transaction databases. I'll take it from there
SelectedKishore ReddyAPI Design Patterns200API design patterns with an emphasis on building Protocol Independent APIs. This involves writing your API 1 time and being able to host the API as both a Web API and also using it on the command line.

- api standardization
- api routing format
- api help and discovery
- api request and response
- api implementations patterns
- api as a logic-less entry-point
- api with protocol independence

Will demo writing your API in Scala as a plain class with Annotations once, and them making it available as both a Web API ( using Akka-Http ) and on the CLI ( command line interface ) shell.

While the concept is language independent, it will include a working example using:
1. Scala
2. Akka-Http
SelectedLee BrandtOpenID Connect in ASP.NET Core100In the age of the “personalized web experience”, authentication and user management is a given, and it’s easier than ever to tap into third-party authentication providers like Facebook, Twitter and Google. And it’s not just the wild, wild web that needs it. Businesses need ways to secure their APIs, and identify users logged into their apps as well. In this session, I will show you how to use the latest authentication protocol from the OpenID Foundation: OpenID Connect. It's a complete protocol that is implemented by several providers and an easy way to secure your web applications!
SelectedChander DhallComparing Javascript FrameworksTake a noun, add .JS to it and you probably have a framework that exists. Have you worked with JavaScript frameworks like Angular, Angular 2, React, Ember, Aurelia, Polymer and other single page app frameworks? We'll take a look at production code, see what each one of them is good at, and what it's not. We'll consider how you can use more than one of these and how they work with other frameworks.
SelectedMatthew GrovesFull Stack Development with .NET and NoSQL200Application development and data storage needs are changing constantly. Today you might find yourself using ASP.NET MVC, but tomorrow you might need to use ASP.NET Core. Maybe tomorrow you find yourself needing to store a more diverse set of data than you did yesterday, creating a challenging data upgrade path. What if you suddenly decide that you need to include a mobile application as well as a web application? How do you prepare your enterprise to be able to accommodate these various technology shifts as the years pass?

In this session we will talk about what is different about this generation of web applications and how a solid development approach must consider the latency, throughput and interactivity demand by users across both mobile devices, web browsers, and IoT. We'll see how to include a NoSQL database in such applications to support a flexible data model and easy scalability required for modern development.

We will see how to create a full stack application that makes use of .NET, Couchbase NoSQL, and AngularJS, but can very easily be altered to meet the needs of your organization should things change in the future.
SelectedTim CoreyJavaScript as a Second Language: Tools and Tips100Starting out in a language can be daunting. It takes a bit to get up to speed. In this session, we are going to jumpstart that process. We will go over some useful tips to make development easier. We will also identify a few key libraries that will help you be more efficient. Be prepared to go quick, since this session will cover a lot of ground (slides will be available). If you code in JavaScript or plan to, this session is for you.
SelectedMiguel CastroExposing an Extensibility API for your Applications200Writing software that can be maintained is and always has been crucial. But so is writing software that can be enhanced and extended. It’s become quite commonplace for many apps today to expose APIs so externally written apps can have access to their data or their services. But imagine how cool it is to expose an API for changing or extending an application’s functionality. I’m talking about the ability to use the architecture of an application in order to enhance that system. This is the power of the patterns and techniques I’m going to show you in this session. They’re very useful and very geeky so bring your propeller hat.
SelectedMitchel SellersEntity Framework the 60 Minute Practical Introduction200Although Entity Framework has been around for quite a while now, many developers have yet to fully experience the power that it can bring to a project. In this session we will take a deep dive into the specifics of working with Entity Framework to manage the data layer of an application. We will start from scratch and build a model, enable migrations, work with migrations and implement queries. Included in all of this will be practical notes regarding production processes with entity framework. At the end of this session attendees should be comfortable with initial implementation of complex data models & operations using Entity Framework.
SelectedMitchel SellersWebsite Performance; Make it Fast to Make it Last200The modern website visitor has very high expectations for the performance of websites and it is imperative that our applications meet this need. The ramifications of an under-performing website can go far beyond customer satisfaction, though, as even the search engines are getting in on the "it must be fast" bandwagon. In this session, we will dive head-first into the in's and out's of website performance. Starting with a practical review of what it means to have a "fast" website and what some key metrics are that can help quantify this designation.

As the session progresses we will evolve into reviewing common site infrastructure issue that can contribute to poor performance and the methods available to quickly identify these items for resolution. After identifying these areas we will discuss the quick fix items and how to get the best improvements the fastest. The session will end with a quick introduction to heavy traffic load testing practices.
SelectedErik NorenDefensive Programming Techniques200Corporate networks are under constant attack and from a practical perspective there is no question of if they'll be compromised but when and how badly. A developer can not rely on firewalls alone to ensure their applications are protected from unauthorized use and simply adding SSL does little to reduce the threat. In this session I'll show how application designs can be altered to make them more resilient to attacks and breaches.
SelectedErik NorenF# for C# Developers200C# is a powerful language that can be used to accomplish practically any task. Even though it can do most things, it doesn't do them all equally well. F# is a functional-first language that can be used to solve some challenges the modern developer faces in fewer lines of code and with reduced code complexity. In this session I will first demonstrate how F# can be leveraged in C# projects to simplify common tasks then build up to more complex examples of its support for asynchronous and parallel processing.
SelectedOren NovotnyCreating packages the .NET Standard way200Learn how to create NuGet packages that work with .NET Core and .NET Standard. This session will introduce the .NET Platform Standard and show how to create libraries and packages that can run anywhere.
SelectedOren NovotnyCross-Platform Unit Testing with xUnit200xUnit allows you to write unit tests that run across all platforms, validating your logic across iOS, Android, and Windows devices. In this session, we'll explore how you can use xUnit for Devices to test shared code as well as platform-specific code, and take a deep dive into the power of xUnit's extensibility engine.
SelectedPaulmichael BlasucciEmbracing the "Common" in "Common Language Runtime"200One of the undervalued strengths of .NET/Mono is the ability to mix-and-match many different languages. And yet, developing libraries for polyglot consumption is a little-known craft. In this example-laden talk (drawn from 18 years of professional experience) we'll learn some of the tools, techniques, and mindset needed to delivery high-quality libraries which are a joy to consume from multiple CLR languages.

(Note: this session assumes a day-to-day familiarity with .NET or Mono, though not necessarily in more than one language. Also, the discussion will be limited to languages "in the box" with Visual Studio... sorry, Cobol.NET fans.)
SelectedPaulmichael BlasucciQuick! Check your Properties (and Write Better Software)100Love it or Loathe it, testing is an unavoidable aspect of developing high-quality software. But there's a world of difference between well-tested code and simply writing tests. Very often, the difference boils down to how you assess the "correctness" of your code. By focusing on software as a mapping from inputs to outputs, property-based testing offers a powerful methodology for testing the logical invariants a piece of code should always uphold, regardless of implementation details.

This session presents a review of FsCheck, a powerful library for doing property-based testing and sophisticated data generation in the CLR ecosystem. In addition to the basic features of the library, attendees will learn about identifying common invariant patterns and building specifications from collections of properties. Time will also be spent exploring how FsCheck can be used to refine domain models and integrate with other popular testing tools. Finally, real-world examples will highlight both the strengths and weakness of this approach to software craftsmanship. While no prior knowledge is assumed, familiarity with the CLR (.NET or Mono) will be helpful.
SelectedRachel ReeseA History of F#: From Euclid to Type Providers100After I switched from C# (a curly-brace heavy object-oriented language) to F# (a whitespace-sensitive functional language) a few years ago, I started to wonder about the history of programming languages and how they evolve. How does a feature in one language influence a feature in another language -- for instance, where did type providers come from? In this talk, I cover the history of the ML family from approximately the dawn of time, eventually focusing on F# specifically.
SelectedRachel ReeseIs functional programming just a fad?100So, is this functional programming thing just a fad, starting to have its 15 minutes of fame? Are there any benefits to learning a functional programming language? Or to switching your development over to a functional language? In this talk, Rachel will discuss several of the considerations and use cases that helped (and a few other companies) decide whether to consider, or fully make the switch to using, a functional programming language.
SelectedRavi OkadeZeroMQ, ZooKeeper and FlatBuffers all in One hour200In this session we will create a high performance Pub-Sub solution using ZeroMQ which can be achieved with a few lines of code. So to fill the remaining part of the hour, we will use ZooKeeper which will help fill the zoo with multiple publishers and keep them all behaving. And we will visit FlatBuffers which will make you wonder if serialization protocols will ever stop evolving.
SelectedRob ZeltA Developer's Look At Microsoft Hololens 200In January 2015 Microsoft announced a new product called Microsoft Hololens, a mixed reality platform based on Windows that mixes virtual with reality. In this session we'll look at a few Hololens demos to show some potential scenarios using the recently released developer version and then dig into some of development tools. No, you will not be able to try it on, but you will see how you can apply many of the tools you may be using today to platform of tomorrow.
SelectedRob ZeltBackyard IoT200From bee hives to the tomato garden, your back yard contains a wealth of information. See how a variety of IoT products connecting to the cloud can feed you a wealth of data about your yard.
SelectedSpencer SchneidenbachGetting Started with Angular 2 and TypeScript100The web world has become increasingly more complex over the past few years. The demand for fast, fluid single page applications (or SPAs) has gone up, along with the seemingly endless number of frameworks used to build them. The most popular among them, Angular 1, took the SPA world by storm seven years ago. Since then, it's been adopted by many developers and firms looking to build rich, feature-fill applications for the web, mobile, and beyond.

Angular 2 looks to continue that trend with a library that is more performant, lighter, and easier to use. In this session, we'll learn about components, directives, services, and dependency injection, as well as the new Angular 2 syntax. We'll also learn about TypeScript, Microsoft's open source superset of JavaScript that enables fast, fluid, fun, and safe development. Learn about some of the features of TypeScript that enable us to rapidly develop and maintain Angular 2 applications with ease, including classes, decorators, and compile-time type checking.
SelectedSpencer SchneidenbachNever RESTing - RESTful API Design Best Practices Using ASP.NET Web API100Designing and building RESTful APIs isn't easy. On its surface, it may seem simple - after all, we're only marshaling JSON back and forth over HTTP right? However, that's only a small part of the equation. There are many things to keep in mind while building the systems that act as the key to your system.

In this session, we'll delve into several best practices to keep in mind when designing your RESTful API. We'll discuss authentication, versioning, controller/model design, and testability. We'll also explore the do's and don't's of RESTful API management so that you make sure your APIs are simple, consistent, and easy-to-use. Finally, we'll discuss the importance of documentation and change management.

The session will show examples using ASP.NET Web API and C#. However, this session will benefit anyone who is or might be working on a RESTful API.
SelectedShiva ChittamuruMachine Learning on Microsoft Azure100Machine learning uses computers to run predictive models that learn from existing data in order to forecast future behaviors, outcomes, and trends that can make apps and devices smarter. Azure Machine Learning Studio is the place where data science, predictive analytics, cloud resources, and your data meet. This talk focuses on the overview of Machine Learning, what's in it for developers, and how Azure ML makes it easy to build accurate predictive models and make your apps smarter.
SelectedMuhammad SiddiqiSwagger for REST based APIs Contracts100REST APIs provides us lots of advantages including JSON based responses and supporting plain HTTP. This simplicity makes it difficult to utilize them for statically typed clients. Swagger allows these services to publish their contracts using the same HTTP. The session would be a deep dive discussing how Swagger can be used for API documentation, discovery and client code generation specially for polyglot development.
SelectedPhilip JapikseBecoming an Effective Leader200Leaders aren't born, they aren't hatched, and they don't apparate. Leadership is a journey, one that involves hard work, practice, and a deep understanding of not only your team members but also yourself. I've led teams large and small throughout my 30 year career, and certainly made plenty of mistakes on the way, But I've learned to fail fast, iterate, and continuously improve to create high performing teams across multiple verticals. In this session I share what I have learned over the years being a leader and being led.
SelectedPhilip JapikseAgile: You Keep Using That Word...200Much like the DOTCOM boom when everyone declared themselves a programmer, once David Norton (Gartner Research) declared agile mainstream on August 26, 2009, you can’t throw a stone without hitting someone who claims to be an Agilista. From the proliferation of “agile” frameworks and certifications, to all of the people who decided to hang out a shingle as a coach, it can be hard to remember what is the essence of being agile. In this talk, I remove the fluff and hyperbole, and get down to the roots of what it means to be agile.
SelectedStephanie HerrDevOps for the Database100We hear a lot about DevOps these days, but what exactly is it and what does it mean for the database? We’ll try to define DevOps and review some of its principles. We’ll also look at how practices like version control, continuous integration, and continuous delivery can be used for the database and what advantages this brings. Ultimately, database releases should be boring and this demo can help you see how to make this possible.
SelectedStephen LeonardEnterprise Mobility – A Whole Different World100Many are surprised when coming from consumer mobility, just how different the operating environment and requirements can be in enterprise-focused mobility. This session will cover enterprise mobility from the typical business requirements though platform architecture, engineering and implementation, leading finally to developing applications on this often fragmented technology foundation.

Enterprise mobility can be very challenging with mistakes resulting anywhere from lost productivity, up though total loss of your proprietary data and, often the client’s trust. An understanding of the enterprise mobility landscape is essential to crafting and implementing a successful mobile strategy upon which to build your business. The topic areas will be applicable for any sized organization including large, regulated and governmental organizations. Once the groundwork is laid, we will focus on what this all means for application development so you can build, and actually implement, the next killer enterprise app.
SelectedIqbal KhanHow to Scale .NET Apps with Distributed Caching200Your .NET applications may experience database or storage bottlenecks due to growth in data volume, session volume/length or size of objects. Learn how to remove bottlenecks and scale your .NET applications using distributed caching. This talk covers:

• Quick overview of scalability bottlenecks in .NET applications
• Description of distributed caching and how it solves response time issues
• Where you can use distributed caching in your application(s)
• Some important features in a distributed cache
• Hands-on examples using a distributed cache
SelectedWill RobertsonBuilding your testing arsenal100A guide to the various approaches and tools available in .NET to test your code complete fashion both for intention and implementation. Talk will cover types of testing, techniques that have worked and not worked, the ‘implementation’ trap and what tools can assist you in writing better tests.
SelectedAndrew ReitanoNESpectre - The Massively Multi-Haunted NES (200)100Learn about how we utilized Node.js,, and Azure to create an interactive multi-user experience in which the audience manipulates a modified NES game console in real-time. Audience members will use their mobile devices to influence the outcome of several live demos. This is a great session for hardware hackers, homebrew cartridge enthusiasts, JavaScript and Python geeks, and anybody who loves a good story about random, 48 hour collaborations and the magic of game festivals.
StandbyBhakthi LiyanageGetting started with Data Analytics with Azure Machine Learning200Windows Azure Machine Learning and Data Analytics platform offers a streamlined experience, from setting up with only a web browser to using drag-and-drop gestures and simple data-flow graphs to set up experiments. Azure Machine Learning Studio is a GUI-based integrated development environment for constructing and operationalizing Machine Learning workflow on Azure and features a library of time-saving sample experiments, R and Python packages, and best-in-class algorithms from Microsoft businesses like Xbox and Bing. Learn how the Azure Machine Learning service in the cloud lets you easily build, deploy, and share advanced analytics.
StandbyEd CharbeneauGiving Clarity to LINQ Queries by Extending Expressions300In this session we'll learn about .Net Expression trees by discovering how they work and applying the knowledge to LINQ using the pipes and filters pattern.
LINQ and Entity Framework are both commonly used in the .Net ecosystem, but even well-written applications can have LINQ queries that are difficult to understand. Because LINQ is so flexible, it can be written in ways that fail to communicate the developer’s intent. Well-written LINQ should be so clear as to be self-documenting. To write clear LINQ, it helps to understand the details of a few LINQ components that improve LINQ’s readability.

We’ll be showing how to use a pipe and filter pattern to make LINQ queries easier to comprehend. We will take a deep dive into expression trees to understand how they work, and how to manipulate them for maximum re-usability.
StandbyJames BenderTDD will set you free!100Test Driven Development (TDD) mean freedom. The ability to bake quality into your application as you develop it can change the way you think about software frees you from the fear of creating applications that are brittle and don't respond well to change. It effects the way we approach, design and write applications. Test Driven Development is powerful. Yet many developers allow themselves to be intimidated by what they perceive as added complexity. Managers worry that the practice of "test first" will delay development. This presentation will explain the concepts behind TDD, outline the benefits, give you some concrete examples of how to do TDD using the C# language and some advice on how to sell it to your managers.
StandbyJay HarrisGrowth: Moving Beyond “Independent Developer”100You’ve made the decision to go out on your own. Do you want to stay an Army of One or do you strive for something more? Spend an hour discussing the obstacles you will encounter if you go it alone and the obstacles you will encounter if you don’t. Learn philosophies that will help you on your way to an Army of Two, from before, to during, and for after your transition to Employer. Move beyond Independent Developer, and switch from “Me” to “Us”.
StandbyJeff StraussModern Web Development Workflow backed by .NET200The client-side toolset is moving faster than the Visual Studio release cycle. While Visual Studio remains king of .NET development, modern web interfaces have shifted away from server-generated HTML and into JavaScript libraries like Angular, Ember, or React. The days of tightly-coupled server-client web frameworks are fading. Break your Web UIs out of Visual Studio; make them the isolated, testable, first-class citizens they should be, just like you would do for your mobile applications. Learn how to create powerful, rich web interfaces using the right tools for the job while retaining server-side logic in the languages you know.
StandbyJoe KuemerleKeeping Secrets: Using Encryption Effectively300We all want to protect data that is entrusted to us. Whether we are required to protect sensitive information because of regulations or just to keep the trust of our users a good understanding of encryption is essential. In this session we will work through common data encryption scenarios and use encryption techniques to ensure that your data stays protected. We will also review common mistakes when using encryption and learn how to avoid them. Additionally, we will discuss techniques to guard against tampering and how to maintain the security of our data over the long term.
StandbyJonathan MillsAngular 2 with JavaScript100The conversion from Angular to Angular 2 can be a steep learning curve. Not only is the architecture different, but the tooling and even the language changes can be daunting. In this talk, Jon will peel back some of those changes and show you step by step, how to get started with Angular 2. We will introduce the tools gradually to help you understand where they go and what purpose they serve.
StandbyJames SturtevantBuilding Resilient Services with Xamarin200Most applications require a backend service to do complex processing. In this session we will see how to build resilient communication with an backend service in the mobile world where we are not always connected to our service. We will focus on techniques like request prioritization, caching and more. By the end of the of the talk you will be familiar with several techniques to ensure your app performs well in all situations and learn about a few C# libraries that enable resiliency in your applications.
StandbyMatthew GrovesI have a NoSQL toaster100NoSQL is a catch-all term that covers a lot of different types of data storage. Is it really helpful to group them together by one thing they don't have? Think about it like this: my toaster is as much NoSQL as any database! So, how can we make more sense of this new breed of database management systems?
In this talk I cover the four main data models that have been part of the past ten years' NoSQL movement: key-value, document, columnar and graph. I explain how they differ and when you might want to use each one.
StandbyTim CoreyJavaScript as a Second Language: Best Practices100If JavaScript isn’t your first language, or if you figured it out on your own, you’ve probably got a few bad habits. Let’s go over some of the biggest best practices for JavaScript so that we are all on the same page. Fixing these habits will reduce the number of weird bugs you find (or don’t find) in your JavaScript code. If you code in JavaScript or plan to, this session is for you.
StandbyMitchel SellersASP.NET MVC & Identity: The Things You Were Never Told200Following the quick start examples it is trivial for a developer to stand up a new ASP.NET MVC application and use ASP.NET identity to handle user authentication and authorization. However, following these tutorials there are many important details that are left out. How do you work within a single DB Context? How do you share your data model with a project outside of ASP.NET MVC? How do you use Dependency Injection with Identity? How about displaying the users name on each page load?

This talk goes into all of the details that you need to truly SUCCEED with ASP.NET MVC and Identity. By sharing a big set of lessons learned, and other helpful insight your next project should be much easier to get off the ground!
StandbyPaulmichael Blasucci(Nearly) Everything You Ever Wanted to Know About F# Active Patterns (but were Afraid to Ask)200This presentation will provide a concise, but thorough, review of one of the more unique features of the F# language: active patterns. Also known as active recognizers, this feature allows one to extend the pattern-matching capabilities of the language. Active patterns may be put to great effect in taming unruly APIs, improving the declarative style of one's code, constructing embedded DSLs, and much more. This talk will be given in a lecture format, interspersing digestible code samples with detailed breakdown of syntax. Additional consideration will be given, time permitting, to appropriate use-cases for active patterns and a discussion of the under-lying mechanics. The review is aimed at advanced beginners who are familiar with F#'s general syntax and usage. Also, while not strictly necessary, those wishing to follow along via computer are encouraged to have, at least, version 2.0 of the core F# tools. Information on obtaining the latest version of F# (for your platform of choice) may be found at:
StandbyWill RobertsonBeginning Aspect-Oriented Programming in .NET200A concise outline of Aspect-Oriented Programming (AoP). Talk will cover .NET/server-side and web/client-side approaches, advantages of the available tooling and the drawbacks of each. Covering basic AoP concepts and best practices for implementing and testing aspects. Participants will understand how using AoP to alleviate the burden of cross-cutting concerns and avoid painful code will benefit your team and your future self.
StandbyGreg ShacklesBuilding Cross-Platform Desktop Apps with Electron100Did you know that you can leverage web technologies like JavaScript, HTML, and CSS to build rich desktop applications for Windows, Mac OS X, and Linux? With Electron you can! Electron uses Chromium and Node.js, which means that unlike what you're used to in normal web development, you can leverage all of the latest and greatest advances in web development without any need to worry about browser compatibility. It's the promise of the web, realized on the desktop. This means you can use things like Flexbox, in addition to bringing along your favorite frameworks such as Ember or React. In this session we'll go over how Electron works, what features it provides, and walk through creating a cross-platform application using it.
StandbyJason FarrellAn Updated Introduction to Xamarin100Xamarin has been around for almost 7yrs now and has evolved from a simple open source project into a legitimate alternative to native iOS and Android development complete with a full stack of tools. Recently, Xamarin was acquired by Microsoft as a way to help .NET developers develop mobile apps by allowing to use C# through a cross compilation mechanism. Xamarin apps are purely native and are able to leverage all of the functionality of the native platform. In this talk we will cover not just the root of Xamarins and its product stack but also take a deep dive into how Xamarin accomplishes what it does. I will explain how the compilation process between Android and iOS differ and what those differences mean for the final output. By the end, attendees will have a clear understanding of what Xamarin is and that there is no difference between a Xamarin app and an app written in the native platform.
StandbySpencer SchneidenbachGetting Started with React and JSX100The web world has become increasingly more complex over the past few years. The demand for fast, fluid single page applications (or SPAs) has gone up, along with the seemingly endless number of frameworks used to build them.

Enter React - a view library created by Facebook that you can use to create composable, maintainable web applications. We'll explore components, the basic building block of a React-backed view. We'll also look at JSX, the language used frequently to create React components.

Finally, we'll touch on some of the decisions you'll have to make as a React developer. React is decidedly "not a (full) framework", so we'll consider where to store data React uses, what routing framework to use, what framework to use for HTTP calls, and more.

Comments on this entry are closed.