Friday, September 26, 2008

.Net Framework Basics

Framework url:
http://en.wikipedia.org/wiki/.NET_Framework
http://www.andymcm.com/dotnetfaq.htm

Versions:

Framework 1.0 - Visualstudio ide 2002 - year 2002
Framework 1.1 - Visualstudio ide 2003 - 2003
Framework 2.0 - Visualstudio ide 2005 - 2005(This is called as Whidbey)
Framework 3.0 - Visualstudio ide 2005 - 2006
Framework 3.5beta1&2 - Visualstudio ide 2008 - 2007

1.1 - Oracle, odbc client providers, mobile appln, support for internet protocol version 6, API change, Security change - CAS, .Net Compact framework(version of .net framework to run on mobile devices includes specific libraries designed for mobile)

2.0 - API change, webcontrols, data controls, personalization feature like themes, skins, full 64-bit support for x64, IA64 hardware platforms, .Net micro framework(smart Personal objects technology this is a s/w , h/w that will personalize household electronics)

3.0 - WPF, WCF, WF, WCS

3.5 - C# 3.0, VB 9.0, LINQ(Lang integrated query)

What is .Net Framework? or .Net
It is a software development platform where we can develop robust and dynamic webapp, windowapp, webservices,mobile applications
two main parts - Framework class libraries, Runtime environment

What is Framework class libraries or base class library?
consists of series of classes( which encapsulates number of functions), interfaces, valuetypes that is used by all languages using the .net framework.
FCL - includes the Microsoft.* namespaces

What is Namespace?
It is a logical group of classes. each class is arranged in a namespace that best described its purpose. the name of the namespace is unique.

What is CLR?
CLR - Common language runtime.It is an layer b/w application and OS(so clr is a virtual machine componet of microsoft's .net).It is an .net runtime environment, which manages the execution of the code in runtime. the result of clr is managed native code.
It provides services like memory mgt, thread mgt, exception handling, garbage collection, security.It contains JIT. which converts the MSIL(byte code) to Native code.

.net architechture

code(C#) ------------------> MSIL(byte code)------------------->Native code
C# Compiler CLR(JIT)
Compile Time runtime


MSIL + CLR - CLI(Common language Infrastructure)
CLR - JIT, CTS, CLS, VES(Virtual Execution System)

CTS - .net framework support type defn which are independent to the languages. so cts provides type handling. it enable cross-lang integration, type safety, high performance code execution
CLS - set of rules that every language target to interoperate with other cls complaint languages.
VES - provides an envt for managed code.support for execute MSIL instruction set.

What is Assembly?
It is the building block of DotNet.
In the Microsoft .NET framework an assembly is a partially compiled code library for use in deployment, versioning and security.
An assembly is a logical grouping of functionality contained in a physical file,
Windows app - process assemblies (EXE)
Web app - library assemblies (DLL)

What are parts of assembly?

The Assembly Manifest: This contains the assembly metadata. This can be thought of as a table of contents that describes what's in the assembly and what it does, including the version number and culture information. It is generated when the assembly is compiled.
The MSIL (Microsoft Intermediate Language) code: The source code (pre-compilation) is written in a .NET language, for example, VB.NET, or C#. At compile time, this source code is translated into MSIL code, which is the language .NET uses to communicate.

What are the types of Assembly?


Types of Assemblies
1. Private Assembly
2. Public/ Shared Assembly
3. Satellite Assembly

Private Assembly
A private assembly is normally used by a single application, and is stored in the application's directory, or a sub-directory beneath.
Shared Assembly

A shared assembly is normally stored in the global assembly cache, which is a repository of assemblies maintained by the .NET runtime.
The runtime enforces versioning constraints only on shared assemblies, not on private assemblies
Satellite Assembly

Satellite assemblies are often used to deploy language-specific resources for an application.
These language-specific assemblies work in side-by-side execution because the application has a separate product ID for each language and installs satellite assemblies in a language-specific subdirectory for each language

What is Application Domain?
The primary purpose of the AppDomain is to isolate an application from other applications.
Win32 processes provide isolation by having distinct memory address spaces. This is effective, but it is expensive and doesn't scale well. The .NET runtime enforces AppDomain isolation by keeping control over the use of memory - all memory in the AppDomain is managed by the .NET runtime.

What is MarshalByRefObject?
MarshalByRefObject is the base class for objects that communicate across application domain boundaries by exchanging messages using a proxy.

What is serialization in .NET?
Serialization is the process of converting an object(object's state) into a stream of bytes. Deserialization is the opposite process of creating an object from a stream of bytes. Serialization/Deserialization is mostly used to transport objects (e.g. during remoting), or to persist objects (e.g. to a file or database).
During this process, the public and private fields of the object and the name of the class, including the assembly containing the class, are converted to a stream of bytes, which is then written to a data stream. When the object is subsequently deserialized, an exact clone of the original object is created.

What are the mechanisms used in Serialization?
There are two separate mechanisms provided by the .NET class library - XmlSerializer and SoapFormatter/BinaryFormatter. Microsoft uses XmlSerializer for Web Services, and uses SoapFormatter/BinaryFormatter for remoting. Both are available for use in your own code.

What is Reflection in .NET?
All .NET compilers produce metadata about the types defined in the modules they produce.
This metadata is packaged along with the module (modules in turn are packaged together in assemblies), and can be accessed by a mechanism called reflection.
The System.Reflection namespace contains classes that can be used to interrogate the types for a module/assembly..

Which namespace is the base class for .net Class library?
system.object

What is PE?
The file format defining the structure that all executable files (EXE) and Dynamic Link Libraries (DLL) must use to allow them to be loaded and executed by Windows. PE is derived from the Microsoft Common Object File Format (COFF). The EXE and DLL files created using the .NET Framework obey the PE/COFF formats and also add additional header and data sections to the files that are only used by the CLR.

What is Strong Name?
A name that consists of an assembly's identity—its simple text name, version number, and culture information (if provided)—strengthened by a public key and a digital signature generated over the assembly.

What is CAS?
The Common Language Runtime (CLR) allows code to perform only those operations that the code has permission to perform. So CAS is the CLR's security system that enforces security policies by preventing unauthorized access to protected resources and operations.


What are Web Services?
Web services are small, reusable applications that help computers from many different operating system platforms work together by exchanging messages.
Web services are based on industry protocols that include XML (Extensible Markup Language), SOAP (Simple Object Access Protocol), and WSDL (Web Services Description Language).
These protocols help computers work together across platforms and programming languages.

What are the Benefits of .NET?


.NET technologies use Web services to help enhance the computing experience with highly integrated communications and information. Because .NET includes the core technologies for building Web services, it benefits everyone: individual users, organizations, and developers.
.NET benefits organizations by helping them get the most out of their existing technology investments while creating new ways to implement powerful, cost-effective information technology that will meet future needs.
The .NET-based experience enhances the mobile computing experience so user's can get their information regardless of their location. For example, it can take place on a desktop computer, in the car on a Smartphone, or at the store on a Pocket PC.

What are Service Oriented Architectures (SOA)?

SOA describes an information technology architecture that enables distributed computing environments with many different types of computing platforms and applications. Web services are one of the technologies that help make SOAs possible.
As a concept, SOA has been around since the 1980s, but many early IT technologies failed to achieve the goal of linking different types of applications and systems.
By making early investments with .NET, Microsoft has helped provide the building blocks that today are putting many enterprise customers on the path to successfully implementing SOAs.
With SOAs, companies can benefit from the unimpeded flow of information that is the hallmark of connected systems.

What are Web Services Enhancements for Microsoft .NET (WSE)?
WSE is an add-on to Microsoft Visual Studio .NET and the Microsoft .NET Framework that helps developers build greater security features into Web services using the latest Web services protocol specifications and standards.
With WSE 2.0 developers can create security-enhanced connected systems that help improve business processes within–and beyond–corporate trust boundaries and create new revenue-generating opportunities.


What is a Smart Client?
Smart clients are client applications that consume Web services and reside on user hardware such as desktop PCs, laptops, Pocket PCs, and Smartphones
They are easily deployed and managed and provide an adaptive, responsive, and rich interactive experience by taking advantage of the computing resources on the device and intelligently connecting to distributed data sources.

What is .NET Passport?
.NET Passport is a Web-based service that is designed to make signing in to Web sites fast and easy. Passport enables participating sites to authenticate a user with a single set of sign-in credentials, alleviating the need for users to remember numerous passwords and user names.

What are the Current Microsoft Products and Technologies That Use .NET?
Microsoft .NET provides everything that is needed to develop and deploy a Web service-based IT architecture: servers to host Web services; development tools to create Web services; applications to use them; and a network of more than 35,000 Microsoft partners to help organizations deploy and manage them.
.NET technologies are supported throughout the family of Microsoft products, including the Windows Server System, the Windows XP desktop operating system, and the Microsoft Office System. And .NET technologies will play an even larger role in future versions of Microsoft products.

Who is Using .NET?
Organizations worldwide are implementing .NET technologies and Web services to create connected businesses and to help individuals communicate and collaborate more effectively. For example, Honeywell, GlaxoSmithKline, Sony, Dollar Rent A Car, Farmers Insurance, and the United States Postal Service are just a few of the well-known names that are using .NET. To read more about .NET technology in use today, visit the Microsoft .NET Case Study site.

How Do I Find a Microsoft Partner to Help Me Connect My Organization Using .NET?
Microsoft Certified Partners are independent companies that can provide you with the highest levels of technical expertise, strategic thinking, and hands-on skills. Microsoft Certified Partners encompass a broad range of expertise and vendor affiliations. Their real-world perspective can help you prioritize and effectively deliver your technology solutions.