DDD9 Community Developer Day at Microsoft Reading

by Jon 29. January 2011 19:24

Travelling home after another fantastic DDD; an annual UK development community held at Microsoft Reading.  A big thanks must go to all the organisers and speakers that have yet again made this a fantastic day. 

Some of the topics were a bit techy so I am using this blog to attempt solidify the notes I made.  If you see any mistakes or oversights please please please get back to me so I can rectify them. 

I managed to cover Liam's talk and the basics of the other talks, I had planned to do more but I have been ill this week.  I may try to fill it out with more details if I time this weekend, or if someone gets back to me with a suggestion.

Go Asynchronous With C# 5.0 - Liam Westley

Liam went through one of the headline new features that is coming in C# 5.0 (also in vb.net 5.0), which was announced at PDC 2010 last year.  The New async keyword and its sister keyword await, are two new keywords in the language that simplify the way we perform asynchronous operations. In this world of multi-core processors and responsive handheld devices we need to be able to do several things at the same time more efficiently without making an accidental mistake that brings your code crashing down.  Liam demonstrated the problem we face by offering three members of the audience hot drinks.  If you want to do three things at the same time, (make three hot drinks), there is a temptation for a developer to start up three threads, the analogy Liam made was this is like getting three kettles out and making three hot drinks at the same time.  Its not sensible, it uses too many resources and it will take you longer!  Its better to do it in a more controlled way, but in c# 4.0 (and other languages) the extra code needed to achieve this will add extra lines to your code that muddies the water hiding the detail of what we want to achieve.

Async and Await are two words that we will use to manage the complexity better, enable use to boil hot water and make drinks quicker without hiding the complexity involved in asking people what drinks they want.  The process of making three hot drinks is pretty simple so if we can describe it in a simple way but include markers to say how we are going to achieve this asynchronously we are onto a winner. 

The two new keywords means we are able to write asynchronous code but it looks like single threaded code in your source file.  By placing the Async and Await Keywords in the right places the dotnet compiler will take your essentially single threaded code and construct call backs in the right places at compilation!

Async – We use this keyword to mark a method, its a statement of intent to say we may be performing asynchronous operation.

Await – Await can only be used within a method that has already been marked with an Async keyword.  If you place the word Async before you call a method you want to be run asynchronously the compiler will ensure the code that is after the keyword will be executed on a Callback without you having to write any extra code.

The code looks amazing but there appear to be a couple of gotchas:

  • You have to be really careful not to use the word await in your method names, you need to check your naming conventions before you implement.
  • A method marked with the async keyword can only return void, task or Task<TResult>
  • The naming convention seems a little off, as await doesn’t wait.  It is a request to continue running on a callback
  • Exception handling looks a bit funky less than clear in some scenarios which could get confusing.

It looks fantastic, and I look forwards to using it but it almost needs a health warning because it so much easier to write asynchronous code, i can see that lots of people may start using the keywords everywhere. When they start getting weird exceptions they can’t fix there will be the temptation to swallow them.  Obviously this can happen today in our current callback centric world, but there is a smallish barrier to entry.  I’m looking forwards to seeing this in the framework, if the names will stick, and what if anything will change with the exceptions.  If you want to look at this now you can grab the CTP here, but be warned its not compatible with MVC3 or VS2010 SP1.  Liam mentioned that as this is a CTP we as developers have a chance to get back to MS to ask for features or changes we want to see in c# 5.

Monads! What are they and why should I care? - Mike Hadlow

Mike Hadlow is one clever bloke, I got to the end of the talk and I wasn’t even sure if the questions I had were valid.  I thought I knew what monads were by the end of the talk but looking at my notes its still not clear.  In summary most developers probably shouldn’t care unless they are really interested in it.  From what I understand monards are used all over the dotnet framework, LINQ, IEnumerable<T> by understanding the concept you will better understand what is going on under the seams.  I need to see this again, and probably again and do some sample coding to get my head round it before I can put together a sensible overview.

But it does beg a bigger question, does the average developer need to know what a monad is?  A developers job is to create software that solves a problem quickly and cheaply, it doesn’t really matter how this is done.  It goes back to my previous post on what is Lean.  The customer couldn’t care less if you know about monads, they don’t even want a piece of software, they just want there life to be easier/nicer.  If knowing monads helps developers achieve this; great.  Its one for my list of things to read about.

Functional Alchemy: Tricks to keep your C# DRY - Mark Rendle

DRY stands for Do Not Repeat yourself.  As a developer if you find yourself writing the same code, or even doing the same thing over and over again your doing something wrong.  Mark Rendle showed us some ways we can use Functional Tricks to reduce the amount of code we write and reduce repetition.  Mark made a great point that using an OO language is can be like using a Hammer to crack a nut, not everything is an object.  Mark then went through some code, I especially liked the functional catch and the cached dictionary looked useful, although the lock looked a little dangerous for my liking.

Again in my mind software development is getting something done as quickly and as simply as possible, not having to write the same line of code over and over again is an advantage, and I loved the extra readability some of the sample code added.

Is your code S.O.L.I.D ? - Nathan Gloyn

Nathan about to start his talkKind of, but it could be alot better.  I loved this talk, Nathan took a pretty dodgy asp.net project which had inline SQL and transformed it into a thing of beauty.  He showed how you can take any dotnet code and make it much better using SOLID principles.

SOLID is a set of principles about class design, they are principles to consider not rules to apply.  Each letter of SOLID stands for a different concept which is designed to remove the nasty ‘Design Smells’ that infect code bases.

Nasty Code Smells Nice SOLID Principle
  • Rigidity – Cant Change
    Fragility – one change will break other things
  • Viscosity – changes are too much work, and a dirty hack is preferable
  • Complexity – Makes it difficult to change in future
  • Repetition – Waste of time writing the same thing over and over again
  • No Opacity – lines are code are confusing, do different things
  • Single Responsibility – Each object has a single responsibility
  • Open/Closed – Software is open for extension closed for modification
  • Liskov substitution – objects can be swapped out for different reasons, ie testing, for different database back ends etc etc.
  • Interface Segregation – Lots of client interfaces are better rather than a single fat interface
  • Dependancy Inversion – Dependencies are turned on there head so objects are loosely coupled

After whistling through the concepts Nathan then dived into code taking a legacy application and applying each of the SOLID principles in turn to refactor the solution into a much cleaner, more testable manageable project.  Nathan covered alot in this presentation and I was glad I took notes so I could look into it further when I got home.  I’m looking forwards to going to the next talk that Nathan gives.

Enforcing Code ‘Beauty’ With StyleCop - Guy Smith-Ferrier

Unfortunately I made it to this session a little late, because I had got myself into a table tennis match on xbox kinect!  Unfortunately as soon as I made it to the session I found that StyleCop is of no use to our business because it doesn’t support vb.net.  A bit of a surprise as StyleCop is open source, might take a peek if I ever get any time!

Beginners Guide To Continuous Integration - Paul Stack

I have recently implemented TeamCity in our organisation, CI is life changing.  It fits in with the DRY principle, developers should be aiming to automate any repetitive tasks and for many organisations software Builds, Testing and Release take an inordinate length of time.  Paul covered the basics of what CI is, how you should pick a CI and did a quick demo, a nice taster session for anyone who hasn't thought about CI.  It didn’t cover anything really new for me but it was nice to see a different perspective., and I liked the presentation style.  I was set next to a guy who got really interested and ended up giving him a link to my blog so he could take look at my beginning TeamCity blog series.  I think this session interested alot of people; who just want to save time and .’. save money.  The advantages to CI are clear, reduced risk, reduced bugs better testing, faster release, you can take it to another level it has even been joked on twitter that ideally your CI system should order you a pizza if you break a build Smile with tongue out


conference | ddd | development


Using Windows Phone 7 as a modem from your laptop

by Jon 28. January 2011 21:35

As DDD9 is tomorrow I was looking for a way to connect to the internet my laptop on the train.  I assumed that using my new WP7 as a modem would be impossible, but appears not.  The folks at hdblog.it got it working in November!  Its a pretty simple process and quick enough for you to setup as you travel down, but you need to have ZUNE installed on your laptop for the drivers.

  1. Goto the Phone Dialler on your WP7
  2. Enter ##634#
  3. Press Call
  4. The screen will change, show the WP7 Loading clock  then change to ‘Diagnosis (ver.0929)’
  5. Enter *#7284#
  6. The screen will change to ‘Micro USB Test’ and show three Options
  7. Press ‘Modem, Tethered Call’
  8. You will get a confirmation telling you that you have to reboot the device
  9. Press ‘ok’
  10. The device will reboot
  11. Plug your WP7 phone into your laptop using a USB lead
  12. Your laptop will install modem drivers
  13. Make a new dialup connection, enter *99# in the Dial Box and leave user name and password blank
  14. Press Dial
  15. Your are using your WP7 device as a modem

Repeat the process and select Zune to revert back to Zune Sync, you will nee to revert back to Zune Sync to re-enable side loading of apps.

Enter ##634# into the dialer Enter *#7284# into the diagnositics window
Choose Modem, Tethered Call
Add a Dialup Connection using your Wp7


conference | ddd | General | windows phone 7 | WP7


Developer Developer Developer 8a 23rd Oct 2010; Another great community day by the DDD team

by Jon 23. October 2010 18:59

I’m heading home after another long but fantastic day at Microsoft Reading, UK.  The day officially started started at 8am with bacon butties laid on by the venue hosts Microsoft who provided an excellent venue for this Mini Geekathon at there UK offices in Reading.  However that is pretty much where Microsoft's roles ends and the community takes over.  Developer Developer Developer is a group of individuals that get sponsorship and lay on development events around the UK.  The DDD events are FREE events organised by developers for developers; todays event was titled Modern.Net.  Modern.Net is .NET we can do now with current tools the idea of the day was to cover all the latest things in .NET that developers can use now to target Acer Aspire One, Amazing Battery Lifenew platforms and write better code.  I came armed with my new mini Acer aspire one, which appears to have better battery life than I expected.  I was surprised to see 8hours 46 mins remaining after a couple of hours of use on the way down and that's with Bluetooth turned on and active!

The day was split Into two rooms which made it really difficult to choose sessions to attend as I would have loved to see the sessions that were running in the room next door.  I resolved this problem by pretty much deciding which session to attend at the last minute.

WP7, iPhone, Droid - Oh My ! - Chris Hardy

Did you know you could develop against the three most important smart phone device types just with.NET?  Chris went through the different ways you develop each platform, explaining the differences and requirements for each smartphone.

Phone Platform Cost My Notes
Windows Phone7 Windows,
Visual Studio
vs2010 Express $0
Appstore $99 PA
Nice and simple develop, as it is just Silverlight.  It has some oddities due to Tombstoning but this should be the easiest and cheapest platform for .NET developers to get into.
iPhone Mac, Mono Develop, Mono Touch Monotouch $400, Appstore $99 PA You need a Mac to develop this because you need to have the IPhone SDK that only works on a Mac.  There are lots of restrictions and tricks (ahead of time compiler, stripping out bits of the framework you don’t need at compile time) that have been performed by the MonoTouch developers to get this to work which means you will always be lumbered with a larger assemblies.  However the advantages of using MonoTouch over Objective C is Clear and it now sounds like Apple has now embraced MonoTouch as an easier way of developing for there platform.
Android Mac/Windows/Linux, Mono Develop, Mono Droid MonoDroid $1000
Appstore $25 One Off
Although MonoDroid is at an early stage it looks the most exciting to me; apart from the high cost of the Licence for MonoDroid.  You can develop MonoDroid from any platform, and although there is the odd fudge it looks like it will be a much better development experience for developers when the product is released.  You can create widgets and applications with MonoDroid, and you can get access to other libraries such as OpenGL.  There are currently a couple of issues including asynchronous and multi Threading not working yet but they will be fixed when MonoDroid is released.


Chris Scaring us with MonoTouch Minimum App SizeWP7 is clearly the easiest platform to develop for in .Net but the advantages of .Net for the other smartphones is clear.  Developers are now able to separate logic and develop a re-useable libraries that if developed carefully can be reused between the platforms thus reducing the pain of developing cross platform smartphone applications .  Most Interestingly I personally think that the relatively low cost and ease of development bodes very well for the new WP7 platform.

Managed Extensibility Framework - Kathleen Dollard

This was my favourite session of the day; i had heard bits and bobs about MEF from other developers prior to this session but I haven't had time to investigate it so I was looking forwards to this session by Kathleen.  Kathleen enthusiastically explained MEF from the basics to the detail by rattling through two presentations in the limited time at breakneck speed.  I didn’t get it all and the certainly wasn’t time for detailed notes but here are the basics.

MEF is different, stands for Managed Extensibility Framework and developers can used it to develop separate units that can work together but so the logic can separated more sensibly.  Imagine a room of kids drawing things, some have crayons some don’t, some kids are shouting I want a crayon, other kids are shouting I want a crayon.  MEF is the system that can be used connect the kids who want crayons to people who have crayons.  There are currently two models available to do this, one of the models is designed especially for Silverlight, the other is more general purpose for dotnet.

One thing I found interesting is that essentially it is DIY SOA, if you want a flexible SOA architecture this seems like a great way to go.  Kathleen gave lots of examples why MEF or something like it is the future.  Although I haven’t explained it very well it looks like a much much better way of developing systems, I defiantly need to see more sessions on MEF as I want to use it for some personal projects.

Dynamic Consumption in C# 4.0 - Oliver Sturm

I had seen Oliver Sturm before when he took us through f'# one evening after UkTechdays, gosh he is a clever bloke.  In this session Oliver took us through dynamic consumption and some of the dynamic features in c# 4.0.  As far as I can tell a chunk of the dynamic features in c# 4.0 have originated from vb.net so some of the ohhs and ahhs are less impressive to me as I have been using them for years and years in vb.net, c# has essentially caught up with vb.net, and has a few new dynamic features.  After demonstrating the dynamic features of c# he demonstrated how you can call dynamic languages from within c#, first doing office automation, and next calling out to python using a python library and returning the results into c# looks interesting if you need that kind of thing.  The summary c# isn’t dynamic but it can now interact with dynamic languages.  Useful to know if I ever need to do it, but at the moment its not something I will be doing.  IMO Vb.net developers will be less impressed with this presentation, but it was an interesting one to go to.

Lunch and Grok Talks

Jon Skeet wowing the audianceLunch was kindly provided by Microsoft and we sat in the main lecture hall munching away listening to some concise talks on a variety of subjects.  I liked the concept of a 20:20 presentation, 20 PowerPoint slides in set to auto run at 20 seconds for each slide, the presentation was on @plip and twitter but i liked the concept.  The talk on Behaviour Driven Design (BDD) was interesting, the presenter showcased his own framework for F'# called TickSpec.  I can see how his framework methodology has its benefits for highly specified systems.  Finally dinner ended in a geekout with different presenters from the day answering questions on .net and development theory from the audience, eye opening and I discovered an alterative (cooler?) way to say tuple!

Modern C#: This is not your grand-daddy's language - Jon Skeet


Jon Skeet pretty summed up the entire day with his presentation on modern C#.  The theme of the presentation was the theme of the day, Modern.Net and how it has evolved over the years by doing a direct comparison between the oldest and the newest version.  We can express more than we could before, C# 1 was wobbly wobbly, but today C# 4 is more descriptive and defined.


Jon lead us through the differences by deep diving into the code, he wrote the same code in both versions; find the maxby and return it and tried to make both solutions as defined and generic as possible.  The C# 1 code turned out to be simpler and shorter but the bug difference was in the reusability and strictness.  The C# 4 code was more reusable and strict at the same time, you had to jump through some nasty hoops to make the C# 1 code anywhere near as reusable and sensible.  At the end the C# was still shorter, but the client code required to use it had to be longer and there was defiantly a bigger chance to make an error with the C# 1 calling code.

At the end of an interesting talk, we were left everyone with a chunk of interesting thoughts…

  • f# is complicated but it has lots of inertia in the industry
  • Learn F# to improve your c# (and vb.net ;p)
  • Think about what is coming in future, dotnet 5

IMHO the future is more CPUs, so its worth bearing in mind when looking to the future.

WPF in Modern .NET - Ian Griffiths

Unfortunately I missed the start of this talk due to the start of a migraine, starting to feel very tired, and listening to Jon Skeet outside the hall for the first 15 mins of this session.  I stood at the back with @NathanGloyn and I took the opportunity to charge all mu devices, which stopped me from taking any notes.  Ian defended WPF throughout the session but in my mind didn’t really give much to backup his defence.  I’ve seen WPF before and yes it has its advantages and yes it will be used but I still don’t get the separation between Silverlight and WPF.  In my mind why separate the two it would be much better to have Silverlight, Silverlight, even if there are differences diluting two frameworks and having two brands doesn't seem the most sensible strategic decision.


And with that that was it, another long development day.  We all caught the bus back to the train station and scuttled off home on the train.  Thanks to all the organisers, and Microsoft for the venue, it was another fantastic day.  Hopefully one day I will complete a blog post on the day of a DDD event before a migraine stops me in my tracks!

Tags: , , , , , , , , , ,

conference | ddd | vs2010


Developer Developer Developer South West #DDDSW

by Jon 6. June 2010 22:32

DDD SouthWest 2

I trundled down to DDDSW yesterday for a fantastic day of DDD geekyness.  The DDDSW team had thoughtfully laid on a Getting Started with .Net track I thought it would be a great way for my brother in law Kevin who is currently leaning dotnet to pick up some more skills.  Although the day was fantastic, I wasn't prepared enough, I need to remember to get alot more sleep before DDD events, as a consequence combined with the heat I wasn't in right frame of mind to mingle and chat as much as usual but I did talk to a bloke from Lincolnshire called Rob.

My Favourite Design Patterns, Gary Short

Yeah that was me, I was the demonstration!  No one else wanted to put there hand up, so a very tired jon went up and got my lefts and rights confused for a second.  Gary was explaining design patterns and how design patterns are used to facilitate leaning, they are a way of teaching people how to do stuff in a repeatable way without having to know the details of how the pattern works.  It was a great session.  I now know that my singleton pattern isn't as efficient as it should be, the singletons have written in the past have a couple of locks in them but I think I can bypass it with a static readonly:

class Singleton

    public static Singleton Instance
            return Nested.instance;
    class Nested
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static Nested()

        internal static readonly Singleton instance = new Singleton();

What was nice about this session was that I kept on recognising patterns in my own code without knowing some of the official names of the patterns. I am using Garys design patterns without realising it because it seemed like the best thing to do at the time.

So you want to try scrum, Nathan Gloyn

Due to the number of true geeks at dddsw 2, this turned out to be a smallish session.  The way people develop and interact and the psychology of software development interests me.  In the past Agile, scum and other modern methodologies have been sold as something that can be achieved with a specific piece of software (which the person is trying to sell to you) or sold as something that needs to be done in one go (which the person can help you with through consultancy).  I disagree with this and I was very happy to see Nathan taking the same approach.  This was a very un-technical presentation of the building blocks of scrum, and given in a way that said you can get there in little steps.  I believe people get there quicker if they take small steps rather than a big bang change.

Scrum Board

Crap Code and the Disasters it Causes, Phil Winstanley

You have seen it before, every developer has seen it.  You join a project, you pick up some old code, or perhaps your working with someone, or perhaps it is you!  The code is scary, Phil went through some of the crap code he has seen in his travels and categorised the code into separate developer personality types.  Some of the code was very scary, some of the code was familiar and I may have even written some of it!  I understand the problems faced by developers that have progressed from vb within a single company, the world is a very different place.  In the past you sometimes had to fudge things to get them to work and habits die hard.  When your this kind of developer and your working on monolith of a project that was originally ported from 20 years old VB1 code there is fear to change things due to extreme spaghetti code.  When you have really old nasty missions critical code you learn from your peers not to change it too much.  I remember fixing some really code and a random appearing 6 months later for no valid reason.  Crap code is bad, but sometimes code is beyond repair, and attempting to fix it will also causes disaster.

Ajax with JQuery, George Adamson

George Adamson wrote some of JQuery so if you want to learn about AJAX with JQuery go see George.  A Great session it was a bit of a light bulb moment to see how query works in anger, AJAX is dead long live AJAX.  Microsoft has shifted AJAX development to JQuery so you really need to start using JQuery instead.  I'm not sure where this leave some of the control libraries such as Telerik?JQuery

Clean User Interfaces with ASP.NET Webforms, Dave Sussman

MVC is ok but it is relatively new technology, WebForms is tried and tested but know to generate messy html.  However was keen to show us if you turn everything off, turn the view state off, don't run with the .NET default settings and use dotnet 4 if you can and you get nice clean html.  WebForms isn't going to go away as it works, there are lots of sites and applications out there in the wild and there are other things in the pipeline for webforms such as MVP, that will only extend its life.DDD End, oh and the sponsers

All in all I had a fantastic day at DDDSW, a real credit to the organisers and I am already looking forwards to the next event.


Uk Techdays

by Jon 8. May 2010 20:34


Uk Techdays Visual Studio 2010 Launch

UkTechDays; was 5 day events developer events hosted by Microsoft at two cinemas in London.  Although the usual goodies were lacking everyone had a great time and I learnt lots especially in development areas that I don't normally come into contact with. Credit must still go out to Microsoft for organising a week of free training/lectures, the quality of the speakers was really excellent.  Unfortunately the free copy of visual studio that delegates received at the both the vs2005 and vs2008 launches wasn’t repeated at the vs2008 launch in London.  But on balance what is most important is about keeping up-to date with the latest changes to the framework and development practices.

If you missed the event, or just want to catch up Microsoft has now made all the videos available here.

I attended the first two days, and took notes until I either got too excited or lost interest, this blog post is a regurgitation of these notes.  As I wasn't able to attend all week due to work and costs, these notes only cover the first two days.

Monday 12th April 2010 – First Day

I arrived in London the night before, and got to the Vue Cinema in plenty of time to get a coffee and get a good seat.

UkTechDays Introduction

Windows Development with Visual Studio 2010 - Matt Nunn, Senior Product Manager, Visual Studio

This session covered lots of new features that developers will benefit from in visual studio 2010

  • Partial String Intellisence - Intellisence has been improved, filtering now works with substrings or the Capitalised letters.
  • Multi Monitor - Windows can be broken off the Visual Studio Development Enviroment, and they can be moved to a separate monitor and docked there instead.  I think this will be great if you have 3 monitors but less useful for laptop based developers.
  • Zooming - Visual Studio 2010 has been rewritten in WPF so zooming is soother and the interface is slicker.
  • Test Driven Development Support – Useful if you have ultimate version of Visual Studio.
  • Extension Manager - Visual Studio extensions are now controlled from a funky new extension manager which appears to work more like a store where you can try, buy and remove extensions and features as you see fit.
  • JQuery - I haven’t used jQuery myself but I know a few people do.  jQuery is now properly supported in vs2010 and Microsoft is collaborating into the Open Source Project.
  • Lean Code Only - Some developer love code so much they don’t care about UIs.  Well Microsoft has now given us a way to develop in a code only view which hides away all the UI stuff. Great if you are writing drivers, or you are a proper geek.

Over the years C++ has been left behind in the visual studio world.  Vs2010 brings C++ upto date.  There was a fantastic demo on an old MFC application and how you can add windows 7 features really easily with visual studio 2010.  If you are a C++ developer VS2010 is defiantly an upgrade you should be looking at.  You get the class wizard back again, and you can do touch screen integration and everything else you would expect to see in windows 7.

Share point was also covered briefly; sharepoint development is much much easier in VS2010, but I think SharePoint is still too expensive for most developers to even consider so I won’t write anything else about it.

Web and Cloud Development in vs2010 - Richard Erwin, Technical Specialist, Developer & Platform Evangelism, Microsoft

There were a couple of demos, but I picked up the following nuggets on windows 7 phone:

  • UI Development for windows phone is vertical the XAML is shown side by side to the WUSIWYG editor.
  • Windows phone emulator is also hardware accelerated on the windows desktop (which is coo and needed because the windows 7 phone has 4 cores!)
  • Windows phone 7 is out later this year, sometime before Christmas

SharePoint and Office Development with Visual Studio 2010 - David Bishop, Principal Program Manager Lead, Developer & Platform Evangelism, Microsoft

I enjoyed this session, I get SharePoint but it’s not an area I work in and I don’t see the point for most developers due to cost constraints so I'm not going to write up my notes. Lots of developers started walking out at this stage, and there were lots of tweets from unhappy devs. However I thought it was a good session, and SharePoint may be something we want to get into later, especially if the cost is made less prohibitive.  If you do SharePoint development or your interested I recommend watching this video on the uktechdays website.

Improving Developer-Tester Collaboration with Visual Studio 2010 - Giles Davies, Technical Specialist, Developer & Platform Evangelism, Microsoft

Again it all looks great, but most developers can’t afford Ultimate Edition and lots of developers switched off. It is a shame as it is all good stuff but unfortunately we won’t get to use all these lovely features.

Unveiling the new and useful features of .NET Framework 4 and Visual Studio 2010 - Giles Davies; Richard Erwin; Mike Taulty; Eric Nelson; Mike Ormond; Mark Bloodworth

Ohh this was very meaty, it was split over two sessions reaching out until lunch because there were so many demos and so much information I’m just going to give brief bullet points.

  • Implicit Line continuation – No need to have those nasty underscores
  • C++ has a new dynamic keyword
  • Com Interops are better, comtypes are embedded in dotnet, ie a comtype library is no longer needed.
  • Web.Config and other config files have been imporved, we have different config files for different deployments.
  • Performance monitoring features, allows you to see what is going on in more detail it is a nice graphic display of how your code works. I think this is going to be fantastic for deep analysis of services running on multi core machines.
  • Caching in Asp.net is much more efficient
  • Session state can now be compressed
  • There is a new code block <%: which will automatically html encode
  • Webforms can now generate pure CSS friendly XHTML strick
  • Support for ASP.net MVC
  • Webforms isn’t going to be dropped, but It is clear MVC is going to be the recommended technology for web development.

Mike Taulty then took over and did a load of demos, RIA Services look fantastic, and defiantly something I want to look into in future

  • Visual Studio loves XAML based applications
  • XAML apps are made really simple if you want, you can write a Silverlight app without writing a single line of code if you want.
  • XAML is like windows forms point and click development, if you want it to be

Some other nuggets from the morning sessions

  • Entitiy framework 4 is a leap forwards as it fixes problems people experienced in older versions
  • Support for foreign keys on objects in EF4
  • You can take a group of properties and easily convert them into a complex type in the editor
  • If you use a stored procedure it will automatically create a matching complex type that works, which is a sensible outcome
  • Lazy Loading is on by default
  • POCO looks cool, but it isn’t in the initial release of vs2010, it is a code only interface to a database
  • In POCO you create a pure class, populate a few with data and save them to the database without writing ther database code
  • Parallel.Invoke will automatically split work across multiple cores efficiently

A Perspective on Agile Development - Colin Bird, Founder, Ripple Rock

It was a good session but you got the feeling Colin was trying to sell his services over demonstrating Agile best practices. I know I am not agile yet, but I intend to get there by continuously improving myself and our business practices. I am not going to big bang to agile I am going to get there in small steps. There were some great bullet points from this session:

  • Everything should be production ready all of the time
  • Agile is binary, it is either completed or not
  • Don’t commit part of the solution
  • Limit your work to what you have started and only do one thing at a time
  • Don’t Create a technical Debt
  • Lots of refactoring is needed all of the time
  • You need unit tests, performance tests regression tests
  • You need lots of interaction between people
  • Your aiming for Every bit of work you commit to be a mini waterfall. Analyse the problem, Design, Develop, Deploy and Test EACH time you commit changes
  • Look at implementing continuous integration
  • Agile is reactive to change
  • Encourage change and feedback from customers
  • Automate as much as possible, especially deployment try and deploy as much as possible

Fun Programming with Visual Studio - Rob Miles, Academic from University of Hull, Microsoft MVP

This was by far the best session of the two days. I am defiantly having a go at writing a game. XNA is a fantastic way into software development and it is something they should be teaching in schools across the country. Rob impressed the audience and showed us it is really simple to make a game that you can deploy to an xbox360, windows 7 phone or run on your home pc. His new book looks like it will be fantastic for beginners.

Tags: , , , ,

asp.net | conference | General | vs2010

Powered by BlogEngine.NET
Original Design by Laptop Geek, Adapted by onesoft, and finally some tiny tweaks by JonAlb