Abstracts

SOLID Development Patterns for Mere Mortals (100-200)

Categories: Architecture/Patterns

Software development patterns have been around long before the MVC Framework gained momentum.  In this session we will start with a review of Robert C. Martin's (Uncle Bob) SOLID macronym.  After building the proper foundation, we will look into the several development patterns, their C# implementation, and when and how they should be used in modern software development.

Implementing M-V-VM (Model-View-View Model) for WPF (200)

Categories: Architecture/Patterns; Windows Presentation Foundation

Now you are writing WPF applications, and wondering – what is all this code in the code behind?  Shouldn’t we be doing something different?  Our cousins working with ASP.NET MVC don’t even have a code behind!  The answer is YES – you should indeed be doing it differently.  The M-V-VM pattern is the WPF adaptation of the Presentation Model pattern first documented by Martin Fowler. In this session we will build an app that shows how the M-V-VM pattern is utilized for building SOLID WPF applications that are also testable.

Windows Presentation Foundation for Developers (100-200)

Categories: Windows Presentation Foundation

WPF has now been out for a bit, and we've all seen the spinning cube playing a different video on each side.  How does that help you, the line of business developer?  This session dives into what’s important to developers, including Layout, Event and Commands, and a deep dive into Binding, Templates, and Converters

Being Agile in the Waterfall Sandbox (100)

Categories: Agile

Scrum and XP have found a strong following in the development community.  But most non-development groups (such as Web Administrators, Production Support, Security, Testing, and Users/Stake Holders) inside the enterprise are far from agile, nor are they trying to move to be more agile. This session starts with a refresher on Scrum, and then uses real experiences from large enterprise development projects to show how to effectively work with those teams.  Instead of trying to "convert" them, we discuss strategies to adapt to their needs while remaining agile in the development realm.

Multithreading in .NET (200)

Categories: Core .NET

Multithreading is no longer just for the big iron - it’s almost impossible to find a computer these days that don’t have multiple cores or a hyper-threaded processor.  It’s past the point for .NET programmers to keep their heads buried in the sands of single threaded applications.  This talk will start with the traditional methods of multithreading, but quickly moves on to the Task Parallel Library (TPL) and Parallel LINQ (PLINQ). You’ll leave this session with the information you need to drastically improve the performance of your applications without the “dangers” of the old school methods.

Why You Should Love LINQ to Objects (100)

Categories: Core .NET

Language INtegrated Query provides a concise API to greatly enhance the readability, reduce the amount, and improve the performance of your code.  In this talk we will cover the foundational constructs in .NET that set the foundation for LINQ, the query operators, and applying LINQ with Lambda expressions.  To close we will take a quick spin around Parallel LINQ (PLINQ).

An Intro To Test Driven Development (100)

Categories: Agile; Testing

Test Driven Development is more than just writing tests first.  It requires a different thought process. In this session, we will discover that thought process, and in turn, become more effective developers, with less code, zero defects, and faster delivery.

T/BDD From the Ground Up (200)

Categories: Agile; Testing

In this extended session we start with the basics of unit testing.  After setting a solid foundation in the testing frameworks, we move onto mocks and stubs and dependency injection and finish with Behavior Driven Development with Context Specification.

Introduction to Context Specification - Behavior Driven Development (200)

Categories: Agile; Testing

Improved Quality. Better Design. SOLID Code. These are all benefits of driving your design with tests.  But where Test Driven Development falls short is in retaining the User's Voice.  User Stories are a great tool, but not a natural way of speaking for non-geeks. In this session, we will examine the power of writing Context Specifications in the User's voice, and then use Machine.Specifications (MSpec) to turn those specs into test driven code that all parties can understand! This session assumes a solid foundation in Test Driven Development.

Why Testing Is Important

Categories: Agile; Testing

Running with scissors. Leaping before looking.  Not tying your shoes.  The common thread?  All things that we know that we shouldn't do. Yet we are doing this and much worse when we develop software without some form of testing taking place.  There are different levels of testing that can be done, from throwing the code over the wall to QA, "defugging" (testing with the F10/F11 keys), creating test pages/console apps, to using automated testing frameworks.  When do you test? First or last?  What is this TDD/BDD fuss all about? In this session we will cover why it is so important to software developers to test their own code, and the motivation driving the Test Driven Design movement.  Remember, if you don't test your code your customers will!

An Intro to NHibernate (200)

Categories: Data Access

Tired of writing CRUD? Code generators or not, there's got to be a better way! NHibernate is an Object Relational Mapper based on Java's Hibernate. NHibernate offers flexibility and versatility to solve the problems you are paid to solve instead of spending your time on database plumbing chores. We’ll look into configuration, mapping, concurrency, and solutions to the most common CRUD scenarios.  Experience with Data Access Technologies is recommended.

Advanced NHibernate Tips and Tricks (300)

Categories: Data Access

NHibernate is one of the most popular ORM's currently in use, but there is a significant learning curve once you get past "Hello World".  In this talk we will take a deep dive into the ICriterion interface used for creating simple to complex queries into your application's data.  We will also explore a framework to hide NHibernate specific details from developers consuming your Data Access Layer.

JQuery and JSSpec – Making the Web More Developer Friendly (200)

Categories: ASP.NET MVC; Testing

What browser is my code running in?  Can it do (fill in the blank)?  Which IE6 hack do I need so that I can make my page do (fill in the blank)?  JQuery to the rescue!  This session will show you how JQuery changed my life, and made building Web Application fun again.  From DOM manipulation to forms validation to creating plug-ins, we’ll dive into how to use JQuery to speed your development and make all those irritating problems seem trivial!

JQueryUI - The Magic From Behind The Curtain

You find a really cool website.  It has great interaction capabilities, and you think "How the heck did they do that?"  This session will prove that there isn't a wizard behind the curtain, and you are not somewhere over the rainbow.  We will cover the best of JQueryUI and show you how to dress up your website in very simple steps.

Test Driving ASP.NET MVC (300-400)

Categories: ASP.NET MVC; Testing

There are many benefits to the ASP.NET MVC framework, and one of the biggest is the testability.  In this session you will learn to test your routes, controllers, and models BDD style with MSpec and MbUnit, and use WatiN to certify the user interface.

Practical T/BDD - Half Day Hands-on Lab (100-200)

Categories: Testing

Seen enough "Hello World" presentations on Behavior/Test Driven Design?  Enough already!  In this hands-on lab, we are going to develop an application given a set of specifications.  We will be covering all of the usual suspects including pair programming, testing frameworks, and mocking. So come with a laptop (or a partner with a laptop), and get ready to code!  (We will find you a partner if you don't have one or a laptop, so don't let that stop you!)

Mocks, Stubs, and Dependency Injection, Oh My! (300)

Categories: Testing

So you aren't writing any code without having tests in place…well, except for those tricky things like web services, database calls, and that section of code that no one wants to touch since it's a pile of spaghetti.  In this session we will work through refactoring that spaghetti using dependency injection, and learn how to use Mocks and Stubs to isolate the system under test and write cleaner, more effective tests.

Test Driven Development for T-SQL (200)

Categories: Testing

Unit Testing and Test Driven Development have grown in popularity for the managed code development world.  The biggest issue facing database developers isn't the tooling, but the definition of "unit of work".  This session will show how to create seams and partitions in traditional stored procedures to enable effective unit testing and the open source tools that facilitate automating the tests.