Mapping Out the Microsoft Application Platform at a Glance
“People only see what they are prepared to see.” - Ralph Waldo Emerson
At the beginning of the year, I like to take a quick survey of the Microsoft application platform. It helps me figure out where to put my bets and where to explore. It’s a “see the forest, from the trees” exercise.
And oh, what a forest it is. The beauty is it covers a wide spectrum and supports so many scenarios. The challenge is finding your way around. To find my way around, I map out the platform and I think in terms of application types:
- Web applications
- Mobile applications
- Rich Internet Applications (RIA)
- Rich Clients
- Web Services
By thinking about deployment targets such as cloud or desktop or browser or phone, etc. it makes it very easy to get in the ballpark in terms of context and technologies very quickly. From there, I can worry about things like presentation or data access stacks or language platforms (native, .NET, or scripting.) It’s also a quick way to explore relevant quality attributes (security, performance, reliability) or evaluate architectural styles. In other words, it’s a way to hack through information overload and cut to the chase.
Microsoft Application Platform at a Glance
This is my draft map of the platform. It’s a strawman that I use to walk the platform, find clusters of technologies, figure out what’s changed, and evaluate the latest story. It’s easier for me to have conversations about the platform with customers or product teams when I start with a shared frame. The hard part is putting the initial map together. The easy part is improving it through feedback. If something is missing, it’s easy to add. If something is wrong, it’s easy to fix.
As simple as the map looks, it compacts a lot of information. I stuck the code names in where I could find them. Enjoy …
Category | Items |
---|---|
Application Infrastructure |
|
ALM (Application Life-Cycle Management) | |
App Frameworks / Extensions | |
Cloud |
|
Collaboration / Integration / Workflow | |
Data Access | |
Database Server | |
Development Tools | |
Games | |
Identity |
|
Languages |
|
Mobile | |
Modeling |
|
OBA (Office Business Applications) | |
Parallel | |
Rich Client | |
Rich Internet Applications (RIA) | |
Services |
|
Web | |
Web Server | |
Windows Server |
|
Where To Find Out More
I’m a fan of teaching people to fish, as well as giving some starter fish. Aside from people, events, and social media, the three best ways I know to figure out what’s happening on the platform are Wikipedia, Channel9, and the MSDN Dev Centers. I started you out with some pages below …
Wikipedia
- Index of Microsoft Code Names - https://en.wikipedia.org/wiki/List_of_Microsoft_codenames
- ADO.NET - https://en.wikipedia.org/wiki/ADO.NET
- ADO.NET Entity Framework - https://en.wikipedia.org/wiki/ADO.NET_Entity_Framework
- ASP.NET - https://en.wikipedia.org/wiki/ASP.NET
- Azure Services Platform - https://en.wikipedia.org/wiki/Azure_Services_Platform
- Parallel Extensions - https://en.wikipedia.org/wiki/Parallel_Extensions
- SQL Server - https://en.wikipedia.org/wiki/Microsoft_SQL_Server
- Windows Communication Foundation (WCF) - https://en.wikipedia.org/wiki/Windows_Communication_Foundation
Channel9 Training Centers
- Azure Platform Training Course - https://channel9.msdn.com/learn/courses/Azure/
- Identity Developer Training Course- https://channel9.msdn.com/learn/courses/IdentityTrainingCourse/
- Office 2010 Workshop - https://channel9.msdn.com/learn/courses/Office2010/
- SharePoint 2010 Developer Training Course - https://channel9.msdn.com/learn/courses/SharePoint2010Developer/
- Silverlight 4 Training Course - https://channel9.msdn.com/learn/courses/Silverlight4/
- Visual Studio 2010 and .NET 4.0 Training Course - https://channel9.msdn.com/learn/courses/VS2010/
- Windows 7 Training - https://channel9.msdn.com/learn/courses/Windows7/
- Windows Server 2008 Training - https://channel9.msdn.com/learn/courses/WindowsServer2008R2/
- Windows Server HPC Learning Course - https://channel9.msdn.com/learn/courses/HPCLearningCourse/
MSDN Dev Centers
- Architecture Dev Center - https://msdn.microsoft.com/en-us/architecture/default.aspx
- patterns & practices Dev Center - https://msdn.microsoft.com/en-us/practices/default.aspx
- .NET Framework - https://msdn.microsoft.com/en-us/netframework/default.aspx
- App Fabric Dev Center - https://msdn.microsoft.com/en-us/azure/netservices.aspx
- ASP.NET - https://msdn.microsoft.com/en-us/aa336522.aspx
- Azure Dev Center - https://msdn.microsoft.com/en-us/azure/default.aspx
- BizTalk Dev Center - https://msdn.microsoft.com/en-us/biztalk/default.aspx
- Data Dev Center - https://msdn.microsoft.com/en-us/data/default.aspx
- F# Dev Center - https://msdn.microsoft.com/en-us/fsharp/default.aspx
- Internet Explorer Dev Center - https://msdn.microsoft.com/en-us/ie/default.aspx
- Mobile Dev Center - https://msdn.microsoft.com/en-us/windowsmobile/default.aspx
- Office Dev Center - https://msdn.microsoft.com/en-us/office/default.aspx
- Parallel Computing Dev Center - https://msdn.microsoft.com/en-us/concurrency/default.aspx
- Security Dev Center - https://msdn.microsoft.com/en-us/security/default.aspx
- SharePoint Dev Center - https://msdn.microsoft.com/en-us/sharepoint/default.aspx
- Silverlight Dev Center - https://silverlight.net/
- SQL Server - https://msdn.microsoft.com/en-us/sqlserver/default.aspx
- Visual Studio Team System Dev Center - https://msdn.microsoft.com/en-us/teamsystem/default.aspx
- Windows Dev Center - https://msdn.microsoft.com/en-us/windows/default.aspx
- Windows Communication Foundation (WCF) Dev Center - https://msdn.microsoft.com/en-us/netframework/aa663324.aspx
- Windows Presentation Foundation (WPF) - https://windowsclient.net/
- XNA Developer Center - https://msdn.microsoft.com/en-us/aa937791.aspx
Comments
Anonymous
February 07, 2010
Fabulous! Great post as usual- just what i was looking for the past week! Do you also have a second column for each of these that show primary competitors for each segment? If that is internal only, pls send me a link at anutthar at microsoft.comAnonymous
February 07, 2010
Excellent !!! I am going to print this table and stick it on my desk to keep an eye on.Anonymous
February 07, 2010
Nice post. Some more features that could be included are MSBuild, PowerShell etc. It would also be nice to provide information on some widely used community/open source frameworks as alternative to some MS technologies available in various areas like Build/Deployment/Configuration frameworks (like NAnt), ORM (like NHibernate), Unit testing frameworks(like NUnit), Mocking frameworks etc.Anonymous
February 07, 2010
It would be cool if you just put the links in the table where you're listing the products/technologies.Anonymous
February 08, 2010
Nice post. It would be nice if you had a link to samples; like samples from codeplex.Anonymous
February 08, 2010
Whoa ... can you spell "complexity"???Anonymous
February 08, 2010
The comment has been removedAnonymous
February 08, 2010
@ anutthara Thank you. Done. @ Jomit Thank you. @ Rajesh Thank you. I'll consider for an upcoming post. @ Matt Done. @ Zoldello Thank you. Rounding up samples would be a challenge. However, there is quite an interesting catalog at the All-In-One Code Framework http://cfx.codeplex.com/ ... it's more than 290 code examples covering 24 MS technologies. @ Mike How and what would you simplify?Anonymous
February 08, 2010
This is great. A couple things I'd quibble about. You mean to say Linq2Sql. Data Access is just one particular provider plugin into LINQ - LINQ should go in the infrastructure category (if at all, since it's now a part of the .NET framework). Also, its a little weird seeing F# included on the list but not IronPython or IronRuby since those along with C# and VB.NET are the "big 5" microsoft-supported languages. Other than that. Great list!Anonymous
February 09, 2010
@ George Thank you. Great points. Done. I added a language bucket.Anonymous
February 09, 2010
I think you focused mainly on the recent technologies, especially those used in the .NET world - even if I use too only .NET at work, I can't forget that there is still a LOT of people currently using other technologies from the MS stack: MFC ATL ADO COM ActiveX ASP .NET Remoting FoxPro MS Access and many others.. Even is Microsoft wants to see some of these 'dead', it's very hard to get rid of the huge code base and the skills people build with effort during many years on all those technologies..Anonymous
February 09, 2010
@ Tudor Yes, that's right -- I focused on mapping out the newer technology stack and yes, many people still use earlier technologies and there are many large code bases on the earlier stacks.