I'm going to be speaking at VSLive San Francisco 2007 in just a few weeks -- March 25 through March 29.
I'm doing five 1-hour sessions and an all-day workshop.
The talks:
**Serious WebPart Customization
**Ever tried to customize how your ASP.NET WebParts look? Sure, you can change colors and fonts, but what if you want to change the layout? What if you need to put the WebPartVerb menu in a different place? That goes beyond simple tweaking; now you need custom WebPartChrome. In this session, Ben will do a deep-dive on the ASP.NET WebParts architecture and show you how to seriously customize your WebParts by creating your own WebPartChrome and WebPartZone, all without losing the benefits of personalization.
Designing For User Interface Testability
Do you unit test your user interfaces? Probably not. Windows Forms and ASP.NET pages aren’t easy to control from VSTS or NUnit unit tests and that means low code coverage and lots of testing by hand. Bug fixes are harder, too. You can minimize this pain by designing for testability.
In this session, Ben will show you a testability pattern for your Windows and ASP.NET user interfaces that will increase testability, improve code coverage, and – as a side effect -- simplify bug fixes, refactoring, and maintenance.
**Building ASP.NET Database Applications with NHibernate
**The problem: our applications use objects, but our databases don't. Why isn't there an easy way for applications to use objects, but store their contents in a database with a minimum of effort required to transition between them? Enter NHibernate: an open-source, object-relational persistence framework that uses XML to map classes and properties (in your program) to tables and columns (in your database). Once you write the mappings, NHibernate can generate the database code and SQL necessary to save and retrieve your objects.
In this session, Ben will discuss the fundamentals of NHibernate and walk you through the process of using NHibernate to create a database-driven ASP.NET web application.
**Serious Team Foundation Server Customization
**
You’ve learned how to customize work item templates. It was fun but now you feel empty inside and need new challenges. How about a custom TFS event handler? Or a power toy to eliminate some tedious linking operations?
Did you know that Team Foundation Server (TFS) has an API to control, customize, and consume almost any piece of TFS functionality, including version control, the build system, and work items? You need to learn how to customize TFS.
In this session, Ben will show you how the TFS Event Service works so that you can write your own event handlers. After that, he’ll dive in to the TFS APIs so that you can start writing your own tools to connect to TFS, manage work items, and link them using the linking service.
**Serious Team Foundation Server Source Control
**
Did you know that there’s a command-line interface to the version control system called “TF” with 33 sub-commands? Also, you can help ensure quality by configuring check-in policies. You can create your own check-in policies, too. Have you played around with branching and merging yet? TFS is source control is seriously powerful.
In this session, Ben will show you how to become a TFS version control power user. First, he’ll start with an overview of configuring source control, then dive into the TF command, give some advice on setting up your source control tree, and then show you how to create your own TFS check-in policy.
The workshop:
**Getting the Most Mileage out of Team System: The Developer’s Perspective
**
Ok, you’ve heard all the Microsoft claims about Visual Studio Team System/Team Foundation Server, its features and benefits, and what it’ll do for you: blah, blah, blah. The question is: as a Developer, what do you need to know about Team System to be more productive? Visual Studio Team System is out there and it’s got a ton of features. It’s supposed to be great for developers but where do you start? What do you really need to know? More importantly, what do you need to know to make you as a developer be more productive?
Bottom line: Team System is all about you writing high-quality code. When you write quality code, you catch problems early and you try to make sure that those problems never come back.
In this tutorial, Ben will show explore how Visual Studio Team System and Team Foundation Server help you to write quality code.
We’ll start with unit testing: What is unit testing? What is Test-Driven Development? What are all different test types? How do you design for testability? What are good tests vs. poorly designed tests? What’s a “mock” object? How do you test user interface functionality? What’s code coverage? Why would you want to use code profiling on your unit tests? What’s the best way to unit test your stored procedures?
Next, we’ll talk about managing your code with Team Foundation Server source control: How do you ensure that your code base is clean? How do you keep people from breaking the build? What’s “continuous integration”? How to use check-in policies to avoid source control anarchy? Why use Static Code Analysis? How do you use branching and merging to manage multiple versions of an application? What’s a shelveset – and why does it take care of the “hit-by-a-bus factor”?
Then we’ll cover how Visual Studio Team System helps you manage your database code: How can you manage databases with Team Foundation Server source control? How do you manage new versions of the database schema? What’s the best way to get test data? Why is “Rename Refactoring” better than CTRL-H (Find & Replace)?
Finally, we’ll discuss the Team Foundation Server build system: What’s a Team Build? What’s MSBuild? What’s a build script? How do “desktop builds” fit in?
When we’re done, you’ll have learned the Developer-centric features in Team System that leverage unit testing, source control, and Team Builds to be highly productive and develop high-quality software.
-Ben