.NET Overview

49
.NET Overview .NET Overview Geoff Snowman Geoff Snowman .NET Evangelist .NET Evangelist [email protected] [email protected]

description

.NET Overview. Geoff Snowman .NET Evangelist [email protected]. Agenda. .NET Goals .NET Framework and Languages Application Types Case Study. App Dev Trends – Late ’90s. Application Integration troubles XML Windows forms hard to deploy Web forms hard to develop - PowerPoint PPT Presentation

Transcript of .NET Overview

Page 1: .NET Overview

.NET Overview.NET Overview

Geoff SnowmanGeoff Snowman.NET Evangelist.NET [email protected]@microsoft.com

Page 2: .NET Overview

AgendaAgenda

• .NET Goals.NET Goals• .NET Framework and Languages.NET Framework and Languages• Application TypesApplication Types• Case StudyCase Study

Page 3: .NET Overview

App Dev Trends – Late ’90sApp Dev Trends – Late ’90s

• Application Integration troublesApplication Integration troubles• XMLXML• Windows forms hard to deployWindows forms hard to deploy• Web forms hard to developWeb forms hard to develop• Many inconsistent APIsMany inconsistent APIs• Application drives language choiceApplication drives language choice

Page 4: .NET Overview

.NET Solution.NET Solution

• Clean Start for API DesignClean Start for API Design• Object-Oriented ApproachObject-Oriented Approach• Support for Many LanguagesSupport for Many Languages• XMLXML• Drive Vision across all ProductsDrive Vision across all Products

Page 5: .NET Overview

.NET – Microsoft’s Vision of a .NET – Microsoft’s Vision of a New Generation for New Generation for Application DevelopmentApplication Development

Page 6: .NET Overview

AgendaAgenda

• .NET Goals.NET Goals• .NET Framework and Languages.NET Framework and Languages• Application TypesApplication Types• Case StudyCase Study

Page 7: .NET Overview

Implementation and BenefitsImplementation and Benefits.NET Framework and Tools.NET Framework and Tools

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……Visual Studio .N

ETVisual Studio .N

ET

Page 8: .NET Overview

Implementation and BenefitsImplementation and BenefitsCommon Language RuntimeCommon Language Runtime

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……Visual Studio .N

ETVisual Studio .N

ET

Page 9: .NET Overview

Implementation and Benefits Implementation and Benefits Compilation and ExecutionCompilation and Execution

Source Source CodeCode

CompilationCompilation

At installation or the At installation or the first time each first time each

method is calledmethod is called

Language Language CompilerCompiler AssemblyAssembly

ExecutionExecution

JIT JIT CompilerCompiler

NativeNativeCodeCode

Code (IL)Code (IL)

MetadataMetadata

Page 10: .NET Overview

Implementation and BenefitsImplementation and Benefits.NET Framework Class Library.NET Framework Class Library

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……Visual Studio .N

ETVisual Studio .N

ET

Page 11: .NET Overview

Implementation and BenefitsImplementation and Benefits.NET Framework Class Library.NET Framework Class Library

System System

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalizationDiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections

ResourcesResourcesReflectionReflectionNetNetIOIO

ThreadingThreadingTextTextServiceProcessServiceProcessSecuritySecurity

CommonCommonOleDbOleDb

SQLTypesSQLTypesSqlClientSqlClient

XPathXPathXSLTXSLT

RuntimeRuntimeInteropServicesInteropServicesRemotingRemotingSerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols

UIUIHtmlControlsHtmlControlsWebControlsWebControls

System.DrawingSystem.Drawing

ImagingImagingDrawing2DDrawing2D

TextTextPrintingPrinting

System.Windows.FormsSystem.Windows.FormsDesignDesign ComponentModelComponentModel

Page 12: .NET Overview

Implementation and BenefitsImplementation and Benefits.NET Languages.NET Languages

Operating SystemOperating System

Common Language RuntimeCommon Language Runtime

Visual Studio .NET

Visual Studio .NETBase Class LibraryBase Class Library

ADO .NET and XMLADO .NET and XML

ASP .NETASP .NETWeb Forms Web ServicesWeb Forms Web Services

Mobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# J#J# ……

Page 13: .NET Overview

.NET Languages (Microsoft).NET Languages (Microsoft)

• Microsoft: Visual Basic.NETMicrosoft: Visual Basic.NET• Microsoft: C#Microsoft: C#• Microsoft: C++ (Managed/Unmanaged)Microsoft: C++ (Managed/Unmanaged)• Microsoft: J#Microsoft: J#

Page 14: .NET Overview

.NET Languages (Others).NET Languages (Others)• APLAPL• Fujitsu COBOLFujitsu COBOL• Micro Focus COBOLMicro Focus COBOL• EiffelEiffel• ForthForth• FORTRAN 95FORTRAN 95• HaskellHaskell• MercuryMercury• MondrianMondrian

• OberonOberon• PascalPascal• PerlPerl• PythonPython• RPGRPG• S#S#• SchemeScheme• Standard Meta Standard Meta

LanguageLanguage

Page 15: .NET Overview

AgendaAgenda

• .NET Goals.NET Goals• .NET Framework and Languages.NET Framework and Languages• Application TypesApplication Types• Case StudyCase Study

Page 16: .NET Overview

Windows FormsWindows Forms

• XCOPY DeploymentXCOPY Deployment• Web DeploymentWeb Deployment• Side by Side DLLsSide by Side DLLs• VB provides full functionalityVB provides full functionality

Page 17: .NET Overview

Demo

Page 18: .NET Overview

Web FormsWeb Forms

• Event-Driven Programming ModelEvent-Driven Programming Model• Server ControlsServer Controls• Code BehindCode Behind• ADO.NETADO.NET• Session State ScalabilitySession State Scalability• IIS 6.0IIS 6.0• High-Performance CachingHigh-Performance Caching• Multiple Authentication TechniquesMultiple Authentication Techniques

Page 19: .NET Overview

Server ControlsServer Controls• Programmable, server-side objectsProgrammable, server-side objects

• Properties, methods and eventsProperties, methods and events

• Encapsulate both behavior and renderingEncapsulate both behavior and rendering• HTML, XML, WML, script, etc.HTML, XML, WML, script, etc.

• You can create server controlsYou can create server controls• Custom controlsCustom controls• User controlsUser controls• Or derive from existing controlsOr derive from existing controls

Page 20: .NET Overview

ASP.NET Pages: Part ASP.NET Pages: Part Declarative, Part CodeDeclarative, Part Code• Combines declarative tags (HTML, ASP directives, Combines declarative tags (HTML, ASP directives,

server controls and static text) with codeserver controls and static text) with code• Unlike ASP, good separation provided between code Unlike ASP, good separation provided between code

and tagsand tags

Form1.aspxForm1.aspx

codecode

Form1.aspxForm1.aspx Form1.vbForm1.vb

single filesingle file separate files (“code-behind”)separate files (“code-behind”)

<tags><tags>codecode<tags><tags>

Page 21: .NET Overview

Classic ASP vs. ASP.NETClassic ASP vs. ASP.NETClassic ASPClassic ASP ASP.NETASP.NET

Prog

ram

min

gPr

ogra

mm

ing

Mod

elM

odel

• Difficult debuggingDifficult debugging• Mediocre performanceMediocre performance• Difficult deploymentDifficult deployment• No built in securityNo built in security• No support for cachingNo support for caching

• IDE allows debugging from UI to DBIDE allows debugging from UI to DB• Very high performanceVery high performance• Xcopy deployment modelXcopy deployment model• Full access to windows or custom security Full access to windows or custom security

modelmodel• Full support for object, page cachingFull support for object, page cachingD

evel

opm

ent

Dev

elop

men

tFe

atur

esFe

atur

es

• No separation of presentation from No separation of presentation from business logicbusiness logic

• No built-in support for up/down level No built-in support for up/down level browsersbrowsers

• Spaghetti codeSpaghetti code• Limited session managementLimited session management

• Clean separation of presentation logic Clean separation of presentation logic from business logicfrom business logic

• Controls render to support browserControls render to support browser• Server controls remove spaghetti codeServer controls remove spaghetti code• Session mgt now supports separate Session mgt now supports separate

session server or db serversession server or db server

• CompiledCompiled• Event-based programmingEvent-based programming• Structured error handlingStructured error handling• Full support for XML data, web Full support for XML data, web

services, XSLT transformationservices, XSLT transformation

Pres

enta

tion

Pres

enta

tion

Tie

rTi

er

• ScriptedScripted• Top-down processingTop-down processing• Limited error handlingLimited error handling• No support for XML/XSLNo support for XML/XSL

Page 22: .NET Overview

Demo

Page 23: .NET Overview

Windows ServicesWindows Services

• Easy to create in any .NET languageEasy to create in any .NET language• INSTALLUTIL supplied by .NET FrameworkINSTALLUTIL supplied by .NET Framework

Page 24: .NET Overview

Smart Device Applications Smart Device Applications (2003)(2003)

• .NET Compact Framework.NET Compact Framework• Created using standard .NET tools and Created using standard .NET tools and

languageslanguages

Page 25: .NET Overview

Demo

Page 26: .NET Overview

Mobile Web Applications Mobile Web Applications (2003)(2003)

• Server controlsServer controls• Markup optimized by deviceMarkup optimized by device• Created using standard .NET tools and Created using standard .NET tools and

languageslanguages

Page 27: .NET Overview

Mobile Web vs. Rich ClientMobile Web vs. Rich Client

• Mobile Web ApplicationsMobile Web Applications• Broad device supportBroad device support

• PocketPC, Palm, RIM, Cell PocketPC, Palm, RIM, Cell phonesphones

• OnlineOnline• Server side logicServer side logic• Browser-based UIBrowser-based UI• No client installationNo client installation

• Smart Device ExtensionsSmart Device Extensions• Target rich clients Target rich clients

• Pocket PC/Phone edition, Pocket PC/Phone edition, Smartphones, Windows Smartphones, Windows CE.NETCE.NET

• Offline and OnlineOffline and Online• Client side logic Client side logic

and dataand data• UI flexibilityUI flexibility• Client side installationClient side installation• Leverage SQL Server CELeverage SQL Server CE

Built in support for XML Web ServicesBuilt in support for XML Web Services

Page 28: .NET Overview

Demo

Page 29: .NET Overview

XML Web ServicesXML Web Services

• Integration between applicationsIntegration between applications• Integration between organizationsIntegration between organizations• Integration between heterogeneous systemsIntegration between heterogeneous systems

.NET Connected Application

Page 30: .NET Overview

XML Web Services ExplainedXML Web Services Explained• Internet connects Internet connects

entities togetherentities together• Email and WWW Email and WWW

inherently cross inherently cross boundariesboundaries

• XML Web Services XML Web Services applies the same applies the same platform neutral platform neutral approach to system approach to system integrationintegration• Platform NeutralPlatform Neutral• Leverage Existing Leverage Existing

StandardsStandards• No Rip and ReplaceNo Rip and Replace

E-mail

ConnectsPeople

WWW

ConnectsPeople to

Information

Web Services

ConnectsApplications

Page 31: .NET Overview

XML Web ServicesXML Web ServicesFoundation for Programmable InternetFoundation for Programmable Internet

• Based on public standardsBased on public standards

• XML, SOAP, XSD, WSDLXML, SOAP, XSD, WSDL

• Not bound to any single platformNot bound to any single platform

• Protocol and format-based contractProtocol and format-based contract

• Loosely coupled programmingLoosely coupled programming

• Preserve and connect existing systemsPreserve and connect existing systems

• Broad industry supportBroad industry support

Page 32: .NET Overview

XML Web Services

XML Web ServicesXML Web Services

J2EE AppJ2EE App BEA WeblogicBEA Weblogic Oracle 8iOracle 8i SolarisSolaris Sun UE 10000Sun UE 10000

SAP R/3SAP R/3 DB2DB2 AIXAIX IBM RS/6000IBM RS/6000

PERLPERL Apache 2.0Apache 2.0 MySQLMySQL LinuxLinux

Language IndependentLanguage Independent

Device IndependentDevice IndependentPlatform IndependentPlatform Independent

Motorola i85sMotorola i85s J2MEJ2ME

Compaq iPAQCompaq iPAQ Windows CEWindows CE StrongARMStrongARM PeopleSoft 7.0PeopleSoft 7.0

SQL 2000SQL 2000 Windows 2000/.NETWindows 2000/.NET HP ProLiantHP ProLiant

Page 33: .NET Overview

• Promoters group for Web servicesPromoters group for Web services• Facilitate customer adoptionFacilitate customer adoption• Ensure interoperability Ensure interoperability • Not a standards bodyNot a standards body

• Industry alignment around Web servicesIndustry alignment around Web services• First testing tools this yearFirst testing tools this year

• More info: More info: http://www.ws-i.orghttp://www.ws-i.org• 100+ member community100+ member community

Page 34: .NET Overview

Microsoft .NETMicrosoft .NETWeb services support across the Microsoft platform Web services support across the Microsoft platform

Tool

sTo

ols

ClientsClients

ServicesServices

ServersServers

Experiences Experiences &

Solutions&

Solutions

Page 35: .NET Overview

Analyst Perspective On .NETAnalyst Perspective On .NET““.NET is a brilliant strategy that enables Microsoft to .NET is a brilliant strategy that enables Microsoft to define the next shift in the software business.” define the next shift in the software business.” Gartner GroupGartner Group““Everyone should build on the Everyone should build on the XML/SOAP foundation.”XML/SOAP foundation.”

Meta GroupMeta Group““Gartner believes Microsoft is Gartner believes Microsoft is now providing more vision and now providing more vision and influence regarding this shift than influence regarding this shift than any other vendor.” any other vendor.”

Gartner GroupGartner Group““.NET is a leading example of .NET is a leading example of what we believe will be the what we believe will be the dominant architectural model for dominant architectural model for the third generation of Internet the third generation of Internet applications.” applications.”

Patricia Seybold GroupPatricia Seybold Group

Completeness of VisionCompleteness of Vision

HPHPOracleOracle

*Source: Gartner Research, 9/13/2001*Source: Gartner Research, 9/13/2001

Gartner Web Services Gartner Web Services Magic QuadrantMagic Quadrant

Abi

li ty

to E

xecu

teA

bili t

y to

Exe

cute

IBMIBM

SunSun

Page 36: .NET Overview

Demo

Page 37: .NET Overview

Pet Shop revisited: Middleware App. Pet Shop revisited: Middleware App. Server & Web Services BenchmarkServer & Web Services Benchmark

• MiddleWare Co. re-test of J2EE vs. .NET Per./ScaleMiddleWare Co. re-test of J2EE vs. .NET Per./Scale• Spent 4 months testing J2EE and .NET reference applicationsSpent 4 months testing J2EE and .NET reference applications

• Developed new J2EE application optimized for performanceDeveloped new J2EE application optimized for performance• Conducted new series of comprehensive benchmarksConducted new series of comprehensive benchmarks• All results taken by and certified by Middleware CompanyAll results taken by and certified by Middleware Company

• Includes Web Application, Web Services and Distributed Includes Web Application, Web Services and Distributed Transaction benchmarksTransaction benchmarks• Report available at Report available at

http://www.middleware-company.com/j2eedotnetbenchhttp://www.middleware-company.com/j2eedotnetbench• Downloadable code, test scripts, discussion forum Downloadable code, test scripts, discussion forum

also availablealso available

Page 38: .NET Overview

Web Application BenchmarkWeb Application BenchmarkTests n-tier Web application hostingTests n-tier Web application hosting

550 MHz Compaq ProLiant 8500

0

1000

2000

3000

4000

5000

6000

7000

8000

J2EE ApplicationServer A

J2EE ApplicationServer B

.NET 1.0/W2K .NET 1.1/Windows.NET

Res

pons

es/s

ec

2CPU

4CPU

8CPU

Windows Server 2003 outperforms Windows Server 2003 outperforms J2EE by 339% on the Web J2EE by 339% on the Web application benchmarkapplication benchmark

Page 39: .NET Overview

Web Services BenchmarkWeb Services BenchmarkWeb Service Hosting PerformanceWeb Service Hosting PerformanceMultiple Clients Making Remote SOAP Requests over HTTPMultiple Clients Making Remote SOAP Requests over HTTP

0

100

200

300

400

500

600

700

800

900

1000

J2EE A J2EE B MS W2K MS Win .NET

SOA

P R

eque

sts/

sec

2CPU

4CPU

8CPU

550 MHz Compaq

.NET Framework 1.1 on Windows Server 2003 .NET Framework 1.1 on Windows Server 2003 outperforms J2EE by 331% in Web service testingoutperforms J2EE by 331% in Web service testing

Page 40: .NET Overview

2096

14004

1002

5567

795

6187

197 197 102

2053

0

2000

4000

6000

8000

10000

12000

14000

16000

Line

s of

Cod

e R

equi

red

Total User Interface Middle Tier Data Tier Config

.NET Implementation

J2EE Implementation

Developer Productivity:Developer Productivity:Comparing .NET And J2EE ImplementationsComparing .NET And J2EE ImplementationsBased on new Middleware J2EE Reference Application with EJBsBased on new Middleware J2EE Reference Application with EJBsand Equivalent .NET Reference Application with C# Componentsand Equivalent .NET Reference Application with C# Components

Optimizing, configuringOptimizing, configuringJ2EE: 10 man-weeks per application serverJ2EE: 10 man-weeks per application server.NET:  2 man-weeks.NET:  2 man-weeks

Page 41: .NET Overview

AgendaAgenda

• .NET Goals.NET Goals• .NET Framework and Languages.NET Framework and Languages• Application TypesApplication Types• Case StudyCase Study

Page 42: .NET Overview

computerjobs.comcomputerjobs.com

Page 43: .NET Overview

computerjobs.comcomputerjobs.com

• 15M hits per month15M hits per month• 800k unique visitors800k unique visitors• 250k resumes250k resumes

Page 44: .NET Overview

CriteriaCriteria

• SpeedSpeed

• StabilityStability

• ProductivityProductivity

• TCOTCO

Page 45: .NET Overview

CriteriaCriteria

• SpeedSpeed• 500% improvement in efficiency500% improvement in efficiency

• StabilityStability

• ProductivityProductivity

• TCOTCO

Page 46: .NET Overview

CriteriaCriteria

• SpeedSpeed• 500% improvement in efficiency500% improvement in efficiency

• StabilityStability• 99.998% uptime99.998% uptime

• ProductivityProductivity

• TCOTCO

Page 47: .NET Overview

CriteriaCriteria

• SpeedSpeed• 500% improvement in efficiency500% improvement in efficiency

• StabilityStability• 99.998% uptime99.998% uptime

• ProductivityProductivity• Development time halvedDevelopment time halved

• TCOTCO

Page 48: .NET Overview

CriteriaCriteria

• SpeedSpeed• 500% improvement in efficiency500% improvement in efficiency

• StabilityStability• 99.998% uptime99.998% uptime

• ProductivityProductivity• Development time halvedDevelopment time halved

• TCOTCO• $100,000 saved in first year$100,000 saved in first year

Page 49: .NET Overview

Q & A ?