Introduction to the
.NET Framework
Gerard Braad
[email protected]
Agenda
What is .NET
Advantages of using .NET
How .NET works
Visual Studio IDE
What is .NET
Programming framework
Part of the Windows OS
foundation for new products
integration
Virtual Machine
CLR - Common Language Runtime
MSIL/CIL - Common Intermediate Language
What is .NET - BCL vs. FCL
Base Class Libraries
Common Language Infrastructure
CLR is an implementation of ECMA 335
so is Rotor...
and Mono...
Framework Class Libraries
BCL including the Microsoft namespace
User interfaces, data access, security, XML...
What is .NET - History
since 2000 CTP
January 2002 1.0
April 2003 1.1
November 2005 2.0
November 2006 3.0
November 2007 3.5
What is .NET - 2.0 and further...
Advantages of using .NET
Programming in the syntax you like
C#, VB, Java, Cobol, …
Modern facilities
OO
Garbage collection
Type safety
Debugging
Error handling
Security
Deployment
Advantages of using .NET
Possible reuse of old components
unmanaged
Common platform
Windows
web(services)
console
mobile applications
Hello, world! - C#
using System;
class Hello
{
static void Main()
{
Console.WriteLine("Hello, world!");
}
}
Hello, world! - VB.NET
Imports System
Class Hello
Shared Sub Main()
Console.WriteLine("Hello, world!")
End Sub
End Class
How .NET works
Common Language Infrastructure - ECMA 335
Common Type System
types and operations for CTS-compliant languages
boxing/unboxing
reference/value types
Common Language Specification
base rules → interoperate with other CLS-compliant
languages
subset of the Common Type System
How .NET works - FCL
How .NET works - FCL
How .NET works - compile
Sourcecode language specific compiler
*.cs, *.vb, *.cpp...
.NET Assembly contains metadata about
CIL - *.dll, *.exe the assembly
.NET Framework JIT compiler
CLR
returns native code
Windows OS interaction with
unmanaged code
How .NET works - assembly
How .NET works - execution
How .NET works - managed
Hello, world! - managed C++
#using <mscorlib.dll>
using namespace System;
int main()
{
Console::WriteLine("Hello, world!");
}
How .NET works - decompile
decompile assembly Sourcecode
ildasm *.il
compile instruction .NET Assembly
ilasm *.dll, *.exe
.NET Framework
CLR
Windows OS
Hello, world! - CIL
.assembly Hello {}
.method public static void Main() cil managed
{
.entrypoint
.maxstack 1
ldstr "Hello, world!"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
Visual Studio
How .NET works - Websites
How .NET works - ADO.NET
How .NET works - Distributed