J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

Mapping Out the Microsoft Application Platform at a Glance

Mapping Out the Microsoft Application Platform at a Glance

Rate This
  • Comments 12

“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

  • 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

  • Excellent !!! I am going to print this table and stick it on my desk to keep an eye on.

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

  • It would be cool if you just put the links in the table where you're listing the products/technologies.

  • Nice post. It would be nice if you had a link to samples; like samples from codeplex.

  • Whoa ... can you spell "complexity"???

  • @Mike - I'm with you. Wow. Someone used the term "programmer pornography" on a mailing list recently - how fitting. Let's make some more frameworks! Woo!

  • @ 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?

  • 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!

  • @ George

    Thank you.  

    Great points.  Done.  I added a language bucket.

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

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

Page 1 of 1 (12 items)