Partager via


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

Channel9 Training Centers

MSDN Dev Centers

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.com

  • Anonymous
    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 removed

  • Anonymous
    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.