You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

Dear Microsoft: Please Simplify Your Platform for Developers

Posted by Keith Elder | Posted in .Net, MVP10 | Posted on 09-01-2010


I’ve been preparing a new laptop for the majority of the weekend that I am planning on using at Codemash to teach a full day seminar.  It has blown my mind at the amount of software, and patches and service packs I have had to install in order to setup a new development environment to mainly get the http://www.dinnernow.net demo to work.  We have to find a better way!

Hopefully someone at Microsoft is listening and reading this.  If you work for Microsoft, please pass this plea of help along. 

My Problem

Let’s look at the problem real quick.  As a .NET developer we all understand that we have to install Visual Studio.  So we do.  Then there is always a service pack, or a service pack to the .NET framework (depending on when you are installing during the life cycle).  Then we need to install SQL Server, and then a few service packs for it, and then we need to install the ASP.NET MVC kit, then the Silverlight kit (which has a few dependencies) and then we have to install…. well you get the idea.  It is a never ending install of one thing and another.

Having a lot of friends that work at Microsoft and knowing how things work internally a bit, I know that different teams are responsible for various pieces of the .NET developer ecosystem.  I also understand that what I am about to ask is not going to be trivial to build but I think it is a must because of how large and vast the .NET platform is these days.  And of course it is about to get bigger when Windows Mobile 7 launches and comes out. 

What I Want

I want my cake and to eat it too.  Of course. But seriously, here is what I want.  I want a *tool* or something baked into Visual Studio whereby I can install different things with a single click.  Hmm, I’ve seen this somewhere before, oh yeah, the “Microsoft Web Platform Installer”.  Here let me give you a clearer picture:


This tool, targeted at web developers only, is a start in the right direction, but the problem is the scope is too narrow.  It needs to encompass the WHOLE platform.  Personally I think this tool should be expanded to allow me to easily find any and everything I as a developer could possibly want to install.  This may be CTP of MVC 2, a new release of Silverlight, or a new mobile SDK, or a Dublin or Oslo preview.  Whatever it is it doesn’t matter, I should have a ONE stop shop whereby I can grab whatever I want. Oh, and it should interface with my MSDN account too in case there is something I need that I can only get off of MSDN. 

Here’s a question: Why do I have to do a web search to find what I am looking for?  Why do I have to figure out all of the dependencies by reading multiple web pages and so on.  Every time I have to do a search for something that I need an angel looses their wings.  Please help us keep the wings on the angels. 

I understand this would require the left hand knowing what the right hand is doing but we as .NET developers need a simpler way of finding what we need and installing it than what we have today.  Not to mention the fact that it boggles the mind of those to no end trying to learn .NET.  I know this can be better.  It just takes focus and prioritization. 

You know what, even thinking about it more, 3rd party vendors would LOVE this tool if they could plug their stuff into it.  And I, as a developer would LOVE to be able to install my favorite add ins without a fuss.  This could be huge.

So there you have it, what do you say? Or maybe someone out here on the Internets has even a better idea.  Like for example, maybe create PowerShell scripts that help us (similar to apt-get on Debian Linux).  I personally don’t care how you do it, you have smart people there that can figure it out, I’m just the messenger telling you there is an opportunity here.

Thanks for listening,


Keith “is this thing on?” Elder

Speaking at TechEd 2010 in New Orleans – .Net From Scratch

Posted by Keith Elder | Posted in .Net, MVP10, Speaking, TechEd | Posted on 08-01-2010



I’ve been wanting to post this for a few days now but wanted to wait until I got the *official* email.  This morning it finally came so I can break the news that I’ll be doing a full day pre-conference session at TechEd 2010 in New Orleans, LA.

The conference is officially slated for June 7-10th this year but as typical with most conferences like this there is a pre-conference that happens the day before the conference.  The pre-conference sessions are typically full day lengthy sessions whereby attendees can get deeper into a technology.  This year I will be doing a pre-conference entitled “.Net From Scratch” (at least I think that is going to be the title). 

.Net from scratch will start attendees at the beginning of what .Net is and work through all the layers of the platform building upon one another.  Some of you may recall my “Back to the Basics” series and this is born right out of that.  I know there are attendees that go to these larger events where some get their first exposure to the .Net platform.  There are a multitude of reasons why this is but I’ve never seen any sessions tailored to bringing new people into the platform.  The bottom line is if you don’t have a way to get people introduced the platform, the platform doesn’t grow.  Most of the time speakers like to talk about the new shiny thing, leaving out those people that are just getting started.  Someone has to fill this gap and I am truly passionate about filling this void. 

What is the moral of the story?  If you are going to TechEd 2010 and don’t know .Net but want to learn it come to this pre-conference session. Or if you know someone that is going to TechEd that is trying to learn .Net and the platform tell them about this pre-conference session.  It’ll be a great primer for things they’ll see and learn later in the week.

I was wanting to host a crawfish boil at my house (which is only 1.5 hours from New Orleans) on the Saturday before TechEd this year but I don’t know if I’ll be able to prepare all that I have to prepare for and host a crawfish boil.  We’ll see how things pan out.  If you’d be interested in attending a Pre-TechEd Crawfish Boil in Hattiesburg at my house on Saturday before TechEd let me know (comment, IM or carrier pigeon).  If there is enough interest I’m sure I can make it happen.

Codemash – Speaking, MCing and Podcasting

Posted by Keith Elder | Posted in .Net, MVP10, Speaking | Posted on 08-01-2010


Codemash is just a few days away and it is going to be a busy few days for me this year.

This year I was asked to be the official MC of Codemash.  I was truly honored to be asked and I’ve been gargling salt water and oils to keep the throat fresh ever since. 

On Wednesday for the pre-compiler I’ll be doing a full day of what I call “.Net From Scratch” or “.Net Basics”.  This is a perfect opportunity for those that don’t know .Net to get a full picture of the platform from ground zero.  Here is the official abstract from the Codemash site:

.NET Basics with Keith Elder (all day)

Technology/Platform: .NET
Difficulty Level: 100/200

Abstract: This all-day session is targeted to anyone new to .NET. You’ll start out with basic “What is .NET?” and move through building applications on in various .NET technologies. Topics covered include:

  • What is .NET? Discusses the fundamentals of the .NET platform, what it is, where it can be used, and a few myths about .NET.
  • How to Use Your Hammer – Visual Studio Walks you through how to use Visual Studio features like Intellisense, Source Control integration, debugging, and other critical foundational skills.
  • A Programmer’s Primer Programming in C# Covers the basics of the C# language from Object Oriented Programming principles all the way to generics, collections, and LINQ. This is a programmer’s primer, which means you should already know at least one language and have some experience programming.
  • Client Applications Covers standard Windows applications, Windows mobile applications and newer Windows applications based on Windows Presentation Foundation (WPF).
  • Web ApplicationsCovers the variety of ways to build web-based applications in .NET. standard ASP.NET, ASP.NET MVC, Silverlight and Web Services.

As if that wasn’t enough, Woody and I will be recording some podcasts for Deep Fried Bytes here and there when we can.  It is going to be a busy few days but I am ready. 

My only hitch at the moment is I hope to get clearance from my eye doctor to fly.  Right now I am grounded since I had eye surgery on Monday.  If the Dr grounds me when we meet on Monday, I’ll just start driving.  See you there!

Deep Fried Bytes Episode #41: Developing Better User Experiences with Internet Explorer 8 with Jon Box

Posted by Keith Elder | Posted in Internet, MVP10, Podcast | Posted on 05-12-2009





Want to learn why you should look at the Internet Explorer 8 for developing better user experiences? We have just the guy to explain and give ideas around the new features of Internet Explorer 8. In this episode, we sit down with Jon Box, Microsoft Architect Evangelist, to get the scoop on how to use Accelerators, Web Slices and Search Providers in IE8 to keep users informed and updated.

.Net 4.0 – Start Reading Between the Lines – Learn Silverlight and Entity Framework

Posted by Keith Elder | Posted in .Net, Asp.Net, C#, Internet, Mobile Devices, MVP10, PC Software, Smart Clients, SQL Server | Posted on 30-11-2009


I started writing this as a general recap of PDC for team members but the more I thought about what was announced at PDC, the longer the email got.  Ultimately I decided to put it out so you dear reader could also gain some insight from things announced at PDC. 

For starters listen to the podcast we recorded with Scott Guthrie or “The Gu”, or “His Guness”, or “ScottGu” about Silverlight 4 announcements among other things while at PDC. 

The big stories out of PDC that I think everyone should take note of are Silverlight 4, Entity Framework 4 and Windows Mobile. Wait Windows Mobile 7? Yes.  Wait… I didn’t hear anything about Windows Mobile 7? Well I didn’t either and that is why this post is called “read between the lines”.  Call it speculation or whatever, but I think I can bring you up to speed on what is about to happen (and no I have no official behind the scenes information, I’m just a guy with a brain).  Before we get to Windows Mobile 7, let’s start with Silverlight.


Silverlight 4 had tons of announcements including:

  • Camera and microphone support
  • Trusted out of browser support.  This means one can access COM (for example, an application could access Outlook APIs)
  • Lots of line of business app controls
  • Added support for drag and drop
  • WCF RIA Services (this is basically what I’m calling the new CSLA, if you listen to the podcast you’ll find out that Rocky worked with the team closely on RIA Services)
  • Print natively
  • More…

Tim has a great recap of all the Silverlight announcements here with links to videos:


Now what does this all mean? It means the line is blurring between client and server applications. It also means we are coming back full circle to “Smart Clients” (which were hot in 2005/2006 but were forgotten due to the Web 2.0 hype.  The only difference is this new breed of application (Silver Clients?) can run directly from a web site, or on a client’s machine.  It also means that Silverlight is going to finally fulfill the vision we heard about a long long time ago that was called WPF/e (WPF Everywhere).  A lot of people have forgotten this but we are seeing it take full shape now.  For businesses that are writing applications internally, I think we are going to start seeing a huge shift away from writing Asp.Net/MVC apps and a move towards the rich model with Silverlight.  I mean seriously, why wouldn’t you? If you get cross platform compatibility, rich data binding, write once and work in any browser, why would developers that are trying to build internal business applications continue to kill themselves writing JavaScript, fighting CSS and browser compatibility?  I can’t think of a reason either.  In my opinion this is just a waste of time (and always has been).  There is something extremely powerful putting a variable in memory and having it be there when you need it without having to worry about sessions, state, etc.  Yes we are FINALLY getting back to the client programming model, just coming at it a different way. 

Entity Framework

Let’s talk about Entity Framework 4.0 for a moment.  This is another big piece of news.  It is big because as .Net developers we will finally have one true way to access data that fits the multitude of ways we have to work.  Here’s a recap of announcements (not a complete list, watch the videos from PDC):

  • POCO – supports plain old clr objects
  • EDM designer enhancements
  • Better stored proc support
  • Model first (then gen database model)

Doug Purdy (who we also interviewed for Deep Fried Bytes while at PDC) has a list of the sessions that cover the Entity Framework 4.0.  Just start at the top and work your way down as far as you can.  At least watch the first video as it shows off all the features of EF.


With the number of features that were announced in EF4 I think we are on the verge of seeing the demise of NHibernate usage by developers in the .Net stack.  For those that have used NHibernate in the past, it is worth another look at the Entity Framework to be released in .Net 4.0.  About the only thing EF4 doesn’t do that NHibernate does do is built-in caching (which hey, there’s this caching thing that AppFabric does, hmm, wonder if they’ll use that? Why not! 🙂 ).  But the big thing to note between EF4 and NHibernate is we are starting to see where this whole modeling thing with OSLO is going (edm files are m fles and so on).  And of course there is the bigger picture of reusing this model in report services, BI and other areas (although we haven’t *seen* that really working yet, it is coming though see next sentence).  As EF4 makes it way into other products throughout the Microsoft ecosystem it is going to be extremely hard to avoid the Entity Framework.  Read between the lines, the writing is on the wall, LEARN THE ENTITY FRAMEWORK.

Just a side bar here because I know someone is going to ask me this at a later time.  Will the Entity Framework kill NHibernate? Answer: Nope I’m not saying that. 

Out of band developers that seem to have a knack for yelling the loudest will continue to use NHibernate but a much larger ecosystem will leverage the out of the box Entity Framework in .Net 4.0.  Think back for just a bit.  History is about to repeat itself all over again.  Remember when we got MSTest and or MSBuild?  Same thing is happening again. There is now an out of the box product for standardizing data access.  Are their alternatives? Sure.  Just as MSTest didn’t kill NUnit or MBUnit and MSBUILD didn’t kill NAnt, EF4 will not kill NHibernate.  However, if you look at the number of developers using MSBuild or MSTest it is high. Extremely high.  Why is that? Answer: pain, ease of use, integration, documentation.  MSTest is not the best testing framework out there (this is a proven fact), but it is good enough for 90% plus test cases.  Entity Framework 4.0 is going to put an ORM in the hands of developers.  And you know what, it doesn’t suck either. 

Windows Mobile 7

And now onto Windows Mobile 7. 

Is this WinMo 7 above?  I honestly don’t know, I found these screen shots on http://windowsphonemix.com/ web site.  BTW, notice that URL?  Mix? Yes Mix.  Mix is the first of the three major conferences Microsoft puts on each year.  The very last slide at PDC during the last keynote said, “Come to Mix 2010 for Windows Mobile 7 futures”.  A lot of people missed this because they were tuned out from the SharePoint demos and already packing to leave.  But there it was on the big screens.  Thus we know Mix is when we’ll see Windows Mobile 7.  Again, listen to the podcast to get some other insight. 

Here’s a quote:  “Three screens and the cloud”

We heard this over and over at PDC.  Let’s read between the lines a bit shall we?

I have three screens:  Windows Desktop, Web, Mobile.  Ok, if I want to write an app that will run on all three what do I as a developer have to do today?  Let’s see, well, we could write a ClickOnce deployed Smart Client for the Desktop that uses WPF.  For the web, well, we would have to switch gears completely and rewrite our app in Asp.Net or Asp.Net MVC to get that screen.  For mobile, even tougher, we have to rewrite the app again to get the mobile version.  Let’s think about this differently again.  Think about it, how many technologies would a developer have to know in order to an application for these three different screens;  WPF, JavaScript, HTML, and CSS will be used just to name a few.

Now, let’s switch gears.  What if I used Silverlight 4 to write my app?  Well, it could work in the browser no doubt.  Hmmm, it could also work on the Desktop using the out of browser experience with elevated permissions.  What about mobile? 

“Wait, didn’t you just say Keith that at Mix we’ll get to see Windows Mobile 7?”


“And hasn’t there already been talk of using Silverlight for mobile?”


“Aha! Three screens with Silverlight, I get it!”

That’s right my friendly .Net developers the writing is on the wall. The vision of WPF/e (WPF Everywhere) is about to come true.  We’ve waited for years but it is just around the corner as I predicted would happen years ago.


(ok, so it wasn’t right around the corner but 3+ years later)

Moral of the story?

LEARN SILVERLIGHT so you can make millions of dollars building Mobile applications just like the iPhone devs.  There, I just made you rich by putting this puzzle together for you, please send me 20% of all profits.

You are welcome.