Top Banner
danf danf @microsoft.co @microsoft.co m m .NET .NET Laying the groundwork for the next Laying the groundwork for the next generation of Internet applications generation of Internet applications Dan Fay Dan Fay Microsoft Research Microsoft Research University Relations University Relations
58

danf @microsoft

Jan 23, 2016

Download

Documents

rufus

.NET Laying the groundwork for the next generation of Internet applications Dan Fay Microsoft Research University Relations. danf @microsoft.com. What is .NET?. A domain name extension? A Brand? .net = C#? A vision? Set of technologies?. Agenda. Evolution Web Services .NET Vision - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: danf @microsoft

[email protected]@microsoft.com

.NET .NET Laying the groundwork for the next Laying the groundwork for the next generation of Internet applicationsgeneration of Internet applications

Dan FayDan FayMicrosoft ResearchMicrosoft ResearchUniversity RelationsUniversity Relations

Page 2: danf @microsoft

What is .NET?What is .NET?

A domain name extension?A domain name extension? A Brand? A Brand? .net = C#?.net = C#? A vision?A vision? Set of technologies?Set of technologies?

Page 3: danf @microsoft

AgendaAgenda

EvolutionEvolution Web ServicesWeb Services .NET Vision.NET Vision .NET Platform Architecture.NET Platform Architecture

Common Language RuntimeCommon Language Runtime ASP.NETASP.NET .NET Compact Framework.NET Compact Framework

Page 4: danf @microsoft

Evolution of the InternetEvolution of the Internet 11stst Generation: 1994 – 1996 Generation: 1994 – 1996

InfrastructureInfrastructure Static PagesStatic Pages E-mailE-mail Browsers, Web ServersBrowsers, Web Servers

22ndnd Generation: 1996 – 2000 Generation: 1996 – 2000 Dynamic PagesDynamic Pages Personalization, e-commercePersonalization, e-commerce Applets, DatabasesApplets, Databases

Page 5: danf @microsoft

The Future of the InternetThe Future of the Internet

33rdrd Generation Generation Beyond BrowsingBeyond Browsing Integration of InternetIntegration of Internet Web ServicesWeb Services XMLXML

Page 6: danf @microsoft

The .NET EvolutionThe .NET Evolution

Before COM, CORBA, etc applications were completely separate entities with little or no integration

Application

Code and data

structures

Page 7: danf @microsoft

The .NET EvolutionThe .NET Evolution

COM provides a way for components to integrate. However, each component must provide the “plumbing” and objects cannot directly interact.

Page 8: danf @microsoft

The .NET EvolutionThe .NET Evolution

With the .NET Framework common language runtime, components are built on a common substrate. No “plumbing” is needed; objects can directly interact

Page 9: danf @microsoft

Microsoft’s VisionMicrosoft’s Vision

People will use many different kinds People will use many different kinds of devicesof devices

Information will be accessible from Information will be accessible from anywhereanywhere

Information will stay in digital formInformation will stay in digital form Companies will offer services via the Companies will offer services via the

webweb

Page 10: danf @microsoft

Open StandardsOpen Standards

.NET is based on open Internet standards.NET is based on open Internet standards HTTP, HTML, XML, SOAP, WSDL HTTP, HTML, XML, SOAP, WSDL

WWW ConsortiumWWW Consortium

.NET itself is an open standard.NET itself is an open standard ECMA - http://www.ECMA.chECMA - http://www.ECMA.ch ECMA 335ECMA 335 - “Common Language Infrastructure” - “Common Language Infrastructure”

All core .NET Framework Protocols, Formats, & All core .NET Framework Protocols, Formats, & Interfaces Interfaces

ECMA 334ECMA 334 – C# Language Specification – C# Language Specification

UDDI: Directory for web servicesUDDI: Directory for web services Co-Sponsors with Microsoft - HP, Intel, IBM, Co-Sponsors with Microsoft - HP, Intel, IBM,

Ariba… Ariba…

Page 11: danf @microsoft

Shared Source Shared Source Implementation of the CLI Implementation of the CLI

(ROtOR)(ROtOR) source and binariessource and binaries ref implementation of ECMA specsref implementation of ECMA specs includes C# & JScript compilersincludes C# & JScript compilers subset of the V1 .Net Frameworks subset of the V1 .Net Frameworks on both on both WindowsWindows and and FreeBSDFreeBSD intended for teaching and researchintended for teaching and research liberal license, no taintingliberal license, no tainting available first half of 2002available first half of 2002

Page 12: danf @microsoft

The Web Services RevolutionThe Web Services RevolutionA New Programming ParadigmA New Programming Paradigm

Integration Is IntrinsicIntegration Is Intrinsic An industry initiativeAn industry initiative Based on cross-platform standardsBased on cross-platform standards Data and servicesData and services

Software As A ServiceSoftware As A Service Operate locally or hostedOperate locally or hosted ProgrammabilityProgrammability Any place, any time, any deviceAny place, any time, any device

Page 13: danf @microsoft

Database

Web ServiceWeb ServiceWeb Service

Page 14: danf @microsoft

Web Web ApplicationApplication

.NET Applications.NET Applications

Web Web ServiceService

XMLXML

““Building Block Building Block Services”Services”HTML

HTML

ClientClient

XML

XML

ClientClientXMLXML

Web Web ServiceService

XMLXML

Web Web ServiceService

XMLXML

XM

LX

ML

Page 15: danf @microsoft

University University PortalPortal

.NET Applications.NET Applications

SearchSearchServiceService

XMLXML

““Building Block Building Block Services”Services”HTML

HTML

ClientClient

XML

XML

ClientClientXMLXML

CourseCourseCatalogCatalog

XMLXML

StudentStudentDataData

XMLXML

XM

LX

ML

Page 16: danf @microsoft

SOAPSOAP Web Service consumers can send and Web Service consumers can send and receive messages using SOAP receive messages using SOAP

Web ServicesWeb ServicesDescription LanguageDescription Language

Web Services are defined in terms of the Web Services are defined in terms of the formats and ordering of messagesformats and ordering of messages

UDDIUDDI You can ask a site or device for a You can ask a site or device for a

description of its Web Services, or use description of its Web Services, or use a directory service such as UDDIa directory service such as UDDI

All these capabilities are built using All these capabilities are built using open Internet protocols open Internet protocols XML, HTTPXML, HTTP

What is a Web Service? What is a Web Service?

Open Internet Protocols

Web Web ServiceService

A programmable application A programmable application component accessible via standard component accessible via standard Internet protocolsInternet protocols

Page 17: danf @microsoft

Creating Web ServicesCreating Web Services

ASP.NETASP.NET Easiest way to create web servicesEasiest way to create web services

SOAP Toolkit V2 (VS6) – MSDN SOAP Toolkit V2 (VS6) – MSDN http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/

SOAP Toolkits for SOAP Toolkits for Apache - Apache - http://xml.apache.org/soap/http://xml.apache.org/soap/ XMethods http://www.xmethods.netXMethods http://www.xmethods.net ……

Page 18: danf @microsoft

Web ServicesWeb Services

Example ServicesExample Services MIT – www.devhood.comMIT – www.devhood.com TerraServer – terraservice.netTerraServer – terraservice.net

List of Web ServicesList of Web Services www.Uddi.orgwww.Uddi.org www.XMethods.netwww.XMethods.net www.GotDotNet.comwww.GotDotNet.com www.SalCentral.comwww.SalCentral.com www.Microsoft.com/MyServiceswww.Microsoft.com/MyServices

Web Services Competition Web Services Competition www.webservicescontest.comwww.webservicescontest.com

Page 19: danf @microsoft

Building On An XML Building On An XML FoundationFoundation

Page 20: danf @microsoft

Benefits Of XML FoundationBenefits Of XML FoundationUser:User: Beyond browsing Beyond browsing Access and act on informationAccess and act on information Greater control, better decision-making, Greater control, better decision-making,

easier collaborationeasier collaboration Optimal support for different devicesOptimal support for different devices

Business:Business: Integration Integration by designby design Best-of-breed internally and externallyBest-of-breed internally and externally Business processes and partnersBusiness processes and partners Agility to run, adapt business betterAgility to run, adapt business better

Industry:Industry: New opportunities New opportunities Don’t have to do it all yourselfDon’t have to do it all yourself Make your value easier to consumeMake your value easier to consume ““Plug and play” business relationshipsPlug and play” business relationships

Page 21: danf @microsoft

ToolsTools Enterprise ServersEnterprise Servers

DevicesDevicesBuilding BlockBuilding Block

ServicesServices

Page 22: danf @microsoft

ToolsTools.NET Framework.NET Framework

Visual Studio.NETVisual Studio.NETEnterprise ServersEnterprise Servers

DevicesDevices.NET Compact FW.NET Compact FW

.NET Foundation .NET Foundation ServicesServicesIdentityIdentity

NotificationNotificationStorageStorage

Page 23: danf @microsoft

Microsoft .NET Microsoft .NET A Software Platform for XML Web ServicesA Software Platform for XML Web Services

Bring distributed computing to the InternetBring distributed computing to the Internet Spans clients, servers and servicesSpans clients, servers and services Consistent programming modelConsistent programming model Interoperable via XML Web ServicesInteroperable via XML Web Services Key capabilitiesKey capabilities

Deliver software as a serviceDeliver software as a service Integration becomes intrinsicIntegration becomes intrinsic Enable smart, service-aware systemsEnable smart, service-aware systems New, richer user experiencesNew, richer user experiences

The .NET Framework is the The .NET Framework is the programming-model substrate programming-model substrate for the .NET visionfor the .NET vision

Page 24: danf @microsoft

.NET Framework.NET Framework

Unified programming modelUnified programming model Delivers XML Web ServicesDelivers XML Web Services Spans clients, servers, servicesSpans clients, servers, services

Improved developer productivityImproved developer productivity Design time supportDesign time support Focus on business logic, not plumbingFocus on business logic, not plumbing

Simplified deployment and Simplified deployment and maintenancemaintenance

Great performanceGreat performance Intense focus on securityIntense focus on security

Page 25: danf @microsoft

Operating SystemOperating System

Common Language Runtime (CLR)

Inside the .NET FrameworkInside the .NET Framework

Base Framework

Data and XML

Web Services User Interface

VB C++ C#

ASP.NET

J# Python …

Secure, integrated class libraries

•Unifies programming models across languages

•Enables cross-language integration

•Factored for extensibility

•Designed for tools

Secure, integrated class libraries

•Unifies programming models across languages

•Enables cross-language integration

•Factored for extensibility

•Designed for tools

Common Language Runtime

Executes code, maintains security, handles component “plumbing” and dependencies

Common Language Runtime

Executes code, maintains security, handles component “plumbing” and dependencies

ASP.NET

High-productivity environment for building and running Web services

ASP.NET

High-productivity environment for building and running Web services

Page 26: danf @microsoft

Common Language RuntimeCommon Language Runtime Manages running codeManages running code

ThreadingThreading Memory managementMemory management

Fine-grained evidence-based securityFine-grained evidence-based security Code access securityCode access security Role-based securityRole-based security Integrated with underlying OSIntegrated with underlying OS

No-touch deploymentNo-touch deployment Object remoting with SOAPObject remoting with SOAP

Communication ProtocolsCommunication ProtocolsXML, SOAP, HTTP, HTMLXML, SOAP, HTTP, HTML

.NET Framework.NET Framework

Visual Studio .NETVisual Studio .NET

Page 27: danf @microsoft

One Runtime For All One Runtime For All LanguagesLanguages CLR is an open standardCLR is an open standard Any language can make use of CLR Any language can make use of CLR

servicesservices Any language can use classes written Any language can use classes written

in any other language (consumer)in any other language (consumer) Any language can (code) inherit Any language can (code) inherit

classes written in any other language classes written in any other language (extender)(extender)

A language can become a providerA language can become a provider

Page 28: danf @microsoft

AdaAda

APLAPL

Basic (Visual Basic)Basic (Visual Basic)

C#C#

CC

C++C++

COBOLCOBOL

Component PascalComponent Pascal(Queensland Univ of Tech)(Queensland Univ of Tech)

ECMAScript (JScript)ECMAScript (JScript)

Eiffel (Eiffel (Monash University)Monash University)

Haskell Haskell (Utrecht University)(Utrecht University)

Java LanguageJava Language

Current List of LanguagesCurrent List of Languageslcc lcc

(MS Research Redmond)(MS Research Redmond)

Mondrian Mondrian (Utrecht)(Utrecht)

ML ML (MS Research Cambridge)(MS Research Cambridge)

Mercury Mercury (Melbourne U.) (Melbourne U.)

Oberon Oberon (Zurich University)(Zurich University)

Oz (Oz (Univ of Saarlandes)Univ of Saarlandes)

PerlPerl

PythonPython

Scheme Scheme (Northwestern U.)(Northwestern U.)

SmallTalkSmallTalk

Page 29: danf @microsoft

string s = "authors";SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn);cmd.ExecuteReader();

C#C#

Dim s as Strings = "authors"Dim cmd As New SqlCommand("select * from " & s, sqlconn)cmd.ExecuteReader()

VB.NETVB.NET

Broad Language SupportBroad Language Support

C++C++String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s),

sqlconn); cmd.ExecuteReader();

Page 30: danf @microsoft

Broad Language SupportBroad Language SupportJ#J#String s = "authors";

SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn);

cmd.ExecuteReader();

Page 31: danf @microsoft

String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s), sqlconn); cmd.ExecuteReader();

PerlPerl

s = "authors"cmd =SqlCommand("select * from " + s, sqlconn)cmd.ExecuteReader()

PythonPython

var s = "authors"var cmd = new SqlCommand("select * from " + s, sqlconn)cmd.ExecuteReader()

JScriptJScript

Broad Language SupportBroad Language Support

Page 32: danf @microsoft

ENVIRONMENT DIVISION.CONFIGURATION SECTION.REPOSITORY. CLASS SqlCommand AS "System.Data.SqlClient.SqlCommand"    CLASS SqlConnection AS "System.Data.SqlClient.SqlConnection".DATA DIVISION.WORKING-STORAGE SECTION.01 str PIC X(50).01 cmd-string PIC X(50).01 cmd OBJECT REFERENCE SqlCommand.01 sqlconn OBJECT REFERENCE SqlConnection.PROCEDURE DIVISION. *> Establish the SQL connection here somewhere.MOVE "authors" TO str.STRING "select * from " DELIMITED BY SIZE,   str DELIMITED BY " " INTO cmd-string.INVOKE SqlCommand "NEW" USING BY VALUE cmd-string sqlconn RETURNING cmd.INVOKE cmd "ExecuteReader".

CobolCobol

Broad Language SupportBroad Language Support

Page 33: danf @microsoft

assembly_external(name="System.Data.SqlClient.SqlCommand")sqlcmdcharacter*10 xsqlcmd Cmd x='authors'cmd = sqlcmd("select * from "//x, sqlconn)           call cmd.ExecuteReader()end 

FortranFortran

  DclFld MyInstObj Type( System.Data.SqlClient.SqlCommand ) DclFld s Type( *string ) s = "authors" MyInstObj = New System.Data.SqlClient.SqlCommand("select *

from "+s, sqlconn) MyInstObj.ExecuteReader()

RPGRPG

Broad Language SupportBroad Language Support

Page 34: danf @microsoft

Broad Language SupportBroad Language Support

    |s| := 'authors'.    |cmd| := SqlCommand('select * from '+s, sqlconn).    cmd.ExecuteReader().

SmalltalkSmalltalk

APLAPLs←String.New ‘authors’cmd←SqlCommand.New (‘select * from ‘,s.ToString σ) sqlconncmd.ExecuteReader

Page 35: danf @microsoft

(let* ( (s "authors")  (cmd (new-SqlCommand (string-append "select * from " s) sqlconn)))(execute-command cmd))

SchemeScheme

ExecuteReader = invoke System.Data.SqlClient.ExecuteReader();SqlCommand = create System.Data.SqlClient.SqlCommand(String,\ System.Data.SqlClient.SqlConnection);query = sqlconn -> let{ s = "authors"; } in {   cmd <- SqlCommand ("select * from "+s, sqlconn);   cmd # ExecuteReader();    };  MondrianMondrian

local      s: STRING      cmd: SQLCOMMANDdo      s := "authors"      create cmd("select * from " + s, sqlconn)      cmd.ExecuteReader()end

EiffelEiffel

Broad Language SupportBroad Language Support

Page 36: danf @microsoft

CompilerCompiler AssemblyAssemblyAssemblyAssembly

Common Language RuntimeCommon Language RuntimeDEVELOPMENTDEVELOPMENT

C#C#J#J#VBVB

CobolCobol……

MSILMSILMetadataMetadata

ResourcesResources

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

Source codeSource code

Page 37: danf @microsoft

CompilerCompiler AssemblyAssemblyAssemblyAssembly

DEVELOPMENTDEVELOPMENT

C#C#J#J#VBVB

CobolCobol……

MSILMSILMetadataMetadata

ResourcesResources

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

public static void Main(String[] args ){ String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); }}

Source codeSource code

ApplicationApplicationDirectoryDirectory

ApplicationApplicationDirectoryDirectory

GlobalGlobalAssemblyAssembly

Cache (GAC)Cache (GAC)

GlobalGlobalAssemblyAssembly

Cache (GAC)Cache (GAC)

Common Language RuntimeCommon Language Runtime

AssemblyAssemblyAssemblyAssembly

DEVELOPMENTDEVELOPMENT DEPLOYMENTDEPLOYMENT

SetupSetupCopyCopy

BrowserBrowser

Download Download CacheCache

Download Download CacheCache

InstallInstall

Page 38: danf @microsoft

Debug EngineDebug Engine

IL to NativeIL to NativeCompilerCompiler

ApplicationApplicationDirectoryDirectory

ApplicationApplicationDirectoryDirectory

SetupSetupCopyCopy

BrowserBrowser

Download Download CacheCache

Download Download CacheCache

GlobalGlobalAssemblyAssembly

Cache (GAC)Cache (GAC)

GlobalGlobalAssemblyAssembly

Cache (GAC)Cache (GAC)

AssemblyAssemblyon Target on Target MachineMachine

AssemblyAssemblyon Target on Target MachineMachine

Common Language RuntimeCommon Language Runtime

AssemblyAssemblyAssemblyAssembly

DEVELOPMENTDEVELOPMENT DEPLOYMENTDEPLOYMENT

InstallInstall

EXECUTIONEXECUTION

AssemblyAssemblyLoaderLoaderSecuritySecurityClass Class

LoaderLoader

Native .exe Native .exe + GC table + GC table Native .exe Native .exe + GC table + GC table

Code Code ManagerManager

Garbage CollectionGarbage Collection

Exception ManagerException Manager

Thread SupportThread Support

COM InteropCOM Interop

Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

Page 39: danf @microsoft

ASP.NET Web Service ASP.NET Web Service DemoDemo

Page 40: danf @microsoft

Same programming modelSame programming model Same set of toolsSame set of tools Same application architecturesSame application architectures

.NET For Devices.NET For Devices

rich clientrich client

rich webrich web

Page 41: danf @microsoft

Rich Web ApplicationsRich Web Applications

Visual Studio .NETVisual Studio .NET Mobile Internet ToolkitMobile Internet Toolkit

Over 75 device modelsOver 75 device models

rich webrich web

code on servercode on server

Page 42: danf @microsoft

Mobile Internet ToolkitMobile Internet Toolkit

Common Language Common Language RuntimeRuntime

Base ClassesBase Classes

ASP.NETASP.NET

Windows Windows FormsFormsW

eb

Web

F

orm

sF

orm

s

Web

W

eb

Ser

vice

sS

ervi

ces

Extends ASP.NET to Extends ASP.NET to mobile device web mobile device web browsersbrowsers

Extends VS.NET to Extends VS.NET to build mobile forms build mobile forms and controlsand controls

Visu

al S

tud

io .N

ET

Visu

al S

tud

io .N

ET

Page 43: danf @microsoft

Mobile Internet Toolkit Mobile Internet Toolkit BenefitsBenefits

Richest user experienceRichest user experience Adaptive mobile web applicationsAdaptive mobile web applications Leverage full browser capabilitiesLeverage full browser capabilities Customizable and extensible frameworkCustomizable and extensible framework

End-to-end integrationEnd-to-end integration Clients, Server and ServicesClients, Server and Services

Best developer productivityBest developer productivity Single code baseSingle code base Great designer and emulator supportGreat designer and emulator support

Page 44: danf @microsoft

Rich Client ApplicationsRich Client Applications

rich clientrich client

code on devicecode on device

Today:Today: eMbedded Visual ToolseMbedded Visual Tools

New with .NET:New with .NET: Smart Device Extensions Smart Device Extensions

for Visual Studio .NETfor Visual Studio .NET .NET Compact Framework.NET Compact Framework

Ilya Bukshteyn
explain biz opptyenterprise-class devicespocket pcwce .NET devicesphones ???
Page 45: danf @microsoft

ASP.NETWeb Forms Web Services

Mobile Internet Toolkit Smart Device Smart Device Extensions for Extensions for Visual Studio .NETVisual Studio .NET VC#, VB .NETVC#, VB .NET DesignersDesigners RAD for devicesRAD for devices

Visu

al Stu

dio

.NE

TV

isual S

tud

io .N

ET

Common Language RuntimeCommon Language Runtime

Base Class LibraryBase Class Library

ADO.NET and XMLADO.NET and XML

WindowsWindowsFormsForms

.NET Compact Framework.NET Compact Framework Lightweight architectureLightweight architecture Compatible feature subset Compatible feature subset Broad availabilityBroad availability

Platform And ToolsPlatform And Tools

Page 46: danf @microsoft

.NET Compact Framework .NET Compact Framework BenefitsBenefits

Richest user experienceRichest user experience Local intelligence and dataLocal intelligence and data Online and offlineOnline and offline Leverage full capabilities of Leverage full capabilities of

devicedevice End-to-end integrationEnd-to-end integration

Clients, Server and ServicesClients, Server and Services Best developer productivityBest developer productivity

Languages, Tools, PlatformLanguages, Tools, Platform Skills transferSkills transfer

Sca

lab

le A

rch

itec

ture

Sca

lab

le A

rch

itec

ture

Page 47: danf @microsoft

Visual Studio.NETVisual Studio.NET ““Drag and Drop” Web application and services Drag and Drop” Web application and services

developmentdevelopment Fully supports .NET FrameworkFully supports .NET Framework Multi-language supportMulti-language support Open, extensible development environmentOpen, extensible development environment

Languages focus on compiler – not UILanguages focus on compiler – not UI Consistent set of tools across languagesConsistent set of tools across languages

Page 48: danf @microsoft

OpportunitiesOpportunities

StudentsStudents Use C# or any .NET programming Use C# or any .NET programming

languagelanguage Create new Languages and Compilers Create new Languages and Compilers

Target CLR/ILTarget CLR/IL Create Peer-to-Peer Apps Create Peer-to-Peer Apps Expose Web Sites via Web ServicesExpose Web Sites via Web Services

Page 49: danf @microsoft

OpportunitiesOpportunities

ResearchResearch LanguagesLanguages Distributed ComputingDistributed Computing SecuritySecurity Mobile Devices/Ubiquitous ComputingMobile Devices/Ubiquitous Computing

CurriculumCurriculum Intro to ProgrammingIntro to Programming CompilersCompilers DatabaseDatabase Software EngineeringSoftware Engineering Embedded DevicesEmbedded Devices othersothersCourses Currently at:Courses Currently at:

Yale, Arizona, MIT, Indiana Univ, BU, Monash, ETH Yale, Arizona, MIT, Indiana Univ, BU, Monash, ETH Zurich, etc.Zurich, etc.

Page 50: danf @microsoft

SummarySummary .NET Framework enables a new generation of .NET Framework enables a new generation of

distributed web applications and servicesdistributed web applications and services A leap forward in developer productivityA leap forward in developer productivity Improved operationsImproved operations Deep integrationDeep integration

.NET is open.NET is open Open protocols are the core building blockOpen protocols are the core building block Standardization is a key tenetStandardization is a key tenet

.NET is about all kinds of computing devices.NET is about all kinds of computing devices Common framework, consistent paradigmCommon framework, consistent paradigm Apps and platform are portable, adaptableApps and platform are portable, adaptable Devices grow richer by adding secure codeDevices grow richer by adding secure code Devices plug natively into Web ServicesDevices plug natively into Web Services

Page 51: danf @microsoft

How do you get started?How do you get started?

Get the .NET Framework SDKGet the .NET Framework SDK Download from the WebDownload from the Web

http://msdn.microsoft.com/nethttp://msdn.microsoft.com/net Choose your Programming LanguageChoose your Programming Language Pick your favorite Dev ToolPick your favorite Dev Tool

Visual Studio .NETVisual Studio .NET NotepadNotepad EmacsEmacs SlickEditSlickEdit UltraEditUltraEdit

Check out following sitesCheck out following sites www.gotdotnet.comwww.gotdotnet.com www.asp.netwww.asp.net

Page 52: danf @microsoft

Resources - WResources - Web Siteseb Sites

www.GotDotNet.com – Community Sitewww.GotDotNet.com – Community Sitewww.ASP.net – ASP.NET www.ASP.net – ASP.NET www.microsoft.com/net - .NET Infowww.microsoft.com/net - .NET InfoMsdn.microsoft.com/net - .NET Dev SiteMsdn.microsoft.com/net - .NET Dev Sitewww.DotNetBooks.com - .NET Bookswww.DotNetBooks.com - .NET Bookswww.xmethods.net – List of Web Serviceswww.xmethods.net – List of Web Serviceswww.DevHood.com – Student Dev Sitewww.DevHood.com – Student Dev Site

Page 53: danf @microsoft

Find Out More about .NETFind Out More about .NET msdn.microsoft.commsdn.microsoft.com/NET/NET

Download developer docsDownload developer docs Download .NET SDKDownload .NET SDK Download Visual Studio.NET (universal subscribers)Download Visual Studio.NET (universal subscribers)

News and Discussion GroupsNews and Discussion Groups news://msnews.microsoft.com/microsoft.public.dotnet.academicnews://msnews.microsoft.com/microsoft.public.dotnet.academic MSDN Online articles: MSDN Online articles:

http://msdn.microsoft.com/msdnmag http://msdn.microsoft.com/msdnmag http://discuss.develop.comhttp://discuss.develop.com http://asplists.comhttp://asplists.com

Public Sample Applications: Public Sample Applications: www.ibuyspy.com: ASP.NET running livewww.ibuyspy.com: ASP.NET running live www.fmexpense.com: ASP.NET with mobile controlswww.fmexpense.com: ASP.NET with mobile controls

Books – www.dotnetbooks.comBooks – www.dotnetbooks.com

Page 54: danf @microsoft

Dan FayDan [email protected]@microsoft.com

Page 55: danf @microsoft
Page 56: danf @microsoft

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NETWeb Forms Web Services

Mobile Devices

WindowsForms

.NET Framework .NET Framework CommunicationCommunication

ASP.NET Web ServicesASP.NET Web Services HTTP messages call methodsHTTP messages call methods Simple deploymentSimple deployment

System.RemotingSystem.Remoting Full object fidelityFull object fidelity Any transport or formatAny transport or format

System.NetSystem.Net Full protocol stackFull protocol stack Lightweight for client, scalable Lightweight for client, scalable

on the serveron the server System.MessagingSystem.Messaging

Reliable, guaranteed deliveryReliable, guaranteed delivery Fully transactedFully transacted

Page 57: danf @microsoft

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NETWeb Forms Web Services

Mobile Devices

WindowsForms

.NET Framework Data.NET Framework Data

ADO.NETADO.NET Fastest way to access SQLFastest way to access SQL Native XML supportNative XML support Managed providers give Managed providers give

stream-level access stream-level access

System.XmlSystem.Xml Great support for XSLT 1.0, Great support for XSLT 1.0,

XPath 1.0, XSD 1.0, DOM2XPath 1.0, XSD 1.0, DOM2 Extensible architectureExtensible architecture

XSLT/XPathXSLT/XPath Transforms on relational dataTransforms on relational data W3C compliantW3C compliant

Page 58: danf @microsoft

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NETWeb Forms Web Services

Mobile Devices

WindowsForms

.NET Framework .NET Framework PresentationPresentation

Windows FormsWindows Forms Richest framework for Richest framework for

Windows applicationsWindows applications Visual forms inheritance, Visual forms inheritance,

automatic layout provide power automatic layout provide power and flexibilityand flexibility

ASP.NET Web FormsASP.NET Web Forms Component based, event Component based, event

driven page architecturedriven page architecture Rich and reach requires no Rich and reach requires no

new codenew code ASP.NET Mobile Internet ASP.NET Mobile Internet

ToolkitToolkit Target broad range of mobile Target broad range of mobile

devices devices