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

Presentation

300

New xml features of MS Office

This presentation will highlight the full range of xml functionality available with the current version of Office. There will be examples of importing and exporting xml documents, the role of schemas and how to use transforms to manipulate the outputs.

Robert Holmes

Presentation

300

Developing Tablet PC Ink Enabled Applications

Introduction to developing Ink enabled applications using the Tablet PC SDK. This session will explore using managed code for Ink collection, Ink data management, and Ink recognition.

Rob Zelt
 

Presentation

200

Introduction to the Tablet PC: Ink, Gestures, Speech, and Mobility

The Tablet PC is here, and it'll change the way you work. Combining pen input, speech input, light-weight devices, WiFi, and a powerful superset of Windows XP Professional (including the first OS to ship with .NET), the Tablet PC fills an important niche in mobile computing. You can control a Tablet PC by drawing and writing and filling in forms, by standard and custom gestures, and simply by speaking to it. For mobile workers who need the power of a laptop with the ease-of-use a Pocket PC, the Tablet PC allows them to work in a way that's natural to them, rather than being constrained by the keyboard and the mouse. This makes them popular in fields as diverse as insurance, medicine, animation, and software design.
In this presentation, we'll examine the Tablet PC:
1. What it is. The nature of the platform. Different configurations. Input with Ink and Gestures. Input with Speech.
2. What it isn't. How the Tablet PC differs from prior pen-based efforts and from other mobile devices.
3. What it does. Usage scenarios. How to recognize a good Tablet PC need.
Tablet PC application design considerations.
4. How it does it. A look at some Tablet PC code samples.
This presentation will introduce the capabilities of the Tablet PC and some fundamental programming concepts that will prepare you for more advanced Tablet PC topics.

Martin L. Shoemaker

Presentation

400

Look, Ma! No Keys!

The computer mouse has been around for 30 years. The typewriter-style keyboard has been around for only 100 years more. Both are incredibly useful, but neither one can be called "natural". In this presentation, we'll look at two simpler and far older forms of communication: talking and drawing or writing. With the .NET Speech technologies, your applications can talk to you and listen to you; and with the Ink and Gesture technologies of the Tablet PC, you can write notes and draw pictures, and your computer will understand what you mean. These technologies allow you to interact with your computer in ways that are much closer to human interactions.


But this presentation will be about more than just concepts; it will be about code! You already understand what it means to talk and write, so we don't need to explain those. Instead, we'll dive into the code and see easy ways to add Speech and Ink support to your applications. We'll see how to make your computer talk to you, and we'll see how you define a command grammar so that it can listen. We'll see how to add Ink input and text recognition to new and legacy applications. And we'll see how you can use Ink gestures to control an application. And we'll wrap these all together to create a business tool that you can use without ever touching the keyboard.

Martin L. Shoemaker

Presentation

300

Getting Ready for XAML

Avalon and XAML bring two powerful new tools to the table for software development, but that doesn't mean you need to re-engineer your existing application from scratch to take advantage of them. In this talk, we explore how to extend existing Windows Forms applications in a declarative world, the "future-proofing" benefits for doing so, and how to avoid some pitfalls along the way. Attendees will leave this talk understanding good places to consider using XAML in their existing applications, and techniques for doing so.

Ingo Muschenetz

Presentation

Web Track

Level

Title

Description

Speaker

Type

400

Advanced ASP.NET Part I

In-depth discussion of the ASP.NET framework. Covering the following:
HTTP pipeline
HttpHandlers, HttpHandlerFactories, and HttpModules
Page and control creation during a request
A complete look at the Page/Control lifecycle and the rendering process
Event internals
More efficient event declaration
Composite controls
Templated controls
How databinding expressions work

Stephen Seymour

Presentation

400

Advanced ASP.NET Part II

In-depth discussion of the ASP.NET framework. Covering the following:
HTTP pipeline
HttpHandlers, HttpHandlerFactories, and HttpModules
Page and control creation during a request
A complete look at the Page/Control lifecycle and the rendering process
Event internals
More efficient event declaration
Composite controls
Templated controls
How databinding expressions work

Stephen Seymour

Presentation

300

Microsoft Search Servers

A tour of Microsoft Search Servers focusing on Indexing Services, SQL FTS (Full-Text Search), and Sharepoint Portal Server, along with a brief mention of Exchange Content Indexing. The session focuses on programming, troubleshooting, and optimizing your search application using these products. Answers the question why search.microsoft.com sucks, but Microsoft search engines rule. Exactly why Google is so popular, but its algorithm is so poor.

Hilary Cotter

Presentation

300

Anti-Patterns … The Top 10 List

A light-hearted and satirical look at the most common ways in which architects and developers shoot themselves in the foot.

Rob Daigneau

Presentation

300

Penetration testing of ASP.NET web applications

Penetration Testing is the process of analyzing applications and infrastructures through the eyes of an attacker and to use exactly the same techniques and tools these people would use.

This session gives the theory behind auditing and penetration/security testing and introduces proven methodologies. Common programming pitfalls like input validation flaws including sql injection, cross site scripting and directory traversal, ASP.NET misconfigurations and overall "hackable"
application designs are shown with a detailed explanation how to exploit these security holes. After this session you will have the knowledge to start testing your own web applications for security problems and using tools to automate these tests.

Robert Hurlbut

Presentation

300

Security in ASP.NET 2.0

This session will cover the newest security features in ASP.NET 2.0 including Web-based administration, server-side security controls, user and role databases, cookieless forms authentication and many other enhancements.

Robert Hurlbut

Presentation

300

Getting Ready for WSE 2.0: Security Fundamentals and a Brief Intro

Before digging too deeply into Web Services Security, it is critical to get a good handle on the key tools in security. Not only will you be able to better understand what you are working with in WSE, but when it comes time to problem solve, you will be in a much better position. Come to this session to learn about certificates, encryption, signing and other important security elements that are the basis of everything that is done in Web Services Security. This session will give you the knowledge you need to comprehend the many articles and presentations on WSE2.

Julie Lerman

Presentation

200

Building a Corporate Intranet with SharePoint Portal Server

This session will provide an overview of best practices and lessons learned through actual SharePoint deployments. It will begin with a discussion of how to determine the best architecture and will lead into specific topics including Taxonomy, Determining Metadata, Areas vs. Sites, Adding Customizations, Building a Pilot Team, and Deployment. The speaker will use specific examples and highlight “what works and what doesn’t”.

Mauro Cardarelli

Presentation

300

Advanced Topics in SharePoint Portal Server

This session will cover advanced topics with SharePoint Portal Server. The session will provide an overview of the Object Model as well as database schema. It will cover code-based customizations that include extending SharePoint context menus, altering SharePoint functionality through its XML files, customizing the Search page, using FrontPage 2003 to add custom web parts, and using SharePoint web services integrated with InfoPath forms.

Mauro Cardarelli

Presentation

300

Customizing .Text

In this session we will be digging into Scott Watermasysk’s .Text using the 0.95 and 0.96 framework to demonstrate how to extend .text to add podcasting support, searching, comment tracking, spam blocking features, sub-categories, and more. And while we’re doing that we will observe advanced ASP.NET practices in action like Httphandlers, business objects, data transformations, providers and base classes.

Dave Burke

Presentation

300

.NET - The tools you need to succeed

There is more to being a successful .NET developer than VS.NET and a windows box. The vast community of .NET developers has created plethora of code, libraries, components, controls, applications, tools, etc, that you can take advantage of today.

Most will cost you nothing more than a download and all will save you valuable time and enable you to deliver better applications to your clients.

In this talk, we will do a quick rundown of the some of the best the community has to offer and how you can begin using them today!

Scott Watermasysk

 

Presentation

300

Effective State Management

Managing state is one of the biggest keys to a successful web application. While caching in ASP.NET gets the greatest amount of press, ASP.Net 1.x provides you with a vast array of options for managing and maintaining state, and ASP.Net 2.0 raises the bar even further. Managing state is not very difficult. The real key is simply picking the best solution for your project and task.

In "Effective State Management with ASP.Net" Scott will explore the many ways to manage state and will teach you how and when to use each. In addition, he will spend some time discussing how ASP.Net 2.0 will raise the bar even further.

Scott Watermasysk

Presentation

300

SOA is Not Hot Air: Practical Service Oriented Architecture for Developers

Developers often have trouble understanding Service Oriented Architecture (SOA) because it is frequently talked about in very abstract terms. This is unfortunate because corporate economics and technology improvements are driving the use of service orientation to develop modern business applications. This talk will explain in very clear and concrete terms what a SOA is, why it is important, and what it means to develop a SOA application.

Michael Stiefel

Presentation

400

Loosely Coupled Messaging in an SOA using WSE2

The power of WSEE 2.0 goes beyond the WS-Security model that is now becoming popular. Many applications need to enlist a service whose response is longer lived than the connection. We will cover various Message Exchange Patterns (MEP’s) and show the usage of WS-Addressing, WS-Messaging, WS-Secure Conversation and MSMQ as an intermediary.

Jim Lennox

Presentation

300

WSDL First! It’s importance to building Message-Oriented services in the SOA

Trends in business semantics will demand that components of an SOA yield an expression in the neutral language, which is WSDL. Building SOA services from implementation-language interfaces and serializable types misses the point that WEB services architecture is not about being a wrapping technology. It’s about being Message Oriented. We will show the steps involved in a WSDL First Message-Oriented design transcending the differences between it and the Method-Centric philosophy of VS .NET implementations.

Jim Lennox

Presentation

300

Using the Microsoft Patterns & Practices Enterprise Library

The just released Enterprise Library from the Patterns & Practices group at Microsoft provides assistance in many facets of enterprise class applications - security, logging, caching, error handling, cryptography and data access. This session covers the benefits of using these application blocks, how to incorporate them in your development practices and what can be learned from them even if they are not applicable to your project.

Andrew Babiec

Presentation

300

Transitioning Existing Applications to a Service Oriented Architecture (SOA)

The value of providing agile business systems as services for use by other internal applications and externally by other consumers is significant. However, many businesses will make a gradual transition to a service-oriented architecture rather than redesign all their systems at once. In this session, several real life case studies will serve as the basis for examining the major considerations in gradually transitioning existing applications to a service-oriented architecture. The importance of considering SOA design principles rather than just exposing existing functionality through use of web services will be discussed. The session will provide guidance on what can be done today to realize the benefits of service orientation. Using appropriate technologies including Microsoft .NET 2.0 and SQL Server 2005 and considering future technologies like Indigo and Longhorn in building SOA applications will be discussed.

Objectives:
• Learn the differences between an SOA and traditional n-tier architecture
• Understand how to incorporate SOA design principles to transition the business functionality of an organization in an incremental fashion that will result in quality SOA architecture.
• Understand the value of starting to incorporate SOA design principles into new applications.

Prerequisites:
General familiarity with the .NET Framework, web services, XML, and XML schema.
 

Chris Pels

Presentation

300

Designing Services for Service Oriented Systems

Service oriented systems focus on the modeling the business processes for an organization into a collection of business components accessible through service interfaces. Consideration must be given to providing the necessary information in the service contract to allow the consumer to adequately understand the service. The design principles for SOA architecture and several real life case studies will serve as a basis for learning the important considerations in service interface design. The service consumer and provider will be discussed with the emphasis on the consumer of the services. The importance of modeling schema using XSD types and constraints will be included. Using appropriate technologies including Microsoft .NET 2.0 and SQL Server 2005 and considering future technologies like Indigo and Longhorn in building SOA applications will be discussed.

Objectives:
• Understand the importance of service interfaces in a service-oriented application.
• Understand the relationship between SOA design principles and the service interfaces.
• Understand the considerations in creating a good contract for a service.

Prerequisites:
General familiarity with the .NET Framework, web services, XML, and XML schema.
 

Chris Pels

Presentation

200

Building Service Oriented Systems 101: Why and How to Get Started?

Service oriented systems provide the basis for building distributed systems that are agile and are a means for creating dynamic collaborative applications. They create connected systems for consistent management of information throughout an organization. This session will contrast the traditional n-tier applications in use today and service oriented applications (SOA). The business value of service oriented systems and the major architectural and technical considerations will be discussed. The session will build upon the service oriented design principles by reviewing their implementation in several real-life SOA applications. The discussion will include considerations for both smart client and web based applications. Using appropriate technologies including Microsoft .NET 2.0 and SQL Server 2005 and considering future technologies like Indigo and Longhorn in building SOA applications will be discussed.

Objectives:
• Understand the value of service orientation as the basis for a connected system strategy in an organization.
• Understand the conceptual differences between n-tier applications in use today and a service oriented system.
• Understand the main factors to be considered in getting started with service oriented applications.

Prerequisites:
General familiarity with the .NET Framework, web services, XML, and XML schema.
 

Chris Pels

Presentation

300

Moving to Visual Studio Team System Unit Testing

This session will introduce the unit testing features of Visual Studio Team System with an eye toward developers currently unit testing with third-party frameworks such as NUnit or mbUnit. We’ll first discuss how unit testing is a “first class citizen”, fully integrated with the Visual Studio IDE and other Team System components. Then we’ll cover programming and running unit tests, highlighting key members of the Assert class and features unavailable in NUnit like Assert.Collections and Assert.Text. Attendees will see how Team System supports generating unit tests from existing code and how it supports a Test-Driven approach, including generating member definition code while writing unit tests. We will cover other native features such as accessing non-public members from unit tests and enabling code coverage to see how much implementation code is exercised by your unit tests. It will be helpful for attendees to be familiar with writing unit tests with tools such as NUnit, but those new to unit testing are encouraged to attend as well.

Christopher
Bowen

Presentation

 

Applying Microsoft Enterprise Library

Enterprise Library, released to the general public January 28th, 2005, is the next generation of the Microsoft’s Application Blocks. Application Blocks are Microsoft's implementation of reusable code that provide proven solutions for commonly recurring problems that you often waste time solving over and over again in enterprise programming. This chalk talk is designed to discuss the Microsoft Enterprise Library.

Mauro Cardarelli
 

Chalk Talk

300

ASP.NET JavaScript Popup Madness

ASP.NET provides you with the tools to give your application a rich user experience without the use of pop-ups. But what if you are presented with a UI design that makes extensive use of them? How can you get your server-side controls to interact with JavaScript pop-up buttons?
Here are some topics that will be covered:
• JavaScript "Are You Sure" button in .NET
• Coding a calendar date picker pop-up
• How to dynamically load the contents of multiple JavaScript pop-up buttons within a repeater control
• How to fire a server-side event on the parent page as a result of an action on the popup (e.g. refresh a repeater control on the parent after an update on the popup)
• How to programmatically access the contents of a pop-up's form fields prior to postback
• Problems with RequiredFieldValidators on pages with JavaScript buttons

Chris Felknor

Presentation

300

Closure Style Programming in .NET 1.1

In the 2.0 framework, the combination of Generics, Anonymous Delegates, and Closures allow some very powerful programming techniques. However, much of this style of programming can be implemented now. The purpose of this presentation will be to illustrate how closure style programming can be implemented using delegates, and the method class design pattern. Having gained familiarty with the concept, the developer should be able to quickly harness the new capabilities in 2.0.

Travis Dunn

Presentation

300

Advanced Microsoft Content Management

(Topics to be covered provided time)
Advanced Navigation
Creating a flexible roles and cultures based navigation system that is decoupled from the built-in channel structure. Creating a visual interface for the flexible navigation system. Extending the methodology to standard ASP.Net. Formatting results of navigation using XSLT.

Content Re-use
Presenting different methods of re-using content and HTML to maximize structure without creating more daily management.

Methods of Multiple Language support
Providing a review of the Microsoft language sample download. Example of building your own language support process.

Creating your own HTML placeholder Editor using third party tools
Creating a custom HTML placeholder control that uses a third party editor (Ektron) to customize the user experience. Features include built in HTML filtering and criteria based content at a page component event.
 

Bryan Tuttle

Presentation

300

WSE 2.0

Securing web services is simple, if you take the simplest cases.  The problem is once you start throwing in real world issues of cross organization integration, things get dicey using SSL and other "simple" techniques.  In this session we will discuss the toolset that Microsoft is trying to equip us with to deal with these more real world scenarios.  Policy driven security is emphasized in the demonstrations.

Patrick Hynds/ Duane Laflotte

Presentation

300

Cryptography

Ciphers have been used since before the dawn of computers to keep messages secret.  In this age of information where secrets are constantly zipping along the Internet Information Super Highway cryptography plays a key role in keeping those secrets safe.  In this talk you will see how easy it is to work with all of the latest algorithms in .Net.  We will also focus on the strengths and weaknesses of each to give you a good understanding of how they can help you keep sensitive information safe from prying eyes

Patrick Hynds/ Duane Laflotte

Presentation

300

Passwords: Keys to the Kingdom

Passwords can be your friend, but more often they are your enemy. In this session we discuss the fatal mistakes made by organizations relative to password creation, storage and policy.

Patrick Hynds/ Duane Laflotte

Presentation

300

Advanced Techniques for Speech Application Development

In this session I will bring you on a guided tour of Speech Server and its many features.  We will develop applications that leverage much of the power and flexibility of Speech Server.  Some topics we will cover include: Speech only applications (inbound and outbound), Multimodal applications and the right way to design these, Run Speech manipulation, Prompt Databases and dynamic use of Text To Speech (TTS), applications that leverage database iterators, and much much more.

Duane Laflotte

Presentation

300

Security, The New Reality, Part 1

The .NET platform has raised the bar on built in security mechanisms which makes life easier for developers to incorporate sound security design in their applications. But the challenge of security is an infinite surface, and there are trade-offs in every decision for what will be protected and what will not. We need to do this right especially since according to Dshield.org the average Internet connected system gets attacked every 21 minutes. In this session we will explore the best way to approach decisions about securing your applications, highlighting the tools and techniques used by both the hackers and the hacked. In Part 1 of this unique setting we will watch an application evolve from easily hackable (worst practices) to average security (still too easy to hack as you will see). In Part 2 we will see the application evolve further to one which is secured within a reasonable cost in terms of effort and dollars. Consider this the Spy vs. Spy, Hacker Edition. Starring Patrick Hynds as the Good Guy / Developer and Duane Laflotte as himself / Bad Guy / Hacker

Patrick Hynds/ Duane Laflotte

Presentation

300

Security, The New Reality, Part 2

The .NET platform has raised the bar on built in security mechanisms which makes life easier for developers to incorporate sound security design in their applications. But the challenge of security is an infinite surface, and there are trade-offs in every decision for what will be protected and what will not. We need to do this right especially since according to Dshield.org the average Internet connected system gets attacked every 21 minutes. In this session we will explore the best way to approach decisions about securing your applications, highlighting the tools and techniques used by both the hackers and the hacked. In Part 1 you watched as an application evolved from easily hackable (worst practices) to average security (still too easy to hack as you will see). In this second part we will see the application evolve further to one which is secured within a reasonable cost in terms of effort and dollars. Consider this the Spy vs. Spy, Hacker Edition. Starring Patrick Hynds as the Good Guy / Developer and Duane Laflotte as himself / Bad Guy / Hacker

Patrick Hynds/ Duane Laflotte

Presentation

Data Track

Level

Title

Description

Speaker

Type

400

SQL Server Indexing and Performance Tuning Session

Discuss the benefits of indexes, how to use them, and then if time talk about how to optimize an existing database.

Aaron Weiker

Presentation

 

Applying indexing and performance tuning

 Discuss with the group about problems they have had and ways to fix existing databases.

Aaron Weiker

Chalk Talk

300

Best Practices for Structured SQL Server Development

Traditionally it has been unnecessary for DBAs to observe development best practices -- and T-SQL certainly provides few constructs to assist those who have tried. As the line between DBA and developer continues to blur, structured database development becomes increasingly important. In this session you will learn best practices for ensuring stored procedure robustness with unit testing, how to implement a T-SQL-based assertion framework, and the basics of handling exceptions in T-SQL, including 2005’s TRY-CATCH syntax. We will also discuss how much onus to put on SQL Server for handling its own exceptions.

Adam Machanic

Presentation

400

Hard core SQL Server Replication

How to implement effective SQL Server replication solutions from the author of the only book on SQL Server replication. This session looks at Transactional and merge replication, as well as replicating to SQL CE clients. It covers replication design, troubleshooting and optimizations. It also covers new features in SQL Server 2005.

Hilary Cotter

Presentation

300

Programming with SQL Server 2005 with .Net
 

SQL Server 2005 opens up the opportunity to run .Net code right inside SQL Server Engine on a par with T-SQL. This gives the programmer an expanded choice of programming language. This presentation shows you how to write C# or VB.Net routines and execute them in SQL Server as one of the supported SQL object types:

• Stored Procedure
• Scalar or Table User-defined Function
• Trigger
• User-defined Type
• User-defined Aggregate

Each of these objects has its own requirements .Net code to work in SQL Server. Included in the presentation are two key factors that must be accounted for in all SQL/.Net code:

• Using SQL Types and .Net Types
• Working with the SQL Server managed data provider

The presentation also touches on high level topics such as:

• When is it appropriate to use .Net code versus T-SQL
• A preliminary look at performance of .Net code.
 

Andrew Novick

Presentation

300

Highlighting the SQL 2005 Relational Engine

SQL Server 2005 provides developers and DBAs with many new enhancements for indexing and performance. In this session we will discuss some of the more important relational storage engine highlights:

- Table and index partitioning
- Indexes with additional columns included
- Correlated datetime statististics
- Snapshot Isolation Level
- Indexed view enhancements
- Persisted computed columns
- Disabling indexes

At the end of this session you will have a clear picture of how and when to use these new features to drive development of more highly performant, scalable SQL Server-based applications. A working understanding of SQL Server 2000's indexing features is recommended but not required.
 

Adam Machanic

Presentation

300

O/R Mapping Basics

This session will introduce the idea of O/R mapping, why you might want to use it, an overview of the mapper we use, and a brief discussion of how it works. Then we’ll jump into the code and build an app to use the mapper. This presentation will ignore problems and solutions we ran into when building / using the mapper.

Paul Corriveau
 

Presentation

 

O/R Mapping – Lessons Learned

This session builds on the O/R Mapping presentation and covers issues like circular references, caching, synchronization, etc. – things we didn’t know about, think about or got bit with.

Paul Corriveau

Chalk Talk

300

What’s New in ADO.NET 2.0?

ADO is here to stay and Microsoft just keeps making it better. ADO.NET has been fine tuned to increase ease of coding, flexibility, and performance, as well as adding better integration with SQL Server. From the provider, independent data access to asynchronous SQL Commands, to batch processing, to the beauty of the DataTable class now implementing iXMLSerializable, this session will run through the many wonderful enhancements that make ADO.NET 2.0 Evolutionary not Revolutionary.

Julie Lerman

Presentation

300

Creating SQL 2005 Custom Data Types and Aggregates using VS NET 2005 Session Level

Session Abstract: SQL Server 2005 now has the ability to create custom data types and aggregates using CLR languages like VB.NET and C#. This session will demonstrate how to create, install and use these custom data types in your SQL Server 2005 applications. Discussion of debugging, performance and maintainability will be discussed.

Rod Paddock

Presentation

200

Introduction to ADO.NET

ADO.NET is the primary mechanism for accessing data in Visual Studio .NET. This session will include a discussion of the ADO.NET architecure, demonstration of using ADO.NET classes to query data. Data sources demonstrated will include SQL Server, Oracle and Microsoft Access.

Rod Paddock

Presentation

300

SQL Server 2005 Security

This talk will focus on many of the upcoming changes in security for SQL Server 2005.

Robert Hurlbut

Presentation

300

Using the Reporting Services Web service for Integration and Management

In this session we’ll go beyond creating and deploying reports to explore some techniques for integrating Reporting Services into your applications by leveraging the Reporting Services Web service. The report development techniques we’ll look at will show how you can design rich parameter interactivity into your Reporting Services integration to extend the capabilities beyond what comes “out-of-the-box”, e.g. multi-select parameters. We’ll explore some techniques for expanding on the Report Manager and using a totally external reporting interface. After we’ve created complex reports with multiple datasets, multi-layered groupings, etc. providing reference documentation can be a challenge. I say…don’t bother…a couple of Web service calls and some creative formatting will make your reports largely self documenting.

Raj Das

Presentation

300

SQL Server 2005 Service Broker

Service Broker is a framework built into SQL Service 2005 that greatly simplifies the creation of reliable, scalable, message-based, asynchronous, distributed database application. A service broker can manage business transactions, which in practice can last for hours, days or indefinitely and span databases. A Service Broker application consists of a set of services, queues, message formats, and dynamically created conversation. Any application that can make a connection to SQL Server or a web service can make use of a Service Broker application. This session will cover the basics of Service Broker and show the implementation of a Service Broker application

Robert Hurlbut

Presentation

300

Building Business Intelligence Solutions with SQL Server 2005

This session will cover the new features of SQL Server 2005 that pertain to Business Intelligence. It will contain an overview of solution architecture changes associated with the new version of SQL Server as well as demonstrations of new product features.

Mauro Cardarelli /George Wesolowski

Presentation

200

Encrypted Connection Strings

How to build an object model for connection strings, add encryption (to secure the connection information), and add caching to offsite the performance encryption performance hit.
 

Don Demsak

Presentation

200

Fun with Attribute Based Programming: Extending Enums
 

An introducing to creating your own custom attributes and attribute based programming. The example will be using attributes to extend the amount of information an enumeration can carry, and then use it to create a framework that can be used to standardize the creation of parameters that are used in stored procedures. We will compare and contrast the traditional approach of a static utility class with the new enum based methodology.
 

Don Demsak

Presentation

300

Implementing Transactions With the UnitOfWork Pattern with the DAAB

The logical continuation of the Data Mapper Pattern presentation (from Code Camp II). We will discuss how to add transaction support to the data access application block using the UnitOfWork pattern and do it without having to resort to using EnterpriseServices (aka COM+).

Don Demsak

Presentation