Twin Cities Code Camp


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

  • Aaron Erickson

    So Your Boss Wont Let You Use F# - Functional Programming in C#

    by Aaron Erickson

    In this talk, Aaron Erickson covers how to do do F# style functional programming - even when your boss won't let you. C# has many of the tools you need in order to do many things that you would do in functional programming. Everything from immutable structures, Linq to Objects, PLinq, and most importantly, design techniques such as Command/Query separation are discussed in this session that will have you writing F# code using C# in no time!

  • Adam Grocholski

    T4: Stop Coding and Start Generating

    by Adam Grocholski

    Did you know Visual Studio 2008 comes with a code generator? Well it does, and you should learn to use it so you can stop writing repetitive code (i.e. DTO's and DAL's) and generate it. Come to this session to learn about the Text Template Transformation Toolkit (T4). T4 allows you to use simple ASP.NET-like template syntax to generate application source code, configuration files, stored procedures and more. This session will give you all the information you need to start using T4 effectively in your project, TODAY! We will go from basics (such as T4 template syntax) to advanced topics (such as template design and use of T4 in large projects) stopping along the way to create several templates from scratch.

    This will be a PowerPoint free presentation. No slides, just code!

  • Andrew Watson

    Start Developing Flash Applications...for Free!

    by Andrew Watson

    With the open-source release of Adobe's Flex SDK, anyone can start developing Flash applications. It's true that Adobe's tools -- the Flash and Flex IDEs -- help make developing Flash applications easier. But with knowledge of some particular parts of the Flex compiler and Actionscript 3, a person could actually run a professional Flash development business with no up front cost! Join Andrew as he takes you through downloading and configuring the Flex SDK with a particularly cool and free IDE. You'll see Actionscript 3 in action, covering those aspects of the language that will help you make real-world interactive applications. Together you'll make an XML-driven website navigation menu. Come and get your Flash development career started for free!

  • Brian Hogan

    Introduction to Ruby

    by Brian Hogan

    Come learn about Ruby, and how it's much more than Rails. Ruby is a dynamic, fully object-oriented language that borrows from Perl, Smalltalk, and LISP, but provides a clean, simple syntax usable by hobbiests, but enough power to be used by some of the most hardcore metaprogrammers in the world. Ruby has caught the attention of Microsoft, Oracle, Cisco, and Sun, powers sites like and Hulu, and is an absolute joy to work with. In this presentation, you'll learn the fundamentals of Ruby, and you'll see it in action as we build a simple web service using the Sinatra microframework, a static web site with StaticMatic, and we'll test a web site using Cucumber and our browser. Ruby is a lot more than Rails, so come learn about it today!

  • Chris Williams

    Leveraging Social Networking Tools in your Line of Business Apps

    by Chris Williams

    Social networking sites are popping up at an incredible rate. In this session, I'll give a brief overview of some of the more popular / useful social networks and dig into the Twitter API with a demo building a Twitter client app using VB .NET.

  • Donn Felker

    ASP.NET MVC with the Spark View Engine

    by Donn Felker

    In this session the audience will be introduced to the Spark view engine. The Spark view engine is an alternative view engine for the ASP.NET MVC and MonoRail frameworks. The idea of Spark is to allow html to dominate the flow and to allow the code to fit seamlessly into it. We will delve into creating an ASP.NET MVC app with Spark, Visual Studio Intellisense integration, and finally wrap things up by unit testing a Spark view for acceptance testing. To actively participate in this session an understanding of ASP.NET MVC is advised.

  • Dr. Alan C. Jamieson

    Introduction to the Microsoft Robotics Developer Studio 2008

    by Dr. Alan C. Jamieson

    The Microsoft Robotics Developer Studio is a robust and powerful environment for hobbyist, pedagogical and expert robotic design and prototyping. It allows, without any robotics parts, visual feedback of algorithms for a variety of robotic platforms. In this talk, we will walk through some of the more interesting features of the Microsoft Robotics Developer Studio, both the Express version and the Academic/Pro version. In addition, we will work through a simple example project utilizing the Visual Programming Language 2008 Express environment and a LEGO MINDSTORMS NXT robot as well as demo a solution for the Sumo robotics challenge from the 2009 Imagine Cup.

  • Gregory Wurm

    Introduction to Silverlight 3

    by Gregory Wurm

    In this talk we will create three examples of commonly requested flash components but create them in Silverlight. We will create a custom video player, Interactive Photo Gallery and a Dynamic Menu generated from XML. This presentation will be a great way for .Net developers to get into Silverlight or induce Flash/Flex Silverlight and .NET.

  • Jason Bock

    What Will Pex Do?

    by Jason Bock

    Pex is a tool that, at first glance, looks like it's all about testing your code in ways you never dreamed of. However, there's a lot more to Pex than that. In this session, we'll cover the testing capabilities of Pex along with exploring the advanced technologies that come with Pex, such as Stubs/Moles and Z3.

  • Jason Strate

    Backups! Don't Get Caught With Your Pants Down!

    by Jason Strate

    Did you hear about the blog site that disappeared when their system failed and they didn't have a backup to restore from? Or how about the pet supplier that went out of business after a DELETE statement removed everything from their database and there wasn't a backup on hand. These aren't urban myths but rather typical stories that make the news every couple months. Is your company one database failure from collapse? In this session, we'll go over the basis of backups. And also go over the basics and best practices in creating a backup and recovery strategy.

  • Jeff Brand

    Building Peer-to-Peer Applications

    by Jeff Brand

    Explore the world of Peer-to-Peer programming. In this session, attendees will be introduced to the powerful peer-to-peer infrastructure that is present in the Windows platform. Starting with an overview of peer-to-peer networks including graphing, grouping, and secure nodes, the talk will move into examples of building peer-to-peer applications. It will include demonstrations on how to use the PeerChannel infrastructure in WCF to build an appand how to tap into the Peer APIs directly to harness the full power of the P2P platform.

  • Jeff Klawiter

    Extending VS2010: Control your IDE Destiny

    by Jeff Klawiter

    Microsoft has made a giant leap with Visual Studio 2010. Moving to a WPF interface and majorly overhauling the process of adding and managing extensions. The inclusion of the new VSIX package model and built in managed classes for interacting with the Editor. It has never been easier to integrate your interface ideas into your IDE. This track will cover VSIX packages, some of the editor Adorners, debugging your extension and implementing some more advanced features like Menu Commands and Tool Windows.

  • Jon Stonecash

    Fun! Fun! Fun! With ASP.NET MVC View Engines

    by Jon Stonecash

    ASP.Net MVC (Model View Controller) is one the new shiny technologies from Microsoft. We will take a quick tour of the M, V, and C of MVC. While the Controllers and the Models are very nice, the real fun is with the View Engines. That's right! ASP.NET MVC supports a gaggle of different view engines. We will take a look at a representative set of view engines (ASP.NET, Spark, and NHAML in some detail) and a quick "fly by" of other (NVelocity and Brail). We will look at the good and bad of the coding experience, the debugging experience, and the (dreaded) maintenance experience. All of this will be useful input to the selection of a view engine for your next project.

    The secret is that the selection does not have to be exclusive. Fun Fact: you can use multiple view engines in the same application. Funner (OK, Even More Fun) Fact: you can even use multiple view engines on the same web page. Come and see how to make the magic happen. More goodies: see how to write your own view engine for fun and profit; if I told you how easy it was, you might think it was a scam.

    But wait! there is more: in our "Bait and Switch" department, you can see how to switch the view that you that you use in order to support mobile browsers. You can even switch view engines on the fly. Learn how to log data for a subset of web pages (determined by values in your application configuration file) by using a different View Engine. Bring up your mastery of this dynamite technique at your next social gathering and see how many admiring glances you get.

    And there will be unit testing. Yes, even the HTML produced by a view can be unit tested. Sprinkle a little pixie dust on the view, chant "separation of concerns" three times, and be able to verify that goodness of the incoming model has been transformed into even more wonderful HTML. How cool is that?

  • Jordan Terrell

    Domain Driven Design

    by Jordan Terrell

    Domain Driven Design (DDD) has steadily become more visible to the broader software development community, and offers some unique approaches to developing complex business applications. This session will introduce you to the basic concepts of DDD, as well as some updated thoughts by the author of "Domain Driven Design: Tackling Complexity in Software", by Eric Evans. This session will focus primarily on DDD concepts, but will also present an implementation example developed on the .NET platform.

  • Keith Dahlby

    LINQ Internals

    by Keith Dahlby

    Though Language INtegrated Query provides a revolutionary way to write code in C# 3.0 and Visual Basic 9, it is powerless without several enabling language features and libraries. This session will explore the technologies that make LINQ possible and show how you can use the same techniques to make LINQ work for you.

  • Kent Tegels

    Scripting Data Sources and Destinations in SSIS 2008 and SSIS 2008R2

    by Kent Tegels

    In this talk we will example how scripting can be used to leverage atypical data sources with SSIS Data Flows. We will look at how to write a script and library for reading metadata from media files as well as creating custom XML data destinations.

  • Kevin Gisi

    No More Excuses: Test Your Javascript!

    by Kevin Gisi

    Javascript errors are nasty. All too often when a developer writes a web application, they may write fantastic unit and functional tests, but forget that all-important final layer of testing Javascript. Few enjoy debugging scripting errors, so we'll take a look at how to use libraries like Screw.Unit, Smoke, JSpec, and JSocka to help address those typos, errors, and even more dangerous design issues of "Doing the wrong thing right."

  • Mike Benkovich

    Introduction to XAML

    by Mike Benkovich

    Creating a rich user experience involves diving into some unique challenges. How do you work with data from various sources? How do you take advantage of modern media elements? What can you do to integrate all these things into an application that works? XAML provides a powerful schema for approaching the next generation of rich interactive applications both on the PC and on the Internet. In this session, we look at the programming model and tools that developers and designers can leverage to build these true next-generation experiences for consumers and business, and we demonstrate how to use XAML to build rich interactive applications using XAML and Microsoft .NET. We explore how to use Microsoft Visual Studio and Microsoft Expression Blend to create applications and compelling UI using XAML markup, code, controls, and file I/O. We also discuss networking, how to retrieve data from a Web service, and various other aspects of building Silverlight applications.

  • Mike Hodnick

    Audio Synthesis with Silverlight 3

    by Mike Hodnick

    Silverlight 3 offers new power to developers in being able to work with raw WAV audio. In this code-heavy session you will see how to produce raw sound wave forms, work with the sound buffer, and send audio to Silverlight 3. We'll cover topics such as sequencing, blending, peaks, panning, and how to generate a considerable amount of annoying noise through your web browser to irritate co-workers.

  • Nicolaus Bauman

    How Google App Engine Ruined My Life

    by Nicolaus Bauman

    It's 1:07 AM on a Tuesday morning. You're about to run your Python appengine test harness for the 75th time this evening (154 tests in 4 seconds). Your test coverage hovers in the mid 90's percentile. You have to be at work in a few hours. But all you can think about is mainlining superscalable Internet applications. What happened to you? Find out some of the ins and outs of Google App Engine.

  • Richard Moore

    Experiences With Multi-Core, HPC Clusters, and GPU Programming

    by Richard Moore

    Based on our experience at 3M speeding up numerical processing algorithms for image processing and ray tracing we will cover topics related to parallel programming in C/C++ on diverse platforms. By looking at examples using threads, MPI, and OpenMP on multi-core workstations, high performance computing clusters, and Nvidia GPUs we will explore some of the issues with programming multiple cores and the performance gains we have achieved. All the examples will be with Visual Studio 2008 C++ and Windows.

  • Robert Boedigheimer

    Introduction to CSS

    by Robert Boedigheimer

    Do you still use tables to layout your user interface? Do you still use the <font> tag or have presentation information scattered throughout your markup? Learn how to leverage CSS to simplify your web development.

  • Robert Boedigheimer

    Leveraging Client Capabilities with jQuery in Visual Studio and ASP.NET

    by Robert Boedigheimer

    Microsoft has embraced the popular jQuery open source JavaScript library, which is already used by many major web sites. jQuery provides a very productive enivornment for client side programming in JavaScript. It takes advantage of existing knowledge of CSS selector syntax to offer a powerful and efficient alternative to the DOM. The use of operation chaining and implicit iteration lead to a very compact and productive syntax. The library is very lean at a mere 15K, yet provides a strong base and a great extensibility model which has led to a large number of plugin extensions to simplify web development. The session will review how to use the library for very useful features such as watermarks, avoiding browser inconsistencies, and making AJAX calls to the server. Several plug ins will be demonstrated which provide stunning client experiences with as little as 1 line of code! We will also study how to extend the library with our own custom utility funcitons and plug ins. Learn how Jquery and the Microsoft AJAX Library JavaScript libraries greatly simplify client side development, and which to use for particular scenarios.

  • Rockford Lhotka

    Applying the MVVM Pattern in Silverlight/WPF

    by Rockford Lhotka

    Building an app using XAML is different from both earlier Windows and web development models. While there's still room for the MVC and MVP design patterns, the unique capabilities of XAML mean that the Model-View-ViewModel (MVVM) design pattern is often a better option. In this session you'll get a basic understanding of the MVVM design pattern itself, and more importantly will see practical examples of its use in building Silverlight and WPF applications.

  • Steve Hebert

    Managed Extensibility Framework

    by Steve Hebert

    The Managed Extensibility Framework (MEF) keeps showing up in an increasing number of areas. Whether it is heard in the context of Prism, RIA Services, the MVC framework or even Visual Studio 2010, MEF is mentioned as a core enabling technology. Some people have even used MEF as an IoC container. In MEF everything is an extension and everything is an extensible – including the extensions themselves. This introduction is focused on describing what MEF is (and equally important - what it isn't), we'll walk through a real-world scenario of changing an application to use MEF and get a glimpse at how MEF will change how we think about application composition.