Introduction to .NET Lorenzo Dematté @ldematte
What is .NET? Not different from asking: what is Java? .NET, XP, 2000… oh my! A Framework Execution environment (CLR) Support libraries (BCL) Languages (C#, VB, F#)
.NET is also A platform, an “ecosystem” Both MS and others Tools (VS), libraries, open source projects (Nunit, EF) And also, for some parts, a specification /standard CLI, C#
.NET Framework C# C++/CLI VB.NET F# PLINQ TPL EF LINQ ADO.NET WPF WCF WF BCL VS CLR (Jitter, VM, Loader, GC, Debugging…) Host: OS, Hardware, Exe (SQL, IIS)
History 1.0, 1.1 Winforms, C# 1, ASP.NET, ADO.NET 2.0 Generics, C# 2 (latest CLR) 3.0 – “WinFX” WPF, WCF, WF 3.5 LINQ, C# 3 (lambda, extension methods) 4.0 ParallelFX, C# 4 (dynamic) 4.5 Metro, C# 5 (async)
.NET Framework (history) PLINQ TPL F# EF LINQ ADO.NE T WPF WCF WF C++/CLI BCL VB.NET CLR (Jitter, VM, Loader, GC, Debugging…) C#
Core concepts Managed Garbage collection Introspection (self-description) Virtual machine JIT Verification and optimization Components Assembly Bytecode + Metadata
Where? Windows Linux, MacOSX Mono, MonoMAC Embedded Windows CE, Windows Phone Micro Netduino
Outside MS: Languages
Outside MS: Libraries
From source to execution: languages Compilation csc /out:test.exe test.cs mcs test.cs --out:test2.exe Execution .test.exe mono test.exe Multiple languages csc /t:library /out:testLib.dll testLib.cs fsc test.fs /r:testLibrary.dll
From source to execution Assembly: MSIL + Metadata Load assembly Plus dependencies “Fusion” JIT
From source to execution Assembly (dll) F# source MSIL Assembly (exe) C# source MSIL Main Func ASM Main Greet Func GreetAll Func CLR (Jitter, VM, Loader, GC, Debugging…)
An example: Hello World

Introduction to .NET

  • 1.
    Introduction to .NET Lorenzo Dematté @ldematte
  • 2.
    What is .NET? Notdifferent from asking: what is Java? .NET, XP, 2000… oh my! A Framework Execution environment (CLR) Support libraries (BCL) Languages (C#, VB, F#)
  • 3.
    .NET is also Aplatform, an “ecosystem” Both MS and others Tools (VS), libraries, open source projects (Nunit, EF) And also, for some parts, a specification /standard CLI, C#
  • 4.
    .NET Framework C# C++/CLI VB.NET F# PLINQ TPL EF LINQ ADO.NET WPF WCF WF BCL VS CLR (Jitter, VM, Loader, GC, Debugging…) Host: OS, Hardware, Exe (SQL, IIS)
  • 5.
    History 1.0, 1.1 Winforms, C# 1, ASP.NET, ADO.NET 2.0 Generics, C# 2 (latest CLR) 3.0 – “WinFX” WPF, WCF, WF 3.5 LINQ, C# 3 (lambda, extension methods) 4.0 ParallelFX, C# 4 (dynamic) 4.5 Metro, C# 5 (async)
  • 6.
    .NET Framework (history) PLINQ TPL F# EF LINQ ADO.NE T WPF WCF WF C++/CLI BCL VB.NET CLR (Jitter, VM, Loader, GC, Debugging…) C#
  • 8.
    Core concepts Managed Garbagecollection Introspection (self-description) Virtual machine JIT Verification and optimization Components Assembly Bytecode + Metadata
  • 9.
    Where? Windows Linux, MacOSX Mono,MonoMAC Embedded Windows CE, Windows Phone Micro Netduino
  • 10.
  • 11.
  • 12.
    From source toexecution: languages Compilation csc /out:test.exe test.cs mcs test.cs --out:test2.exe Execution .test.exe mono test.exe Multiple languages csc /t:library /out:testLib.dll testLib.cs fsc test.fs /r:testLibrary.dll
  • 13.
    From source toexecution Assembly: MSIL + Metadata Load assembly Plus dependencies “Fusion” JIT
  • 14.
    From source toexecution Assembly (dll) F# source MSIL Assembly (exe) C# source MSIL Main Func ASM Main Greet Func GreetAll Func CLR (Jitter, VM, Loader, GC, Debugging…)
  • 15.