Twin Cities Code Camp


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

  • Aaron Erickson

    The Intersection of F# and LINQ

    by Aaron Erickson

    LINQ is a functional language within C#. However, with C#, you are only touching the tip of the iceberg with LINQ and functional programming. Leverage the power of F# to really superpower how LINQ can work for you.

  • Chris Johnson

    Becoming a Documentation Ninja

    by Chris Johnson

    Presentation Materials

    Have you ever wondered if their was an easier way to maintain your documentation? Would you like to be able to generate custom documentation at the push of a button? DocBook is a great tool for creating and maintaining documentation. DocBook allows you to keep all of your documentation consistent and up to date with ease. DocBook is "a schema (available in several languages including RELAX NG, SGML and XML DTDs, and W3C XML Schema) maintained by the DocBook Technical Committee of OASIS." In this session we will show you how to set up a DocBook project and use it to its full potential for you and your company. We will show you how to use the DocBook build chain to produce custom documents to ship to your clients and use the same files to build different documents for your developers.

  • Chris Sutton

    Rendering Great Client-Side Controls With ASP.NET MVC

    by Chris Sutton

    This talk assumes you know the basics of the ASP.NET MVC framework.

    Since ASP.NET MVC gets rid of Viewstate and the postback model, most existing server controls aren't very useful for MVC related development. The ASP.Net MVC team has built in a whole set of helper methods to accelerate building your views, but there is more that can be done to make ui design more effective in the ASP.NET MVC framework.

    In the newer generation of browsers (Internet Explorer 7+, Firefox 2+, Safari 3, Opera 9 and Chrome .2) there has been significant improvements with JavaScript rendering speed. This means that rendering controls on the client side is much more feasible and efficient. We're going to leverage functionality and components from two different JavaScript libraries (jQuery and YUI), to make our ASP.NET MVC websites more expressive and functional.

    Most of the techniques used in this talk with YUI and jQuery could be used in Webforms development with a little modification.

  • Chris Williams

    XNA Overview

    by Chris Williams

    This session will cover what XNA is (and isn't) along with what's needed to develop with both XNA 2.0 and the 3.0 beta. We will also cover key differences between the two versions along with the features and limitations of each. Target platforms of Windows, XBOX 360 and Zune will be discussed. We'll go through some demos and take a look at some code, identifying key aspects of the XNA Framework and game development.

  • Clint Edmonson

    Advanced OO Laws & Principles with .NET

    by Clint Edmonson

    Presentation Materials

    This talk introduces key object-oriented laws and principles currently used in our field and provides guidance for their use when building applications on the .NET platform.

  • Corey Miller

    From Scratch to Finish: Building an Application That Interacts

    by Corey Miller

    Presentation Material

    In this session I'll build an application from scratch to finish, skipping through the basics and jumping into advanced techniques to get the most out of Silverlight 2. I'll build an interactive image viewer and slideshow presenter in VS2008 that will cover advanced techniques that range from custom controls using the parts model to local storage for personalization.

  • D'Arcy Lussier

    So What is Biz Talk Anyway?

    by D'Arcy Lussier

    We've all heard of Biz Talk, but not many of us truly understand what Biz Talk is and how it fits into a larger solution. In this session we'll take a tour of the features of Biz Talk and give attendees a good starting point to learn more about the product and how it might play into their solution plans.

  • David Baldauff

    Demystifying Analysis Services 2008

    by David Baldauff

    Need help understanding Analysis Services and would like to get a quick introduction and basic understanding of what Analysis Services is? This presentation is going to go through Analysis Services in very simple terms so that first and foremost, everyone comes away with a good understanding of what it is, what Analysis Services does, and what you as the developer can do with it. If you have been frustrated with attempting to understand the basics of Analysis Services, then this presentation is for you!

    We will cover the following basic components of analysis services and what each of them do: star schemas, dimensions, facts, measure groups, calculated measures, aggregations, and more. We will also cover what the basic processing mechanisms involved are for processing dimensions and measure groups. We will build a simple cube and browse the cube, so you can see the how and the why. You will come away from this presentation with a solid understanding of what Analysis Services is, when you might want to use it, and how to manage it.

  • David Pinch

    A Survey of Future Operating Systems

    by David Pinch

    This presentation will compare three operating systems built around a managed (.NET) kernel: Microsoft Singularity, SharpOS, and Cosmos. Singularity is an effort from the Microsoft Research Group; Cosmos and SharpOS are open source kernels. All three kernels are under development but already provide an insight into the future of computer systems and design. This presentation will discuss the approaches behind each kernel and then demonstrate how to compile and create applications for each.

  • Donn Felker

    Smooth Operator: Using the Workflow Rules Engine Within WCF

    by Donn Felker

    Presentation Materials

    Ever changing business logic requires rule systems that are flexible to business demands. The majority of the time the business requires that these rules systems must be consumable by other applications. Come see how we can utilize the Rules Engine within Windows Workflow Foundation to evaluate our rules and simplify our rules configuration. We will then encompass this functionality within a Windows Communication Foundation Service which will enable consumers to utilize the service.

  • Jason Bock

    Exceptional Development: Dealing With Exceptions in .NET

    by Jason Bock

    Presentation Materials

    .NET provides a rich mechanism for creating and handling errors in software. Yet it can be (and has been) abused and manipuated (sometimes in very subtle ways) in the name of "reliable code." In this session we'll cover exceptions: how they are created, when should they be handled, and what are some best practices to follow.

  • Jeff Brand

    Building MyTube with Microsoft Silverlight 2

    by Jeff Brand

    In this session, we will look at using Microsoft Silverlight and Silverlight Streaming to build your very own online television station. The session will show how to encode and host video on Silverlight Streaming, build a online media player using Silverlight including how to design and develop the experience using Visual Studio and Expression Blend. It will also look at using web services to provide data to the media player to show a video catalog.

  • Jeff Klawiter

    PICK/Multivalue 101

    by Jeff Klawiter

    If you are thinking, "What the hell is PICK?", you are not alone. This Database/Runtime/Operating System has been around for over 40 years and is still going strong. Many companies don't realize what they are running, only that it has served them well for decades. Companies like IBM are bringing the system into a new age with U2. This session will cover the fundamentals of PICK, how data is stored, accessed and manipulated. This system is seeing it's features resurge these days in the form of Multivalue columns in Access 2007 and CLR in SQL Server. Join in on learning the fun and pain of developing in this widespread but often forgotten system.

  • Jeff Knutson

    Why Should Developers Care About Security?

    by Jeff Knutson

    Presentation Materials

    Security. The very word generates strong reactions from ALL developers, most often negative. Is security really such a bad thing? Is security hard? As a rank-and-file developer, why should I care about security? In this session, I will talk about reasons to care about security, show how to find security holes in applications, show ways to fix these holes, and demonstrate techniques to improve the application security. This session assumes no prior working knowledge of security, encryption, or any other $0.25 words that seem hard. Think of this session as application developer security 101.

  • Jim Ferguson

    Build a Better MOSSetrap: Getting Started with SP Development

    by Jim Ferguson

    So you've been messing around with SharePoint for a while and have had the MOSS Epiphany that there is room for improvement, and being a developer you are thinking "I bet I can build that better MOSS solution and make a million bucks," but are not certain how to get started or what to watch out for...Carpe Dev-em! In this session we will spend a bit of time on Tools of the Trade, then move into development, gotchas (lessons learned from writing the SSPSCOPEDEPLOY tool), and time permitting look at deployment and packaging.

  • Johan Wettstrom

    Entity Framework - Building Applications On Top Of It

    by Johan Wettstrom

    What are the components of Entity Framework? How can you implement an application using Entity Framework? This presentation will show what Entity Framework is and how to build applications on top of it.

  • Jon Stonecash

    Software Evolution: Inversion and Injection

    by Jon Stonecash

    Presentation Materials

    Useful software evolves and adapts to changing needs. This continuing change cannot happen if the software design and implementation is riddled with dependencies: A change to module A triggers changes in B and C, that collectively, trigger more changes in D, E, F, and G and so on until the software explodes. This sounds like a terrific special-effects movie but a very bad information technology experience. There are design practices that build "fire walls" that isolate one part of the software from other parts, but ultimately the question becomes, how can one part of the software invoke the services of another part without becoming dependent on that other part? This sounds very much like a Zen riddle: "What is the sound of one hand clapping?"

    Enter the twin concepts of Inversion of Control and Dependency Injection. With Inversion of Control, when a particular module of the software is dependent upon a particular service, say logging, that dependency is abstracted down to an interface. Any invocation of the logging function is made against the interface. Before the module can execute, it must obtain a reference to an object that implements the interface. There are a lot of ways to accomplish this: 1) passing the reference as a part of instantiating or invoking the functions of the module, 2) returning the reference from a factory method, and 3) injecting the dependency reference as part of a Dependency Injection framework.

    We will look the design patterns for Inversion of Control and demonstrate code that uses the following Dependency Injection frameworks:

    • Castle Windsor
    • StructureMap
    • Unity
    • Spring.NET
  • Josh Heyse

    Core: An Aspect Oriented Business Objects Framework

    by Josh Heyse

    Learn about aspect-oriented design patterns and how they can be used to quickly add common functionality to your business objects. Aspect-oriented programming allows for the separation of true business logic and the code written allowing interaction with user interfaces. The Core framework is a generation model that dynamically adds common services, such as logging, auditing, persistence, and security to business objects. Aspects, or behaviors, are requested using attributes or configuration files which allows services to be included only where necessary eliminating overly bloated objects; tailored for the environment into which the object is loaded.

  • Juan Larios

    SharePoint Event Receiver Magic!

    by Juan Larios

    Presentation Materials

    SharePoint has a multitude of aspects that provide several levels of development; One of these is through Event Recievers. They allow you to add further functionality to the existing product which is the foundation of SharePoint Development. SharePoint will not address all the requirements your business is looking for, but it does allow for customized solutions in order to meet the needs of your business. SharePoint Event receivers are not overly complicated, but there are several outlined steps for deployment and usage that need to be taken into consideration, and are worth exploring. In this workshop, I will cover:

    • 1) Function of Event Receivers
    • 2) Definition Files (eg. Feature.xml)
    • 3) Developing Assemblies
    • 4) Deployment Strategies
    • 5) Issues to be aware of
    • 6) A Solution Example using Event Receivers

  • Justin Chase

    BOO! A Wrist-Friendly Language for the CLI

    by Justin Chase

    Boo is a new object oriented statically typed programming language for the Common Language Infrastructure with a Python-inspired syntax and a special focus on language and compiler extensibility. In this discussion I will be showing some practical examples of BOO and talk about some of the benefits it may offer.

  • Kirstin Juhl

    Introducing Continuous Integration to Your Project

    by Kirstin Juhl

    Save time, reduce defects, and eliminate boring, repetitive work and dependence on "tribal knowledge" using a Continuous Integration framework in your project. This session will explain the concepts if Continuous Integration, explore the benefits of this practice, and provide a "getting started cookbook" for introducing Continuous Integration framework to your project, no matter what phase it is in. A demonstration of automating a build, introducing some automated testing, and running the build will conclude the session.

  • Kurt Christensen

    The Arc Programming Language

    by Kurt Christensen

    Presentation Materials

    Arc is a new dialect of Lisp focused on minimizing the size of source code while maximizing productivity, particularly for relatively simple web-based applications. This session will introduce participants to the Arc programming model, as well as the Arc development ecosystem as it exists today.

  • Matt Christian

    Lighten Up! Lighting a 3D World with HLSL

    by Matt Christian

    Presentation Materials - Slides and Code

    The basics of Microsoft's high-level shading language (HLSL) are introduced, including a basic overview of the rendering pipeline, through the creation of a point light shader. HLSL allows graphics programmers to create realistic graphics through the use of a combination of math algorithms and the hardware they are processed on. Around the time of DirectX 8, shaders were implemented to allow changes per geometric shape, vertex, and pixel during a frame render. As one of the items comes to render on the graphics device, the math algorithm written into the shader file is applied to the respective object and is rendered to the screen. Current technology has reached the point where shaders are a necessity for any graphics developer, considering graphics libraries such as Microsoft's XNA have removed support for a non-programmed, ‘fixed' graphics pipeline. A simple shader is built to emulate a point light while each step includes reasoning behind the code and relevance to the theory of a point light. A conclusion is given explaining other uses for shaders.

  • Mike Benkovich

    Amazon Flipper

    by Mike Benkovich

    LINQ is a great technology for accessing data and Silverlight opens the door to a rich set of options for presenting information in your application. In this session we'll look at how we can use these new technologies together to build a rich user experience. From working with LINQ to pull information from a web service to building the front end using the latest techniques with XAML you will get insight in how to leverage these tools.

  • Mike Hodnick

    WPF 3D Construction Basics

    by Mike Hodnick

    Microsoft's WPF platform provides the ability to create 3D scenes in Windows desktop applications. In this session you'll learn the basics of building and viewing 3D scenes in WPF. With a touch of 3D theory, we will drill into the .NET classes and XAML used to construct 3D meshes and models. You'll also see a real app render an interactive 3D scene from real data, and we'll talk about tools available to make WPF 3D development easier.

  • Robert Boedigheimer

    Internet Explorer 8 and its Impact on Your Web Sites

    by Robert Boedigheimer

    Presentation Material

    Internet Explorer 8 will ship in a new "standards" mode by default, which has the potential to impact many sites that have been crafted around various "features" in past versions. Learn which current practices will need to change and how this will affect your development techniques and your existing sites. Review tools that will be built into the browser to help developers debug and create web pages. Web Slices are a new feature that allow developers to mark areas of web pages that users can subscribe to like RSS feeds to wach for updates to those slices. Don't be surprised the day IE 8 ships and your sites break, be prepared!

  • Robert Boedigheimer

    Jumpstart Your Web Site with ASP.NET Dynamic Data

    by Robert Boedigheimer

    Presentation Material

    Do you need to get a web site setup quickly? Why code all the pages yourself when you can use the ASP.NET Dynamic Data to build the initial pages based on your data schema? This new feature creates the .aspx pages for you based on your data. The pages can be used directly, or you can customize the pages to add your own look and feel. You can augment the data model for the site to include information that can automatically create the necessary validation controls! Included are a set of Field Template controls that are user controls to edit particular types of data, these can be customized once and apply to all page templates used on the site. Don't start with nothing when you need to create a new site, take advantage of the ASP.NET Dynamic Data support to have a functional site very quickly and simply customize it to get a great site!

  • Rockford Lhotka

    CSLA Light: CSLA .NET for Silverlight

    by Rockford Lhotka

    Presentation Materials

    Silverlight is lighting up the web in exciting and innovative ways. Since Silverlight includes a subset of .NET, there is a subset of CSLA .NET that targets Silverlight as well. Come see how CSLA Light makes building business-oriented Silverlight applications easier, allowing you to leverage the power of Silverlight with the flexibility and rich capabilities of CSLA .NET.

  • Ron Hovland

    LINQ and SQL

    by Ron Hovland

    A .Net developer has always been able to query a dataset by using a DataView and filtering; however, in order to build in the flexibility an application needs, quite often programmers simply make new calls to the database--potentially causing performance degradation. Linq allows the developer to more easily manipulate in-memory data objects, whether from a database, xml, or application specific. This session will introduce attendees to these features, their requirements and constraints.

  • Shannon Braun

    Using WPF to build LOB Applications

    by Shannon Braun

    Presentation Material

    There has been a lot of discussion on using WPF to build Line of Business applications. There are a number of aspects that need to thought about before making the decision of whether to use WPF or not. This talk will focus on those elements like Developer Designer Workflow, WPF Learning Curve and Getting up to Speed, Advantages/Disadvantages of using WPF, Limited WPF Control Set (the no Data Grid complaint), WPF best practices for developing WPF applications and if we finally have a platform that we can write once and run everywhere using xaml, WPF and Silverlight.