The .NET Platform - A Brief Overview

33
the .net platform a brief overview carlos a. m. lopes [email protected] @carlosaml

description

 

Transcript of The .NET Platform - A Brief Overview

Page 1: The .NET Platform - A Brief Overview

the .net platform

a brief overview

carlos a. m. lopes

[email protected]

@carlosaml

Page 2: The .NET Platform - A Brief Overview

A LITTLE HISTORY... first,

Page 3: The .NET Platform - A Brief Overview

in the late 90s...

• Next Generation Web Services

• COM+ 2.0

• Universal Runtime

• ASP 4.0

• J++

Page 4: The .NET Platform - A Brief Overview

“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

Page 5: The .NET Platform - A Brief Overview

MICROSOFT JAVA?!

Page 6: The .NET Platform - A Brief Overview

2002

.NET Framework 1.0

Page 7: The .NET Platform - A Brief Overview

• 2002 – 1.0

• 2003 – 1.1

• 2005 – 2.0

• 2006 – 3.0

• 2007 – 3.5 • 2009 – 4.0

Page 8: The .NET Platform - A Brief Overview

• 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

Page 9: The .NET Platform - A Brief Overview

LET’S SEE A BIT MORE ok,

Page 10: The .NET Platform - A Brief Overview

basically,

the runtime (CLR)

&

the class libraries (BCL & FCL)

Page 11: The .NET Platform - A Brief Overview

THE CLR the Common Language Runtime

Page 12: The .NET Platform - A Brief Overview

the common language runtime

• .net platform runtime environment

• VM-like

• Microsoft’s implementation of the CLI

• runs only on Windows environments (!!!)

Page 13: The .NET Platform - A Brief Overview

CLI?!

Page 14: The .NET Platform - A Brief Overview

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

Page 15: The .NET Platform - A Brief Overview

csharp-online.net

Page 16: The .NET Platform - A Brief Overview

COMMON INTERMEDIATE LANGUAGE

now, the

aka Microsoft Intermediate Language

Page 17: The .NET Platform - A Brief Overview

the CIL

• the “.net bytecode”

• the CLR JIT compiler uses this to generate native code

• and that’s pretty much it

Page 18: The .NET Platform - A Brief Overview

what if I just hate Microsoft but somehow love .net?

Page 19: The .NET Platform - A Brief Overview

here we go...

• Mono

– seems pretty cool, but...

• DotGNU

– not so promising I guess... :-/

Page 20: The .NET Platform - A Brief Overview

how about copyrights, patents and all that cool stuff?

Page 21: The .NET Platform - A Brief Overview

Microsoft Community Promise

http://www.microsoft.com/interop/cp/default.mspx

Page 22: The .NET Platform - A Brief Overview

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

Page 23: The .NET Platform - A Brief Overview

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

Page 24: The .NET Platform - A Brief Overview

LET’S TALK ABOUT STUFF all right,

Page 25: The .NET Platform - A Brief Overview

• value types

• callbacks and events

• generic types directly into the CLR

• pointers (yey!)

• enums

Page 26: The .NET Platform - A Brief Overview

• LINQ

– type inference

– anonymous types

– lambdas

– extension methods

• DLR (IronRuby, IronPython)

• parallel extensions

Page 27: The .NET Platform - A Brief Overview

YET MORE HISTORY and

Page 28: The .NET Platform - A Brief Overview

• 2002 – .NET 1.0 – Visual Studio 2002

– first release

– not really usable

• 2003 – .NET 1.1 – Visual Studio 2003

– much better

– usable

Page 29: The .NET Platform - A Brief Overview

• 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

Page 30: The .NET Platform - A Brief Overview

• 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

Page 31: The .NET Platform - A Brief Overview

• 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

Page 32: The .NET Platform - A Brief Overview

WHAT ELSE?

Page 33: The .NET Platform - A Brief Overview

THAT’S IT! and