Code Camp 3: The Madness!

March 12 & 13

Microsoft New England District Office
201 Jones Road
Waltham
, Ma

Register

Call for Speakers

Currently Submitted Session Descriptions

The Code Camp is a community driven event. This list represents the current list of submitted sessions. Please keep an eye here as we get closer on the final agenda.

Smart Client

Level

Title

Description

Speaker

Type

300

Code Generation .NET

Present code generation techniques and technologies in .NET. Why use code generation and what to use it for. Explain how the .NET Framework and Compilers use code generation behind the scenes to make developers more productive. Talk about popular generation methodologies such as CLSA, XSLT and CodeSmith. Discuss creating complete layers such as data access. Introduce CodeSmith syntax and show several examples that create collections, UI and a complete data layer using templates. Discuss pitfalls of code generation and how agile techniques, such as nightly generation can help ease the path.

Ernest A. Booth

Presentation

200

Invisible Avalon

The Avalon application model gives developers a new way to develop Windows applications, not just additional namespaces. We will discuss the core that is Avalon such as the dependency graph, navigation, commands, a new event model, content model, data binding and much more. We will also answer the question of why XAML is needed and what it offers over other .NET languages. Attendees should know what Avalon is, but don’t need to have any experience using Avalon.

Ernest A. Booth

Presentation

 

Choosing SmartClient storage and messaging

Dig into the pros, cons, and issues of the various storage and messaging choices (MSMQ, isolated storage, MSDE, etc.) when using the Microsoft Smart Client Offline Application Block.

Raj Das

Chalk Talk

 

SmartClient architecture and development

Open chalk talk discussion on the SmartClient application concept, architectural issues/concerns, and development experiences.

Raj Das

Chalk Talk

200

Introduction to the SmartClient Offline Application Block

Introduction to developing application with the SmartClient Offline Application Block. We’ll review the design and implementation of the SCOAB, developing “sometimes” connected applications, and development of applications with the SCOAB.

Raj Das

Presentation

300

Choosing SmartClient storage and messaging

Dig into the pros, cons, and issues of the various storage and messaging choices (MSMQ, isolated storage, MSDE, etc.) when using the Microsoft Smart Client Offline Application Block.

Raj Das

Presentation

 

NET CF Application Deployment Strategies

.NET Compact Framework applications for Pocket PCs and Smatphones can be deployed in any of a number of ways. Each of the deployment options provides both benefits and drawbacks. In this Chalk Talk session, we will discuss the various options for application deployment and the tools that can be used to facilitate deployment.

Don Sorcinelli

Chalk Talk

200

Exposing .NET Compact Framework Applications via APIs

While the concept of providing an API to a desktop or enterprise application has been popular for many years, this application enhancement is rarely seen in Windows Mobile applications. In this session, we will see the ways that .NET Compact Framework applications can be exposed for interoperability, including the upcoming event notification API in the .NET Compact Framework Version 2.0, as well as the technical and business benefits such an approach can provide.

Don Sorcinelli

Presentation

 

MDA and Software Factories

An interactive discussion between the presenter and the attendees that looks to evoke the differing perspectives between MDA, DSL and related tools. A brief presentation will be provided to cover the basic tenets of each approach with the remainder of the talk being open discussion.

Michael C. Pelletier
 

Chalk Talk

300

C# for Visual Basic 6.0 Developers

If you are a Visual Basic programmer looking at C# for the first time, there is more that is different than just semi-colons and case sensitivity demands. Come to this session to get a Visual Basic programmer's perspective on some of the basic things you will want to know before rolling up your sleeves to write C# code. We will cover topics like the backwards variable declaration, the seemingly bizarre way that the C# language constructs an OR statement, the differences you will experience in the IDE at compile time, and the more stringent rules you need to pay attention to when scoping variables and methods. This session is being done by a Visual Basic programmer who has felt the pain of trying to write C# code and wants to help you avoid some of it.

Julie Lerman

Presentation

300

Creating Extender Classes in VS.NET Session

Ever wonder how Microsoft implemented tool tips in the WinForms world? They did this with an extender class. Extender can be used to extend the functionality of your WinForms applications. This session will discuss how to create and maintain extender classes in your WinForms applications.

Rod Paddock

Presentation

300

eXtreme .NET – Extreme Programming and Unit Testing for .NET Developers Part 1

– Extreme Programming practices such as Refactoring, Unit Testing and Continous Integration have now become mainstream. This code-intensive session shows you to have to use XP practices with VS.NET 2003 and tools like Resharper, NUnit and NAnt. In the session we will develop some code and use the tools to create unit tests, refactor and automate the build.

Sam Gentile

Presentation

300

eXtreme .NET – Extreme Programming and Unit Testing for .NET Developers Part 2

In Part 2, we will use the new Team Features of Whidbey Visual Studio Team System with XP Practices to iterate some code, create unit tests, automate builds with the new MSBUILD and use the new refactoring features of C#.

Sam Gentile

Presentation

300

Developing Occasionally-Connected Mobile CF Applications with Whidbey Compact Framework 2.0

Today’s new generation of smart mobile applications must take into account that connectivity is often absent and continue to work anyway. In this session, we will examine occasionally connected principles and then use the Whidbey Compact Framework 2.0 to build a occasionally connected mobile application that uses the new SQL Mobile database

Sam Gentile

Presentation

400

Hardcore .NET

Want to take your .NET knowledge much deeper? Want to more effectively write .NET Framework code that makes maximum utilization of the CLR? In this session, we will dive deep into the CLR in areas like Value vs. Reference Types, Garbage Collection, and more but in a way that focuses on how you can write your code more effectively. Examples of code developed will include avoiding boxing penalties, Whidbey Generics, Implementing IDisposable and Finalizers and more. This is an expert level session designed to take your .NET experience deeper and to become more effective.

Sam Gentile

Presentation

300

Continuous Integration for .NET

Continuous Integration (CI) is an essential technique in many efficient software development groups. Everyone on the development team benefits from immediate and up-to-date feedback on the state of the build. We’ll explore several CI tools for .NET; how to deploy and maintain continuous builds; CI integration with source control and testing tools; and CI best practices for making your development team more efficient.

Mike Attili

Presentation

300

C# 2.0: Generics, Iterators and New Language Features

This year’s release of .NET Framework 2.0 will come with a special bonus for C# developers: new extensions to the C# language. Some of these were slated for C# 1.0, but that simply weren’t finished in time. Others are new, and based on ideas that have come up only after Microsoft had the opportunity to observe C# implementation in the field. And yet others required intense negotiation and coordination with the Common Language Runtime team, because they constituted changes to the CLR itself. The most notable of these new features are Generics: the ability to create parameterized (generic) types, similar in concept to C++ templates but implemented as a runtime feature in the CLR. But Generics aren’t the whole story: Iterators let you create multiple implementations of IEnumerator in a single type, with a fraction of the plumbing code ordinarily required. And other language features – reference aliases, Nullable types, headless methods and delegate inference – make C# an even richer, more powerful language than it has been in C# 1.0. In this session, you’ll get a whirlwind tour of each of these features along with a guide for best taking advantage of them when Framework 2.0 is released.

Richard Hale Shaw

Presentation

300

 VS2005: Exploring the Features of the new IDE

Another big bonus for developers in Framework 2.0 is an entirely new Visual Studio IDE. From refactoring to code formatting, Debugging Visualizers to import/export of options, from the Code Snippet Manager to the improved HTML and XML Editors, the IDE has been completely overhauled. In this lively, interactive session, you’ll get an unadulterated tour of the new IDE – not from a marketing perspective, but from someone who – like you – lives in the IDE day in and day out, writing code.

Richard Hale Shaw

Presentation

300

 More Design Patterns in C#

Patterns are Best Practices with a formal definition, a memorable name, and well-defined context in which they should be used – and shouldn’t. Design Patterns are patterns applied to architecture and design. Design Patterns aren’t new, but they aren’t always very comprehensible. Just how do you know if you’re using an Adapter, a Decorator or a Proxy? And how do you know when to use one, anyway? And what about variations: Observer-Observable alone can be re-defined in several ways, depending on whether you want to couple the lifetime of the Observers to the Observable, and whether the notifications are synchronous – or not. In this session, we’ll delve into Design Patterns, and how to implement them in C#. And for those in the Boston area: there’ll be little if any overlap with previous Design Patterns sessions given by Richard in the last 2 months.

Richard Hale Shaw

Presentation

300

10 Best – and Worst – Patterns and Practices for C# Developers

Ok, you’ve heard me say it before: VB6 is the great Anti-Pattern, the great Satan of Windows developers. By contrast, VB.NET and C# are terrific, 1st class, OO languages with great features and type-safety. But what are the Best – and worst – Patterns and Practices when using one of these languages? And which features of the language should you always use, vs. those you should use carefully – and those you should avoid altogether? When should you override the Equals and ToString methods of System.Object? When is lock an inefficient choice for thread synchronization? When should you embrace custom value types – and when should you avoid them? What kinds of IL patterns are generated from which C# constructs, and how can you take advantage of that knowledge? In this session, we’ll discuss a wide variety of C# features, and how you can, should or shouldn’t take advantage of them. By the time you leave, you’ll have a far better understanding of what C# is all about, and how to write more robust, efficient code with it.

Richard Hale Shaw

Presentation

400

Multithreading made easy – harnessing the power of C# and .net to squeeze every cycle out of your CPU

Up til now, multithreading has been for the rocket scientists with 400 level OS level courses under their belt (and a knowledge of how philosophers dine). Dot net and C# have made multithreading accessable to a wider audience. This is a great development, especially since Intel and AMD are telegraphing that future performance gains will come from here, not from more jumps in raw processor speed.
This class will walk you through a real business application that uses a database to generate reports, where you can see exactly how to use multithreading, and exactly what the benefits are.
This class will teach you the following patterns and will provide source implementations realizing those patterns
1) A plugin based atomic task structure, where you can define a specific task, and create as many threaded instances of it as you need
2) A process control framework that allows you to connect plugin based atomic tasks together to define more complex programming operations

Mark Mullin

Presentation

 

Effective Development Practices in .NET

Returning from the last Code Camp, this interactive peer discussion will focus on development practices, ranging from design to coding and deployment. Topics may include, but will certainly not be limited to, successfully implementing development standards, Enterprise Library & Application Blocks, code reviews, unit testing, SOA, practices sharing, performance analysis, class reuse, code management, useful tools, resources for training/education and more. What’s worked for you and, equally important, what has not? Having trouble implementing a specific practice in your organization? Looking for tips on what tools might make your development life easier? This will be a great chance to pick the collective brains of other experienced .NET developers.

Christopher
Bowen

Chalk Talk

300

Web Services in Microsoft Office

This demonstration will show the use of web services in Office products such as Word or Access. The first segment will show how to reference a web service to an Office document and the choices for invoking it using the Microsoft Web Services Toolkit for Office. There will be a couple of examples that will show the potential for practical application of these techniques.

The second part will show how to create a two way conversation with a web service from within InfoPath. The sample InfoPath application will update the data for a web service then pull data from that same web service.

Robert Holmes

Presentation

300

.Net integration with Microsoft Office

There has been much talk, and even excitement, as well as confusion, around the potential for utilizing the .NET technologies in the context of Office solutions. This presentation will show how the two can interact beyond simple automation type tasks.

First there will be a demonstration of the creation and use of an add in for MS Access created in C#. The demonstration will show the steps necessary to create the add in, plus the use of it in MS Access. The second part will focus on using C# to interact with a backend database in Access as well as Excel.

Robert Holmes

Presentation

300

Visual Studio Tools for Office

This presentation will demonstrate how to use the Visual Studio Tools for Office (VSTO) add-in. First will be a discussion of how to take advantage of what the tools have to offer, the pitfalls and tricks to leverage the capabilities of the dotNet environment from an office document. I will do this by demonstrating a simple example from beginning to its use.

Next I will show some examples of what you can do with this technology. There will be examples of what you do using VSTO that would be difficult if not impossible, with the native features of the Office environment.

Robert Holmes