HND-17 Zaw Myo Htay
What is .Net Framework?
.NET Framework is a managed execution environment that provides a variety of services or
features to its running apps. It contains two main components: common language runtime (CLR),
which is the execution engine that handles running apps, and the .NET Framework Class Library,
which provides a large library of reusable code that developers can call and use from their own apps.
From .Net Framework, many languages can be used which target .Net Framework can produce
various types of applications and services: web application, web services, desktop application, mobile
application, data access services etc.
Objectives of .Net Framework are
• To provide a consistent object-oriented programming environment for executing the object
code locally, internet distributable or executed remotely
• To provide a software-execution environment that makes the software deployment and
prevent version conflicts. The environment also provides safe execution of code which includes
the code created by unknown person or third-party application
• To provide developers with the freedom of using preferred skill of writing specific language to
develop different types of computer application which can be used across various types of
devices as well as environment
• To build all communications on industry standards to ensure that code which are written in
the .Net framework can interact with each other
Features of .Net Framework
Memory management: In many other programming languages, programmers are responsible and
has to take time for allocating and releasing memory and for handling object lifetimes. But in .NET
applications, developers do not need to handle these because CLR in .Net Framework has automatic
memory management services. For example, the runtime automatically handles object storage and
manages references to objects when the application is being used and releasing them when they are
no longer being used. This resolves the two most common app errors, memory leaks and invalid
Interoperability and Language independence: In traditional programming languages, basic
types are defined by the compiler. This means the language can only be compiled by its own compiler.
Thus, cross-language integration or interoperability is very hard to do and can said to be impossible.
In .NET Framework, basic types are defined by the common type system(CTS) and are common to
all languages that target the .NET Framework and therefore cross-language integrity and
interoperability are possible. This is also implemented by CLS (common language specification) which
defines the rules that developers of different languages have to obey in order to enable interaction
HND-17 Zaw Myo Htay
between different parts of application. Therefore, the programmers can use its preferred language
to write different parts of one project and unit at the final stage.
Version compatibility: This prevent DLL Hell which cause conflicts when the versions of the
applications are installed and run in the same computer. Applications that are developed by .Net
Framework from the older version can be run on latest .Net Framework version because it supports
backward compatibility. This is done by side-by-side execution. The .Net Framework can resolve
version conflicts by allowing multiple versions of Common Language Runtime (CLR) to exist in the
same computer. Therefore, different versions of applications that are executed by different .Net
Framework versions can coexist because latest .Net Framework can support the versions that the
application was built.
Base class library: Instead of having to write various amounts of code to handle common low-level
programming operations, programmers use a readily accessible library of types and their members
from the .NET Framework Class Library. The .NET Framework includes base or common libraries for
all specific areas of app development, such as ASP.NET for web apps, ADO.NET for data access,
Windows Communication Foundation for service-oriented apps and XML for data storage services.
These libraries and interfaces can be reused.
Security: .Net Framework has security mechanism with two features: Code Access Security (CAS),
and validation and verification. CAS is based on the evidence that is associated with specific
assembly. The evidence is the source of the assembly which is installed on the local computer or
downloaded from the Internet. CAS uses evidence to determine the permissions granted to the code.
Every assembly of each method in the calling of variables is checked for the required permission; if
any assembly is not granted the permission a security exception is thrown. Managed CIL bytecode
is easier to reverse-engineer than native code but they are obfuscated. .NET decompiler programs
enable developers with no reverse-engineering skills to view the source code behind obfuscated .NET
assemblies. Applications that are compiled to native machine code are much harder to reverse-
engineer, and source code is almost never produced successfully, mainly because of compiler
optimizations and lack of reflection.
Robust: It is said to be robust because it has exception handling technique. Exceptions are problems
that occurs when a program is run. The problems occur when a user has entered an invalid data, a
file that needs to be opened cannot be found and a network connection has been lost in the middle
of communications or when the memory is not enough to run the application. These problems are
handled by exception handling techniques in .Net Framework. You can also manually create the
exceptions and show appropriate messages which can be understood easily by the programmers or
users. Example, when a user fills a word in a text box that show age, this means that can text box
can only be filled with number, the program will tell the user that text box can only be filled by
HND-17 Zaw Myo Htay
integer with an appropriate message “Please Fill Number Only in Age Text Field”. This will prevent
the program stop working or making error by handle the user fault error.
Portability: While Microsoft has never implemented the full framework on any system except
Microsoft Windows, it has engineered the framework to be cross-platform, and implementations are
available for other operating systems. Microsoft submitted the specifications for CLI (which includes
the core class libraries, CTS, and CIL), C#, and C++/CLI to both European Computer Manufacturers
Association (ECMA) and International Organization for Standardization (ISO), making them available
as official standards. MONO project which is implemented by ECMA is now successfully launched.
MCLR implements the ECMA Common Language Infrastructure (CLI). It has all the features of .Net
framework plus enable Cross Platform running of application that are developed through MONO CLR.
It can run on any Operating System which includes Linux OS, OS X of apple products, and Microsoft
Windows and much more other OS.