The document provides an introduction to the .NET framework. It discusses that .NET is a software platform that is language-neutral and allows writing programs in any compliant language. It also describes the Common Language Runtime (CLR) which works like a virtual machine to execute code in any .NET language. The framework offers a fundamental shift to server-centric application development.
2. .NET – What Is It?
• Software platform
• Language neutral
• In other words:
.NET is not a language (Runtime and a library for
writing and executing written programs in any
compliant language)
3. What Is .NET
• .Net is a new framework for developing
web-based and windows-based applications
within the Microsoft environment.
• The framework offers a fundamental shift in
Microsoft strategy: it moves application
development from client-centric to server-
centric.
4. .NET – What Is It?
Operating System + Hardware
.NET Framework
.NET Application
5. Base Class LibraryBase Class Library
Common Language SpecificationCommon Language Specification
Common Language RuntimeCommon Language Runtime
ADO.NET: Data and XMLADO.NET: Data and XML
VBVB VC++VC++ VC#VC#
VisualStudio.NETVisualStudio.NET
ASP.NET: Web ServicesASP.NET: Web Services
and Web Formsand Web Forms
JScriptJScript ……
WindowsWindows
FormsForms
Framework, Languages, And Tools
6. The .NET Framework
.NET Framework Services
• Common Language Runtime
• Windows®
Forms
• ASP.NET
– Web Forms
– Web Services
• ADO.NET, evolution of ADO
• Visual Studio.NET
7. Common Language Runtime
(CLR)
•CLR works like a virtual machine in executing
all languages.
•All .NET languages must obey the rules and
standards imposed by CLR. Examples:
– Object declaration, creation and use
– Data types,language libraries
– Error and exception handling
– Interactive Development Environment (IDE)
8. Common Language Runtime
• Development
– Mixed language applications
• Common Language Specification (CLS)
• Common Type System (CTS)
• Standard class framework
• Automatic memory management
– Consistent error handling and safer execution
– Potentially multi-platform
• Deployment
– Removal of registration dependency
– Safety – fewer versioning problems
9. Common Language Runtime
Multiple Language Support
• CTS is a rich type system built into the CLR
– Implements various types (int, double, etc)
– And operations on those types
• CLS is a set of specifications that language
and library designers need to follow
– This will ensure interoperability between
languages
10. Compilation in .NET
Code in VB.NET Code in C#
Code in another
.NET Language
VB.NET compiler C# compiler
Appropriate
Compiler
IL(Intermediate
Language) code
CLR just-in-time
execution
11. CTS and CLS are parts of .NET CLR and are responsible for type safety
with in the code. Both allow cross language communication and type
safety. In this article I would like to expose the relationship between
these two.
CTS
CTS stands for Common Type System. It defines the rules which
Common Language Runtime follows when declaring, using, and
managing types. The common type system performs the following
functions:
It enables cross-language integration, type safety, and high-performance
code execution.
It provides an object-oriented model for implementation of many
programming languages.
It defines rules that every language must follow which runs under .NET
framework. It ensures that objects written in different .NET Languages
like C#, VB.NET, F# etc. can interact with each other.
12. CLS
CLS stands for Common Language Specification and it is a subset of
CTS. It defines a set of rules and restrictions that every language must
follow which runs under .NET framework. The languages which follows
these set of rules are said to be CLS Compliant. In simple words, CLS
enables cross-language integration.
For example, one rule is that you cannot use multiple inheritance
within .NET Framework. As you know C++ supports multiple
inheritance but; when you will try to use that C++ code within C#, it is
not possible because C# doesn’t supports multiple inheritance.
One another rule is that you cannot have members with same name with
case difference only i.e. you cannot have add() and Add() methods. This
easily works in C# because it is case-sensitive but when you will try to
use that C# code in VB.NET, it is not possible because VB.NET is not
case-sensitive.
13. Why CTS is Called Common Type System?
In .NET, every Data Type is internally represented by a class or
structure. All the classes and structures related to Data Types are
collectively known as CTS. As you know every language provides its
own keywords for Data Types but internally all the languages which run
under .NET framework use the classes and structures available in CTS.
For example, C# has int Data Type and VB.Net has Integer Data Type.
Hence a variable declared as int in C# or Integer in vb.net, finally after
compilation, use the same structure Int32 from CTS.
All the structures and classes available in CTS are common for all .NET
Languages and purpose of these is to support language independence
in .NET. Hence it is called CTS
14. MSIL
• It is a set of CPU independent instructions that
are generated by the language compiler when
the project is compiled. MSIL code is not
executable but further
processed by CLR/other runtime environments
before it becomes executable.
MSIL is contained in the assembly of the
.NET application.
15. Intermediate Language (IL)
• .NET languages are not compiled to machine code. They
are compiled to an Intermediate Language (IL).
• CLR accepts the IL code and recompiles it to machine
code. The recompilation is just-in-time (JIT) meaning it is
done as soon as a function or subroutine is called.
• The JIT code stays in memory for subsequent calls. In
cases where there is not enough memory it is discarded
thus making JIT process interpretive.
16. • Features:
MSIL instructions map to the code that is
written in .NET Language and are used for
loading, storing, initializing, and
calling methods on objects, as well as for
arithmetic and logical operations, control
flow, direct
memory access, exception handling, and
other operations.
CLS(Common language Specification)
provides the infrastructure for MSIL.
17. Benefits:
• Benefits:
1)MSIL provides language interoperability as
the code in any .NET language is compiled
into MSIL.
2)Same performance for all the .NET
Languages:
18. • 3)Support for different runtime environments:
CLR can understand MSIL.
Non .NET environments also support MSIL.
--------------------------------------------------------
---
The JIT Compiler in CLR converts the MSIL
code into native machine code which is then
executed by the OS
19. JIT
• JIT stands for just-in-time compiler. It
converts the MSIL code to CPU native code as
it is needed during code execution. It is called
just-in-time since it converts the MSIL code to
CPU native code; when it is required within
code execution otherwise it will not do nothing
with that MSIL code.
20. Different Types of JIT
• Normal JIT
• This complies only those methods that are
called at runtime. These methods are compiled
only first time when they are called, and then
they are stored in memory cache. This memory
cache is commonly called as JITTED. When
the same methods are called again, the
complied code from cache is used for
execution.
21.
22. Econo JIT
• This complies only those methods that are
called at runtime and removes them from
memory after execution.
23.
24. Pre JIT
• This complies entire MSIL code into native
code in a single compilation cycle. This is
done at the time of deployment of the
application.
25.
26. Native Code
• Before you can run Microsoft intermediate
language (MSIL), it must be converted by a
.NET Framework just-in-time (JIT)
compiler to native code, which is CPU-
specific code that runs on the same
computer architecture as the JIT compiler.
27. • Because the common language runtime
supplies a JIT compiler for each supported
CPU architecture, developers can write a set of
MSIL that can be JIT-compiled and run on
computers with different architectures.
However, your managed code will run only on
a specific operating system if it calls platform-
specific native APIs, or a platform-specific
class library.
28. • Native code is computer programming (code)
that is compiled to run with a particular
processor (such as an Intel x86-class
processor) and its set of instructions. If the
same program is run on a computer with a
different processor, software can be provided
so that the computer emulates the original
processor
29. Interoperating Between Native
Code and Managed Code
• Code that runs under the control of the
common language runtime (CLR) is known as
managed code. Code that does not run under
the CLR is known as native code. The
Windows API is one example of native code
30. Languages
• Languages provided by MS
– VB, C++, C#, J#, JScript
• Third-parties are building
– APL, COBOL, Pascal, Eiffel, Haskell, ML,
Oberon, Perl, Python, Scheme, Smalltalk…
31. Windows Forms
• Framework for Building Rich Clients
– RAD (Rapid Application Development)
– Rich set of controls
– Data aware
– ActiveX®
Support
– Licensing
– Accessibility
– Printing support
– Unicode support
– UI inheritance
32. ASP.NET
•ASP.NET,the platform services that allow to program
Web Applications and Web Services in any .NET
language
•ASP.NET Uses .NET languages to generate HTML
pages. HTML page is targeted to the capabilities of the
requesting Browser
•ASP.NET “Program” is compiled into a .NET class and
cached the first time it is called. All subsequent calls use
the cached version.
33. ASP.NET
• Logical Evolution of ASP
– Supports multiple languages
– Improved performance
– Control-based, event-driven execution model
– More productive
– Cleanly encapsulated functionality
34. ASP.NET Web Forms
• Allows clean cut code
– Code-behind Web Forms
• Easier for tools to generate
• Code within is compiled then executed
• Improved handling of state information
• Support for ASP.NET server controls
– Data validation
– Data bound grids
35. ASP.NET Web Services
• A technical definition
– “A programmable application component accessible
via standard Web protocols”
36. Web Services
• It is just an application…
• …that exposes its features and capabilities
over the network…
• …using XML…
• …to allow for the creation of powerful new
applications that are more than the sum of
their parts…
37. ADO.NET
(Data and XML)
• New objects (e.g., DataSets)
• Separates connected / disconnected issues
• Language neutral data access
• Uses same types as CLR
• Great support for XML
40. Summary
• The .NET Framework
– Dramatically simplifies development and deployment
– Provides robust and secure execution environment
– Supports multiple programming languages
43. J2EE and .NET
Execution Engine
J2EE
Java source code compiles into machine-independent byte
code
Runtime Environment : JVM
.NET
Any compliant language compiles into MSIL
Runtime environment : CLR
Both JVM and CLR ,support services, such as code
verification, memory management via garbage collection, and
code security
44. J2EE and .NET
Cross Platform Portability
J2EE
Platform Independent
JDK should exist on target machine
.NET
Supports Windows platform
CLR should exist on target machine
Can support other platforms provided it has its own JIT
complier
45. J2EE and .NET
Language Support
J2EE
Tied to Java
Supports other languages via interface technology
.NET
Language independent
Supports any language if mapping exists from that
language to IL
46. J2EE and .NET
Tools Support
J2EE
Can employ any number of tools
Pro :Developer has a great deal of choice
Con :Difficulty in choosing a right tool for a given job
.NET
Visual Studio.NET, single IDE for building an application
47. The varibles in C#, are categorized
into the following types:
• Value types
• Reference types
• Pointer types
• Value Type
• Value type variables can be assigned a value
directly. They are derived from the class
48. • System.ValueType.
• The value types directly contain data. Some
examples are int, char, and float, which
stores numbers, alphabets, and floating point
numbers, respectively. When you declare an
int type, the system allocates memory to store
the value
49. • Reference Type
• The reference types do not contain the actual data
stored in a variable, but they contain a reference to
the variables.
• In other words, they refer to a memory location.
Using multiple variables, the reference types can
refer to a memory location. If the data in the
memory location is changed by one of the variables,
the other variable automatically reflects this change
in value. Example of built-in reference types are:
object, dynamic, and string.
50. • Dynamic Type
• You can store any type of value in the
dynamic data type variable. Type checking for
these types of variables takes place at run-
time.
• Syntax for declaring a dynamic type is:
• dynamic <variable_name> = value; For
example,
• dynamic d = 20;
51. • String Type
• The String Type allows you to assign any string
values to a variable. The string type is an alias for
the System.String class. It is derived from object
type. The value for a string type can be assigned
using string literals in two forms: quoted and
@quoted.
• For example,
• String str = "Tutorials Point";
52. • Pointer Type
• Pointer type variables store the memory
address of another type. Pointers in C# have
the same capabilities as the pointers in C or C+
+.
• Syntax for declaring a pointer type is:
• type* identifier; For example,
• char* cptr; int* iptr;
Notas do Editor
The .NET framework exposes numerous classes to the developer. These classes allow the development of rich client applications and Web based applications alike. In the above slide these classes have been divided into 4 areas.
ASP.NET provides the core Web infrastructure such as Web Forms for UI based development and Web Services for programmatic interface development,
User interface development on the Windows platform can be done using Windows Forms
ADO.NET and XML provide the functionality for data access.
Finally, the core base classes provide infrastructure services such as security, transaction management etc.
Common Language Runtime
Common, secure execution environment.
We’ll drill into this in some detail in the first parts of the presentation.
Windows® forms
Framework for building rich clients
A demonstration will highlight some of these features, such as the delegate-based event model.
ASP.NET
Web forms
Manageable code (non spaghetti)
Logical evolution of ASP (compiled)
Again, we’ll drill into a hint at the power of Web Forms with a demonstration
Web Services
Programming the Internet to leverage the &quot;power at the edge of the cloud&quot;.
We will cover this in detail, as this – along with the CLR – is one of the more powerful aspects of .NET Framework.
ADO.NET, evolution of ADO
New objects (e.g., DataSets, Datareader)
Visual Studio.NET
Most productive development environment gets better and fully supports the .NET Framework
The first incarnation of ASP proved very successful. As part of the .NET Framework, Microsoft support ASP.NET. ASP.NET is a logical evolution of ASP, but addresses many of the issues associated with ASP.
ASP.NET is now compiled and not interpreted.
A great deal of work has also been done to make sure that ASP.NET development becomes cleaner and more productive.
The Web Form is basically an ASP.NET file (.ASPX) that makes use of the new features of ASP.NET. ASP.NET in conjunction with Web Forms eliminate a number of the traditional problems associated with ASP.
ASP.NET provides the developer with the option of separating the code from the UI elements using ‘code-behind’ forms. Using such a mechanism will also make Form tools much easier to develop.
ASP.NET also conquers one of the annoying side effects of using ASP – state. Imagine that a user has filled in an ASP generated form and then hits the submit button. At this stage IIS (server side) will regenerate the form and as a side effect all the information that the user entered into the form will be erased. In many situations this is unacceptable, and many an ASP developer has struggled to find work arounds (most of which may not be considered elegant). Fortunately, ASP.NET allows controls to maintain state.
ASP.NET supports a number of new rich server controls. These controls can be used to improve data connectivity (data bound controls) and data validation.
Technically a Web Service is “A programmable application component accessible via standard Web protocols”. In other words, it’s a component that can be called remotely, over the internet, from a client application.
Take our previous example of a Web application that required ‘stock information’. This Web application possibly would not have that information readily at hand. However, what if another Web application (possibly on another machine, on the other side of the planet) did? Further more what if this remote machine exposed a component with a method such as ‘GetStockPrice (string strCompanyName)’. Surely this would make life much easier, making separate Web sites act like ‘one big application’.
Web service consumers can send and receive messages using XML, and therefore the audience of clients is unlimited.