Microsoft Application Platform at a Glance

“To stay on the map you’ve got to keep showing up.” — Peter Gallagher

Periodically I create a map of the Microsoft application platform. Making the map helps me stay on top of the platform, identify potential changes to architecture and design strategies, and anticipate trends.  It also helps me figure out where to invest my time and energy.  It also helps me see potential customer confusion.

Here is my latest map of the Microsoft application platform by category:

Application Infrastructure

  • .NET Framework

  • Base Class Libraries (BCL)

  • Common Language Runtime (CLR)

  • Language Integrated Query (LINQ)

ALM (Application Life-Cycle Management)

  • Visual Studio Team System
  • Visual Studio Team Foundation Server

App Frameworks / Extensions

  • Enterprise Library
  • Managed Extensibility Framework (MEF)

Cloud

  • Windows Azure
  • Windows Azure DataMarket (“Dallas”)
  • Windows Azure Tools for Microsoft Visual Studio
  • App Fabric
  • SQL Azure

Collaboration / Integration / Workflow

  • Windows Workflow Foundation (WF)
  • Microsoft Office SharePoint Server (MOSS)
  • Microsoft BizTalk Server

Data Access

  • ADO.NET Core
  • ADO.NET Entity Framework
  • ADO.NET Sync Framework
  • LINQ to SQL
  • OData
  • WCF Data Services
  • WCF RIA Services

Database Server / Storage

  • SQL Azure
  • SQL Server
  • SQL Server Compact

Desktop

  • WPF (Windows Presentation Foundation)
  • Silverlight (Out-of-Browser)
  • Windows Forms

Developer Tools

  • Microsoft Visual Studio
  • Microsoft Expression Studio
  • Microsoft Visual Studio Express
  • Microsoft Visual Studio LightSwitch
  • Microsoft Visual Studio Team Foundation Server

Games

  • XNA
  • D3D
  • Win32

Identity

  • WIF (Windows Identity Foundation) (Geneva)
  • Active Directory Federation Services (Geneva Server)
  • Card Space

Languages

  • Common Language Runtime (CLR)
  • Dynamic Language Runtime
  • Visual Basic
  • Visual C#
  • Visual C++
  • F#
  • Iron Python
  • IronRuby

LINQ

  • LINQ to Entities
  • LINQ to SQL
  • LINQ to XML
  • LINQ to DataSet
  • LINQ to Objects

Manageability

  • Systems Center Operations Manager (SCOM)

Office

  • Office 2010
  • Visual Studio Office Development Projects
  • Office 2010 PIA (Primary Interop Assemblies)

Parallel

  • F#
  • Parallel Extensions for .NET
  • PLINQ
  • Task Library

Phone

  • Silverlight for Windows Phone
  • XNA Framework
  • Windows Phone Developer Tools

Services

  • Windows Communication Foundation (WCF)
  • WCF Data Services (ADO.NET Data Services, Astoria)
  • WCF Web APIs
  • WCF RIA Services
  • ASP.NET Web Services (ASMX)

SharePoint

  • SharePoint Server

Web

  • ASP.NET Web Forms
  • ASP.NET Web Pages (WebMatrix)
  • ASP.NET MVC
  • Silverlight
  • CSS
  • HTML / HTML 5.0
  • Internet Explorer
  • JavaScript (Jscript) / JavaScript (as of IE 9)

Web Server

  • Internet Information Services (IIS)
  • IIS Express
  • Web Farm Framework

Windows Server

  • Windows Server
  • Windows Server App Fabric (Dublin + Velocity)

This post is taken from http://blogs.msdn.com/b/jmeier/

Beauty of jQuery

Since last year when we discussed jQuery in one of our User Group Meeting, I have been amazed by the power of jQuery. A month ago, I also tweet a picture “Say No to JavaScript without jQuery” and that is because with CSS and jQuery we can exploit the power of JavaScript/CSS, by writing just few lines of code, plus it allow you to make your HTML markup clean and independent of script/event logic. If you take a look at the twitpic below, you will observe that markup does not register any event rather the binding on click event has been taken care inside script tag using jQuery selectors.

twitpic

And that is not the all. To further decouple it, we can use CSS class instead of button Id “btnTest” and then move the JavaScript in .js file. I hope this make sense to you! (if not than don’t worry, just continue reading…)

But today what I am going to share is a real world scenario of how jQuery helped me in observing change in any input element of page.

Usually, we have requirement on web form that when users presses a cancel button after entering any information on page then we have to prompt a cancel confirmation dialog like:

Cancel Dialog

And I really don’t know what is the best way to do this but what I have observed is that developers have done this by registering onchange JavaScript event on every single input element that needs to be tracked down. Something like snippet below:

Observing Change without jQuery

along with some script:

JavaScript without jQuery Library

So what it does is that whenever users enters any text in text input element or change the value of dropdown then it will fire the method SetChangeVariable() which will set value of isChanged to true, which means we need to show cancel confirmation dialog.

Now imagine if I have a page with more than 20-30 fields then I have to go and manually wire the onchange method. Let’s see what jQuery and CSS together offers to us.

Suppose that we have a CSS class element

CSS Element

Then we will assign each element class “TrackChange” that needs to be taken care of as in code snippet below:

Observing Change with CSS

along with some JavaScript that uses jQuery library:

JavaScript with jQuery

What above code does is that when document is ready, that’s what $(document).ready does, its going to select all elements with class assigned “TrackChanged” through one of its selector $(“.TrackChange”) and wired up event of change and set global variable isChanged to true. That’s it!

By using CSS class you can now move the JavaScript in .js file and make your HTML markup clean…

If you don’t like assigning CSS class, another great thing you can do with jQuery is to wire change event on all input elements using input selector:

jQuery Input Selectors

and no need to assign any CSS class! Isn’t that amazing?

That is all for today. Happy Coding!

Emerging .NET Devs : Oct UG Meeting Summary

On 6th October 2010, We had another great User Group meeting at Microsoft Innovation Center but this time it was a bit unique and different topic i.e. Windows Phone 7. Yes! we invited Munir Usman (MVP) to share his experience of mobile development in particular Windows Phone 7.
123
The speaker discussed about the revolution in mobile application development and the ecosystem. The speaker demonstrated kick start applications to begin on Windows Phone 7 development.
Thank you all for attending the event. We know many of you couldn’t attend due to limited number of seats but stay tuned because there are more shows coming up!!
In the end, we would like to thank our sponsors INETAWrox and FAST.NET for making this event successful.
About Emerging .NET Devs
inetaLogoEmerging .NET Devs is a registered user group under International .NET Association (INETA).  The group is committed to it’s vision of disseminating information through lectures in events, sessions and to enable the developer community to collaborate with each other.
Are you a developer? Are you passionate about technology? Do you want to grasp the Ins-and-Outs of the .Net Platform? Then this is right place for you. Join us on Facebook and/or Yahoo Group to participate further!
Step in to gear up with .Net Platform!