Minimalist Development with Nancy & Simple.Data

Traditional .NET development frameworks tend to be big, and cover all possible eventualities, and for many projects this is A Good Thing. But for just as many, if not more, projects, a full web stack like ASP.NET or a complex ORM like Entity Framework or NHibernate is just overkill, and adds unnecessary complexity. This is A Bad Thing.

In this talk, I’ll look at a two small, lightweight, low-ceremony frameworks, and how to use them to create applications with less code, less cruft and fewer maintenance headaches. For web applications, we’ll follow the super-duper happy path of Nancy, .NET’s answer to Ruby’s ultra-lightweight Sinatra framework. And for data access, we’ll use my own Simple.Data library, to provide ORM-like syntax without the code generation or sluggishness.

Using these tools, in under an hour, we’ll create a working web application – with hardly any code at all.

Functional Alchemy: Tricks to keep your C# DRY*

C# 3.0 and LINQ have made anonymous delegates and closures a hot topic. C# 4.0 improves on them. But these “functional” features have applications beyond messing about with IEnumerable. In this session I’ll present 10 simple and not-so-simple uses of first-class functions to help cut down on repeated code and improve maintainability; hopefully you’ll discover a new and exciting way of approaching coding problems.
The main thrust of it is that F# is cool and groovy but there’s a lot of mileage in functional-style programming in C#, which people are using every day, so let’s look at some cool examples there.

*Awarded “Top Speaker by Knowledge of Subject” at DDD South West 2010.

Dynamic Alchemy: Real-world uses for dynamic C#

This talk takes a look at the dynamic keyword, new in C# 4, and aims to cover the things which rely on this feature (such as COM interop in Silverlight 4); highlight some neat use-cases that will be useful across a range of projects; and maybe show that dynamic can grant some of the “I wish I coulds” that crop up in day-to-day programming. Also includes a look inside my open-source projects: IronMock, which uses embedded IronRuby to mock objects for testing; and Simple.Data, a data access library with magic methods based on the DynamicObject type.

Zen and the Art of Software

Zen and the Art of Motorcycle Maintenance is a book about Quality; what it is, where it exists, and how we may try to attain it. In this talk, I will use passages from the book to introduce ideas on how we, as software developers, might try to improve the Quality both of the software we create and of ourselves. I’ll talk about what “Quality” means in the context of software, how to measure it, and the importance of close interaction with users at all stages of application development.

Azure Table Service – getting creative with Microsoft’s NoSQL datastore

Microsoft’s Azure Table Service provides a low-cost solution for storing and searching structured data in “The Cloud”. Plus, it’s one of these cool new NoSQL data stores that everyone’s talking about. But it’s very, very different from SQL Server and other relational databases, so is it the right solution for your project?

In this session we’ll look at how Azure Table Service works and how to use it. We’ll look briefly at the high-level Data Services SDK, talk about its limitations, and then quickly move on to the REST API and how to use it to improve performance and reduce costs. We’ll make-up some pretend real-world problems and solve them in new and interesting ways. Code will be written. We’ll denormalize data (for fun and profit). We’ll talk about how certain social networking sites can deal with huge volumes of data so quickly, and why it sometimes go wrong.

We’ll also cover some of the very useful features of relational databases that Azure Table Service doesn’t provide, and whether they can be reproduced in other ways. Acronyms such as ACID, BASE and CAP will be tossed around with gleeful abandon. And we’ll discuss the relative costs of Azure Storage Services (including Blob, Queue and Drive) compared to SQL Azure, and ways to appease the bean-counters.

How to manage your manager

Developers and managers generally don’t understand each other. Developers know the arcane languages of machines and are motivated by inexplicable forces. Managers seem to spend half their time in meetings and the other half emailing each other Word documents and Excel spreadsheets. The result is that both sides end up frustrated, feeling that the other is stopping them from doing their job to the best of their ability.

In this talk, I will share some of the things I’ve learned in 20 years of being managed, including:

  • How to get the PC you want, with the two big monitors and a decent CPU.
  • Also, how to get extra software, training, and even sent to conferences.
  • How to adopt best practices, like TDD, pairing and daily stand-ups even though your manager doesn’t know what they are, and probably doesn’t care.
  • How to earn the respect of people who seem to actively like wearing suits.
  • Maybe, possibly, how to respect them just a little bit.

These presentations are all about an hour in length, but can be adjusted to fit into slightly shorter or longer time slots.


Mark is currently employed as Principal Software Architect by Dot Net Solutions Ltd, creating all manner of software on the Microsoft stack, including ASP.NET MVC, Windows Azure, WPF and Silverlight. He is a Windows Azure Development MVP.

Mark’s career in software design and development spans three decades and more programming languages than he can remember. C# has been his favourite language pretty much since the first public beta, when you had to write the code in a text editor and compile it on the command line. Those were the days. You kids today, with your IntelliSense and your ReSharpers, don’t know you’re born…

Things vying for Mark’s attention lately include functional programming, internet-centric applications, the Azure cloud platform and NoSQL data stores.

%d bloggers like this: