Boston Code Camp 18 - Sessions Submitted

held in October 2012

There were 35 sessions at BCC18.

If you've been putting off thinking about multi-threading, now is the time. It's rare to find a machine without multiple cores anymore and even on single core systems leaving your whole app on one thread can try your users' patience. There are now many ways .NET can help you out to better take advantage of threading to make your code run faster and be more responsive. In this session we'll look at the basics of the new async/await keywords, Reactive Extensions, and the Task Parallel Library and how to know what to use when. More

In this session, you’ll learn how the Boston Code Camp website was migrated from MVC 2 (model-view-controller) to MVC3 using Razor syntax and from there to MVC 4. We’ll examine the use of Entity Framework Code First and Migrations for the data model. We’ll also look at the change from the Membership model for authentication to Claims Authentication. If time permits, we’ll also touch on the changes involved in moving to hosting with Azure Cloud Services, and the use and current limitations of Azure Web Sites. More

When I worked at Wells Fargo, there was an odd reaction from our business users when we finally converted an ancient mainframe system to a web application. Some people welcomed the change, but a rather large number of people absolutely hated it. They didn't even give the new website a chance. In their view the website was slow and didn't react to their actions in the same way as the old terminal screen. At the time I sort of brushed them off as just being "old", but in retrospect...THEY WERE RIGHT! Most web applications, especially ones developed internally within larger companies are dog slow. The issue goes beyond typical server side optimization techniques. The problem is that without JavaScript, every action of the user requires a post back to the... More

Machine Learning is one of the most fascinating recent technologies. As a developer, you probably already heard about more and more opportunities around with ML. If you like to predict the future, come to this session. It introduces the basic concepts and tools for you to get start. More

See how to build your first Windows 8 app. We will use what I learned when creating the app: .NET Gurus Can Cook, which contains recipes from famous folks in the software industry such as Scott Hanselman and Mary Jo Foley. Join ComponentOne Developer Evangelist and former Microsoft Developer Evangelist, Russ Fustino in this session and learn the new programming paradigm for creating Windows 8 style apps. You will see how to build an application that incorporates many of the key characteristics of a great Windows 8 style app, including: • A modern UI user experience that leverages the signature Windows 8 controls such as GridView, ListView, FlipView, AppBar, Semantic Zoom and other Windows 8 controls. • A user experience that scales across large and... More

Inspired by Robert Martin's book by the same name, Clean Code introduces some basic guidelines for writing clear and maintainable code. We'll focus on writing code that team members can easily read and understand without having to hunt around or launch the debugger just to know what the code is doing. The following fundamental areas are covered: - Names - Comments - Errors - Functions - Objects and Data Structures There won't be live code demonstrations, just small samples in the presentation slides. More

Just because we get an application to run on cloud infrastructure does ensure that it runs well. To truly take advantage of the cloud we need to build cloud-native applications. The architecture of a cloud-native application is different than the architecture of a traditional application. A cloud-native application is architected for cost-efficiency, availability, and scalability. We will examine several key architecture patterns that help unlock cloud-native benefits, spanning computation, database, and resource-focused patterns. By the end of the talk you should appreciate how cloud architecture is more demanding than you might be accustomed to in some areas, but with high payoff such as handling failure without downtime, scaling arbitrarily, and... More

The mobile space continues to heat up, but every platform has its own language and set of tools you must use if you want to deliver a fully native experience to your users. Did you know that you can actually use C# and the .NET Framework to build native applications for iOS, Android and Windows Phone? Using C# and .NET across the board also means that you have the opportunity to share large amounts of code between platforms. In this session we'll look at how to develop cross-platform mobile applications with C#, making use of MonoTouch and Mono for Android for iOS and Android. We'll also explore various techniques and patterns to help maximize how much code can be shared across all platforms. More

Taking inspirational cues from Bauhaus design, International Typographic Style, and cinematography, the Windows 8 UI design style brings an application to life while presenting content clearly and beautifully. In this session, you will be introduced to the principles behind this design style and learn how to effectively apply these principles in your applications. More

This session will discuss how to develop services in C# using Mono for Android. We'll cover the basics of how Android services work and examine the various scenarios that services are used for when developing Android applications. Although some knowledge of Mono for Android will be helpful, we'll introduce enough of the basics such that any C# developer should be able to follow along, even those without Android experience. More

In today’s mobile market, social games can gain popularity with extraordinary speed. For a mobile social game it’s important that the game provide mechanisms for players to interact with other players by other players. Some social games, like many on Facebook, allow players to recruit other players to your cause and assist you in achieving your goals. Other games have a more real-time interaction with players. A consistent theme for social games is that the more players can play the game the better, so being able to target multiple platforms with a minimal amount of rework is extremely important. This session will walk attendees throughout creating a simple social game. The basic framework will rely heavily on a web site deployed into Microsoft’s... More

Although JavaScript is the most deployed language in the world, it has it's own quirks. While some of us got used to them, the other are still looking to create a better development experience. Now the wait is over! TypeScript is an open-source programming language that makes it easier to write cross-platform, application scale, JavaScript that runs in any browser or in any host, including NodeJS. Join us to play with TypeScript, which is a typed superset of JavaScript. You'll be amazed how well it compiles into idiomatic (normal) JavaScript. We're going to see how dramatically it can improve your productivity by enabling rich tooling experiences, all while maintaining your existing code and continuing to use the same JavaScript libraries you already love. More

Stored procedures and functions are the mainstay of SQL Server coding. This presentation will show techniques to improve their performance using the lessons learned by Andy Novick over several years of development. We’ll start with the most important techniques to learn where the time is really going using standard server traces and the new SQL Server Extended Events. Once we know where the time is going we look at strategies to decrease it: Rewriting scalar and TVF functions to as inline functions. Managing indexes on temp tables o Why heaps are often the best choice for temp tables o How to discover if an index is helping o How building non-clustered indexes on heaps is faster than building clustered indexes. Mastering minimal logging and... More

So many Microsoft platforms now have support for some type of XAML programming model that it seems like XAML is everywhere. If you have existing XAML applications you may be thinking about taking advantage of this commonality to start sharing code across platforms. Unfortunately, there have been a lot of stumbling blocks to doing this, including incompatibility of compiled assemblies and changes to available framework features or naming that can be hard to discover without a lot of trial and error. Portable libraries can help solve some of these problems, and are now built into Visual Studio 2012 with support for WPF, Silverlight (in and out of browser), Windows Phone 7, Windows 8 Store Apps, and even Xbox 360. We'll look at what you can share, what you... More

Glimpse allows you to take a never before seen look inside your server. Instead of forcing you to go line by line inside your code, Glimpse does the work for you. It tells you exactly what's going on with each web request. After releasing Glimpse at Mix11, Glimpse has become a tool that is used daily by tens of thousands of developers around the world. Learn how to use Glimpse to reveal what is happening within your ASP.NET MVC and WebForms sites. See what tools are included out of the box and see how you can easily extend it to suit your needs. For more information on the Glimpse Project, see More

In the session I will present, a native JavaScript runtime for iOS that allow to write applications with Visual Studio. JyOS has nothing to do with HTML5 or Phone Gap. JyOS make it quick and easy to write simple data-centric native app for iPhone, iPad and iPod. JyOS is very .NET friendly because it is written in C# using MonoTouch. I will give a tour of the JyOS API using a Windows 7 Laptop and an iPad including integration with .NET, IIS and WebApi. More

It’s a common problem: you’re getting close to when you’re supposed to deploy your new ASP.NET or WCF application in to production and somehow it just doesn’t seem very fast. Or maybe you’ve deployed your application in to production and now you’re getting complaints from customers that it’s just plain crazy-slow. Yikes! You’ve got performance problems. Thankfully, Visual Studio has some great features to help out of this bind. In this session, Ben will start out with a running web application with performance problems and show you how to find and fix these performance problems using Web Performance Tests, Load Tests, Unit Tests, Performance Explorer and code profiling. Along the way, Ben will discuss what a Load Test Rig is, how to set up... More

F# 3.0 is bundled with Visual Studio 2012. In this talk, Talbott will go through the basics and cover various topics both leveraging Visual Studio 2012 as well as online resources such as Try F# ( Come and learn more about this language and what it is great for and more importantly what it is not for. More

Claims-based identity is the new and preferred way to model security in applications. Windows Identity Foundation (WIF) is Microsoft’s update to the traditional .NET security system to integrate claims into any application built with .NET 4.5 or on Windows 8. In addition to the claims paradigm, WIF makes it easier to implement features like federation and single-sign-on in a secure and standards based fashion. More

The Knockoutjs javascript library is now included in the Visual Studio MVC 4 project template by default. This presentation will introduce the Knockoutjs library, discuss the benefits it offers, and demonstrate how it can be used to create richer MVC 4 applications. We will review the MVVM design pattern and show Knockout implements it on the browser client. We will then demonstrate using Knockoutjs and JQuery to enhance the basic MVC 4 project template to create a richer user experience. More

Lessons learned from developing a highly trafficked interactive backbone.js app with a node.js backend on minimal hardware. More

In today’s mobile market, social games can gain popularity with extraordinary speed. For a mobile social game it’s important that the game provide immediate feedback to the user on progress with in the game by other players. A large part of the social game is the ability to recruit other players to your cause and assist you in achieving your goals. These are just a few examples of how important having a communication channel that you game can leverage to allow your players to interact really is. All the current mobile platforms provide several ways to allow your games to communicate with other players. This session will explore how to use the Push Notification Services of each platform to send and receive messages. Attendees will learn how to use... More

MonoGame has come on in leaps and bounds in the last year, its popularity is growing and more and more developers are using it. This session will give you insight into what you can do with the latest release of MonoGame, and where we plan to take the project next. It will attempt to incur the wrath of the demo gods by showing live examples of games that are already using MonoGame and showing off some of the new features. So if you are interested in Games or are just curious come along and learn what MonoGame is all about. More

This session would be an introduction of Portable Class Library Tools. This is a recent addition by Microsoft in developers' toolbox. The session would discuss why we need such a concept, how we can achieve assembly portability between different Microsoft frameworks, its limitations & its application in MVVM design. More

With the new reimagined Windows a lot of questions have arrived of where it fits in the enterprise. This session will cover how to adapt Windows 8 in the enterprise including how to reimagine enterprise line of business application. We'll see how to integrate these application into the Windows 8 experience while still working in the larger enterprise ecosystem. More

ASP.NET WebAPI is the new framework for building HTTP-based services and these services will need to be secured. This session introduces how security (confidentiality, integrity and authentication) is typically performed for HTTP-based services and how you can implement these approaches in your WebAPI application. Once authentication has been established we'll then turn to authorization and how you can control access to the resources your WebAPI is exposing. More

Couchbase Server is a simple, fast, and elastic documented-oriented database. It is simple in its document-oriented approach to data modeling, where domain objects may be naturally mapped to their persistence layer. It is simple to monitor and manage in production, elastically allowing administrators to add and remove nodes to a cluster at any time, without downtime. Couchbase Server is fast thanks to its actively managed cache, compatible with (and built upon) memcached. Indexing, analytics and other advanced ways of managing data in a Couchbase cluster are easily available through the definition of incremental Map/Reduce views. In this session attendees will get a brief introduction to managing Couchbase Server clusters, followed by an exploration... More

What could sound more boring than "Data Driven Documents" or D3? It turns out that the JavaScript library with that unassuming name is doing for SVG graphics what JQuery did for everything else: making it easy, productive and fun. In this session, we'll write a game that draws shapes, responds to events and even features animation. We'll also see how D3 can turn dull business graphs into dynamic, engaging experiences. More

So you've heard about this "Windows 8" thing and want to started with apps in the Windows Store? Well, prepare to geek out on the tools and code that will get you there! We're leaving the slides behind for a practical, example-focused look at techniques, tools, and tips to get started creating Windows Store apps. Along the way, we'll get to play with cool new dev and debugging features in Visual Studio 2012 such as the DOM Explorer, Simulator, and expanded editor features. You’ll also see new design features in Blend for Visual Studio, including Interactive Mode that makes it easier to work with runtime-generated interfaces. (By the way, a good chunk of this applies regardless of language, but with time limited, examples will generally be in... More

Are you still building search screens using dynamic SQL against your operational database? There is a better way! This session will teach you how to use Lucene.NET to provide a Google-like search experience for your users, with less code than it takes to write a slow, cumbersome searcher using SQL. Lucene.NET is an open source library that powers search on some of the largest .NET applications such as StackOverflow and Orchard. Searching is becoming more and more important as the amount of information in our systems continue to grow. This session will provide all of the tools you need to meet the increased demand for searching in your own applications. More

This session will introduce the new Visual Studio 2012 facilities for developing SharePoint 2010 applications and components. VS 2012 delivers a new set of project templates, explorers, application performance profiling and other development & deployment features that makes a .NET developer more productive. Some knowledge of SharePoint 2010 and C#/.NET development is presumed. More

This session will cover the use of Windows Azure Mobile Services to provide a simple to access and highly scalable back-end of services for your Windows 8 application. More

An introduction to what dependency injection is and how it works in your code. You've heard of dependency injection or inversion of control, you've heard how it helps your code, maybe you've even been given code that uses it and you've wondered... "How is this better? What does this mean and why should I use it? I've been writing software for years and have never needed it, so why should I start not?" We'll walk through the principles behind dependency injection, benefits of using it, different common methodologies for implementing it, various tools available, etc. Finally, we'll walk through some code which uses it and implement some functionality that takes advantage of it. More

With more than 630 million Windows 7 licenses sold to date, across 200+ countries and regions around the world, Windows 8 has an unrivaled global reach. Combined with the flexibility of monetization options that the Windows 8 Store provides, Windows 8 represents the single biggest developer opportunity for any platform. Casual game developers have been using XNA since 2004 to easily create games for Windows, XBox and most recently Windows Phone. XNA is a .NET framework for game development providing a content pipeline and game asset load functionality, animation, math, sound and user input tracking via gamepad, mouse, keyboard and touch with game logic organized in a straightforward game loop architecture. MonoGame is an Open Source implementation... More

Do you groan anytime you need to write some code in JavaScript? Are you interested in alternatives that leverage your .NET/Java skills while maintaining the compatibility of the lingua franca of the web? Are you interested in understanding what CoffeeScript, TypeScript, Script#, Dart and Google Web Toolkit offer? This session will explain what benefits (and drawbacks) these technologies provide with interactive code demos. More