DevWeek 2008 Post-Conference Workshops
NOTE The information on this page refers to DevWeek 2008. This site will be updated with information on DevWeek 2009 closer to the event.
Friday 14 March 2008
The following workshops run for a full day (from 09.30 to 17.30), with a short break in the morning and afternoon, and a lunch break at 13.00.
 |
Architecting web applications with ASP.NET AJAX
WORKSHOP REF: F1
Dino Esposito
When using ASP.NET AJAX Extensions to transition your site to an AJAX experience, there are two main programming models to choose from: partial rendering and script services. With partial rendering, you don’t need to change the underlying architecture of an ASP.NET application and it’s therefore an easy route to implementing some of the best elements of AJAX, such as no-flicker updates to pages on your site. In the end, with partial rendering you perform some smart tricks that get you some of the AJAX typical capabilities, but still miss key architectural points. All in all, the typical AJAX architecture is fairly easy to understand. There’s a backend made of application-specific services, which are usually just an AJAX script-callable façade on top of the middle-tier of the system where the business logic lives and works. Services and the front end exchange data via HTTP using a variety of formats to pass parameters and return values. After receiving and processing data, the front end, which is made of JavaScript code running on the client, faces the nontrivial task of building a graphical UI using HTML and JavaScript. Building and publishing script callable services, massaging inbound and outbound data and updating the client user interface are all tasks that require key choices. In this workshop, we’ll introduce and comment partial rendering and then discuss patterns, practices and Visual Studio 2008 tools for designing real AJAX applications with ASP.NET 3.5. |
 |
 |
A day of .NET design patterns
WORKSHOP REF: F2
Kevin Jones & Andy Clymer
The pressure of code delivery often means that developers constantly find themselves writing code using the same old bag of tricks they learned during their “apprentice years”. In the same way that areas of the platform evolve, so does understanding of good Object Oriented practice. This workshop aims to bring developers up to date on these latest good practices.
The process of examining patterns not only facilitates the learning of standard solutions, but also helps a developer to evolve a better understanding of OO principles, enabling them to effectively apply these principles to their own unique problem spaces.
Patterns introduce a new standardised vocabulary to describe reoccurring techniques enabling developers to communicate far more effectively. Patterns enable adaptive software and simple clear communication between developers and others.
Software development teams are continuing to focus on agile methods in order to compete. The techniques covered in this course will show how it is possible to write code that allows for stable solutions that can evolve quickly. We will show how to write code that is closed for modification but open for extension, a key requirement for such solutions.
We will introduce patterns and pattern languages and cover the main patterns in use today, including Observer, Decorator, Factory/Abstract Factory, Singleton, Command, and others. |
 |
 |
Hardcore debugging – when things go wrong in production
WORKSHOP REF: F3
Ingo Rammer
Your system is running fine. It scales well. Everything seems in order and you are just about to go on vacation. Suddenly, your system starts to behave in new and interesting ways: exceptions and errors creep up which you’ve never seen in development or testing. In fact, you can’t even reproduce them outside of your production environment – and even there, it’s hard to reproduce them at all. This is where we start our day: your system is in production and you need to fix it today. In this full-day tutorial, you will learn how tools of the “Debugging Tools For Windows” suite, like WinDBG, CDB and KD, can help you to tackle problems in applications which are in production. You will see how you can debug .NET apps based solely on crash dumps (which might even be taken in non-invasive ways), and how you can make sense of the information you’ll get there to get the system up and running as soon as possible. |
 |
 |
Microsoft’s new Identity Model
WORKSHOP REF: F4
Keith Brown
Identity on the Microsoft platform has traditionally been a very fragmented story. Enterprise applications that rely on Windows Integrated authentication are very easy to build, and can be very secure, but they also have many limitations. For example, what happens when you want to allow users from another company to use your app? Switching to ASP.NET Forms authentication is sometimes an option, but that has its own share of problems.
Over the past couple of years, Microsoft has been working to find ways to authenticate and authorize users that makes it easier to federate identity across organizations and platforms. Active Directory Federation Services was the first product to enable federation, and it introduced the notion of a claims-based identity model. With the release of WCF, a new identity model emerged for programmers via the new System.IdentityModel namespace. CardSpace built on this model, allowing consumers to create their own self-asserted identities. With this new identity model, federation becomes much easier. Claims-based applications are much less tightly coupled to authentication technology.
By the time you leave this all-day workshop, you will understand the zen of the new identity model, and you’ll see how you can use it to build apps that reach across technological and organizational boundaries. This is a revolutionary change to how we approach authentication and authorization on the Windows platform, so be sure not to miss this session! |
 |
 |
A day of connected systems with Visual Studio 2008
WORKSHOP REF: F5
Richard Blewett
Most businesses find themselves building applications that use two or more machines working together to produce their functionality. One of the challenges in this world, apart from the actual business logic being implemented, is connecting the different parts of the application in a way that best fits the environment the machines are places – are there firewalls in place? Are some parts of the application written on different platforms such as Java? Do the different parts of the application have to maintain their state over machine restart? Late 2006 saw Microsoft release WCF and WF to tackle some of these challenges. However, parts of the story were left untold – especially the integration between the two.
Visual Studio 2008 introduces a number of new features for writing service based software. Its features build on the libraries released as part of .NET 3.0, providing an integration layer between the two. In this pre/post conference session we start at the basics of how WCF and WF work and then look at the various integration technologies introduced in Visual Studio 2008. |
 |
 |
The art of loosely coupled design
WORKSHOP REF: F6
Kevlin Henney
Audience: developers and architects
Simply put, a dependency in code is the result of one piece of code using another piece of code. Dependencies allow a system to be a system rather than a disparate set of unintegrated parts. However, if they are not kept in check, dependencies can stunt the development of a system, making it harder to understand, harder to maintain, harder to fix, harder to extend, harder to test – in a nutshell, harder. This session explores the kinds of dependencies that exist in a system, the consequences of poorly managed dependencies, and a number of solutions that can help.
If you find that you cannot unit test the core part of your application without connecting to a database or loading up configuration details from a file or the registry, you have a dependency problem. If a single class hierarchy dominates your application, so that any fix or new feature requires changes to the hierarchy but your hierarchy resists change, you have a dependency problem. If you have Singletons all over your code, ostensibly introduced to simplify your code, you have a dependency problem. If you have cyclic dependencies across the packages or subsystems of your subsystem, or are unsure what a cyclic dependency is or how to recognise one, you have a dependency problem. |
 |
 |
Getting started with BizTalk Server 2006
WORKSHOP REF: F7
Aaron Skonnard
Despite the trend towards service-oriented architectures, most organizations don’t have the luxury of moving all of their investments in that direction at once. The fact is most will have to deal with legacy applications for some time to come. And to complicate matters further, typical business processes transcend multiple heterogeneous applications making them difficult to automate. BizTalk Server (BTS) 2006 was specifically designed to bridge such integration gaps and simplify business process automation. This full-day workshop will quickly immerse you into the world of BizTalk and show you how to get starting with messaging and orchestration. |
 |
 |
Advanced T-SQL querying and programming
WORKSHOP REF: F8
Itzik Ben-Gan
This seminar is jam-packed with practical advice for T-SQL querying, programming and tuning. We’ll cover practical problems that T-SQL programmers face daily, providing different solutions for each problem, and explaining in detail how to tune your code to produce robust and efficient applications.
Among the subjects that will be covered are: ranking calculations, window-based calculations, islands and gaps, running aggregations, custom aggregations, PIVOT on steroids, unpivoting, auxiliary table of numbers, splitting arrays, TOP on steroids, APPLY, paging, randomization, maintaining sequences, graphs, trees, hierarchies and recursive queries, T-SQL vs. CLR routines, regular expressions, dynamic filters, exception handling, and more.
Attendees should have at least a moderate level of experience with T-SQL querying and programming. |
 |
Return to Sessions introduction
|
|
|
|
Download code samples from DevWeek 2008
|