2. What is .NET
It is an open source platform developed by Microsoft for building
many types of applications
A .NET application can be developed in multiple languages,
using different editors and libraries
Some of the languages are C#, F#, Visual C++, Visual Basic etc
It is tool to build and run C# programs and other language
programs
When .NET is downloaded, many other programs are
downloaded that translate code into instructions that are
understandable by the computer
It also provide utilities for building software
It defines a set of data types to store information in programs
3. .NET Versions
There are few versions of .NET to do a particular job
under different platforms/ environments
.NET framework is the original version of .NET that only
runs on Windows platform
.NET core is the new cross-platform version of .NET that
runs on Windows, MacOS and LINUX computers
4. Languages in .NET
.NET application can be written in C#, F# or Visual
Basic
C# is a simple, modern, object-oriented and type safe
programming language
F# is a programming language that makes it easy to
write concise, robust and performant code
Visual Basic is an approachable language with a simple
syntax for building type-safe object-oriented apps
5. Cross-platform
The code developed in any of the language will run
natively on any compatible operating system
Many types of apps can be developed with .NET. Some
are cross platform and some target-specific set of
operating systems and devices
6. .NET Classes and API
.NET provides a standard set of base class libraries
and API's that are common to all .NET applications
Each application model can also expose additional
API's that are specific to the operating system it runs
on or the capabilities it provides
For example:
ASP.NET is the cross-platform web framework that
provides additional API's for building web apps that
runs on Windows or Linux
7. ASP.NET
To build programs for the web like websites more tools
are to added on top of .NET
One of the popular tools is ASP.NET
To keep .NET and ASP.NET separate, .NET is called a
platform and ASP.NET is called a framework
8. .NET Strategy
.NET is a software framework that includes everything
required for developing software for web services
It integrates presentation technologies, component
technologies and data technologies on a single
platform
It enables users to develop internet applications as
easily as on a desktop system
9. .NET Software Components
Microsoft .NET software solution includes three key
components
Microsoft .NET Platform
Microsoft .NET Products and Services
Third-party .NET Services
10. .NET Platform
Microsoft .NET platform includes the following
components to help develop a new generation of smart
Internet Services
.NET infrastructure and tools
.NET user experience
.NET building block
.NET device software
11. .NET Products and Services
Microsoft .NET products and services consists of the
following:
Windows .NET
MSN .NET
Office .NET
Visual Studio .NET
Personal subscription services etc
12. Third Party Services
Third-party .NET services will provide opportunities to
a vast range of developers and users to produce
corporate and vertical services using .NET platform
13. Technological Development of .NET
The current technology of .NET has gone through
three significant phases of development
OLE Technology
COM Technology
.NET Technology
14. OLE Technology
OLE technology was developed by Microsoft in the early
1990's to enable easy inter process communications
OLE provided support to achieve the following
To embed documents from one application into another
application
To enable one application to manipulate objects located in
another application
This enabled users to develop applications which
required inter-operability between various products
such as MS-Word and MS-Excel
15. COM Technology
Before COM Technology the monolithic approach had been used for
developing software
When programs become too large and complex, this approach created
problems in terms of maintainability and testing of software
This problem was overcome by the introduction of component-based approach
for developing software
A program is broken into a number of independent components where each
one offers a different functionality
Each component can be developed and tested independently and then
integrated into the main system
This is known as Component Object Model (COM) and the software built
using COM is referred to as componentware
COM technology advantages are:
Reduces the overall complexity of the software
Enables distributed development environment across multiple departments or
organizations
Enhances software maintainability
16. .NET Technology
.NET technology is a third generation component model
It provides a new level of inter-operability compared to COM
technology
COM provides a standard binary mechanism for inter-module
communication
This is replaced by an Intermediate Language called (MSIL) or
simply IL in the .NET technology
Various .NET language compilers enforce inter-operability by
compiling code into IL.
IL is automatically compatible with other IL modules
IL allows true cross-language integration
In addition to IL , .NET includes a host of other technologies and
tools that enables to develop and implement Web-based
applications easily
17. .NET Framework
It is a software development framework developed by
Microsoft that provides a common programming platform
for the development of applications such as Websites
It was originally released with Microsoft's first version of its
Windows OS in 1993 and has undergone various changes
since then
.NET framework is the tool provided by the .NET
infrastructure and tools component of the .NET platform
.NET platform provides a new environment for creating
and running robust, scalable and distributed applications
over the Web
C# derives much of its power from .NET framework on
which it runs
18. It is a collection of software components and API's for building
and running applications on Microsoft's .NET platform
This includes Windows, Windows Phone, Windows Server and
other operating systems
It provides a common programming model that developers can
use to create programs that can run on multiple platforms
It enables to write once and save it in different projects for
different types of devices
It also includes number of libraries that provide common
functionality such as data access, controls and user interfaces
These libraries make it easier to build applications that work
across multiple platforms
.NET Framework is a key component of the Microsoft .NET
system and is available for free under an open source license
19. Features of .NET Framework
It provides an environment for building, deploying and
running web services and other applications.
It consists of three distinct technologies
Common Language Runtime (CLR)
Framework base Classes
User and Program Interfaces (ASP.NET and Winforms)
For the programs coded in any of the supported language
CLR is the core of the .NET framework and is responsible for
loading and execution of programs
Base classes provide basic data types, collection classes and
other general classes to be used by C# & any other languages
The top layer consists of a set of classes for developing web
services and to deal with the user interface
20. .NET Framework Architecture
The architecture of .NET framework focuses on two
things
The framework code is largely independent of the
language in which it is written.
For eg: A framework written in C# can also call libraries
written in C++ or other programming languages which makes
it portable to other platforms
Second goal is that it should be easy to adopt i.e. it is
designed in such a way that it makes it easy to
incorporate new features and new functionality into an
existing program
22. WinForms
It is a smart client technology for the .NET framework
It is a free and open source GUI class library included
as a part of .NET Framework to provide a platform for
developing client side applications for desktop, laptop
etc.
It is a set of managed libraries that simplifies common
application tasks such as reading and writing to the
file systems
23. ASP.NET
It is a server side technology and a web framework
designed and developed by Microsoft
It is used to develop dynamic websites, web
applications and web services
It provides an integration of HTML, CSS and Javascript
24. ADO.NET
It is a module of .NET framework which is used to
establish a connection between application and data
sources
Data sources can be SQL Server
ADO.NET contains classes that can be used to
connect, retrieve, insert and delete data
25. Common Language Infrastructure
(CLI) of .NET
CLI is a platform-independent development system from Microsoft
that enables program written in different languages to run on different
types of hardware
CLI is an app development framework that is language-independent
which makes it easier to port the application across different platforms
It streamlines the process of migrating app across different platforms
due to standard code structure, a single standard library, a single
standard application deployment process across all platforms
Developers do not have to worry about changing the language or syntax
of their source code while switching from one platform to another
CLI includes CTS and CLS
It does not matter in what language the program is written, they are
compiled into Intermediate Language which is further compiled into
the target machine language by CLR
26. Common Type Systems(CTS)
.NET framework provides multiple language support using the feature
known as Common Type Systems that is built into the CLR
A language supporting multiple data types is known as CTS. It
standardizes the data types of all programming languages under the
.NET umbrella
CTS supports a variety of types and operations found in most
programming languages and therefore calling one language from
another does not require type conversions
It defines how these types are declared, used and managed in the
runtime
It facilitates cross-language integration, type safety and high-
performance code execution
C# is specially designed for .NET platform , but a number of .NET
programs in number of other languages including C++ and Visual Basic
can be build
27. Common Language
Specifications(CLS)
The CLS defines a set of rules that enables inter-operability
on the .NET platform
It defines a set of rules and restrictions that every language
must follow which runs under the .NET framework
The languages which follows this set of rules are said to be
CLS compliant which enables cross-language integration
These rules serves as a guide to third-party compiler
designers and library builders
CLS is a subset of CTS and therefore language supporting
CLS can use each other's libraries as if they are own
Application Program Interfaces(API's) that are designed
following the rules of CLS can easily be used by all other
.NET languages
28. Common Language Runtime(CLR)
CLR is the core i.e. heart and soul of the .NET framework
It is included during the installation of the framework
When IIS is installed it is automatically installed
It is a runtime environment in which programs written in C# and any other .NET
languages are executed
It also supports cross-language inter-operability
Services provided by CLR are
Loading and execution of programs
Memory isolation for other programs
Verification of type safety
Compilation of IL into native executable code
Providing metadata
Memory management(automatic garbage collection)
Enforcement of security
Inter-operability with other systems
Managing exceptions and errors
Support for tasks such as debugging and profiling
29. CLR Activities when application is
executed
Source code is compiled into IL
Metadata engine creates meta information
IL & Metadata are linked with other native code if required
and resultant code is saved
During execution IL and any other requirement from the
base class library are brought together by the class loader
The combined code is tested for type safety
Then it is compiled by the JIT(Just-in-time) compiler to
produce native machine code which is sent to the run-time
manager for execution
30. Microsoft Intermediate
Language(MSIL)
MSIL or IL is an instruction set into which all the .NET programs are compiled
It is similar to assembly language and contains instructions for loading, storing,
initializing and calling methods
When a C# program or any other language program coded in CLS-compliant
language, the source code is compiled into MSIL
MSIL defines a set of portable instructions that are independent of any specific
CPU.
In essence, MSIL defines a portable assembly language.
One other point: Although MSIL is similar in concept to Java’s bytecode, the
two are not the same.
It is the job of the CLR to translate the intermediate code into
executable code when a program is run. Thus, any program compiled to
MSIL can be run in any environment for which the CLR is
implemented. This is part of how the .NET Framework achieves
portability.
31. Managed Code
CLR is responsible for managing the execution of code
compiled in the .NET platform
The code that is executed as per the specifications of the
CLR during runtime is called the managed code
Compilers that are compatible to .NET platform generates
managed code
For example:
C# compiler generates managed code which is the IL code
All manged code generated by C# compiler or any other
compiler capable of generating managed code is called the IL
code
This IL code is then converted into native machine code by
the JIT compilers
32. Unmanaged Code
The opposite of managed code is unmanaged code.
Unmanaged code does not execute under the Common
Language Runtime and is executed by the Operating
System
All Windows programs prior to the creation of the
.NET Framework uses unmanaged code.
It is possible for managed code and unmanaged code
to work together, so the fact that C# generates
managed code does not restrict its ability to operate in
conjunction with preexisting programs
33. Framework Class Library(FCL)
It has some advance class libraries
It is a superset of BCL
It is a wider library that contains ASP.NET, WinForms,
XML stack, ADO.NET
34. Framework Base Classes(BCL)
Base Class Library(BCL) is also known as Class Library is a core class
library
It is a subset of Framework Class Library
It is a collection of reusable types that are closely integrated with CLR
These libraries can be used by
simply instantiating them and invoking their methods OR
Inheriting them through derived classes and thus extending their
functionalities
Many of the functionality in the base framework classes reside in the
vast namespace called "System"
The base classes of the "System" namespace can be used for
Input/Output operations
String Handling
Manging arrays, lists, maps, etc.
Accessing files and file systems
35. Accessing the registry
Security
Windowing
Windows Messages
Database management
Evaluation of mathematical functions
Drawing
Managing Errors and exceptions
Connecting to the internet etc.
36. User and Program Interfaces
The following tools are provided by .NET Framework
for managing user and application interfaces
Windows forms
Web Forms
Console Applications
Web Services
These tools enable to develop user-friendly desktop-
based as well as web-based applications using a wide
variety of languages on the .NET platform
37. Visual Studio .NET
Visual Studio .NET (VS .NET) supports an Integrated
Development Environment(IDE) with a rich set of features
and productivity tools
These tools enables faster development of web-applications
Using Web services and XML , a single environment is to be
learnt, configured and is used irrespective of the language
used
No need to switch back and forth between environments to
build, debug and deployment of code
It provides tools that extends support to the development
cycle
It acts as a foundation for the life cycle platform
38. .NET Languages
Following are some of the languages that can be used to build
application in .nET environment
C# (Specially created for .NET)
C++
Visual Basic
Jscript
Third-party languages
COBOL
Eiffel
Perl
Python
SmallTalk
Mercury
Scheme
39. Advantages of .NET approach
Simple and faster system development
Rich object model
Enhanced built-in functionality
Many different ways to communicate with the outside
world
Integration of different languages into one platform
Easy deployment and execution
Wide range of scalability
Inter-operability with existing applications
Simple and easy to build sophisticated development tools
Fewer bugs
Potentially better performance
40. C# and the .NET
C# is a new programming language introduced with
.NET
It is a concise and elegant .NET language
In many ways it is a version of the .NET object model
With C# developers can quickly implement
applications and components using the built-in
capabilities of the .NET framework
Since C# code is managed by the CLR it becomes
leaner and safer than C++
To build program with C#, .NET platform is required
41. How C# Relates to the .NET Framework
Although C# is a computer language that can be studied
on its own, it has a special relationship to its runtime
environment, the .NET Framework. The reason for this is
twofold.
First, C# was initially designed by Microsoft to create code
for the .NET Framework.
Second, the libraries used by C# are the ones defined by the
.NET Framework.
Thus, even though it is possible to separate C# the
language from the .NET environment, the two are closely
linked. Because of this, it is important to have a general
understanding of the .NET Framework and why it is
important to C#.
42. C# and the .NET
CLR extend number of benefits to C# when it is
implemented on the .NET platform which are as
follows:
Interoperability with other languages
Enhanced security
Versioning support
Debugging support
Automatic garbage collection
XML support for Web-based applications