Twin Cities Code Camp


Due to the Covid-19 pandemic, Twin Cities Code Camp has been postponed until April 2021.

  • Aaron Erickson

    F# > C# - What F# Does That You Can't (Easily) do in C#

    by Aaron Erickson

    You have heard the arguments. When you get down to it, it is all IL, right? Doesn't that make C# and F# the same? Hogwash! In this talk, we will explore those areas where F# has distinct advantages over F#, including:

    • Immutability by default
    • Domain on a page
    • Pattern matching
    • Computation expressions
    • The eradication of null

    Use what you learn from this talk to be able to, very confidently, make the case for F# to your friends, your colleagues, and greater "powers-that-be". Or at least understand why you should stop putting off that nagging "finally learn F#" to-do item that has been in the back of your head all these years.

  • Adam Grocholski

    You Can Do What in Windows Azure?!

    by Adam Grocholski

    You already know you can run your .NET based web sites, service, and applications on Windows Azure, but this only scratches the surface of what you can do. Encoding video with Expression Encoder, hosting adaptive streaming video in blob storage, hosting multiple web sites, enabling remote desktop, creating a VPN and more are all possible with the Windows Azure platform. In this demo intensive session I'll show you how to do these things and more to unleash the power of Azure.

  • Avonelle Lovhaug

    Making the Leap to Freelance Programming

    by Avonelle Lovhaug

    Have you ever felt like your day job just might not be for you? In this session, Avonelle Lovhaug will cover all the basics that you need to know to start your own freelance programming business. You'll learn how to find your perfect client, some non-sleazy marketing techniques, and how to get paid what you're really worth. We'll also cover setting rules and boundaries for your business, and some ideas for regular income that can help you to avoid the feast or famine cycle that plagues most freelancers.

  • Avonelle Lovhaug

    Software Estimating Tips from the Trenches

    by Avonelle Lovhaug

    "When will it be done?" is the question most dreaded by software developers. You may think the most important tools for creating software estimates area crystal ball and a divining rod, but there is a better way that won't involve magic. Plus, accurate software development estimates can enhance your professional image in your organization, and make life better by eliminating the mad dash at the end of the project. This session will improve your estimating accuracy by teaching you several techniques that I've learned through my 16+ years as a software consultant. It will also show you how to handle situations where an accurate estimate isn't possible.

  • Brad Candell

    Digging Deeper into jQuery

    by Brad Candell

    Have you found yourself leveraging the power and flexibility of the jQuery framework more and more? Are you looking for ways to take a basic understanding of the core features, and improve upon them? In this presentation, we are going to focus on a few of the more advanced topics surrounding jQuery with the intent of improving the efficiency of your development cycle, the usability of your application, and your reliability through testing. Look forward to learning about Ajax, plugin development, theming (theme roller), client-side validation, data templating, the jQuery Mobile Project, and unit testing. Viva-la-Highlighter!

  • Brent Edwards

    Getting Dirty with Windows Phone 7

    by Brent Edwards

    You've downloaded all the tools and know how to publish an app for Windows Phone 7. The IDE is ready to go and you have a killer idea. Now what? In this session, we will talk about many of the key concepts you will need to understand to develop good applications for Windows Phone 7. This will be a code-heavy session where we will be getting our hands dirty to illustrate these foundational concepts in action.

  • Brian Gorman

    Introduction to Design Patterns

    by Brian Gorman

    In this session, we'll discuss popular and powerful design patterns, including the Strategy pattern, Decorator pattern, and the Factory pattern. We'll use C# as our language of choice during this session, however design patterns are language agnostic, so any object-oriented programming language can implement these patterns. Design patterns are very useful in your projects because they allow for more robust solutions while minimizing the pain of maintenance and trouble-shooting, as well as minimizing (eliminating?) repetitive code.

  • Brian Gorman

    Introduction to WCF Rest Services

    by Brian Gorman

    In this session, we'll discuss ground-up implementation of WCF Rest as a powerful tool for interaction between projects and the database. We'll start by implementing a service for error logging, and show how this service can be hosted in IIS, through a windows service, and via AppHarbor. We'll focus on the methods that need to be created, how to configure the service, and how to interact with the service. We'll conclude by showing how to build a reusable library to easily implement server-side ASP.Net and Winforms client interaction, as well as discuss using JQuery to interact with the service on client-side web pages. Projects will be built in

  • Brian Hogan

    Web Development Recipes

    by Brian Hogan

    Modern web development takes more than just HTML and CSS with a little JavaScript mixed in. Clients want more responsive sites with faster interfaces that work on multiple devices, and you need the latest tools and techniques to make that happen. Our talk will include some web development recipes to get you introduced to some of the best tools for web development. This talk is not focused on a specific language, but is targeted for the modern day web developer. We'll cover topics that can be used with most modern day frameworks and languages, so you can expand your .NET, PHP or Ruby site to have some fun new features.

  • Brian Hogan

    Web Development with CoffeeScript and Sass

    by Brian Hogan

    The web runs on CSS and JavaScript, but JavaScript can be clunky, and CSS is a mess. Sass and CoffeeScript take these technologies and crank them up. In this talk, you'll learn how to use CoffeeScript to build JavaScript applications using a concise but powerful syntax. And you'll learn how to make your CSS much easier to maintain using powerful Sass features like variables, functions, and iteration. Then we'll discuss how to build these into your workflow so you can take advantage of them right now.

  • Brock Noland

    Common and Unique Apache Hadoop Use Cases

    by Brock Noland

    OK, so you are aware what Apache Hadoop is, but you are struggling to understand where and when it should be used? Is it a replacement for the database, part of the "cloud", or useful for my problems? In this session we will briefly discuss common Hadoop deployments both physical and virtual and then follow that up with an in depth discussion of the code which implements two common use cases and one unique use case. Learning by code, we will pick apart Data Warehouse Integration, Cheap and Deep Storage, and Stitching Maps Together. All attendees will be given the code discussed in class and a downloadable virtual machine ready to execute the code examples discussed in class.

  • Brock Noland

    Introduction to Apache Hadoop

    by Brock Noland

    Are you Hadoop curious? If so, this session is for you. Apache Hadoop and "big data" are the hottest buzz words in the IT space. In this session, we will discuss the Hadoop architecture and then dive right into working code examples to solve increasingly complex problems. The problems we intend to tackle are word count, analytics, and finally handling updates with no random write functionality. All attendees will be given the code discussed in class and a downloadable virtual machine ready to execute the code examples discussed in class.

  • Chad Kulesa

    What Can Windows Workflow 4 do For You?

    by Chad Kulesa

    You've probably heard of Windows Workflow, and maybe even tried it out. But you weren't sure what to use it for, or how to use it properly. Perhaps you wondered why you'd want to use Windows Workflow instead of just writing code. In this session we will go over the basics of using Windows Workflow. In addition, we will cover some common use cases where Windows Workflow can simplify development and save you time while increasingthe flexibility of your software.

  • Christopher Hertel

    Samba in the Age of Microsoft Glasnost

    by Christopher Hertel

    Microsoft recently announced Version 2.2 of the venerable SMB network file system protocol. Features of SMB2.2 include multipath support, cluster capabilities, distributed caching, and SMB over RDMA--cool stuff. How will these advanced features impact the storage market, and what jobs are likely to be created? How will the Samba Team--which was at one point ahead of Microsoft in clustering features--respond? Most of all, what does SMB2.2 actually look like on the wire and how do coders break into the illusive SMB/CIFS/SMB2 development community?

  • David Berry

    Understanding Relational Databases for Maximizing Application Performance

    by David Berry

    Database performance remains a critical factor in overall application performance and scalability. This session is targeted at application developers who wish improve their understanding of database performance and how applications interact with the database. This session will target SQL Server, though the concepts are applicable to most large scale enterprise databases. This session will focus on how to query SQL Server's Dynamic Management Views (DMV's) to identify the performance bottlenecks in an application. It will also cover how to interpret how the database is processing your queries and how to tune your queries to run faster. Finally, I'll cover some of the most common database performance issues encountered by application teams and discuss some strategies for addressing them.

  • Jaim Zuber

    Introduction to iPhone Development with C# & MonoTouch

    by Jaim Zuber

    "Great job with your MVC/Sliverlight/Whatever app! We're going to need that on the iPhone too. How long will that take?" Have you run into this question yet? You will. This session will help you wade through the staggering number of development options available and give you the info needed to make the right decisions for your Client, Product or Organization. We'll start with an overview of the Mobile ecosystem and the basic concepts of the Cocoa Touch framework. From there we'll dig into MonoTouch and show the power and flexibility it provides over native Objective-C development. We'll also give a tour of some time saving libraries like MonoTouch.Dialog that, well, just make our lives easier.

  • Jamie Miley

    Microsoft Dynamics CRM Development and Integration

    by Jamie Miley

    Microsoft Dynamics CRM development has become a highly sought after niche skill in the .NET space that is probably second only to SharePoint development right now. We will cover the fundamentals of Microsoft Dynamics CRM development from both the client-side and server-side perspectives and we will also explore how this versatile platform can be easily integrated with Microsoft SharePoint and Microsoft Azure.

  • Jason Bock

    Static Analysis in .NET

    by Jason Bock

    We all want to have someone else review our code to make sure it's written well. Wouldn't it be even better if we can have that review process done automatically? In this session, you'll see how you can use static analysis tools (like Code Analysis/FxCop) to find all kinds of implementation issues before they show up in a release. You'll also find out how to manage rule sets in Visual Studio, and find out how you can create your own custom rules.

  • Jeff Brand

    Expression Blend for Developers

    by Jeff Brand

    This session will take a look at why XAML developers should be using Expression Blend. Focused on apps that use MVVM, we’ll take a look at things like sample data, markup based dependency injection, styling, templating, and more.

  • Jeff Brand

    Windows Phone Development with "Mango"

    by Jeff Brand

    This is an introduction to developing an application on Windows Phone "Mango". After a brief introduction to general development and tools, the session will spend time looking at the new features of the Mango release.

  • Jeff Klawiter

    Silverlight Motion Detector for Windows 7 and Windows Phone

    by Jeff Klawiter

    Ever want to know if someone is heading towards your cube/office/domicile before they appear behind you scaring the crap out of ya? Here's your chance to learn how to build a motion detection application yourself. Using the Native Extensions for Silverlight and Silverlight Out Of Browser we will build a program that will utilize features of Windows 7 to let you know when motion was detected. As an added bonus we will go over porting the application to Windows Phone 7 Mango taking advantage of the new raw camera access.

  • Jon Stonecash

    HTML5 Graphics: Pretty Pictures for Practical Processes

    by Jon Stonecash

    With the advent of HTML5 modern browsers can create advanced graphics on a web page. The <canvas> and <svg> tags allow the web page to create sophisticated charts and diagrams. These images are more than just pretty pictures. It is possible to allow the user to interact with these images and to have these interactions affect the more traditional elements of the web page such as form, input and control elements. This presentation explores the possibilities and the mechanisms for integrating interactive images into line of business web applications, using the canvas and SVG elements plus a liberal dose of jQuery and JavaScript. The framework for demonstrating these techniques will be ASP.NET MVC but the material can be used in any web server technology.

  • Jordan Terrell

    Exodata: Ioc for Data

    by Jordan Terrell

    Inversion of Control (IoC) frameworks and libraries abound for the .NET framework. These are very useful for decoupling service providers from service consumers. Exodata takes this concept of decoupling providers from consumers and applies it to data retrieval. An enhanced vocabulary for IoC in general will be introduced and numerous code examples will be presented to explain what Exodata is, how it is implemented, and practical ways that it can be used in real projects.

  • Jordan Terrell

    Practical Monads in C#: Maybe

    by Jordan Terrell

    Blog posts and videos have had much to say about Monads. Learning about Monads often leads to explanations full of complex mathematical and Haskell notations. This talk will show the practical side of Monads - how they can be used in everyday programming tasks. A brief amount of time will be spent on what a Monad is and what it is not, as well as what Monads already exist in the .NET framework. This talk will focus on demonstrating an implementation of the Maybe monad in C#, Maybe<T>, and specific examples on how it can be used in your projects.

  • Judah Himango

    KnockoutJS: Web Development Bliss

    by Judah Himango

    Oh yes. Web development is evolving, and KnockoutJS is at the fore, granting you powerful new capabilities like HTML data-binding, templating, automatic UI refresh, and implicit dependency tracking. Minimizing classic pains in web dev, Knockout lets you say goodbye to ugly DOM manipulation, begone to UI state tracking, and hello to clean object-oriented JavaScript. In this code-heavy session, you'll learn how to use Knockout's secret arts to build web apps that stand above the fold.

  • Justin Chase

    Creating DSLs with meta#

    by Justin Chase

    There has been a surge in conversations about Domain Specific languages and DSL technology in the last couple of years. This talk is for language enthusiasts and those curious about how they can harness Domain Specific Languages today. I will talk a little bit about what DSLs are and why you should be interested in them and then delve into how you can use meta# to create your own DSLs.

  • Keith Dahlby

    Distributed Version Control: Attack of the Clones

    by Keith Dahlby

    Everyone needs version control, but does it really matter what you use? As distributed systems like Git and Mercurial have taught us, it turns out it matters quite a bit. This talk will review the core concepts of distributed version control, show off a few advanced features you didn't know you needed, and discuss options for getting started now rather than later.

  • Keith Dahlby

    Getting Func-y with C# and F#

    by Keith Dahlby

    Despite its genesis nearly 60 years ago, functional programming has only recently reemerged as a core technique in mainstream languages. This session will contrast the functional style with imperative and object-oriented programming and dive into real-world examples of how it can be used to solve common problems in C# and F#.

  • Ken Sykora

    So You Want to Create Your Own Rock Band Tracks

    by Ken Sykora

    Having its roots with Guitar Hero, Rock Band has become the preimiere musical genre video game. With hundreds of songs available for download already, there are always room for more awesome tracks. In this session, you'll be walked through the building blocks of authoring tracks for the Rock Band Network, from the tools, to the authoring, to play testing, to releasing a track on the RBN itself.

  • Kenny Goers

    Cross-Platform Mobile Development for the Enterprise: Building Applications with .NET/C# and Mono

    by Kenny Goers

    The mobile world has collided with your enterprise and now you are being told all your internal applications need to go mobile, and depending on your environment, it might be iPhones and iPads with iOS, Android phones or tablets, Windows Phones and maybe HTML5 with anything else. Worst of all, most of the custom code you write is in C# and who has time to learn and support Java, ObjectiveC and C#? Well, we've got some answers for you using MonoTouch, Mono for Android and .NET/C#. In this session we will build an MVC application with common Models and Controllers, but will device specific Views for iOS, Android and Windows Phone 7 and if time allows a HTML5 interface as well. Hold on it will be a wild ride!

  • Kevin Hakanson

    Implementing Messaging Patterns in JavaScript Using the OpenAjax Hub

    by Kevin Hakanson

    Is your web application a tightly coupled, DOM event handler mess? Use techniques from the Enterprise Integration Patterns book to build better components. Concepts including Message, Publish-Subscribe Channel, Request-Reply and Message Filter will be demonstrated in JavaScript (along with corresponding QUnit tests) using the OpenAjax Hub.

  • Kevin Moot

    Intro to HTML5 Canvas: A Crash Course

    by Kevin Moot

    We will unlock the HTML5 <canvas> element and illustrate what can be accomplished via its 2D API. Following a brief history of canvas, we will cover basic drawing commands, matrix transformations, image processing via pixel manipulation, real-time video effects, and show a step-by-step example of how to construct an animated scene in canvas. The talk will also feature a comparison other web graphics technologies such as Flash, and highlight the applications best suited for canvas.

  • Kurt Christensen

    Writing Clojure Macros

    by Kurt Christensen

    Clojure is a relatively new dialect of Lisp which runs on the JVM as well as the CLR. Perhaps the most powerful feature of Lisp is its ability to define macros to create syntactic abstractions. In this presentation, Kurt Christensen will explain what macros are and why you might want to create them, along with some tips and tricks for writing and debugging Clojure macros.

  • Larry Louisiana

    Windows Identity Foundation (WIF)

    by Larry Louisiana

    An introduction into claims based authentication and SSO. We will discuss what SSO is in the realm of WIF (no pun intended). We will discuss some of the ins and outs of how to get this set up, as well as where to go for help.

  • Larry Louisiana

    XNA-Based Game Engine

    by Larry Louisiana

    We will talk slightly about what XNA is and does then we will dive into the internals and code a IOC based XNA base framework and develop a little game all in the session. We will cover IOC in XNA, the component based approach to game development and general XNA pitfalls. We will create a simple side scrolling space ship game, then show how to improve it.

  • Loren Halvorson

    Introduction to Powershell

    by Loren Halvorson

    Learn how to use Powershell to automate just about anything. We will learn to use the Powershell discovery, object manipulation, and transformation utilities and demonstrate how to script against .NET, COM, WMI and XML. We will also see how easy it is to host Powershell in your own application, and much more. Real examples of using Powershell to automate tedious developer tasks will be explored.

  • Matt Christian

    Modding The Elder Scrolls IV: Oblivion

    by Matt Christian

    Just in time for the release of the anticipated game The Elder Scrolls V: Skyrim, learn the basics of the tools Bethesda used to build the last entry in the massively successful role-playing series, The Elder Scrolls IV: Oblivion. This session will provide an introduction to The Elder Scrolls Construction Set and include developing quests, writing game scripts, and implementing custom dialogue.

  • Mike Benkovich

    What's New in Windows Azure Release 1.5

    by Mike Benkovich

    Windows Azure is Microsoft's Cloud Solution for Platform as a Service (PaaS) that allows developers to build solutions that take advantage of the scalability, performance and distribution promises of the cloud. In this talk we'll dive into what is new with the latest release of the SDK, the tools for Visual Studio, and the Management Portal. We will explore how to deploy, configure and scale applications, as well as explore new features like Geo Replication, Traffic Manager and the Service Bus.

  • Mike Hodnick

    Level-Up Your Win7 Kinect Apps

    by Mike Hodnick

    You've downloaded the Kinect SDK for Windows, you've played with the samples, and you've even written your own crude Kinect app in Windows 7. In this 200-level session we'll take Kinect programming to the next level and discuss qualities of motion-based Natural User Interface (NUI) apps that will help turn your Kinect app into a pleasing user experience. We'll talk about good patterns for incorporating the Kinect runtime in WPF applications, how to deal with noisy background user traffic, speech recognition, creative ways to utilize the runtime, and other topics

  • Nazmul Siddiqui

    WCF Web API

    by Nazmul Siddiqui

    The REST service model has progressively gained industry wide exposure and WCF support for it is no different, as it continues to inch toward becoming a first class service model within the WCF environment. Web API is effectively the next WCF iteration for REST support. While Web API offers a more comprehensive feature set on par with SOAP based service models, upgrading from existing WCF REST model to the Web API model is practically painless. The nearly ground up Web API service model intends to bridge any remaining gaps when compared to its SOAP counterpart and push the envelope. We'll introduce and explore the API in some detail with discussions, demos, and samples.

  • Scott K. Davis

    MVVM Light Toolkit

    by Scott K. Davis

    The MVVM design pattern quickly became the defacto approach for building WPF and Silverlight applications. But, are you also using the MVVM Light Toolkit? The MVVM LightToolkit helps to avoid memory leaks, creates safe property notifications, allows for flexible eventing, and more. Most importantly, MVVM Light Toolkit is a small resource that can be added to any existing project without requiring rearchitecture of your existing code. In this session we will explore the benefits of using the MVVM Light toolkit in your WPF, Silverlight, and Windows Phone applications.

  • Steve Peterson

    Building Metro-style applications for Windows 8

    by Steve Peterson

    A few weeks ago, Microsoft released details on Windows 8 for developers. Come to this session and learn about different approaches for building Metro-style applications for Windows 8, from a member of the Visual Studio / Expression engineering team.

  • TBD

    Introduction to Cross-Platform .NET Development

    by TBD

    The .NET framework is perhaps the most extensible, and stable way to go about cross-platform development. Unlike native languages, it offers a byte-code which can be JITted to high-performance native code at runtime, and offers near-native speeds on various platforms such as Windows Phone, Windows 98-Windows 7, Windows 8, and Linux. Although the same byte-code can be run on all platforms, the difficulty is often finding libraries that will work on all these platforms, without the need to re-write your code for each one. In this session, I will be introducing a cross-platform library, which works seamlessly across all these platforms, and can be used to write high-performance games, and other 3D applications for all the platforms above. This project is currently available as an open-source library on Github, and anyone is welcome to contribute to it.

  • Todd H. Gardner

    Introduction to Unit Testing: Making Developers Happy and Software Awesome

    by Todd H. Gardner

    Are there dark, scary corners of the code you fear to tread? Do bugs multiply when you squash them? Unit tests provide constant developer feedback that will make developers happy, and your software awesome. This session will introduce the concepts and structure of Unit Testing with examples in C# and Javascript.

  • Vince Bullinger

    A First Look at Silverlight 5

    by Vince Bullinger

    Microsoft recently released the first release candidate for Silverlight 5. In this session, we'll go over all of the most interesting new items in Silverlight, including 64-bit support, Postscript-based vector printing, MediaCommand support, the DataContextChanged event, in-browser trusted applications, PivotViewer control and power awareness for media apps.

  • Walker Wilkins

    Javascript: History and Functional Awesomesauce

    by Walker Wilkins

    Javascript has been one of the most hated languages of modern times, but the emergence of ajax has forced people to *gasp* actually learn the language. I'll talk about the history of javascript from it's origins to the present and review the parts of javascript that have allowed many developers to call a truce in the javascript hate war and use it for serious web development. We'll focus on prototypical inheritance and Javascript's features derived from functional programming models. At the end, we will look at one terrible peice of code and transform it into something much better.