| |
Tracks 1–6 DevWeek |
Track 7 & Track 8 SQL Server DevCon |
09.30 |
TRACK 1
Your applications in the ‘Cloud’ with Azure Services
Christian Weyer
Everybody talks about the ‘Cloud’ these days. In this session Christian Weyer shows you how to build new applications in the cloud or use interoperable services that run on Microsoft’s infrastructure to extend and enhance your existing applications. The Azure Services Platform provides a wide range of internet services that can be consumed from both on-premises environments or the internet. Let’s fly!
TRACK 2
The productive programmer: practices (10 ways to improve your code)
Neal Ford
No one writes perfect code. This session shows 10 strategies to improve your code, including fundamentals, code smells, sacred cows, anti-objects, good citizenship, test-driven development, nuances of your language, color-coding your world, the DSL style of coding, and abstraction distractions. Each topic includes example, including before and after snapshots of code.
TRACK 3
Building RESTful services with WCF and the REST Starter Kit
Aaron Skonnard
WCF provides first-class support for building “Web” services that embrace RESTful design principles using standard Web protocols and data formats. This session illustrates how to build WCF services that support the HTTP uniform interface and different resource representations like XML, JSON, and Atom/AtomPub in ways that will enhance your Web 2.0 mash-ups. We’ll specifically look at the new features found in WCF and the WCF REST Starter Kit.
TRACK 4
Advanced Silverlight 2: implementing navigation
Dave Wheeler
Can you create multi-page applications within Silverlight 2? You betcha! This session will give you the lowdown on how to build exciting, complex applications within Silverlight and deal with such requirements as deep bookmarking and integration with browser navigation, along with the use of subtle animation and the Visual State Manager to make the transitions smooth. A must for anyone who wants their Silverlight application to play nicely with the browser, the Web and its users!
TRACK 5
Things every ASP.NET developer should know
Robert Boedigheimer
There are many things you need to know to be a good ASP.NET developer. Do you understand the basics of HTTP? Do you know what a request and response look like “on the wire”? Do you take advantage of HTTP compression and expirations to reduce bandwidth and requests to your web site? Benefit from many years of experience with web development and discover features, tools, and techniques that you may have never used before. Utilize response filters and adapters to modify the output of your pages. There will be a wide variety of useful tips that can be taken and used today on your ASP.NET web sites.
TRACK 6
Pitfalls for new software architects
Simon Brown
It’s a well-known fact that we learn by making mistakes, but why not get a head-start and learn from other people’s! The software architecture role involves a depth of technology skills along with a breadth of many other things, including soft skills. Those of us that have driven down Architect Boulevard will know that it’s a potted ride and in this session we’ll tell you exactly where those pitfalls are. Packed full of real-world advice and quotes from others new to the role, this session will give new and aspiring software architects some solid advice for taking their roles forward. |
TRACK 7
Eventing in SQL Server 2008
Niels Berglund
SQL Server has always had the ability and tools to monitor server state and diagnose issues inside SQL Server (for example, SQL Trace and performance monitors). SQL Server 2005 introduced the ability to use the tracing capabilities within the operating system – Event Tracing for Windows (ETW). SQL Server 2008 builds upon this with Extended Events (EE), a general event-handling infrastructure. Extended Events is by far the most flexible and efficient event engine available within SQL Server. We look at the architecture of EE, the various components that EE introduces and also how we can use EE together with ETW to correlate event data from inside SQL Server with data from the operating system.
TRACK 8
SQL Server 2008: what to do and what not to do
Javier Loría
As new SQL Server 2008 implementations grow, database developers learn the advantages and disadvantages that new tools offer. We will examine five of the most relevant technologies included in SQL Server 2008, and explain how to use and abuse them. |
11.00 |
Coffee Break |
11.30 |
TRACK 1
Advanced WPF: writing custom WPF controls
Dave Wheeler
Sometimes, it’s enough to simply change the UI appearance of a WPF control. But what happens when you want to do more than that? This session will show you how to create user and custom controls that you can reuse in your WPF applications. Get deeply under the skin of a control by learning how to create “lookless” controls; use resources efficiently in your controls; and support features such as localisation and UI automation. This session requires attendees to have an understanding of WPF styles and templates.
TRACK 2
Productive programmer: mechanics
Neal Ford
In this session I identify four principles of productivity: acceleration, focus, automation, and canonicality. This talk defines the principles and describes their use, but the primary focus is on real-world examples of how you can use these principles to make yourself a more productive programmer. Acceleration covers ways to speed up development by taking command of your computer. This includes keyboard shortcuts (including ways to learn them and make better use of them) in both IntelliJ and Eclipse. Focus describes how you can utilize your environment (both physical and computer) to greatly enhance your productivity. Canonicality (the DRY principle from The Pragmatic Programmer) discourages repeating artifacts in projects. This talk shows effective ways to avoid this repetition. I show examples of creating DRY documentation, O/R mapping, database schemas, and development environments. Automation refers to making the computer do more work for you. This talk includes tons of examples, all culled from real-world projects.
TRACK 3
Building peer-to-peer applications with the .NET Framework, WCF and the Service Bus
Dominick Baier
Connectivity is a problem. IPv4 addresses are almost out which means that it becomes more and more expensive to bring a node “online”. Mobile clients, ad hoc networks, discovery and collaboration pose more challenges on modern networks. Microsoft offers several solutions to tackle the above problems. On one hand they ship a peer to peer networking infrastructure in Windows XP, Vista and Server 2008 that allows arbitrary applications to discover and connect with each other globally. This includes name resolution and abilities to connect across firewalls and NAT devices. On the other hand Microsoft announced the Service Bus as part of the Azure Services Platform that offers similar features to WCF along with some unique routing and security capabilities. Since both technologies try to achieve similar things, this talk will contrast them as well as demonstrate what needs to be done in your applications to allow secure global discovery and connectivity.
TRACK 4
Silverlight 2 – tricks with the browser
Mike Taulty
One of the real strengths of Silverlight is to interact with the HTML document that surrounds it and the JavaScript engine that’s running in the browser. In this session we’ll do a deep dive into the myriad of ways in which we can drive interaction between the .NET CLR, the Javascript engine and the HTML DOM in order to highlight all the capabilities that exist for getting HTML content and Silverlight content to play together. Expect code!
TRACK 5
ASP.NET ListView and LINQ
Fritz Onion
One of the real strengths of Silverlight is to interact with the HTML document that surrounds it and the JavaScript engine that’s running in the browser. In this session we’ll do a deep dive into the myriad of ways in which we can drive interaction between the .NET CLR, the Javascript engine and the HTML DOM in order to highlight all the capabilities that exist for getting HTML content and Silverlight content to play together. Expect code!
TRACK 6
The Patterns dartboard
Andy Clymer & Kevin Jones
Imagine a (virtual) dartboard. That dartboard has a selection of patterns pinned to it. Members of the audience can throw darts at the dartboard. Where the darts hit will determine how the talk goes. The talk will be about patterns, although which ones it’s impossible to know – it’s up to you to choose what goes into the talk! Will it be MVC? Factory? Command? Your darts! Your choice! |
TRACK 7
Building RESTful services with ADO.NET Data Services
Aaron Skonnard
ADO.NET Data Services is today’s “killer app” for building RESTful services. It makes REST possible for the masses without requiring developers to deal with the HTTP, URL’s, and Atom/AtomPub directly. Within just a few lines of code, you can have a RESTful service up and running that exposes the full HTTP uniform interface using Atom/AtomPub as the standard wire-level format/protocol. And on the client, they provide tool support for generating RESTful clients using “Add Service Reference” that make it easy to navigate your RESTful entities using standard LINQ query syntax.
TRACK 8
Advanced T-SQL tips and tricks
Itzik Ben-Gan
This session covers advanced T-SQL tips and tricks. It will demonstrate how to solve common T-SQL problems elegantly and efficiently. The session will cover techniques in SQL Server 2005, and where relevant it will also cover techniques that involve new features and enhancements in SQL Server 2008. The purpose of the session is not only to learn tips and tricks, rather also to have some fun with T-SQL. This talk is aimed at SQL Server DBAs and developers with at least one year of experience with T-SQL. |
13.00 |
Lunch |
14.00 |
TRACK 1
Advanced WPF: designing composite applications
Dave Wheeler
Real line of business (LOB) applications require more than just a pretty user interface. One thing that WPF does not contain in the box is a framework similar to MFC. However, there are now a number of really good guidance and implementation blocks/frameworks for building complex, composite WPF applications. In this session, you will receive practical guidance on building composite applications using a number of these blocks, highlighting the strengths and weaknesses of the different approaches. This session assumes that you have some prior WPF experience.
TRACK 2
The chaotic world of asynchronous programming
Andy Clymer
The shift on machine architectures from single cpu to multiple cpu is forcing developers to improve their asynchrononous programming skill set. Whilst the creation of multiple threads of execution is straightforward, the art of getting them to co-operate when accessing shared data is something all developers must master. This talk will introduce the synchronisation mechanisms available in .NET to allow safe access to shared data across multiple threads and discuss their costs and appropriate use cases. We will then discuss how to communicate between different threads to effectively implement common threading based patterns such as producer/consumer, countdown event. Aimed at developers who have a basic understanding of threading, technologies will include: Monitor class (including Monitor.Wait, Monitor.Pulse), ReaderWriterLockSlim, Interlocked family, Mutex’s.
TRACK 3
WCF security architecture & best practices
Dominick Baier
The WCF security system is very powerful but also complex. Security modes, client vs. server authentication, credential types, certificate validation, quotas etc. But once you understand the general architecture, it becomes easier to use and to customize. In this talk you’ll learn about the various security services that are provided by WCF ranging from authentication and authorization to auditing. Furthermore we’ll have a closer look at the various extensibility points and not so well documented features like sending multiple tokens and custom credential types. You will also learn how Microsoft’s new identity framework “Geneva” plugs into WCF and what concepts it adds to the base security infrastructure.
TRACK 4
Building controls in Silverlight 2
Fritz Onion
The primary mechanism for reuse in Silverlight 2.0 is the user control. This talk will walk through the steps for building effective user controls in the Silverlight 2, including steps for creating user control projects in Visual Studio 2008, editing user control user interfaces with Expression Blend 2.0, exposing properties and events from user controls, as well as control packaging. We will also look at the custom control model, and show how to build your own controls from the ground up, looking in particular at the factors that determine whether you need to build a custom control, or whether a user control would suffice.
TRACK 5
Extending ASP.NET web sites with “Web 2.0” features
Robert Boedigheimer
Many sites today represent functionality that is considered “Web 2.0”, but how do you take advantage of these from your ASP.NET web site? Study existing .NET libraries and develop some custom interfaces taking advantage of things like LINQ to XML. Integrate your site with Twitter, Facebook, Live Services, and others.
TRACK 6
Real-world refactoring
Neal Ford
Refactoring is a fine academic exercise in the perfect world, but we don’t really live there. Even with the best intentions, projects build up technical debt and crufty bad things. This session covers refactoring in the real world, at both the atomic level (how to refactor towards composed method and the single level of abstraction principle) to larger project strategies for multi-day refactoring efforts. This talk shows how to make your code safer for reactoring (even if you don’t have tests), how to target what needs attention, removing structural duplication, and other techniques derived from real porjects. This talk provides practical strategies for real projects to effectively refactor your code. |
TRACK 7
EDM, ESQL, Entity Framework, LINQ to SQL, LINQ to Entities – confused?
Eric Nelson
The Entity Data Model (EDM) v1 is the initial tiny step of what the product groups believe will be a significant shift in how we work with data. LINQ to Entities delivers ORM capabilities on top of EDM and also ends up competing against LINQ to SQL. This session will give a brief intro to each technology, expand on the “grand plan”, and hopefully enable you to make an informed decision when working on your own projects.
TRACK 8
Partitioning techniques in SQL Server
Javier Loría
Partitioning is a useful technique that allows large tables to be split up into small and more manageable chunks. In this session you will learn some of the best practices, tools and patterns to use in table partitioning. |
15.30 |
Coffee Break |
16.00 |
TRACK 1
Advanced WPF: the missing bits
Dave Wheeler
When learning WPF, the tendency is to focus on the big impact features in the user interface. However, there are a myriad of other major features, such as printing, integration with other imaging technologies, documents and annotations that can add real value to your applications. This session will examine these (and other features) in detail, helping you round off your knowledge of WPF.
TRACK 2
Visual Studio 2008 IDE tips and tricks
Guy Smith-Ferrier
Visual Studio is a treasure trove of functionality and productivity. The problem is that many developers don’t know what’s there. In this session we will cover some simple and not so simple tips and tricks and improve your productivity and enjoyment of Visual Studio. The majority of tips and tricks are common to both Visual Studio 2005 and Visual Studio 2008.
Prerequisites: Knowledge of Visual Studio 2008 or Visual Studio 2005.
TRACK 3
Managing context in long-running workflow services
Matt Milner
Windows Workflow Foundation and Windows Communication Foundation provide the framework for creating long-running, correlated business processes. In this session we’ll dive into the concepts and mechanics of how to manage a workflow that involves one or more conversations with other services or clients. In addition to covering the mechanisms supplied in the framework, I’ll show you a custom mechanism to make your message correlation even simpler.
TRACK 4
Server communication with ASP.NET AJAX and WCF
Fritz Onion
This session will go into depth on how to best leverage WCF 3.5 Web services from ASP.NET AJAX. We will look at how to configure WCF services to respond to client-side script calls, covering the details of JSON serialization, asynchronous callbacks, and the JavaScript proxy generation. We will also look at the pre-built services provided by ASP.NET AJAX including the profile service and the authentication service. Finally, we will go over some best practices for efficiently using services from client-side code.
TRACK 5
Building RESTful services with ASP.NET MVC
Tim Ewald
We all know that ASP.NET MVC is a great platform for developing Web applications that cleanly separates concerns, provides control over URIs, and makes testing easier. What you may not know is that MVC is a great platform for building service-oriented APIs based on the principles of REST. This talk explores the topic, based on experience gained writing real code for a real service.
TRACK 6
Visualizations for code metrics
Neal Ford
Judicious use of metrics improves the quality of your code. But interpreting metrics presents a challenge. You have a list of numbers for a project – what does it mean? And what does it tell you about the health of the project overall? This session shows how to produce visualizations for software metrics, making them easier to understand and more valuable. It covers metrics at the individual method level up to the overall architecture of the application. This isn’t just a talk about how some tools produce visualizations: it shows you how to generate your own visualizations, customized to the level in information density that shows real value on your project. I show how to produce projected graphs from dependencies, heat-maps for cyclomatic complexity and code coverage, using XSLT to extract visual information from XML configuration documents, and others. |
TRACK 7
ADO.NET enhancements for 2005/2008
Klaus Aschenbrenner
The new version of ADO.NET and SQL Server can interact more seamlessly than any previous combination of DBMS and data access framework. The combination of the two allows for much easier development of a wide variety of database-centric applications. Learn to use Query Notifications, MARS, asynchronous commands, FILESTREAM, spatial data, and the GEOGRAPHY data type – features that provide a powerful new foundation for creating heavily data-driven applications.
TRACK 8
SQL Server user-defined functions – the good, the bad, the ugly
Maciej Pilecki
User-defined functions are a nice feature for improving code reuse and lowering code maintenance burden. But what most developers do not know, they come with a cost. During this session we will look at different types of functions: scalar-valued and table-valued, both in T-SQL as well as SQLCLR, and their behaviour and performance impact. We will go through real-life examples of how, why and when use of functions in your queries can backfire and cause performance problems. We will also establish some best practices for use of UDFs, based on the lessons learned. |
17.30 |
Close |
|