J.D. Meier's Blog

Software Engineering, Project Management, and Effectiveness

A Map for the Microsoft Application Development Platform

A Map for the Microsoft Application Development Platform

Rate This
  • Comments 6

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)
  • Caching / Extensible Output Caching
  • Code Access Security
  • Control Templates, Themes, and Skins
  • Browser Capability Providers
  • Browser Definitions Customization (ASP.NET Browser Registration Tool)
  • Customizable HTTP Handlers and HTTP Modules
  • Data Access Controls
  • Data Validation Controls
  • Data Visualization Charting
  • Deployment and Packaging Tools
  • Designer and Controls Extensibility
  • Extensible Configuration Scheme and Configuration API
  • Extensible Hosting / Web Application Life-Cycle Management
  • Forms Authentication Provider
  • Framework Targeting
  • Health / Performance Monitoring
  • Language-Integrated Query (LINQ) Support
  • Master Pages
  • Membership and Roles User Management Security
  • Merge and Manage Assemblies (ASP.NET Merge Tool)
  • Microsoft Management Console (MMC)
  • Mobile Device Support
  • Page and Controls Framework
  • Precompiled Web Applications (ASP.NET Compilation Tool)
  • Preloading for Web Applications
  • Process Identity and Impersonation
  • Protected Configuration (Configuration Encryption)
  • Regular Expression API
    Routing
  • Session State API
    Routing
  • Session State API
  • Session State Compression
  • Standard Toolbox Controls
  • State Management (Distributed State Facilities)
  • XML Web Services Support API
APIs
  • Application Services
  • Runtime.Caching
  • ClientServices
  • Configuration
  • DynamicData
  • Handlers
  • Management
  • Profile
  • Query
  • RegularExpressions
  • Routing
  • Script
  • Security
  • Services
  • SessionState
  • UI
  • Util
  • Web

Silverlight Topics and Features Map

Category Items
Topics
  • Controls
  • Data Access
  • Deployment
  • Graphics
  • Layout, Input and Printing Security
  • Networking and Communication
  • Performance
  • Types, Properties, Methods, and Events
  • XAML
Features
  • Animations
  • Data Binding
  • Data Validation
  • Deep Zoom
  • Events and Delegates
  • Graphics and 3-D
  • HTML Bridge
  • Layout
  • Styles and Templates
  • Text and Rich Text
  • User Controls
  • Video and Audio
  • WCF RIA Services
  • XAML

View More …

  • .NET Framework Security Enforcement
  • 2D Vector Animation / Graphics
  • Accessibility
  • Accessibility - System Colors
  • AJAX Support
  • Binary XML
  • Bitmap API
  • Bitmap Caching
  • Canvas Layout Support
  • Component Caching (Share resources across apps)
  • Cross-Domain Network Access
  • Cross-Browser Support for Firefox, IE, Safari
  • Cross-Domain Network Access for Trusted Applications
  • Cross-Platform Support for Windows and Mac (and Linux through the Moonlight Project)
  • Custom Window Chrome
  • Data Binding
  • Deep Zoom Technology
  • Direct Access to TCP Sockets
  • DockPanel, WrapPanel, Viewbox
  • Duplex Communications ("push" from Server to Silverlight client)
  • Easy Access to Server-Side Data Via Web Services
  • Element to Element Binding
  • Enhanced Control Skinning
  • Enhanced Keyboard Input Support
  • File Save Dialog
  • File Upload Support (via WebClient API)
  • Full Keyboard in Out-Of-Browser for Trusted Applications
  • Full Suite of Controls (TextBox, RadioButton, Silder, Calendar, DatePicker, DataGrid, ListBox, TabControl, and Others)
  • GPU Hardward Acceleration (for Video and Bitmaps)
  • Group Policy Object Support
  • High Quality Resizing
  • HTML DOM Integration
  • HTTP Networking
  • IDispatch COM Interop
  • Interoperability with SOAP and REST Services,
  • Including Support for XML, JSON, RSS, and ATOM Data Formats
  • Isolated Storage
  • JavaScript Support
  • Layout Controls Including StackPanel and Grid
  • LINQ (including LINQ to XML, LINQ to JSON, and LINQ to Entities)
  • Local Connection
  • Local Fonts
  • Localization
  • Managed Control Framework
  • Managed Exception Handling
  • Managed Extensibility Framework (MEF)
  • Managed HTML Bridge
  • Media - 720 High Definition (HD) Video0
  • Media - Audio / Video Support (VC-1, WMV, WMA, MP3)
  • Media - Basic SSPL Support
  • Media - DRM Powered by PlayReady
  • Media - H.264 Video and AAC Audio Support
  • Media - Image Support (JPG, PNG)
  • Media - MediaStreamSource for Managed Code Media File Parser and Protocol Extensibility
  • Media - Windows Media Audio 10 Professional Support
  • Media Markers
  • Microphone
  • Multicase Networking
  • Multi-Threading
  • Network Status (Offline)
  • Notification Toast
  • Official Support for Google Chrome
  • Offline DRM
  • Out of Browser
  • Out of Browser Windows Settings (Position, Size, etc.)
  • Output Protection for Audio / Video
  • Perspective 3D
  • Pixel Shader Effects
  • Printing
  • Raw A/V Support
  • Remote Debugging (PC and Mac)
  • Rich Core Framework (e.g. Generics, collections)
  • Right to-Left / BiDi Text
  • Scene Caches (to Bitmap)
  • Support for IronPython, IronRuby, ManagedJScript, and other Dynamic Language Runtime (DLR) Based Languages
  • Support for Visual Basic.NET, C#, F#; Common Language (CLR) Based Languages
  • Templating Model
  • Text Animation
  • Theming at Runtime
  • Trusting Applications (Extended Sandbox)
  • Type Safety Verification
  • Visual State Manager
  • WCF Data Services
  • WCF RIA Services
  • Web Browser Control and Web Browser Brush
  • Webcam
  • Windows Media Server Support
  • WPF Compatibility
  • XAML Parser
  • XML Reader/Writer
APIs
  • ActualHeight
  • ActualWidth
  • AllowHtmlPopupWindow
  • AutoUpgrade
  • Background
  • EnableAutoZoom
  • EnableCacheVisualization
  • EnableFramerateCounter
  • EnableGPUAcceleration
  • EnableHtmlAccess
  • EnableNavigation
  • EnableRedrawRegions
  • FullScreen
  • GetSystemGlyphTypefaces
  • InitParams
  • IsLoaded
  • MaxFrameRate
  • MinRuntimeVersion
  • OnError
  • OnFullScreenChanged
  • OnLoad
  • OnResize
  • OnSourceDownloadComplete
  • OnSourceDownloadProgressChanged
  • OnZoom
  • Source
  • SplashScreenSource
  • Windowless

WCF Topics and Scenarios Map

Category Items
Topics
  • Auditing and Logging
  • Authentication
  • Authorization
  • Cryptography
  • Data Binding
  • Deployment
  • Exception Management
  • Globalization / Localization
  • Impersonation and Delegation
  • Input Validation
  • Message Security
  • Performance and Scalability
  • Proxy
  • Sensitive Data
  • Session Management
  • Silverlight
  • Transactions
  • Transport Security
  • Unit Testing
Features
  • AJAX Integration and JSON Support
    Clients
  • Data Transfer and Serialization
  • Endpoints – Addresses
  • Endpoints – Bindings
  • Endpoints – Contracts
  • Hosting
  • Interoperability and Integration
  • Metadata
  • Partial Trust
  • Peer-to-Peer Networking
  • Queues and Reliable Sessions
  • Security
  • Sessions, Instancing, and Concurrency
  • Transactions
  • Transports
  • WCF Data Services
  • WCF REST Programming Model
  • WCF RIA Services
  • WCF Syndication
APIs
  • System.ServiceModel
  • System.ServiceModel.Channels
  • System.ServiceModel.Description

Windows Azure Topics and Features Map

Category Items
Topics
  • Application Management
  • Architecture and Design
  • Authentication
  • Authorization
  • Caching
  • Data Access and Storage
  • Deployment
  • Logging and Instrumentation
  • Migration
  • Security
  • Session Management
  • Validation
Features
  • Access Control
  • Caching
  • CDN
  • Certificate Management
  • Diagnostics Managed Library
  • Endpoints for Roles
  • Persistent Local Resource Storage
  • Service Bus
  • Service Hosting Runtime Managed Library
  • Service Model UI
  • SQL Azure
  • Storage Client Managed Library
  • Variable-Size Virtual Machines (VMs)
  • Virtual Network
  • Windows Azure Storage
APIs
  • WindowsAzure
  • Access Control
  • Caching
  • Diagnostics
  • ServiceBus
  • ServiceRuntime
  • StorageClient

Windows Client Topics and Features Map

Category Items
Topics
  • COM
  • Deployment
  • Diagnostics
  • Files
  • Graphics
  • Multimedia
  • Networking
  • Performance
  • Security
  • Shell
  • System Services
  • User Interface Scenarios
Features
  • Animation
  • Graphics and 3D
  • Libraries
  • Location API
  • Ribbon
  • Sensor
  • Taskbar
  • Touch

View More …

  • Active Directory Rights Management Services
  • Biometric Service API
  • COM
  • Core Windows
  • Distributed File System Replication
  • Enhanced Storage
  • Enhanced Taskbar
  • Event Tracing for Windows (ETW)
  • Extended Linquistic Services
  • File Server Resource Manager
  • Hardware Counter Profiling
  • Hyper-V
  • Internet Explorer
  • Location API
  • Mobile Broadband
  • Native Wifi
  • Network Share Management
  • Packaging
  • Parental Controls
  • Peer Distribution
  • Performance Counters
  • Power Management
  • Scenic Animation
  • Sensor API
  • Transaction Management
  • Virtual Disk Service
  • Virtual Hard Disk
  • Volume Shadow Copy Service
  • Windows Connect Now
  • Windows Error Reporting
  • Windows Event Log
  • Windows Gadget Platform
  • Windows Installer
  • Windows Scenic Ribbon
  • Windows Touch
  • Windows Troubleshooting Platform
  • Windows Web Services
  • XPS Documents

Windows Phone Topics and Features Map

Category Items
Topics
  • Controls
  • Data Access
  • Deployment
  • Device Management
  • Location
  • Media and Media Player
  • Model View, ViewModel
  • Page, Frame, and Navigation
  • Security
  • Tombstoning
Features
  • Application Bar
  • Camera Extensibility
  • Gamer Services
  • Graphics and Animation
  • Location APIs
  • Pause / Resume
  • Push Notifications
  • Sensors
  • Touch and Gestures
  • XNA

View More …

  • App Bar
  • Background Image
  • Bing Map Control
  • Camera Extensibility
  • FM Tuner
  • Gamer Services
  • Geolocation
  • Interop Services
  • Isolated Storage
  • Launchers and Choosers
  • ListView
  • Lite Player
  • Live Tokens
  • LiveID
  • Multi-Touch
  • Media Hub
  • Network State
  • Page / Frame / Navigation
  • Pause / Resume
  • Push Notifications
  • Reactive LINQ
  • Ringtone Registry
  • Sensors
  • Vibrate Device
  • Web Browser Control
  • WM Legacy API Support
  • XNA Dynamic Audio and Microphone
  • XNA Media
APIs
  • WindowsMobile
  • Configuration
  • Forms
  • PocketOutlook
  • Status
  • Telephony

Development Languages

Category Items
Visual Studio Languages
  • Visual Basic
  • Visual C#
  • Visual C++
  • Visual F#
  • JScript

Additional Resources

  • I would definitely add F# and F#-related technologies like Type Providers...

  • +1 on F#, thats definitely an omission!

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

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

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

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

Page 1 of 1 (6 items)