A Map for the Microsoft Application Development Platform
Artikkeli
When you can speak the language, it’s easier to find your way around. One of the key things I’ve learned at Microsoft is that I can find my way around the platform fast, *if* I know the language. The language usually consists of scenarios or topics, features, and APIs.
The toughest part is usually mapping out the features. The beauty is that if you know the features, they tend to be a token or a handle that connects you to various documentation sets, presentations, samples, and a plethora of other resources. The other value of knowing the feature names is they tend to be unique names, so they are more precise and they help cut to the chase when searching through vast seas of information.
Here is an initial map of the Microsoft Application Platform from a topics, features, and API perspective. It’s effectively a language for the Microsoft application platform. Note that while many of the feature or API lists may be out of data, you can use the idea to build your own maps. Once the frame is in place, it’s a lot easier to update it with current information. In fact, this would actually be useful as a Wiki map. It would serve as a master map of the application platform, that would make it easy to connect to relevant resources, using a common frame and vocabulary.
The map starts off by focusing on the most common application types, and then walking each core technology building block, then drilling into topics, features, and APIs.
Enjoy the map … and please extend.
Application Types
Category
Items
App Types
Cloud
Data
Desktop
Games
Phone
Services
Web
Application Technology Patterns
Category
Items
Cloud
ASP.NET Web Forms
ASP.NET MVC
Windows Communication Foundation (WCF)
Data
ADO.NET
ADO.NET Entity Framework
WCF Data Services
LINQ
Desktop
WPF
Win32
MFC
Silverlight
Games
Win32 with C++
XNA
Silverlight
WPF
Phone
Silverlight
XNA Framework
Services
WCF
WCF Data Services
WCF RIA Services
ASP.NET
Web
ASP.NET Web Forms
ASP.NET MVC
Silverlight
ADO.NET Topics and Features Map
Category
Items
Topics
ASP.NET
Data Binding
Data Models
Deployment
Disconnected Data
Encryption
Entity Sets
General
Localization
N-Tier
Remote Data
Security
Silverlight
SQL Azure
SQL Server
Streaming
XML
Features
ADO.NET DataSet
ADO.NET DataTable
ADO.NET DataReader
ADO.NET Entity Framework
Customizable Code Generator
Database First, Code First, and Model First Support
Inheritance Support
LINQ to DataSet
LINQ to SQL
LINQ to Enttities
O/RM Mapping
OData
POCO Support
State Management
WCF Data Services
APIs
System.data
Data.Common
Data.Common.CommandTrees
Data.Design
Data.Enttity.Design
Data.etntity.Design.AspNet
Data.Enttity.Design.PluralizationServices
Data.EntityClient
Data.Linq
Data.Linq.Mapping
Data.Linq.SqlClient
Data.Linq.SqlClient.Implementation
Data.Mapping
Data.Metadata.Edm
Data.Objects
Data.Objects.DataClasses
Data.Objects.SqlClient
Data.Odbc
Data.OleDb
Data.OracleClient
Data.Services
Data.Services.BuildProvider
Data.Services.Client
Data.Services.Common
Data.Services.Common
Data.Services.Design
Data.Services.Internal
Data.Services.Providers
Data.Sql
Data.SqlClient
Data.SqlTypes
ASP.NET Topics and Features Map
Category
Items
Topics
Auditing and Logging
Authentication
Caching
CSS 2
Data Access
Deployment
Exception Management
Health and Instrumentation
HTML 5
JavaScript/JSON
Performance
Security
Session and State Management
Validation
Visual Studio and ASP Development
Features
Ajax / Jquery
ASP.NET MVC
Caching
Controls
Data Controls
Navigation
Request Processing
Themes and Skins
View more …
Accessibility conforming HTML output
ASP.NET AJAX
ASP.NET Dynamic Data
ASP.NET Model View Controller (MVC)
ASP.NET Web Parts (Real time user-modifiable content)
Anonymous
November 29, 2011
I would definitely add F# and F#-related technologies like Type Providers...
Anonymous
November 29, 2011
+1 on F#, thats definitely an omission!
Anonymous
November 29, 2011
@ Petr -- If I were to add a language branch, I would include Visual Basic, Visual C#, Visual C++, Visual F#, and JScript to be inclusive.
@ Dave -- To add the leaf, I would add the branch. In terms of omission, I would also call out a dev tools branch as well.
It's great to see the passion for F#.
Anonymous
January 04, 2012
This is fantastic and reminds me of another of your posts, blogs.msdn.com/.../mapping-out-the-microsoft-application-platform-at-a-glance.aspx.
My big question is can you find a home on MSDN for these type of lists and ensure they are kept up-to-date as the Microsoft platform progresses? If you could do this then this would be simply invaluable.
Much appreciated!
Anonymous
January 04, 2012
@ Carl -- Thank you.
I wish I could. I always thought MSDN would be the right home for this kind of information vs. my blog. I've tried many times and many ways with MSDN, but it always ends the same way. What might work is if I could create a healthy spot on the TechNet Wiki. That might be a workable way forward.
Anonymous
January 08, 2012
Blogs are great, your blog has been a constant source of information and knowledge but IMHO blogs are being used to replace traditional documentation. MSDN is rarely where I find the information I am looking for these days, it is much more likely that it will be in a blog that belongs to the developer etc.
The issue with blogs is that they are inconsistent, unstructured and hard to find. When you do find a quality blog it can be a gold-mine of information however this is often through lucky searches on Google than via the more traditional approach of navigating your way through structured documentation.
It would be great if all Microsoft people posted to the same blog system but often they are on completely unrelated domains and not indexed or linked from anywhere trustworthy.