DevWeek 2012®
26-30 March 2012, London. The UK's Biggest Conference for Developers, DBAs and IT Architects.
Home
The Sessions
The Speakers
Microsoft Tech.Days
Reserve Your Seat
Speaking at DevWeek
Sponsors & Exhibitors
Who Should Attend?
The Venue
Accommodation
Code Samples
Join DevWeek Facebook group
Join DevWeek LinkedIn group

DevWeek 2012: Thursday 29 March

  Tracks 1–8
DevWeek
Track 9
Microsoft Track
9.30
TRACK 1
IntelliTrace: today and tomorrow
Brian A. Randell
Microsoft’s IntelliTrace feature is a godsend for finding bugs quickly. In this session, you’ll learn how to you can debug better and faster using Visual Studio 2010’s core features as well as IntelliTrace. In addition, you’ll learn about the new changes in the next release including using it for production bug finding – something that’s brand new for the next release.


TRACK 2
Practical Reactive Extensions
Jim Wooley
With the emergence of LINQ, we discovered the power and flexibility that comes from the IEnumerable interface. This pull model makes iterating over sets of data and performing filtering, transformation, and aggregation operations easy through LINQ. However, the pull model breaks down in asynchronous and event driven environments. In evaluating the options, we discovered that the IObserverable interface and the push model were effectively analogous to the pull model of IEnumerable. As a result, we can make event driven asynchronous programming easier and more declarative by using the Reactive Framework and LINQ to Events.


TRACK 3
The Metro design language
Dave Wheeler
Metro-styled applications are new, exciting, and work differently from previous Windows applications.
This session takes a deep look at the core design principles of Metro; the beauty of the typography; the clean layout; the fluid nature of the application; the simplicity of touch.
Metro is far more than just a new way of coding applications; it is a way of communicating beautifully with a user.
Come to this session to find out how.


TRACK 4
Improving testability in ASP.NET Web Forms with MVP
Dino Esposito
ASP.NET Web Forms is not exactly an environment that makes it easy to automate testing. Most of the time, you need to resort to ad hoc tools specifically architected to speed up testing of ASP.NET Web Forms pages while making it cost effective. With a bit of refactoring, however, you can redesign the structure of individual pages to match the guidelines of the Model-View-Presenter pattern. This gives you an immediate benefit in terms of increased capabilities to test the code behind your pages through popular testing tools. At the same time, it improves the design of pages adding more separation of concerns. Being view-focused, the MVP pattern is not necessarily a pattern that applies to the application as a whole but can be instead applied piecemeal to a few related pages at a time. In this session, you’ll see an end-to-end MVP solution that improves the design of a sample Web Forms page.


TRACK 5
Smart UX design for smart phones
Tobias Komischke
Designing for smart phones is not the same as designing for desktop or web applications. While many fundamental user experience design principles can be applied 1:1, there are unique factors that impact the UI design. This session provides concrete and applicable design considerations specifically for smart phones. The following topics will be addressed together with examples:
• Special considerations for small form factors (navigation & user flow, providing orientation, rich interactions, notifications vs. alarms, data entry, text size etc.)
• Special considerations for the context of use (one hand usage, usage while walking, contrast and glare effects, environmental noise impact)
• Ways to mitigate the drawbacks of touch screens; recommendations on gestures and touch target sizes, etc.
• Walking the line between ideating novel design and adhering to phone OS UI guidelines such as Microsoft’s Metro style guide.


TRACK 6
Programming with GUTs (Part I) – good unit tests inside and out
Kevlin Henney
These days testing is considered sexy for programmers. But there is a lot more to effective programmer testing than the fashionable donning of a unit-testing framework: writing Good Unit Tests (GUTs) involves (a lot) more than knowledge of assertion syntax.
Testing represents a form of communication and, as such, it offers multiple levels and forms of feedback, not just basic defect detection. Effective unit testing requires an understanding of what forms of feedback and communication are offered by tests, and what styles encourage or discourage such qualities.
What style of test partitioning is most common, and yet scales poorly and is ineffective at properly expressing the behaviour of a class or component? What styles, tricks and tips can be used to make tests more specification-like and scalable? This session uses C# and NUnit to examine what it takes to program with GUTs.


TRACK 7
The frustrated architect
Simon Brown
The IT industry is either taking giant leaps ahead or it’s in deep turmoil. On the one hand we’re pushing forward, reinventing the way that we build software and striving for craftsmanship at every turn. On the other though, we’re continually forgetting the good of the past and software teams are still screwing up on an alarmingly regular basis. Software architecture plays a pivotal role in the delivery of successful software yet it’s frustratingly neglected by many teams. Whether performed by one person or shared amongst the team, the architecture role exists on even the most agile of teams yet the balance of up front and evolutionary thinking often reflects aspiration rather than reality. If we really do want to succeed, we need to get over our fascination with shiny new things and starting asking some questions. Does agile need architecture or does architecture actually need agile? Have we forgotten more about good software design than we’ve learnt in recent years? Does any of this matter if we’re not fostering the software architects of tomorrow? How do we move from frustration to serenity?


TRACK 8
Mission-critical SQLCLR – internals and best practices
Bob Beauchemin
This talk covers the internal of how SQL Server CLR support works to give you the knowledge to architect and troubleshoot SQLCLR-based database applications, and includes the SQLCLR improvements in SQL Server 2012. Because SQL Server procedural code (stored procedures, UDFs and triggers) can now be written in T-SQL or .NET languages, I’ll also focus on what happens when .NET CLR code accesses the database and discuss which coding language is a better choice for a given problem. Finally I’ll look at how changes in SQL Server 2008/2012 SQLCLR may affect your choice.
TRACK 9 – Microsoft
 
Take your development to the Cloud with the Team Foundation Service
 
Giles Davies & Richard Erwin
 
This session takes a detailed look at the new Team Foundation Service that brings together Team Foundation Server and Windows Azure. We will demonstrate how simple it is to get up and running with the service, the streamlined version control, issue tracking and support for cross-platform teams.
11.00
Coffee Break
11.30
TRACK 1
Storyboarding in Visual Studio 11
Brian A. Randell
Building the right user experience for your users requires that you define the user interface and workflow in a way that solves their needs. In the past, developers have tried to prototype the UI using the actual tooling that they planned to build the application in. However, rather then make the process better, it made it worse by confusing users about quality of the application and overall readiness. In the next release of Visual Studio, Microsoft is introducing a new storyboarding tool that you can use to define the user experience and workflow of a new application that’s independent of the final implementation details. You’ll see how to use it, create a feedback cycle, and link it into Team Foundation Server.


TRACK 2
Dynamic consumption in C# 4.0
Oliver Sturm
C# 4.0 supports the new “dynamic” keyword, which promises easy interaction with those parts of the programming world that are, well, dynamic in nature. In this session, Oliver walks you through several scenarios, interfacing with dynamic programming languages as well as Automation, and explaining some of the basics of how dynamic calls work in C#.


TRACK 3
What’s new in WPF 4.5?
Dave Wheeler
WPF keeps going from strength to strength, and the latest version contains a bunch of improvements, primarily focused on enhancing performance.
WPF is still the leading UI technology for building large, desktop LoB applications on Windows.
So if you want to find out what’s new and improved in WPF, then you should come to this session.
Note: This session assumes that you have prior experience with WPF.


TRACK 4
Single-Sign-On, Federation and Claims for ASP.NET and WCF in the .NET Framework 4.5
Dominick Baier
Starting with .NET 4.5, Microsoft has integrated the functionality and APIs of the Windows Identity Foundation right into the Base Class Library (including WS-Federation and WS-Trust). This means that every identity across all contained technologies is now claims-based. ASP.NET and WCF have the WIF API built-in which allows for Single-Sign-On, Federation and token based authentication out of the box. Furthermore .NET 4.5 includes a new approach to identity transformation and claims-based authorisation. Since this is now the default model, every developer dealing with authentication and authorisation should be prepared.


TRACK 5
Patterns of mobile application development
Dino Esposito
A mobile device is perhaps used like a laptop, but has quite different characteristics – memory, battery, connectivity, screen real-estate, input devices, sensors, processing power. All this makes writing an application a different type of challenge and requires a different set of design patterns. In this talk, we’ll identify the general types of mobile applications you can write and isolate a few common patterns that can be applied to any mobile platforms although, perhaps through a different API. We’ll talk about local storage, predictive fetch of data, minimising input, visual feedback for the user, managing connectivity, storage of sensitive data and more.


TRACK 6
Programming with GUTs (Part II) – putting some drive into your tests
Kevlin Henney
Talking about unit tests is all very well, and can be motivating, but describing them and how you get them is one thing and seeing simple code evolve alongside tests is quite another.
This second part of the talk switches from slides to coding to illustrate the principles and practices in action. There will be plenty of opportunity to ask questions as the session progresses.


TRACK 7
4 practical uses for Domain Specific Languages
Neal Ford
Domain Specific Languages seem like a cool idea, but where’s the payoff? This talk provides an overview of how to build both internal and external DSLs (including the state of the art tools), stopping along the way to show how this is practical to your day job. This talk defines DSLs, distinguishes the types of DSL, and shows examples of building DSLs of several kinds. It shows how to utilise DSLs for externalising configuration, how to make your code readable to humans, how DSLs make developer tools better (and how to use DSL techniques to build your own tools), and how DSLs can provide your users unprecedented flexibility and power, by building DSLs customised to their job. This talk provides a good foundation for the subject if you’ve never seen anything about it, but keeps the focus on practical goals.


TRACK 8
Understanding SQL Server execution plans
Klaus Aschenbrenner
Do you know SQL Server execution plans? Yes! – and can you read/analyse them? No… For the beginner it is not very easy to understand and explain execution plans generated by SQL Server for your queries. Therefore this session gives you an overview and understanding about SQL Server execution plans and how you can read them without devouring complete books. You will see the basic constructs of an execution plan, and how SQL Server uses them to translate your SQL based query to an internal format which is executed by the execution engine of SQL Server. After this session you are able to understand and analyse execution plans generated by your queries, and how you can tune them with the adoption of additional indices. You will also see which additional information about your queries an execution plan will expose to you.
TRACK 9 – Microsoft
 
Agile development with Visual Studio 11
 
Giles Davies
 
A walk through of a sprint demonstrating how the next version of Visual Studio supports Agile development with a specific look at backlog management, prioritisation, sprint planning and capacity management, together with a look at the unit testing features including Test Driven Development and new features such as continuous unit testing.
13.00
Lunch
14.00
TRACK 1
M-V-VM from the ground up
Dave Wheeler
M-V-VM (or Model, View, ViewModel) is a critical pattern for modern Metro, WPF and Silverlight development.
But how do you actually do it? And what are the benefits?
This hard core, deep dive session will examine all aspects of the M-V-VM pattern; its benefits, problems, consequences, and all of its warts.
This session is a must for anyone working in a modern Metro or .NET application environment.


TRACK 2
Dynamic C# 4.0 – the provider side
Oliver Sturm
The integration of dynamic features in C# 4.0 is based on clever architecture that hooks into the DLR. Therefore, the APIs are complex (and well designed!) enough to allow for extensions, so that C# programmers can create their own dynamic classes, either to implement fully dynamic structures for use on the “static side” of .NET programming, or to provide APIs to dynamic languages. This session provides several practical examples.


TRACK 3
The busy developer’s guide to Team Foundation Server 2010 version control
Brian A. Randell
Writing code is one thing. You can do it with Notepad. Yet writing code in a team with version control is another. In this session, you’ll learn how to use Team Foundation Server 2010’s version control system right. You’ll learn the standard operations like check-out, check-in, getting the latest and getting a specific version. You’ll learn about workspaces, how to track file and folder history and how to compare versions. You’ll understand how to use features like shelving for interrupted workflow and code review as well as the command-line in the core product and the Power Tools. And you’ll learn how to handle conflicts when checking in code that someone else has modified at the same time. At the end of this session, you’ll have the foundation to use version control as easily as you use your code editor of choice.


TRACK 4
jQuery tips and tricks
Robert Boedigheimer
jQuery continues to become more popular, and provides the ability to create very dynamic web pages easily, despite differences in browsers. Take advantage of jQuery to make Ajax calls without requiring full page postbacks. Discover many popular plugins that provide masked edit boxes, cycle through images, provide dialog boxes, and implement drag and drop. Save yourself time by learning the best features of jQuery, and some tips and tricks to utilise it to the fullest.


TRACK 5
Reactive Extensions for JavaScript
Jim Wooley
The Reactive Extensions allow developers to build composable, asynchronous event-driven methods over observable collections. In web applications, you can use this same model in client side processing using the RxJs framework. We’ll show you how you can take advantage of this framework to simplify your complex asynchronous client side operations.


TRACK 6
Loosely coupled messaging with Windows Azure AppFabric Service Bus
Christian Weyer
It is no secret that decoupled messaging is a powerful design pattern and architecture candidate to build scalable and robust distributed application systems. This goal is even more important if you want to design architectures that run in and on the cloud trying to leverage the full power of (for example) Windows Azure. The Service Bus from the Windows Azure AppFabric offers durable message queues and a publish-and-subscribe-style feature through either WCF or a pure HTTP REST APIs. All with a reasonable pricing model to be used by you for all kinds of application communication scenarios, potentially spawning several technology platforms.


TRACK 7
Successfully continuing Agile development of a product to v3 and beyond
Mark Wightman & Matt Turner
Getting to v1 of a product using agile techniques is fairly well understood, but how do you manage its continuing development into maturity? We look at the lessons learned from that journey to v1, and how we applied them to get to v3. With the second year of development came many new challenges – a changing team, multiple teams, a complex codebase and an existing userbase expecting high-quality product updates. In this talk we explore how all of these problems can be solved with agile techniques, and the pitfalls which you may encounter.
After a short intro to the product in question, we will take a critical look at our approach to the development of v1 (and bravely invite the audience to do the same!), followed by a section on the lessons we thought we’d learned, how we changed our approach as a result, and whether any of it worked.


TRACK 8
Full text and semantic search in SQL Server 2008 & 2012
Bob Beauchemin
This talk covers the architecture of SQL Server Full text search in SQL Server 2008 and some major improvements in SQL Server 2012. Though Full text search has been an optional component of SQL Server since SQL Server 7, it was re-architected in SQL Server 2008/2012 for best performance. It provides special components, indexes, and T-SQL functions that allow semantic queries and relevance ranking of unstructured data in addition to traditional T-SQL LIKE operations that implement string-based queries. SQL Server 2012 adds property-based searches and new word-proximity operators and also Semantic Search as an adjunct to FTS. Finally I’ll cover the new parsing and other DMVs that make FTS less of a “black-box” and assist troubleshooting in SQL Server 2008.
TRACK 9 – Microsoft
 
Externalising authentication with the Windows Azure Access Control Service
 
Steve Plank
 
ACS lets you wire up your Windows Azure based application to external Identity Providers such as Live ID, Google, Yahoo, Facebook and even your own Corporate Active Directory. But there are a few basics and some terminology to get fully to grips with before you can understand what is going on. This session discusses the language and vocabulary of digital identity and then applies that understanding to a concrete example – a Windows Azure application which uses ACS. It uses a demo to show what you need to do in the application and what you need to do to ACS to complete the wiring. Just about every user on the Internet already has a Live ID, Google, Yahoo or Facebook account. This is a great way to tap that pool of potential users for your own Internet applications.
15.30
Coffee Break
16.00
TRACK 1
Advanced M-V-VM
Dave Wheeler
Most M-V-VM demos stop with a single Model, View and ViewModel.
Not this session.
We’ll take a hard look at multiple ViewModels; central commanding (such as File, Save All); isolation and testing; secondary UI and interaction between a View and a ViewModel; and robust and reliable messaging.


TRACK 2
What?!? C# could do that?!?
Shay Friedman
.NET 4 has brought us the DLR and C# 4 has brought us the dynamic keyword. With their powers combined, C# suddenly gets super powers! In this session Shay Friedman will show you surprising and practical things you can do with C#, the dynamic keyword, the DLR and IronRuby!


TRACK 3
What’s new in Team Foundation Server 11
Brian A. Randell
The next release of Team Foundation Server promises to provide teams with a rich set of enhanced features. In this session, you’ll learn about the new features like the new Team Explorer, code review tooling, rewritten code merge tool, local workspaces, rollback in the UI, and more.


TRACK 4
A developer’s guide to web images
Robert Boedigheimer
Most web developers have only a casual understanding of image formats and how to optimise images for web sites. Learn which image formats are appropriate for different types of images (logos, photos, etc). Discover various techniques for improving the performance of your site by serving images from a CDN, CSS Sprites, hosting images on multiple domains, and other approaches. Web developers understand HTML, CSS, JavaScript, jQuery and other frameworks, why not review how to best utilise images as well.


TRACK 5
An introduction to node.js
Hadi Hariri
Have you heard of node.js in passing, but you’re not really sure what it is and why it matters? Come to this session to find out. We’ll start at the very beginning and explain what node.js is, why it’s useful and how to get up and running. Microsoft is investing time and money into node.js by helping port it to Windows, and with recent announcements of Windows 8 and its heavy integration with JavaScript, now’s definitely the time to start picking up node.js.


TRACK 6
Agile engineering practices
Neal Ford
Most of the time when people talk about agile software development, they talk about project and planning practices but never mention actual hands-on-keys, as if development were an afterthought when writing software. This talk drills into the real details of how to do agile engineering. I discuss best practices like continuous integration, pair programming, how developers should interact with story cards, how to handle enterprise concerns like integration with other software packages, and a slew of other topics related to agile software development.


TRACK 7
Patterns and approaches for securing web services and APIs
Dominick Baier & Christian Weyer
The service pattern is pervasive – either operation centric (aka SOAP) or resource centric (aka REST). The security challenges are the same in both worlds – authentication, authorisation and secure communication. Common scenarios are direct authentication (like passwords or client certificates) as well as brokered authentication where the identity provider is external. This talk walks through those common scenarios and shows the architectural and technical approaches to design and implement those services in a secure fashion.


TRACK 8
SQL Server query tuning
Klaus Aschenbrenner
If you have a database driven application which reacts very slowly when the data increases, then you need to be in this session! You will learn how you can tune SQL Server queries with the information available inside an execution plan. You will see how SQL Server retrieves data from the database file, how SQL Server can join resultsets, and how you can react with indices if you are in performance troubles.
• JOIN techniques used by SQL Server
• Table/Index scan vs. Index Seek
• Avoiding Bookmark-Lookups
• Index Usage
TRACK 9 – Microsoft
 
Metro design: concepts for developers
 
Dave Crawford
 
The Metro Design language represents a fresh, new way to create user interfaces. Drawing inspiration from sources such as print materials and way-finding graphics as well as earlier Microsoft products like Windows Media Center and Zune, Metro has an emphasis on simplicity and sits at the very heart of the Windows Phone, XBox, and Windows 8 user experiences.
In this session we’ll explore Metro from a developer’s perspective, using Windows Phone as the target platform. We’ll look at what it means to create a Metro application that blends seamlessly with the OS and native applications. We’ll explore key components and best practices and in particular we’ll look at these things in action, with a plethora of demos of great Metro apps.
17.30
Close


Return to Sessions introduction