Tuesday, 5 December 2017

Windows .NET Hosting

Depending on the Budget and the requirement, most of the individuals spent lot of time in reading reviews and comparing the different Hosting provider companies. If somebody is going for .NET Hosting, there is nothing called cheap in him mind, but is seen, that due to competition in the market, most of the Hosting providing companies, to play a gimmick with the word CHEAP.

Words like Trusted, Affordable, Standard, Time Saving, Experienced can be often seen the websites of Hosting providers.

For a Hosting Customer, there are lot of marketing jargons thrown to attract him:

Host with Speed and Reliability

Hosting is offered with Windows Server Edition MSSQL 2012 and 2008R2, technologies supported include ASP .NET Framework, MVC, Silverlight, MS URL rewrite, MS Chart Controls, Web Matrix.
Windows Hosting Configurations include:  Fully Trusted Dedicated Application Pool, No Limitation on CPU and Memory utilization, website recycling time.
But, if every company is offering the same, which one to select, if becomes a bit a headache.

New in .NET Hosting

Locking and Concurrency Feature: On Internet, multiple requests arises at a time and with concurrency many things are allowed to happen at once and if allowed to change the same piece of data at once, then big havoc could arise, in the absence of Locking.

infrastructure-as-a-service (IaaS): It offers Infrastructure and Microsoft Technologies already in the Data Cetner, which includes Windows Server 2012, System Center 2012 and .NET languages used with Visual Studio. It is presently growing with 1,000 customers a day and supports 200,000 active customers.

Yes sure we can very well define .NEt it is a new computing platform developed by Microsoft that simplifies application development in the highly distributed environment of the internet. .NET is much more than just a platform for developing for the internet, but it is intended for this purpose predominantly, because here, others methods have failed in the past.

Building Blocks of .NET Framework, which forms the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. Assemblies are the collection of types and resources which are built to work together to form a logical unit of Functionality (dll or .exe).  They provide the information needed to Common Language Run-time (CLR) to make it aware of type of implementation.

Compared to Executable files (.exe's), Assemblies are secure, reliable and easy to manage. An Assembly contains set of modules and classes complied in Microsoft Intermediate Language (MSIL) and metadata (describes assembly and functionality of assembly classes) code which is complied and run by CLR.

Thus, the four components of an assembly are:
  • Assembly manifest
  • MSIL source code
  • Type metadata
  • Resources
What are the different types of assemblies?

The types of assemblies are
  1. Private
  2. Public/Shared
  3. Satellite
Each Assembly has one Entry point -  DllMain, WinMain, or Main and its forms the security boundary. Permissions are requested or granted to the Assembly unit.

It forms a security boundary. An assembly is the unit at which permissions are requested and granted.
It forms a type boundary. Every type's identity includes the name of the assembly in which it resides. A type called MyType loaded in the scope of one assembly is not the same as a type called MyType loaded in the scope of another assembly.

It forms a reference scope boundary. The assembly's manifest contains assembly metadata that is used for resolving types and satisfying resource requests. It specifies the types and resources that are exposed outside the assembly. The manifest also enumerates other assemblies on which it depends.

It forms a version boundary. The assembly is the smallest versionable unit in the common language runtime; all types and resources in the same assembly are versioned as a unit. The assembly's manifest describes the version dependencies you specify for any dependent assemblies.

It forms a deployment unit. When an application starts, only the assemblies that the application initially calls must be present. Other assemblies, such as localization resources or assemblies containing utility classes, can be retrieved on demand. This allows applications to be kept simple and thin when first downloaded.
It is the unit at which side-by-side execution is supported.

Assemblies can be static or dynamic. Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). Static assemblies are stored on disk in PE files. 

A static assembly can consist of four elements:

  1. The assembly manifest, which contains assembly metadata.
  2. Type metadata.
  3. Microsoft intermediate language (MSIL) code that implements the types.
  4. A set of resources
You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. You can save dynamic assemblies to disk after they have executed.

There are several ways to create assemblies. You can use development tools, such as Visual Studio .NET, that you have used in the past to create .dll or .exe files. You can use tools provided in the .NET Framework SDK to create assemblies with modules created in other development environments. You can also use common language runtime APIs, such as Reflection.Emit, to create dynamic assemblies.

Well many have confusion in this it's both and actually a lot more. Microsoft .NET includes a new way of delivering software and services to businesses and consumers. A part of Microsoft.NET is the .NET Frameworks. The .NET frameworks SDK consists of two parts: the .NET common language runtime and the .NET class library. In addition, the SDK also includes command-line compilers for C#, C++, JScript, and VB. You use these compilers to build applications and components. These components require the runtime to execute so this is a development platform.

Garbage collection is process of transitively tracing through all pointers to actively used objects in order to locate all objects that can be referenced, and then arranging to reuse any heap memory that was not found during this trace. The common language runtime garbage collector also compacts the memory that is in use to reduce the working space needed for the heap.