Friday, January 9, 2015

TFS Build Management!

Understanding workflow foundation!

Like any technology, applying WF requires understanding what it is, why it’s useful, and when it makes sense to use it. The goal of this overview is to make these things clear. You won’t learn how to write WF applications, but you will get a look at what WF offers, why it is the way it is, and how it can improve a developer’s life. In other words, you’ll begin to understand the workflow way
You can view the PDF directly.

Framework/Architectural options for Web Application for Asp.NET developers

Asp.Net Form based

  • ASP.NET pure server side application + JQUERY for minor DOM manipulation
  • ASP.NET + Ajax.NET + JQUERY for minor DOM manipulation
  • ASP.NET  + ASP.NET Ajax toolkit library + JQUERY for minor DOM manipulation

Asp.Net MVC based

  • ASP.NET MVC + JQUERY for minor DOM manipulation
  • ASP.NET MVC  along with ASP.NET WebAPI / WCF  + JQUERY for API Calls and DOM manipulation

Client UI framework/library based

  • JQUERY for API Calls and DOM manipulation  + ASP.NET WebAPI/ WCF 
  • Angular JS + ASP.NET WebAPI/ WCF

Note : 

  • There are tons of JQUERY plugin available over the web when we use it for DOM manipulations.
  • While writing client UI Framework based applications various JQUERY based controls are generally used.

Friday, January 2, 2015

Docker the Container - Build, Ship and Run Any App, Anywhere!


Containers pack and deploy software application are getting immense popularity and claims to be next big thing in 2015. Many bigs guns are adoping it over heavy virtual machine.
Today, i came across concise good article on TechGig on Docker.

What is Docker - A brief introduction

From official Docker site - Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

Other references

Understanding .NET Framework Family and Profile

.Net has different flavour of runtime running in browser (Silverlight), Window Phones, Window Store, Window desktop and Xbox in other words different .NET Framework family.

Before Microsoft introduced VS2010, specifying project target framework was only limited to different framework version. With VS2010 onwards .NET project not only target different version of framework but can also refers to different family and subset/profile.

So, VS2010 onwards Target framework is indicated by new moniker which is .Net framework Identifier, .Net framework version and .NET framework profile.

Target Framework Moniker

Target Framework Moniker = Framework Identifier + Version + Profile/Subset.
Where, Framework Identifier refers to different flavour of .Net like Silverlight, Windows Store etc. Version - .Net Framework version Profile – Subset of framework dictating certain area of application like .Net Framework 4.0 Client Profile.
Different tokens of Target Framework Moniker can be seen by viewing VS project file (.csproj/.vbproj) in notepad as shown below
  • Below project refers to Silverlight family of .Net Framework and version v5.0.
Project File
  • Below project refers to client profile of .NET framework v4.0 , no identifier refers to desktop framework.
Project File

Getting Target Framework Moniker Value

Type the below command in Package Manager Console to see the target moniker value $p = Get-Project “ProjectName” $p.Properties.Item(“TargetFrameworkMoniker”).Value

Target Framework and Referenced Assembly

Target framework are design time concept, mostly used by VS and build machine to produce output which is guaranteed to run on the corresponding framework on any machine.
It also dictates assembly, types or methods will be available to developer under that framework henceforth prevent developer from using any type/method which is not runtime prerequisite for their project.
In VS2008 developers was prone to commit mistake by using method which may belongs other different version e.g. project with target framework v2.0 may use method written for v3.5 but with VS2010 .NET introduce concept called Referenced Assemblies restricting developer to use only assembly/types/methods corresponding to selected targeted framework.
References Assemblies
Reference Assemblies contain the type information and metadata for a target framework and do not contain any code. Generally, target framework is full framework like .NET Framework v4.0 but for some deployment scenario framework is not relevant like client application does not need asp.net assemblies/types to run. Subset of full framework are call profile, profile never adds anything to framework rather it is just subset of full framework.

Other references