the .net platform

  a brief overview

     carlos a. m. lopes
        cl@oink.tw
        @carlosaml
first,

A LITTLE HISTORY...
in the late 90s...

• Next Generation Web Services

• COM+ 2.0

• Universal Runtime

• ASP 4.0

• J++
“why not put into the system all of these
   silly housekeeping, plumbing tricks?”

   “have the platform do the dirty work,
   then you get to do the creative work”




                Anders Hejlsberg – chief C# architect
MICROSOFT JAVA?!
2002

.NET Framework 1.0
• 2002 – 1.0

• 2003 – 1.1

• 2005 – 2.0

• 2006 – 3.0

• 2007 – 3.5

• 2009 – 4.0
• 2002 – 1.0 SP1 & SP2
• 2004 – 1.0 SP3

• 2004 – 1.1 SP1

• 2007 – 2.0 SP1
• 2009 – 2.0 SP2

• 2007 – 3.0 SP1
• 2009 – 3.0 SP2

• 2008 – 3.5 SP1
ok,

LET’S SEE A BIT MORE
basically,


      the runtime (CLR)
               &
the class libraries (BCL & FCL)
THE CLR
the Common Language Runtime
the common language runtime
• .net platform runtime environment

• VM-like

• Microsoft’s implementation of the CLI

• runs only on Windows environments (!!!)
CLI?!
the common language infrastructure
• open specification (ECMA-335)

• developed by Microsoft

• pretty much defines the core of the platform
  – Common Type System
  – Common Language Specification
  – Virtual Execution System
csharp-online.net
now, the

COMMON INTERMEDIATE
LANGUAGE
aka Microsoft Intermediate Language
the CIL

• the “.net bytecode”

• the CLR JIT compiler uses this to generate
  native code

• and that’s pretty much it
what if I just hate Microsoft but
     somehow love .net?
here we go...

• Mono
  – seems pretty cool, but...


• DotGNU
  – not so promising I guess... :-/
how about copyrights, patents and all
          that cool stuff?
Microsoft Community Promise

http://www.microsoft.com/interop/cp/def
              ault.mspx
bla bla bla
           It is important to note that, under the Community Promise,
anyone can freely implement these specifications with their technology,
code, and solutions. You do not need to sign a license agreement, or
otherwise communicate to Microsoft how you will implement the
specifications.
           The Promise applies to developers, distributors, and users of
Covered Implementations without regard to the development model that
created the implementations, the type of copyright licenses under which
it is distributed, or the associated business model.
           Under the Community Promise, Microsoft provides assurance
that it will not assert its Necessary Claims against anyone who makes,
uses, sells, offers for sale, imports, or distributes any Covered
Implementation under any type of development or distribution model,
including open-source licensing models such as the LGPL or GPL.


                          Peter Galli – Open Source Community Manager at Microsoft
bla bla bla
           It is important to note that, under the Community Promise,
anyone can freely implement these specifications with their technology,
code, and solutions. You do not need to sign a license agreement, or
otherwise communicate to Microsoft how you will implement the
specifications.
           The Promise applies to developers, distributors, and users of
Covered Implementations without regard to the development model that
created the implementations, the type of copyright licenses under which
it is distributed, or the associated business model.
           Under the Community Promise, Microsoft provides assurance
that it will not assert its Necessary Claims against anyone who makes,
uses, sells, offers for sale, imports, or distributes any Covered
Implementation under any type of development or distribution model,
including open-source licensing models such as the LGPL or GPL.


                          Peter Galli – Open Source Community Manager at Microsoft
all right,

LET’S TALK ABOUT STUFF
• value types

• callbacks and events

• generic types directly into the CLR

• pointers (yey!)

• enums
• LINQ
  – type inference
  – anonymous types
  – lambdas
  – extension methods


• DLR (IronRuby, IronPython)

• parallel extensions
and

YET MORE HISTORY
• 2002 – .NET 1.0 – Visual Studio 2002
  – first release
  – not really usable


• 2003 – .NET 1.1 – Visual Studio 2003
  – much better
  – usable
• 2005 – .NET 2.0 – Visual Studio 2005
  – much much better
     • generics
     • anonymous methods
     • VS 2005


• 2006 – .NET 3.0
  – still .NET 2.0 (!)
  – 4 big new components
     • WCF, WPF, WF & WCS
• 2007 – .NET 3.5 – Visual Studio 2008
  – still .NET 2.0 runtime
  – lots of new stuff, specially to support LINQ
     •   expression trees
     •   lambda expressions
     •   extension methods
     •   type inference


• 2008 – .NET 3.5 SP1
  – Entity Framework
  – ADO.NET Data Services
• 2009 – .NET 4.0
  – parallel extensions
     • PLINQ
     • Task Parallel Library
  – dynamic runtime (DLR)
     • dynamic members
     • IronRuby, IronPython
  – F#
  – co- and contra-variance
  – Visual Studio 2010
  – Entity Framework 4.0
WHAT ELSE?
and


THAT’S IT!

The .NET Platform - A Brief Overview

  • 1.
    the .net platform a brief overview carlos a. m. lopes cl@oink.tw @carlosaml
  • 2.
  • 3.
    in the late90s... • Next Generation Web Services • COM+ 2.0 • Universal Runtime • ASP 4.0 • J++
  • 4.
    “why not putinto the system all of these silly housekeeping, plumbing tricks?” “have the platform do the dirty work, then you get to do the creative work” Anders Hejlsberg – chief C# architect
  • 5.
  • 6.
  • 7.
    • 2002 –1.0 • 2003 – 1.1 • 2005 – 2.0 • 2006 – 3.0 • 2007 – 3.5 • 2009 – 4.0
  • 8.
    • 2002 –1.0 SP1 & SP2 • 2004 – 1.0 SP3 • 2004 – 1.1 SP1 • 2007 – 2.0 SP1 • 2009 – 2.0 SP2 • 2007 – 3.0 SP1 • 2009 – 3.0 SP2 • 2008 – 3.5 SP1
  • 9.
  • 10.
    basically, the runtime (CLR) & the class libraries (BCL & FCL)
  • 11.
    THE CLR the CommonLanguage Runtime
  • 12.
    the common languageruntime • .net platform runtime environment • VM-like • Microsoft’s implementation of the CLI • runs only on Windows environments (!!!)
  • 13.
  • 14.
    the common languageinfrastructure • open specification (ECMA-335) • developed by Microsoft • pretty much defines the core of the platform – Common Type System – Common Language Specification – Virtual Execution System
  • 15.
  • 16.
    now, the COMMON INTERMEDIATE LANGUAGE akaMicrosoft Intermediate Language
  • 17.
    the CIL • the“.net bytecode” • the CLR JIT compiler uses this to generate native code • and that’s pretty much it
  • 18.
    what if Ijust hate Microsoft but somehow love .net?
  • 19.
    here we go... •Mono – seems pretty cool, but... • DotGNU – not so promising I guess... :-/
  • 20.
    how about copyrights,patents and all that cool stuff?
  • 21.
  • 22.
    bla bla bla It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions. You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications. The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model. Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL. Peter Galli – Open Source Community Manager at Microsoft
  • 23.
    bla bla bla It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions. You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications. The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model. Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL. Peter Galli – Open Source Community Manager at Microsoft
  • 24.
  • 25.
    • value types •callbacks and events • generic types directly into the CLR • pointers (yey!) • enums
  • 26.
    • LINQ – type inference – anonymous types – lambdas – extension methods • DLR (IronRuby, IronPython) • parallel extensions
  • 27.
  • 28.
    • 2002 –.NET 1.0 – Visual Studio 2002 – first release – not really usable • 2003 – .NET 1.1 – Visual Studio 2003 – much better – usable
  • 29.
    • 2005 –.NET 2.0 – Visual Studio 2005 – much much better • generics • anonymous methods • VS 2005 • 2006 – .NET 3.0 – still .NET 2.0 (!) – 4 big new components • WCF, WPF, WF & WCS
  • 30.
    • 2007 –.NET 3.5 – Visual Studio 2008 – still .NET 2.0 runtime – lots of new stuff, specially to support LINQ • expression trees • lambda expressions • extension methods • type inference • 2008 – .NET 3.5 SP1 – Entity Framework – ADO.NET Data Services
  • 31.
    • 2009 –.NET 4.0 – parallel extensions • PLINQ • Task Parallel Library – dynamic runtime (DLR) • dynamic members • IronRuby, IronPython – F# – co- and contra-variance – Visual Studio 2010 – Entity Framework 4.0
  • 32.
  • 33.