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: Tuesday 27 March

  Tracks 1–8
DevWeek
Track 9
Microsoft Track
09.30
Technical Keynote – See it. Touch it. Live it!
Dave Wheeler
Windows 8. Metro. WinRT.
It’s an exciting time to be a Windows developer.
Windows is going through its greatest change in over a decade, and you have the opportunity to jump right in at the forefront of the next generation of application development. This demo-filled, developer-oriented, clear and concise introduction to Windows 8 and Metro will get you heading in the right direction from the very outset.
Don’t let the Windows 8 wave pass you by. Discover how you can build on your existing skills and investment to build delightful, meaningful applications.
Windows 8 is coming.
See it. Touch it. Live it!
11.00
Coffee Break
11.30
TRACK 1
A tour through Visual Studio 11
David Starr
The next major release of Visual Studio is on the way, and our favorite IDE just keeps getting better. This session shares significant additions and improvements slated for the next version of Visual Studio. The specific focus is on the tools that will make developers’ lives better, and how we’ll use them in real life.
Learning points:
• What’s coming in Visual Studio 11
• Which features add major value, and which are just a “meh”
• How these new tools will change how we work


TRACK 2
An introduction to Workflow 4.5
Richard Blewett
.NET 4.0 shipped with a new version of workflow. This version was a rewrite taking on board the customer feedback from previous versions. What we have ended up with is a streamlined, flexible runtime for building rich functionality in a visual scripting environment. .NET 4.5 has removed some of the rough edges on this initial release. This talk looks at what problems workflow is designed to solve and examines the basic building blocks of a workflow based application – including how you can provide a customised editing environment for workflows that your business users can work with.


TRACK 3
It’s a kind of magic
Andrew Clymer
In the early days of C# there was virtually a 1-1 mapping between C# and IL. Much has changed since C# 1, the developer is encouraged to simply describe their intent and the compiler builds the appropriate code. This talk will dive under the hood and show how various C# features like iterator methods, anonymous methods, extension methods, async/await and dynamic all result in code gen by the C# compiler. These layers of abstractions initially make us more productive, but sometimes they hide those hard to find bugs, and can add a deluge of performance implications that once we understand how the mechanics of the features work we can quickly fix. This talk is for anyone who isn’t comfortable with accepting that it’s “just magic”.


TRACK 4
ASP.NET MVC: programming for the real world
Dino Esposito
You cannot realistically write an ASP.NET MVC controller class without making extensive use of action filters. In ASP.NET MVC, an action filter affects the way in which controller methods execute. An action filter can be used to trap exceptions, authorise access, cache output, and validate requests. This is only the first stage of flexibility, however. In this session, we’ll first see how to create custom filters to perform a variety of custom tasks including compressing the response, adapting to the browser, filling up view dependencies. Up to here, however, filters are only attached to methods statically. The next step consists of defining an infrastructure for you to load filters dynamically thus gaining the ability to toggle certain behaviour on or off on the fly.


TRACK 5
So you want to be a Windows Phone developer?
Jeff Prosise
Windows Phone “Mango” is loaded with features that make it an able competitor to iPhone and Android. If you’ve never written a Windows Phone app but would like to try, this session provides the essential skills and knowledge you need to get started. Includes coverage of location, sensors, lifetime management, Pivot and Panorama controls, networking and push notifications, and more.


TRACK 6
Agile architecture & design
Neal Ford
This session describes the current thinking about emergent design and evolutionary architecture. The hazard of Big Design Up Front in software is that you don’t yet know what you don’t know, and design decisions made too early are just speculations without facts. Emergent design techniques allow you to wait until the last responsible moment to make design decisions. This talk includes both proactive (test-driven development) and reactive (refactoring, metrics, visualisations, tests) approaches to discovering design, and discusses the use of custom attributes, DSLs, and other techniques for utilising them. The goal of this talk is to provide nomenclature, strategies, and techniques for allowing design to emerge from projects as they proceed, keeping your code in sync with the problem domain.


TRACK 7
Structured programming revisited
Kevlin Henney
Structured programming. That’s so 1970s, right? It was all about gotos (or not) and has no more relevance to current programming practice, with its exceptions, threads, object models and refactorings, than flared trousers, disco or punk. Or perhaps there is and always has been more to structured programming than this oversimplified view?
This session looks back at the thinking that motivated structured programming, from “Go To Statement Considered Harmful” to block-structured code and its realisation in object orientation, to look forward at its enduring implication for modern programmers, namely being able to understand and reason about the code they are looking at. Code and examples (and counterexamples) will be presented in a number of languages.


TRACK 8
Developing for SQL Server 2012 with the Project Juneau toolset
Bob Beauchemin
Along with a new release of SQL Server will come a new SQL Server developer tool; poised to replace SQL Server Management Studio as the one-stop shop for developers. This tool is known as Project Juneau. I’ll have a look at the features and Project Juneau brings to the table, including Entity Framework and SQLCLR integration, as well as many of the features that until now were only available in SSMS.
TRACK 9 – Microsoft
 
Windows 8 for modern application developers
 
Mike Taulty & Andrew Spooner
 
Windows 8 is Windows re-imagined for new devices, form-factors and chipsets embracing and unifying touch as a first-class input mechanism and providing a radical new platform for fast and fluid “Metro Style” applications that put the application and the user front and centre. Developing “Metro Style” applications involves a new set of tooling with Visual Studio “11” and new versions of Expression Blend where you can author your UI in HTML or XAML and write your logic in JavaScript, C# or C++. The new WinRT runtime provides APIs that exposes platform capabilities like storage, networking, media and also provides access to the contracts that lets Windows loosely link your applications with others on the user’s machine.
This is not your Father’s Windows. This is not Windows 7. There’s a lot to learn and a huge opportunity for your applications. This session will set the scene for the Windows 8 operating system and Windows 8 “Metro Style” applications with a bunch of interactive and coding demos to get you to the starting line of Windows 8 development.
13.00
Lunch
14.00
TRACK 1
Delegates, Lambdas and Expressions (oh my!)
Jim Wooley
The .NET framework has slowly evolved to allow for different programming paradigms. Over the recent versions, there have been a number of features added to allow for more declarative and functional programming options. In this session, we will explore the concepts of Delegates, Anonymous Delegates, Lambda Expressions and Expressions, and see how using them can add flexibility and functionality in our applications.


TRACK 2
Understanding LINQ
Richard Blewett
LINQ has been with us for a while now and many myths have grown up around how it works and how it performs. In this talk we look at how LINQ works under the covers, how you can use it as a powerful declarative language, and what impact LINQ has on system performance.


TRACK 3
A .NET developer’s guide to WinRT
Dave Wheeler
Come to this session to find out how to consume and interact with WinRT from managed code.
Learn how to write WinRT components; how to integrate them with C++ and JavaScript code; and just how natural and fluid it is to work with WinRT from managed code.


TRACK 4
ASP.NET and Visual Studio 11
Robert Boedigheimer
Learn about the great new features coming in the next version of ASP.NET and Visual Studio. There are some great enhancements to all of the editors (CSS snippets, CSS vendor prefixes, JavaScript go to definition, etc). Discover the new model binding and respository capabilities in Web Forms, along with unobtrusive jQuery validation support for validators. See how to bundle and minify CSS and JavaScript files simply to drastically improve web site performance. A new script manager also supports debug, release, and CDN versions of files.


TRACK 5
Modern JavaScript
Scott Allen
Have you ever looked at the code for a library like jQuery and wondered how it all works? In this session, we’ll uncover the secret strengths of JavaScript and see the fundamental patterns used by today’s JavaScript libraries. Functional programming, closures, modules, and unit testing are all employed in the demonstration of this unique and dynamic language. By the conclusion you’ll feel more comfortable working with popular modern libraries like jQuery and improving the JavaScript code you write in your own applications.


TRACK 6
Testing the entire stack
Neal Ford
Most talks you see about testing cover one particular tool, and rarely delve into the strategies around when you should use a particular tool for a particular kind of testing. This talk differs because it covers testing the entire stack: unit, integration, functional, behaviour-driven, databases, user acceptance, mocking & stubbing, and other topics and strategies. I discuss the merits of “known good state” vs. “nuke & pave” for databases, discuss the differences between ClassicTDDers vs. Mockists and how they approach testing. Throughout, I provide strategies and heuristics to help guide you when making decisions about how, when, and why you are testing some part of your infrastructure.


TRACK 7
From SOLID to FLUID
Kevlin Henney
The SOLID principles are often presented as being core to good object-oriented practice. While they are not a perfect or consistent description of how to organise and manage OO code effectively, they are a good starting point. But there is also more to good code than just traditional OO practice, which is where the FLUID principles come in.
This session starts by going over the SOLID principles, looking at code examples and also different interpretations of the principles themselves. It then takes a look at the complementary FLUID principles, which embrace more functional thinking and looser typing than the SOLID principles.


TRACK 8
Data quality in SQL Server 2012
Dejan Sarka
Data quality is these days one of the main focuses of many companies. Microsoft is also aware of this problem, and invests continuously in this area. In the next version of SQL Server, we will get Data Quality Services (DQS). However, even before SQL Server 2012, there are many tools and possibilities for data quality checks available. In this presentation, we are going to introduce and compare different data quality tools in SQL Server, including DQS, Integration Services Data Profiling task, Transact-SQL queries, and Analysis Services Data Mining models. We will show how we can use these tools efficiently to improve the quality of our data.
Attendees should already be familiar with Transact-SQL.
TRACK 9 – Microsoft
 
Windows 8 “Metro style” applications in C# – the power of the device
 
Martin Beeby
 
Windows 8 spans a range of devices from the smallest slate to the largest all-in-one PC which means that your software will run on diverse devices. In this session we’ll look at how your application interacts with the capabilities of the device itself taking a demo-based approach to investigating how we can build UX with controls and user notifications, how we do animation and data-binding, how we process input and can access storage, how applications interact with the OS to maximise battery life via suspend/resume and how they link to other applications via operating system contracts. We’ll also talk about how your application can detect and interact with additional hardware capabilities for geolocation and orientation, audio, video, imaging, acceleration.
15.30
Coffee Break
16.00
TRACK 1
Entity Framework 4.0 and repository pattern
Andrew Clymer
Writing data access code is dull. Entity Framework is Microsoft’s ORM offering to drastically reduce the expense of writing data access code. Prior to Entity Framework 4.0, EF relied on generating entity classes that were tightly coupled to EF. 4.0 introduces the idea of POCO classes – bringing your own classes to EF. This talk shows how POCO support works, and how you can use the repository pattern to keep your application code and the data access layer cleanly separated and testable.


TRACK 2
LINQ scalability
Jim Wooley
When LINQ arrived in 2008, we were given a new declarative model to perform set based operations. As we begin to use it more in our applications we start to see the performance implications of using this model in our applications. This session will look at options we have to improve our performance by improving our code, using hash tables with I40, scaling up with PLINQ, scaling out with Dryad and asynchronous operations with Rx. By the end of this session, you should have an understanding of when to use each of these new and emerging technologies to improve your LINQ code.


TRACK 3
A COM/WinRT primer
Dave Wheeler
Some ten years ago, COM was largely replaced overnight by .NET. But it has been lurking under the covers ever since.
Now, WinRT builds on the technology of COM, and we see the likes of IUnknown, RPCSS and apartments far more up close and personal than we have for the past few years.
So if you’ve never had the privilege of playing with COM, and you want to gain an insight into the thinking behind WinRT, you should come to this session.


TRACK 4
AJAX and ASP.NET MVC
Scott Allen
In this session we’ll explore the AJAX features of ASP.NET MVC, including the built-in AJAX helpers. We’ll also see how to integrate jQuery with an MVC applications and use many popular jQuery plug-ins. During the session we’ll see how to implement client-side validation, fancy client side UI widgets, and coordinate asynchronous web requests with controller actions.


TRACK 5
HTML5 quick start
Jeff Prosise
There are two kinds of developers: those who know HTML5, and those who will be learning HTML5. Has your day job kept you too busy with mundane tasks to devote time to the most talked-about technology in years? Let us help out by immersing you in HTML5 for 90 glorious, fun-filled minutes. Includes coverage of the HTML5 canvas API, Web storage, Web workers, geolocation, and much more, and features gobs of sample code to get you started quickly when it’s time to write that first HTML5 app, whether it’s targeted for browsers, mobile devices, or Windows 8 Metro.


TRACK 6
High performance software development teams
David Starr
High performance teams aren’t just a platitude. They are observable, measurable, rare, and beautiful to behold. This session examines what a high performance team looks like in software development and discusses how they are made. Additionally, we’ll discuss how to keep a high-performance team healthy and avoid burnout.
Learning points:
• The history and characteristics of high performance teams
• Creating a high performance team
• Maintaining high performance


TRACK 7
Refactoring legacy code bases
Hadi Hariri
Not everyone has the possibility of working on greenfield projects or doing TDD or BDD. Many of us often end up having to work with legacy code bases that have little notion of what SOLID design principles are, and unit tests are non-existent. It can be daunting to have to maintain these types of systems. However, with a little bit of effort, we can try and make the best of the situation. By applying a series of patterns and principles, we can gradually refactor legacy systems to produce a better, friendlier and more sustainable design. Come and see how!


TRACK 8
SQL Server 2012 Master Data Services
Dejan Sarka
Master Data Management (MDM) is a set of tools, processes, people and rules for managing master data, like customers or products data. The ultimate goal is to ensure maximum possible quality of the master data. A centralised MDM solution serves as a source of master data. With all constraints, defined workflows and people roles, and with tools for data cleansing, it is an authoritative source of master data for other applications in the enterprise. Master Data Services (MDS) is Microsoft’s centralised MDM solution. In this session, we are going to introduce MDS, and show how people that are members of a specialised role called data stewardship can work with it.
Attendees should already be familiar with Transact-SQL.
TRACK 9 – Microsoft
 
Windows 8 “Metro style” applications in C# – the power of the cloud
 
Mike Ormond
 
Today’s devices are connected. In this session we’ll look at the capabilities that Windows 8 has for taking maximum advantage of your user’s connected device. We’ll build a bunch of demos and look at how a user can login with a Windows Live ID and then roam their OS and application data and settings to all machines where they use your app. We’ll also explore how that Live ID opens up Cloud capabilities for the user’s contacts, instant messaging and storage for documents, photos etc. We’ll also look at how you can use code from the web to bring in existing capabilities such as mapping and search. WinRT exposes a rich set of networking capabilities for the modern “Metro Style” application and we’ll write code around those to look at how we do HTTP, how we can make easy use of oAuth to use services like Twitter and Facebook and how we can take a lower level approach via web sockets and sockets. We’ll then loop back to the previous session and talk about how we can use notifications via the Cloud Notification Service to drive notifications to a user of your app even if the app isn’t running.
17.30
Drinks Reception in the Exhibition Hall


Return to Sessions introduction