Effective Rails Development with Vim

Eschewing an integrated development environment (IDE) for a glorified and oft-maligned text editor such as Vim might seem like a strange choice to some, but Vim is a surprisingly powerful development environment for those who choose to learn its many features and functions. This session shows you how to set up an incredibly powerful and customizable Rails development environment using Vim, Janus, Growl, Bash, and a suite of other powerful tools.

TDD/BDD with RSpec & Cucumber

RSpec and Cucumber are the bread and butter of Ruby development. Learn how to write Cucumber features to drive out high level system behaviour. Then jump down into RSpec specifications to test-drive out the actual implementation of the system. See how outside-in development can improve your code and keep you focused on the problem at hand.

TDD/BDD Dojo

You’ve heard the hype. You’ve heard the buzz. Improved code quality. Looser coupling. Higher productivity. But how does Test-Driven Development and Behaviour-Driven Development really work in practice? In this dojo, we will work through a series of code katas to familiarize you with how TDD and BDD work in practice. Bring your laptops and get ready to code in this fun-filled introduction to TDD and BDD.

What’s New in ASP.NET MVC 3?

ASP.NET MVC 3 is hot off the presses and ships with a host of new features. Come learn what’s new and improved including the new Razor view engine, global action filters, dynamic view models, new action results, improved client-side validation, better support for dependency injection, and more!

Learning to Love JavaScript through jQuery

I’ll take you on a tour of jQuery and show you that JavaScript is anything but a toy language. JavaScript is a powerful functional language and jQuery allows you to harness that power with truly amazing results. Come learn about selectors, effects, DOM manipulation, CSS, AJAX, eventing, and much more.

Testable JavaScript with QUnit

Your client-side JavaScript is code as worthy of testing as any server-side code that you might write, but often JavaScript testing is ignored. This session will introduce you to QUnit, which is the JavaScript unit testing framework developed and used by the jQuery team. Come see how you can easily incorporate QUnit into your web development stack and increase your confidence that your JavaScript code is as robust as your server-side code.

HTML5: Tomorrow’s Technology Today

You’ve heard the buzz, but what does HTML5 really mean to you as a web developer? Come learn about the new technologies that comprise HTML5, such as <audio>, <video>, <canvas>, offline apps, local data storage, and more. Learn how you can apply these technologies with today’s browsers to build new user experiences.

What’s New in NHibernate 3?

NHibernate is a mature, open source object-relational mapping framework. Version 3 was released in December 2010 and includes many new features including: LINQ support, Future queries, strongly-typed criteria queries, lazy loaded properties, and more. Come learn what is new in NHibernate 3 and the world of object-relational mapping.

Emergent Architecture with TDD/BDD

As architects, we have all experienced the folly of BDUF (Big Design Up Front) – spending weeks or months perfecting an architecture that fails when it meets the real requirements and real code. Is it possible to design in the small? How can we avoid unintended complexity, which cripples so many code bases? Can we build enough of an architecture to start writing code and then flesh out our architecture as the code evolves? In this session we examine how Test-Driven Development (TDD) and Behaviour-Driven Development (BDD) allow us to solve these conundrums. We will see how we can use TDD/BDD to focus our architectural efforts in the high-value areas of our code base to achieve just-in-time architecture.

NHibernateNHibernate Dojo

I’ll be covering NHibernate fundamentals, mapping with Fluent NHibernate, and querying with LINQ to NHibernate. This session is intended to be very interactive with attendees working examples on their own laptops and asking questions.

jQueryjQuery Dojo

I should have called this session: Dr. Weblove or How I Learned to Stop Worrying and Love JavaScript. In this dojo, I’ll take you on a tour of jQuery and show you that JavaScript is anything but a toy language. JavaScript is a powerful functional language and jQuery allows you to harness that power with truly amazing results. Come learn about selectors, effects, DOM manipulation, CSS, AJAX, eventing, and much more.

Convention-over-Configuration in an Agile World

As developers, we spend an inordinate amount of time writing “glue code”. We write code to transform database rows to domain objects… domain objects to view-models or DTOs… We write code to configure inversion of control containers and wire dependencies together. We write code to style our UIs and respond to UI events. Wouldn’t it be nice if this could happen automagically for us? This session will look at using convention-based approaches using Fluent NHibernate and Castle Windsor to reduce the amount of repetitive code and accelerate application development.

Available online from InfoQ here.

Convention-over-Configuration in a Web World

As developers, we spend an inordinate amount of time writing “glue code”. We write code to transform database rows to domain objects… domain objects to view-models or DTOs… We write code to configure inversion of control containers and wire dependencies together. We write code to style our UIs and respond to UI events. Wouldn’t it be nice if this could happen automagically for us? This session will look at using convention-based approaches using AutoMapper and jQuery to reduce the amount of repetitive code and accelerate application development.

Agile Development with IoC and ORM

As developers we now have powerful tools in our toolbox, such inversion of control containers and object-relational mappers. But how can we use these tools to rapidly build maintainable and flexible applications? We will look at advanced techniques such as convention-over-configuration in IoC containers and automapping ORMs to quickly build applications that can evolve over time.

Doing More With Less: Accelerating Development Using Convention-over-Configuration

As developers, we spend an inordinate amount of time writing “glue code”. We write code to transform database rows to domain objects… domain objects to view-models or DTOs… We write code to configure inversion of control containers and wire dependencies together. We write code to style our UIs and respond to UI events. Wouldn’t it be nice if this could happen automagically for us? This session will look at using convention-based approaches using Fluent NHibernate, AutoMapper, Castle Windsor, and jQuery to reduce the amount of repetitive code and accelerate application development.

Light Up Your Architecture with Convention-Over-Configuration

Inversion of Control (IoC) containers, such as Castle Windsor, increase the flexibility and testability of your architecture by decoupling dependencies, but as an application grows, container configuration can become onerous. We will examine how convention-over-configuration can allow us to achieve simplicity in IoC configuration while still maintaining flexibility and testability. You can have your cake and eat it too!

Achieving Persistence Ignorance with NHibernate

Object-relational persistence can be very complex and middle-tier code is often dominated by persistence concerns. Your Customer class probably contains more code related to loading and saving customers to the database than it does actual business rules about customers. Wouldn’t it be nice if you could remove all this persistence-related noise? This session examines why the concept of persistence ignorance is important and how to use NHibernate to build persistence ignorant domain models.

Taming Software Dependencies with DI and IoC

Software inevitably contains dependencies. Dependencies between classes. Dependencies between layers. Dependencies with third-party libraries. How can concepts like dependency inversion, dependency injection, and inversion of control help you tame your software dependencies? Where does an inversion of control container, such as Castle Windsor, come into the picture and do you need one? Can Binsor help you achieve convention over configuration? This session answers all these questions and more…

To C# 3.0… And Beyond!

C# 3.0 introduces lambda expressions, extension methods, automatic properties, and a host of other features. We will look at where C# is today, where it is going tomorrow, and what ideas we can borrow from languages like F# and Ruby to improve our C# code. Plus find out the real reason for the new “var” keyword.

Simple Patterns for Simple Problems

Everyone has that little (or not so little) class called Utility that holds all kinds of intersting bits of business logic. It is a hodge-podge of code that you’re not sure where to put. This session will examine some common types of methods found in utility classes and how to refactor your design using simple patterns to eliminate these troublesome kitchen-sink classes.

OO Principles: Beyond Encapsulation, Inheritance, and Polymorphism

Any developer worth their salt knows these pillars of object-oriented programming, but there is a lot more to good object design. This session explores the fundamental principles of design patterns, including low coupling, high cohesion, single responsibility, open-closed, and other principles that lead to better software designs.

Queuing and Caching to Scalability

Performance and scalability are two sides of the same coin, but subtly different. Performance is about raw requests per second or similar measure, whereas scalability is about how performance changes as load increases. How can you keep your application – be it website, web service, smart client, or other – responsive as the number of users increases. This session will explore queuing (MSMQ and WCF) and caching techniques for scaling out applications and will examine architectural strategies for minimizing scale-out cost.

ASP.NET Kung-Fu: Advanced Techniques and Idioms

Unbeknownst to most developers, there’s a lot more to ASP.NET than ASPX pages. In this session, James will explore some advanced techniques in ASP.NET including: HttpModules for modifying the run-time behaviour of your website; HttpHandlers for serving up non-HTML content; security context manipulation; and other fun topics.

Tools of the Trade: Must-Have .NET Utilities

The number of .NET development tools available is extensive and can be quite daunting, but there are a few that should be in every developer’s toolbox. James will examine a wide range of freely available tools including “The Holy Trinity” (NUnit, NAnt, and NDoc), source control, continuous integration, static and dynamic code analysis, debugging, and related tools. The talk will include numerous demonstrations as well as discussion about the practical application of these tools to a development project.