Microsoft has updated MSDN again for what feels like the third or fourth time in a couple of years. Microsoft is really concerned with making sure itâ€™s easy for new developers to pick up .NET, but I donâ€™t think this redesign does it.
I think they missed the mark for true beginners. Iâ€™ve never met anyone that started coding by saying, â€œI think Iâ€™d like to learn fundamentals of a programming language, then fundamentals of a GUI, then read a few dozen HOWTO articles that donâ€™t have a lot to do with real applications.â€ Instead, we start by saying something like, â€œI want to make my own Minesweeperâ€ or â€œI want to make a Pac-Man cloneâ€. This redesign falls flat for this user.
The â€œdesktopâ€ page does a good job right up to step 4, the introduction videos. â€œBuild your first desktop RIA application with Silverlight?â€ Why not just say â€œBuild a smurfing smurf smurfer using SMURF?â€ I think the video titles focus too much on what tools are used and not enough on getting the developer excited about what heâ€™ll be doing. Better titles would be â€œBuild a desktop Twitter client with WPFâ€ and â€œBuild a browser or desktop Twitter client with Silverlightâ€. When I was new, Iâ€™d expect a â€œmy first applicationâ€ tutorial to be simple. If I saw a 30 minute â€œbuild your first application with WPFâ€ Iâ€™d assume that WPF made it really complicated to build simple things. If instead I saw â€œBuild a Twitter client with WPFâ€ Iâ€™d have understood that the video probably used some advanced features that needed explanation. (On a side note; why on Earth is the thumbnail for the Silverlight code that sets up a WNDCLASSEX?)
Step 5 falls flat by showing a disorganized bullet list of links that are randomly bolded. Section headers would be nice, but itâ€™d work if similar concepts were grouped together. Why is the MS Office developer center there? Why is there a link to the VB developer center but not the C# developer center? Iâ€™m not really sure what Microsoft was going for with these links.
When I first started, I thought MSDN was the appropriate resource to learn about writing Windows Forms applications from scratch. This just isnâ€™t the case. MSDN is written in a technical tone and many of the articles assume at least a moderate familiarity with .NET. Thereâ€™s articles that help new developers, but theyâ€™re buried very deep in the Library hierarchy. The â€œGetting Started with Windows Formsâ€ page is exactly what I needed as a newbie who needed to write a WinForms application in a month. Getting there is simple:
- Go to msdn.microsoft.com
- Click â€œLibraryâ€
- Click â€œ.NET Developmentâ€
- Click â€œ.NET 4â€
- Click â€œWindows Forms Portalâ€
- Click â€œGetting Started With Windows Formsâ€ (It doesnâ€™t show up in the sidebar like on all of the other pages!)
If I go through the chain that leads me through WindowsClient.net itâ€™s just as bad. I get 3 links to help with Windows Forms: blogs (which are 99% about WPF), a guided tour of WPF (WTF?), and a videos page. The videos page leads with â€œHow Do I: SqlAzureLOB Line of Businessâ€ (mandatory â€œATM machineâ€ or perhaps â€œWPF Windows Presentation Foundation GUI Graphical User Interfaceâ€ joke). Is that what Microsoftâ€™s research has indicated helps new programmers understand how to write applications?
I understand that WinForms is supposedly on its way out. I havenâ€™t noticed a decrease in students using it on the forums I frequent. I gave the WPF links a whirl, and theyâ€™re in better shape, but the video page is useless to a newbie. The first video on the page is â€œCreate WPF Master-Detail UI Using Data Sources Window Object DataSourceâ€. Iâ€™ve used WPF for nearly 2 years now and I donâ€™t know what â€œData Sources Window Object DataSourceâ€ is supposed to mean. Why isnâ€™t MS leading with â€œCreating a Standard WPF Applicationâ€ and listing the videos in increasing difficulty order? Why isnâ€™t there a â€œdifficultyâ€ or â€œintended audienceâ€ field that can sort the videos?
What I would change
The MSDN Library is most useful for a professional developer, but I feel like newbies should be made aware of the documentation. The â€œHow Do Iâ€ videos look nice, but they run the gamut from beginner to advanced with no indication as to their level. They should have a level and they should be sortable by this level. Users should be allowed to rate them and comment on them as well so newbies can be warned when someone labels â€œWrite a SharePoint application using AzureCloudSqlSharePointLOBPOSWCF and ham" as a beginner video.
MSDN should really promote their forums as well. I learned at least 80% of my WinForms knowledge from forums. As part of promoting the forums, MSDN should also clean up the forums; my suggestions for that could easily fill another post. The summary: you donâ€™t need to dazzle newbies with over 100 different forums. Make a â€œBasic .NET developmentâ€ page with five forums: WinForms, WPF, Silverlight, Native, and ASP .NET. Donâ€™t make newbies have to decide if their question should go in â€œC# generalâ€, â€œVS 2010 Developmentâ€, â€œWPF Developmentâ€ or â€œ.NET 4 WPF Beta Discussionâ€!
I think Microsoft should find a way to promote their blogs better as well. Itâ€™d be nice if they kept an archive of the good blog articles rather than using an RSS feed of the most recent ones. Pete Brownâ€™s blog is chock full of great Silverlight tips ranging from beginner to advanced, but you wouldnâ€™t know this from browsing MSDN.
A redesign wonâ€™t solve these problems. Video in and of itself is not a solution to the problems that need to be addressed. If Microsoft wants to help newbies, they need to buckle down and put some effort into designing an intuitive and accessible experience. Right now the only reason I can find anything at all is my 8 years of experience with wrestling MSDN.