DevWeek 2013 Post-Conference Workshops
The information on this page refers to DevWeek 2013. This site will be updated with information on DevWeek 2014 closer to the event.
Friday 8 March 2013
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.
Unless otherwise noted in the descriptions, they are presentation-based rather than “hands-on” labs.
||Debugging .NET applications
WORKSHOP REF: F1
Visual Studio 11 is an amazing live debugger, but what happens when your application crashes at a customer site or a server which doesn’t have Visual Studio installed?
In this full-day session we’ll talk about debugging production issues encountered in real-world .NET applications and see what tools are available to transfer as much information as possible to the development environment. We’ll solve memory leaks, deadlocks, race conditions, and other types of crashes; capture dumps and analyze them in WinDbg and Visual Studio; examine live systems with lightweight profilers and Sysinternals tools.
Target audience: all .NET developers.
||A data binding masterclass
WORKSHOP REF: F2
No matter whether you’re working in WPF, Silverlight or writing a modern UI-style application for Windows 8, as a .NET developer you need to master data binding.
And this intensive day will deliver the knowledge that you need.
We’ll start with the motivation behind data binding and the fundamentals of bindings in code and XAML. There’ll be a look at converters, debugging and even binding groups. Then it’s on to collections, performance and collection views.
You’ll dive into templates and template selectors (where applicable), and see how to make them sing.
Then it’s commands and the (in)famous Model-View-ViewModel pattern, including coverage of secondary UIs – such as obtaining input from the user through MessageBoxes and other interaction cycles – and how to build the M-V-VM triads using DI and MEF.
There’ll be in-depth coverage of different validation techniques. And there’ll be a side order of Visual State Manager to spice up the UI.
We’ll also take a look at Prism (for WPF and Silverlight) and how it relates to M-V-VM and binding.
The workshop will be based on the latest versions of Silverlight, WPF and Windows 8, and all samples will be shown in Visual Studio 2012 and Expression Blend.
||A day of identity & access control for .NET 4.5
WORKSHOP REF: F3
Dominick Baier & Brock Allen
.NET 4.5 is a big release when it comes to security. Microsoft decided to overhaul their complete identity & access control APIs. This includes introducing the notion of claims-based identity into the base class library in a way that means every application framework (e.g. ASP.NET and WCF) will automatically make use of that new infrastructure. On top of that, protocol and security token support makes otherwise really hard to implement features like single-sign-on, federation and authorization very easy.
In this all-day workshop you will learn what you need to know to implement authentication and authorization in your .NET applications and how to make the best use of the new base APIs and infrastructure. Furthermore we will have a close look at how to use these new technologies with both new and existing ASP.NET, ASP.NET Web API and WCF applications.
||ASP.NET mobile development workshop
WORKSHOP REF: F4
ASP.NET 4.5 brings some facilities for developers willing to add mobile templates to their web sites. Planning a mobile site is not simply a matter of coding one feature on top of the other. A fundamental preliminary step is identifying the classes of browsers your site will serve. Most likely this means desktop browsers, smartphones, tablets, and generic mobile devices.
So how would you detect a smartphone or a tablet? How would you switch views and layout once you classified a requesting browser? Is jQuery Mobile the right tool? How would you manage to switch between desktop and mobile versions of the site? What (if any) is the added value of HTML5?
In this workshop, we’ll approach all these open points in the context of an ASP.NET MVC application looking at the tools offered by MVC3 and MVC4.
||A day of unit testing
WORKSHOP REF: F5
Unit testing has become more prevalent over the last few years as more and more teams have come to realise the importance of ensuring that their code has some degree of test coverage.
Developers are aware that code quality is an important issue, and that to get high quality code they often need to refactor. Refactoring safely requires unit tests.
We will spend the day looking at unit testing, how to write a unit test, how to test external resources such as databases and web services, how to work with legacy code, and how to ensure that your code is designed to be tested.
||Creating maintainable architectures workshop
WORKSHOP REF: F6
Big designs up front, impressive UML diagrams, all of these don’t mean a thing unless we follow a series of principles that allow us to create maintainable code. Why? Because nothing is engraved in stone, architectures change, and if we believe the contrary then we’re just setting ourselves up for failure. We need to create maintainable systems that allow the code and the architecture to evolve.
In this workshop we’ll cover a series of design paradigms and principles that allow us to create clean and maintainable code. We’ll also question some things such as layering, abstractions and other common practices, and discuss whether they provide us with any value or actually cause us more problems.
This is not going to be your typical framework-orientated architecture workshop. This is about code!
||Continuous delivery workshop
WORKSHOP REF: F7
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users.
Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours – sometimes even minutes – no matter what the size of a project or the complexity of its code base.
The workshop materials are derived from the best-selling book ‘Continuous Delivery’, and were created in collaboration with the authors and other of my ThoughtWorks colleagues.
||Design patterns in depth
WORKSHOP REF: F8
Without good OO structure, Agile development, which mandates constant refactoring, fails. Design patterns help by providing classes of solutions to common programming problems. Patterns, however, are usually presented in a catalogue format that gives you no feeling for how the patterns are actually applied in the real world, where the patterns interact in complex ways.
This class discusses both good object-oriented structure and the most commonly used design patterns, using in-depth analysis of real code that demonstrates how the patterns work in context.
We’ll also cover interface-based design and the make-up of a well-structured object and class hierarchy.
The extensive code examples are in Java, but they should present no problem to C++ or C# programmers.
||High performance SQL Server database modeling
WORKSHOP REF: F9
A good application starts with a good database design. Data is nowadays one of the most important assets of a company. This is a high-end workshop, intended for database and other developers, database administrators and solution architects, which explains the relational model for transactional databases and the dimensional model for data warehouses.
However, even the best logical model can’t help when the physical implementation is bad. Therefore, the workshop shows in detail how SQL Server stores and accesses data, and how to optimize the relational and the dimensional model.
Modules of the seminar include:
• Relational model
• Physical storage and access methods
• Optimizing a relational database
• Dimensional model
• Optimizing a dimensional database
Attendees should have some experience with T-SQL.
Return to Sessions introduction
Download code samples from DevWeek 2013
Join the mailing list for information on DevWeek 2014