Category: Training

NDC London – Day Three

Day 3 – Knocking it out the park, with KnockoutJS by Miguel A. Castro (@miguelcastro67)
The first talk I attended on day 3 was Knocking it out the park, with KnockoutJS by Miguel A. Castro

Miguel’s talk walked you through KnockoutJS, what you would use it for and showed you several demos as he went building upon each one as he covered more and more on KnockoutJS. Miguel is a very good speaker, his talk was very well delivered and flowed excellently – his demos were useful and were very well explained.

Day 3 – ASP.NET SignalR 2.0 and beyond by Damien Edwards and David Fowler(@DamianEdwards)
The second talk on day 3 I attended was ASP.NET SignalR 2.0 and beyond by Damien Edwards and David Fowler

Damien Edwards and David Fowler introduced everyone to a new major version of SignalR and what has been added/updated.
There is tighter integration with OWIN, .NET 4.5 server dependency, full support for self-hosting, new clients, massively improved cross-domain/CORS support, API usability improvements, easier hub unit testing and better error handling. We’ll cover all this and give a sneak peak and new features in upcoming releases in this information packed session. Very informative talk which I enjoyed.

Day 3 – The future of C# by Mads Torgersen (
The third talk I attended on Day 3 was The future of C# by Mads Torgersen

Mads talked about how the past several years, the Microsoft C# team has been focused on rebuilding the compilers and editing experiences as part of Project Roslyn. He also introduced us to potential new language features are on the designers’ minds. Features discussed included read only auto properties, multiple return values, null checking, structural typing is ‘on the radar’.

Day 3 – Object Oriented Design in the Wild by Jessica Kerr (@jessitron)
The fourth talk I attended on Day 3 was Object Oriented Design in the Wild by Jessica Kerr

Jessica talked about the reasoning behind object-oriented design principles, and how we find their application in the wider world. This session will challenge you to go beyond rules and standards and ask, when is clean code worth your time? Go beyond OO and come back with new insight. Interesting talk all about OO in different languages.

Day 3 – ASP.NET SignalR 2.0 and beyond by Damien Edwards and David Fowler(@davidfowl)
The fifth talk on day 3 I attended was Using ASP.NET SignalR in Anger by Damien Edwards and David Fowler

Damien Edwards and David Fowler What showed off the best patterns for using SignalR in a real application – both guys walked through code samples of how to go about doing such a thing and discussed a number of topics including when best to use SignalR as opposed to other technologies.

NDC London 2013 – Day Two

Day 2 – Build Real World Cloud Apps using Windows Azure Part I and II by Scott Guthrie (@scottgu)
The first and second talks I attended on day 2 were Build Real World Cloud Apps using Windows Azure Part I and II by Scott Guthrie

Scott gave a two part covering the following:-

•Automating Everything
•Source Control Best Practices
•Continuous Integration/Delivery
•Enterprise Identity and SSO Integration
•Web Development Best Practices
•Data Storage Options
•Data Storage Partitioning Approaches
•Using unstructured Blob storage
•Designing to survive failures
•Monitoring and Diagnostics
•Transient Fault Handling
•Distributed Caching
•Using the Queue Centric Work Pattern

Was a really great insight into the capabilities of Azure and how as developers we can use these features for building applications right now.

Day 2 – Automating Testing in the big, bad Enterprise World by Jeremy D. Miller (@jeremydmiller)
The third talk on day 2 I attended was Automating Testing in the big, bad Enterprise World by Jeremy D. Miller

Jeremy discussed how his team has a strategy for faster and more productive manual testing and troubleshooting when using RavenDB and just how easy it is to use RavenDB for in memory creation and deletion of the entire database for unit testing purposes. He talked about how automated testing efforts frequently fail because the tests are too time-consuming to author, too brittle when the underlying application changes and showed examples of how he tried to make this process easier.

Day 2 – Functional Programming: What? Why? When? by Robert C. Martin (Uncle Bob) (@unclebobmartin)
The fourth talk I attended on Day 2 was Functional Programming: What? Why? When? by Robert C. Martin (Uncle Bob)

Uncle Bob talked about a number of things from the past to the future and was as always very entertaining but also thought provoking – this guys a legend and listening to him talking was a pleasure.

Day 2 – AngularJS Directives And The Computer Science Of JavaScript by Burke Holland (@burkeholland)
The fifth talk I attended on Day 2 was AngularJS Directives And The Computer Science Of JavaScript by Burke Holland

Burke gave us a run through of Directives in AngularJS, what they are and how they work showing code samples.

Day 2 – Test Your Javascript…with the Help of D&D by Tim G. Thomas (@timgthomas)
The fifth talk I attended on Day 2 was Test Your Javascript…with the Help of D&D by Tim G. Thomas

Tim talked about how testing JavaScript—the modern Web’s ubiquitous development language—can be a daunting task. In his session he introduced us to some methods to do just that…but with a Dungeons and Dragons twist.

NDC London 2013 – Day 1

Dan%20NorthKeyNote with Dan North – JackStones: the Journey to Mastery (@tastapod)

Dan’s talk was about how you go about becoming a Master at something and was very insightful, Dan talked about a lot of cool stuff and talked about learning how you learn to become at whatever it is your trying to master.

Dan described some of the many facets of craftsmanship and talks about trying to figure out exactly what the craft is that we programmers do.

Venkat%20SubramaniamDay 1 – Cleaning up Code Smell by Venkat Subramaniam (@venkat_s)
The first talk I attended was Cleaning Up Code Smell by Venkat Subramaniam – his talk was covering ways to identify code smell, how to clean them up. We will also discuss proactive ways to avoid smells in the first place.

Venkat is a superb speaker and covered a lot within 1 hour, his talk was well delivered and he cracked a few good jokes along the way, very entertaining talk.

Mark%20Rendle%20324Day 1 – Simple.Web 101 by Mark Rendle (@markrendle)
The second talk I attended was Simple.Web 101 by Mark Rendle – his talk was covering his .NET/Mono web framework Simple.Web.

Simple.Web applies the SOLID design principles to web application development, and makes building web applications an experience of the deepest joy. Simple.Web makes keeping your code clean, and building real REST/HATEOAS APIs.

Mark talked about why he wrote Simple.Web, showed us some of the code and then showed off some examples of how to use Simple.Web in an application

Day 1 – Introduction to Windows Azure Part I and II by Scott Guthrie (@scottgu)
The third and fourth talks I attended was Introduction to Windows Azure Part I by Scott Guthrie

Scott gave a two part talk which provided an overview of Windows Azure – including a number of demos, and how you can take advantage of it to build great applications in the cloud. His talk was a superb introduction to what Azure is and how you can leverage Windows Azure to build great applications. As always his talks were very informative, every question was given a detailed answer and was a really great way to learn about what Azure can do.

Day 1 – Windows Azure Essentials by Michele Leroux Bustamante (@michelebusta)
The fifth talk I attended was Windows Azure Essentials by Michele Leroux Bustamante

Michele’s session was aimed at getting you up to speed on the essential features developers should be aware of, and how to apply them in practical scenarios on all aspects of Windows Azure.

Michele showed off the differences between web sites and cloud services, as well as other practical tips for building Azure apps such as storing content, sending email, working with queues and choosing the right technology, and collecting important metrics for visibility into application health.

Day 1 – Why Agile doesn’t scale – and what you can do about it by Dan North (@tastapod)
The sixth and final talk I attended was Why Agile doesn’t scale – and what you can do about it by Dan North

Dan talked about shared guiding principles, a clear vision and a common understanding enable what he called contextual consistency. He also talked about delivery assurance, governance and portfolio management in the enterprise.

Was a very interesting talk and a nice end to the day.

NDC London 2013 – big thank you to all


NDC London was last week and I have to say I enjoyed every second of it.

This was my first conference and I will hopefully be back, the content each day was fantastic, the choice of content varied enormously and the people who run it, sponsor it and attend it deserve huge credit.

Having the chance to talk to developers from all over the world working on all sorts of projects and that was probably my favourite part of the conference, hugely grateful to my company for giving me this opportunity.

I will cover the 3 days I attended in a separate blog post but for now I just wanted to take the time to thank everyone involved, I managed to chat with of attendees and met some folks I chat to on twitter which was pretty cool.

Big thanks to the guys at Redgate who I managed to chat to and get a demo of some of their tools which I haven’t had the chance to try out as yet, was really nice to put a face to some of them.

I now have my blogging mojo back and have lots of content to go off and learn about – the next blog post coming soon will cover each of the 3 days I spent learning new technologies.

Thanks once more to all involved – hopefully see you again.

New MVC Learning Resource – feedback requested

redgate The developers at Redgate are working on a new resource for learning MVC and are looking for you’re feedback – you can take a look here and give them your feedback on how to improve it and make it grow.


Above is a sample of what there is currently – more to come very shortly.


My DotNetCurry Magazine Articles

Over the last couple of months I have been privileged to write a couple of articles for the free .Net Developer Magazine brought to you by

Its been my first attempt at writing for a magazine and has been a lot of fun, maybe in the future I can write more articles.

Please enjoy and give them a read – and sign up for the magazine – its FREE!

Create a Snappy UI with KnockoutJS -> Issue 3
This article explores KnockoutJS and what KnockoutJS gives you as a developer.

Web Essentials for Visual Studio 2012 -> Issue 4
This article explores the Visual Studio 2012 Web Essential add-on.


What’s New in RavenDB 2.0 -> Issue 5
This article explores RavenDB 2.0

Take a look at these articles and hopefully you will learn something new – Gregor.

Book Review: C# Smorgasbord by Filip Ekberg


Book Review: C# Smorgasbord by Filip Ekberg

About the Author:
Filip is a Software Engineer working with various techniques such as C#, WPF, WCF, ASP.NET MVC, ASP.NET and much more. Currently working at Star Republic in Sweden as a Software Engineer working with both newer and older technologies in a Windows environment, mainly focusing on ASP.NET MVC development.

During his years of Programming, Filip has managed to accomplish some of the following:
• Software Engineering Degree @ Blekinge Institute of Technology
• Managing the Software Development Company SmartIT eSolutions Sweden which focused mainly on developing software and web solutions.
• Working as an Amanuensis ( Teacher ) @ Blekinge Institute of Technology teaching Java, C++, Sql and Network-programming.

You can read more on his blog here.

I saw a tweet from @daniellangnet who said this book was fantastic and if your looking for something to read over the holidays then give this a go, I actually ordered the book without even reading anything about it, unusual but glad i did!

Chapter 1: Introduction to Parallel Extensions :- Learn the basics of paralleization, use basic Linq, and how to optimize code by introducing parallelization.
Chapter 2: Productivity and Quality with Unit Testing :- Understand why tests are import, create a test project and improve code quality.
Chapter 3: Is upgrading your code a productive step? :- How to find bugs faster, How to use Resharper to get a more manageable project and to get things done faster.
Chapter 4: Creating a challenge out of the trivial tasks :- Challenge yourself to create understandable and higher quality software.
Chapter 5: Asynchronous programming with async and await :- Identify where yo might need asynchronous processing, refactor a synchronous app into becoming more responsive.
Chapter 6: Dynamic program :- Create and extend a dynamic object by using the ExpandObject, also understand why introducing dynamic objects might cause problems long-term.
Chapter 7: Increase readability with anonymous types and methods :identify where you might have single purpose methods that you can replace with anonymous methods for increased readability and lucidity.
Chapter 8: Exploring Reflection :- User reflection to get information about types at runtime and understand more about properties and methods.
Chapter 9: Creating things at runtime :- Create your own method at runtime using Reflection, be able to read IL and understand portions of it.
Chapter 10: Introducing Roslyn :- Create a basic code analysis that suggest issues in your code, run code snippets on entire code files.
Chapter 11: Adapting to Inversion of Control :- Understand the basics of Inversion of Control, introduce a Dependency Injector into your application.
Chapter 12: Are you Mocking me? :- Create a mock of any interface and write tests that introduce

This book as you can see has something for everyone, i have thoroughly enjoyed reading it from cover to cover and will be reading a good few of the chapters again, it’s a very handy reference book and covers a number of topics that as a developer can help you explore, improve and be inspired – just as it says on the front cover.

I picked this book up on Amazon for £19 and its well worth it – recommended reading for 2013.

Free RavenDB Talk in Glasgow on November 14th

My colleague at work Mohammed Ibrahim is doing a free talk titled RavenDB: working with NoSQL data in .NET at Glasgow Caledonian University on Nov 14.

If your unfamiliar with noSQL and want to know more then come along and you will learn all about it and more.

So come along, learn, ask some questions and to get an insight into why RavenDB rocks, register at – tickets are selling fast so get yours while you can.

There will be free swag! to give away at the event, including t-shirts and RavenDB stickers.

Error handling using aspect-oriented programming (AOP)

Code become’s messy with error handling logic all over our code, wouldn’t it be nice to be able to log the error, the offedning method name and the line number of the code that caused the error in the first place.

If you’ve done any MVC development then you are already familiar with AOP, [HandleError] is an example of an aspect and with very little effort indeed you can create your own. Creating an aspect means you can reuse logic for tracing, error handling and more very easily.

At work we use PostSharp for our AOP aspect-oriented programming and its doesn’t get much easier. The guys even give you an add on in visual studio and it walks you through how to go about learing AOP and how to create aspects using PostSharp – the tutorial is superb and very well thought out.

We have a class library logging class which we use as an aspect using Postsharp and this means that we can add a [Catch] attribute to the method and we now have error logging for this new method:-

[sourcecode language=”csharp”] [Catch] public MyNewMethod()
throw new applicationException();

And that is it, download the demo and give it a try its so easy but quite powerful – I recommend you take a look.

Using twitter to stay up to date as a developer

Having listening to hanselminutes podcasts and a few other ones as well as discussions with others I felt the need to ask people out here – how do you keep up to date?

I speak with a good friend of mine who is a social carer and she is always talking about how hard it is to keep up to date and how often things change and how she goes about keeping up to date with these changes – as developers I’m sure we can all relate to that in some way.

How I keep up to date
In order to at least try to stay up to date I read blog posts and carefully select who I follow on twitter. For me the easiest way to stay up to date is to actually harness twitter in a way that allows me to follow the people who tweet about content I want to learn about, of course they also tweet other stuff which is also good but I use twitter as a learning tool, if people stop tweeting useful content then I will unfollow them as I like to have a useful twitter stream as a posed to tweets about running times and how they became the major of some place I’ve never heard of 😉

People ask me a lot why am I always on twitter – the real answer is I keep my ear to the ground and I like to learn whats
new out there or what people find useful.

Yeah blog posts are an invaluable tool but I have spent less time recently reading my rss feeds and more time reading what people are tweeting about – I like to try to encourage people to tweet about useful stuff they come across on a day-to-day basis and is a reason I started my what I learned last week blog post series.

So my question to you guys out there is how do you go about keeping up to date, so you use twitter like me or not really? has it made you think about what you tweet or you dont care who reads what you tweet? discuss…