Presentation is loading. Please wait.

Presentation is loading. Please wait.

Laying the groundwork for the next generation of Internet applications Dan Fay Microsoft Research University Relations.

Similar presentations


Presentation on theme: "Laying the groundwork for the next generation of Internet applications Dan Fay Microsoft Research University Relations."— Presentation transcript:

1 danf@microsoft.com.NET Laying the groundwork for the next generation of Internet applications Dan Fay Microsoft Research University Relations

2 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?

3 Agenda Evolution Evolution Web Services Web Services.NET Vision.NET Vision.NET Platform Architecture.NET Platform Architecture  Common Language Runtime  ASP.NET .NET Compact Framework

4 Evolution of the Internet 1 st Generation: 1994 – 1996 1 st Generation: 1994 – 1996  Infrastructure  Static Pages  E-mail  Browsers, Web Servers 2 nd Generation: 1996 – 2000 2 nd Generation: 1996 – 2000  Dynamic Pages  Personalization, e-commerce  Applets, Databases

5 The Future of the Internet 3 rd Generation 3 rd Generation  Beyond Browsing  Integration of Internet  Web Services  XML

6 The.NET Evolution Before COM, CORBA, etc applications were completely separate entities with little or no integration Applicatio n Code and data structures

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

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

9 Microsoft.NET Move towards a service oriented business model Move towards a service oriented business model Provides a platform and tools for service providers Provides a platform and tools for service providers Integrate and connect many different kinds of devices over Internet Integrate and connect many different kinds of devices over Internet

10 Microsoft’s Vision People will use many different kinds of devices People will use many different kinds of devices Information will be accessible from anywhere Information will be accessible from anywhere Information will stay in digital form Information will stay in digital form Companies will offer services via the web Companies will offer services via the web

11 Open Standards.NET is based on open Internet standards.NET is based on open Internet standards  HTTP, HTML, XML, SOAP, WSDL WWW Consortium.NET itself is an open standard.NET itself is an open standard  ECMA - http://www.ECMA.ch http://www.ECMA.ch  ECMA 335 - “Common Language Infrastructure” All core.NET Framework Protocols, Formats, & Interfaces  ECMA 334 – C# Language Specification UDDI: Directory for web services UDDI: Directory for web services Co-Sponsors with Microsoft - HP, Intel, IBM, Ariba… Co-Sponsors with Microsoft - HP, Intel, IBM, Ariba…

12 Shared Source Implementation of the CLI (ROtOR) source and binaries source and binaries ref implementation of ECMA specs ref implementation of ECMA specs includes C# & JScript compilers includes C# & JScript compilers subset of the V1.Net Frameworks subset of the V1.Net Frameworks on both Windows and FreeBSD on both Windows and FreeBSD intended for teaching and research intended for teaching and research liberal license, no tainting liberal license, no tainting available first half of 2002 available first half of 2002

13 The Web Services Revolution A New Programming Paradigm Integration Is Intrinsic Integration Is Intrinsic  An industry initiative  Based on cross-platform standards  Data and services Software As A Service Software As A Service  Operate locally or hosted  Programmability  Any place, any time, any device

14 Database Web Service

15 WebApplication.NET Applications WebService XML “Building Block Services” HTML Client XML Client XML WebService XML WebService XML XML

16 UniversityPortal.NET Applications SearchService XML “Building Block Services” HTML Client XML Client XML CourseCatalog XML StudentData XML XML

17 Moving to Web Services SmarterBrowsers SmarterClients Smarter Devices Open Internet Communications Protocols (HTTP, XML, SOAP, UDDI) Richer, More Productive User Experience Applications Leverage Globally-Available Federated Web Services Applications Become Programmable Web Services Other Services Services Servers Data, Hosts Building Block Services University IT Services Public Web Services OS Services Biz Tier Logic Biz Logic & Web Service OS Services

18 SOAP Web Service consumers can send and receive messages using SOAP Web Service consumers can send and receive messages using SOAP Web Services Description Language Web Services are defined in terms of the formats and ordering of messages Web Services are defined in terms of the formats and ordering of messages UDDI You can ask a site or device for a description of its Web Services, or use a directory service such as UDDI You can ask a site or device for a description of its Web Services, or use a directory service such as UDDI All these capabilities are built using open Internet protocols All these capabilities are built using open Internet protocols XML, HTTP What is a Web Service? Open Internet Protocols Web Service A programmable application component accessible via standard Internet protocols

19 XML Web Services Foundation Simple, Open, Broad Industry Support Publish, Find, Use Services: UDDI Service Interactions: SOAP Universal Data Format: XML Ubiquitous Communications: Internet

20 Creating Web Services ASP.NET ASP.NET  Easiest 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 - http://xml.apache.org/soap/ http://xml.apache.org/soap/  XMethods http://www.xmethods.net http://www.xmethods.net  …

21 Web Services Example Services Example Services  MIT – www.devhood.com www.devhood.com  TerraServer – terraservice.net terraservice.net List of Web Services List of Web Services  www.Uddi.org www.Uddi.org  www.XMethods.net www.XMethods.net  www.GotDotNet.com www.GotDotNet.com  www.SalCentral.com www.SalCentral.com  www.Microsoft.com/MyServices www.Microsoft.com/MyServices Web Services Competition www.webservicescontest.com Web Services Competition www.webservicescontest.com www.webservicescontest.com

22 Building On An XML Foundation

23 Benefits Of XML Foundation User: Beyond browsing  Access and act on information  Greater control, better decision-making, easier collaboration  Optimal support for different devices Business: Integration by design  Best-of-breed internally and externally  Business processes and partners  Agility to run, adapt business better Industry: New opportunities  Don’t have to do it all yourself  Make your value easier to consume  “Plug and play” business relationships

24 Tools Enterprise Servers Devices Building Block Services

25 Tools.NET Framework Visual Studio.NET Enterprise Servers Devices.NET Compact FW.NET Foundation Services IdentityNotificationStorage

26 Microsoft.NET A Software Platform for XML Web Services Bring distributed computing to the Internet Bring distributed computing to the Internet Spans clients, servers and services Spans clients, servers and services Consistent programming model Consistent programming model Interoperable via XML Web Services Interoperable via XML Web Services Key capabilities Key capabilities  Deliver software as a service  Integration becomes intrinsic  Enable smart, service-aware systems  New, richer user experiences The.NET Framework is the programming-model substrate for the.NET vision The.NET Framework is the programming-model substrate for the.NET vision

27 .NET Framework Unified programming model Unified programming model  Delivers XML Web Services  Spans clients, servers, services Improved developer productivity Improved developer productivity  Design time support  Focus on business logic, not plumbing Simplified deployment and maintenance Simplified deployment and maintenance Great performance Great performance Intense focus on security Intense focus on security

28 Operating System Common Language Runtime (CLR) Inside the.NET Framework Base Framework Data and XML Web ServicesUser Interface VBC++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

29 Common Language Runtime Manages running code Manages running code  Threading  Memory management Fine-grained evidence-based security Fine-grained evidence-based security  Code access security  Role-based security  Integrated with underlying OS No-touch deployment No-touch deployment Object remoting with SOAP Object remoting with SOAP Communication Protocols XML, SOAP, HTTP, HTML.NET Framework Visual Studio.NET

30 Runtime Benefits Eliminates memory management drudgery Eliminates memory management drudgery Kills entire classes of bugs (e.g., memory corruption, ref counting) Kills entire classes of bugs (e.g., memory corruption, ref counting) Security model ensures safety Security model ensures safety XCOPY deployment, no registry required XCOPY deployment, no registry required Auto-versioning, no more DLL Hell Auto-versioning, no more DLL Hell Scalability, performance, reliability all improve Scalability, performance, reliability all improve

31 One Runtime For All Languages CLR is an open standard CLR is an open standard Any language can make use of CLR services Any language can make use of CLR services Any language can use classes written in any other language (consumer) Any language can use classes written in any other language (consumer) Any language can (code) inherit classes written in any other language (extender) Any language can (code) inherit classes written in any other language (extender) A language can become a provider A language can become a provider

32 AdaAPL Basic (Visual Basic) C#CC++COBOL Component Pascal (Queensland Univ of Tech) ECMAScript (JScript) Eiffel ( Monash University) Haskell (Utrecht University) Java Language Current List of Languages lcc (MS Research Redmond) Mondrian (Utrecht) ML (MS Research Cambridge) Mercury (Melbourne U.) Oberon (Zurich University) Oz ( Univ of Saarlandes) PerlPython Scheme (Northwestern U.) SmallTalk

33 string s = "authors"; SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn); cmd.ExecuteReader(); C# Dim s as String s = "authors" Dim cmd As New SqlCommand("select * from " & s, sqlconn) cmd.ExecuteReader() VB.NET Broad Language Support C++ String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s), sqlconn); cmd.ExecuteReader();

34 Broad Language Support J# String s = "authors"; SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn); cmd.ExecuteReader();

35 String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s), sqlconn); cmd.ExecuteReader(); Perl s = "authors" cmd =SqlCommand("select * from " + s, sqlconn) cmd.ExecuteReader() Python var s = "authors" var cmd = new SqlCommand("select * from " + s, sqlconn) cmd.ExecuteReader() JScript Broad Language Support

36 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".Cobol Broad Language Support

37 assembly_external(name="System.Data.SqlClient.SqlCommand") sqlcmdcharacter*10 xsqlcmd Cmd x='authors' cmd = sqlcmd("select * from "//x, sqlconn) call cmd.ExecuteReader() end Fortran 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() RPG Broad Language Support

38 |s| := 'authors'. |cmd| := SqlCommand('select * from '+s, sqlconn). cmd.ExecuteReader(). Smalltalk APL s ← String.New ‘authors’ cmd ← SqlCommand.New (‘select * from ‘,s.ToString σ ) sqlconn cmd.ExecuteReader

39 (let* ( (s "authors") (cmd (new-SqlCommand (string-append "select * from " s) sqlconn))) (execute-command cmd)) Scheme 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(); }; Mondrian local s: STRING cmd: SQLCOMMAND do s := "authors" create cmd("select * from " + s, sqlconn) cmd.ExecuteReader() end Eiffel Broad Language Support

40 Compiler Assembly Common Language Runtime DEVELOPMENT C#J#VBCobol… MSILMetadataResources 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 code

41 Compiler AssemblyDEVELOPMENTC#J#VBCobol… MSILMetadataResources 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 code Application Directory Global Assembly Cache (GAC) Common Language Runtime AssemblyDEVELOPMENTDEPLOYMENT SetupCopyBrowser Download Cache Install

42 Debug Engine IL to Native Compiler Application Directory SetupCopyBrowser Download Cache Global Assembly Cache (GAC) Assembly on Target Machine Common Language Runtime AssemblyDEVELOPMENTDEPLOYMENT Install EXECUTION AssemblyLoader Security Class Loader Native.exe + GC table Code Manager Garbage Collection Exception Manager Thread Support COM Interop Policy <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissio ns and forms the root of the code group tree."> <IMembershipCondition clas s="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

43 ASP.NET Web Service Demo

44 Same programming model Same programming model Same set of tools Same set of tools Same application architectures Same application architectures.NET For Devices rich client rich web

45 Rich Web Applications Visual Studio.NET Visual Studio.NET Mobile Internet Toolkit Mobile Internet Toolkit Over 75 device models Over 75 device models rich web code on server

46 Mobile Internet Toolkit Common Language Runtime Base Classes ASP.NET Windows Forms Web Forms Web Services Extends ASP.NET to mobile device web browsers Extends VS.NET to build mobile forms and controls Visual Studio.NET

47 Mobile Internet Toolkit Benefits Richest user experience Richest user experience  Adaptive mobile web applications  Leverage full browser capabilities  Customizable and extensible framework End-to-end integration End-to-end integration  Clients, Server and Services Best developer productivity Best developer productivity  Single code base  Great designer and emulator support

48 Rich Client Applications rich client code on device Today: eMbedded Visual Tools eMbedded Visual Tools New with.NET: Smart Device Extensions for Visual Studio.NET Smart Device Extensions for Visual Studio.NET.NET Compact Framework.NET Compact Framework

49 ASP.NET Web Forms Web Services Mobile Internet Toolkit Smart Device Extensions for Visual Studio.NET  VC#, VB.NET  Designers  RAD for devices Visual Studio.NET Common Language Runtime Base Class Library ADO.NET and XML WindowsForms.NET Compact Framework.NET Compact Framework  Lightweight architecture  Compatible feature subset  Broad availability Platform And Tools

50 .NET Compact Framework Benefits Richest user experience Richest user experience  Local intelligence and data  Online and offline  Leverage full capabilities of device End-to-end integration End-to-end integration  Clients, Server and Services Best developer productivity Best developer productivity  Languages, Tools, Platform  Skills transfer Scalable Architecture

51 Visual Studio.NET “Drag and Drop” Web application and services development “Drag and Drop” Web application and services development Fully supports.NET Framework Fully supports.NET Framework Multi-language support Multi-language support Open, extensible development environment Open, extensible development environment  Languages focus on compiler – not UI  Consistent set of tools across languages

52 Opportunities Students  Use C# or any.NET programming language  Create new Languages and Compilers Target CLR/IL  Create Peer-to-Peer Apps  Expose Web Sites via Web Services

53 Opportunities Research  Languages  Distributed Computing  Security  Mobile Devices/Ubiquitous Computing Curriculum  Intro to Programming  Compilers  Database  Software Engineering  Embedded Devices  others Courses Currently at:  Yale, Arizona, MIT, Indiana Univ, BU, Monash, ETH Zurich, etc.

54 Summary.NET Framework enables a new generation of distributed web applications and services.NET Framework enables a new generation of distributed web applications and services  A leap forward in developer productivity  Improved operations  Deep integration.NET is open.NET is open  Open protocols are the core building block  Standardization is a key tenet.NET is about all kinds of computing devices.NET is about all kinds of computing devices  Common framework, consistent paradigm  Apps and platform are portable, adaptable  Devices grow richer by adding secure code  Devices plug natively into Web Services

55 How do you get started? Get the.NET Framework SDK Get the.NET Framework SDK  Download from the Web http://msdn.microsoft.com/net http://msdn.microsoft.com/net Choose your Programming Language Choose your Programming Language Pick your favorite Dev Tool Pick your favorite Dev Tool  Visual Studio.NET  Notepad  Emacs  SlickEdit  UltraEdit Check out following sites Check out following sites  www.gotdotnet.com www.gotdotnet.com  www.asp.net www.asp.net

56 Resources - W eb Sites www.GotDotNet.comwww.GotDotNet.com – Community Site www.GotDotNet.com www.ASP.netwww.ASP.net – ASP.NET www.ASP.net www.microsoft.com/netwww.microsoft.com/net -.NET Info www.microsoft.com/net Msdn.microsoft.com/netMsdn.microsoft.com/net -.NET Dev Site Msdn.microsoft.com/net www.DotNetBooks.comwww.DotNetBooks.com -.NET Books www.DotNetBooks.com www.xmethods.netwww.xmethods.net – List of Web Services www.xmethods.net www.DevHood.comwww.DevHood.com – Student Dev Site www.DevHood.com

57 Find Out More about.NET msdn.microsoft.com/NET msdn.microsoft.com/NET msdn.microsoft.com/NET  Download developer docs  Download.NET SDK  Download Visual Studio.NET (universal subscribers) News and Discussion Groups News and Discussion Groups  news://msnews.microsoft.com/microsoft.public.dotnet.academic news://msnews.microsoft.com/microsoft.public.dotnet.academic  MSDN Online articles: http://msdn.microsoft.com/msdnmag http://msdn.microsoft.com/msdnmag  http://discuss.develop.com http://discuss.develop.com  http://asplists.com http://asplists.com Public Sample Applications: Public Sample Applications:  www.ibuyspy.com: ASP.NET running live www.ibuyspy.com  www.fmexpense.com: ASP.NET with mobile controls www.fmexpense.com Books – www.dotnetbooks.com Books – www.dotnetbooks.comwww.dotnetbooks.com

58 Dan Fay danf@microsoft.com

59

60 Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Devices Windows Forms.NET Framework Communication ASP.NET Web Services ASP.NET Web Services  HTTP messages call methods  Simple deployment System.Remoting System.Remoting  Full object fidelity  Any transport or format System.Net System.Net  Full protocol stack  Lightweight for client, scalable on the server System.Messaging System.Messaging  Reliable, guaranteed delivery  Fully transacted

61 Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Devices Windows Forms.NET Framework Data ADO.NET ADO.NET  Fastest way to access SQL  Native XML support  Managed providers give stream-level access System.Xml System.Xml  Great support for XSLT 1.0, XPath 1.0, XSD 1.0, DOM2  Extensible architecture XSLT/XPath XSLT/XPath  Transforms on relational data  W3C compliant

62 Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Mobile Devices Windows Forms.NET Framework Presentation Windows Forms Windows Forms  Richest framework for Windows applications  Visual forms inheritance, automatic layout provide power and flexibility ASP.NET Web Forms ASP.NET Web Forms  Component based, event driven page architecture  Rich and reach requires no new code ASP.NET Mobile Internet Toolkit ASP.NET Mobile Internet Toolkit  Target broad range of mobile devices

63 Intermediate Language (IL) VBVC...Script IL Native Code “Econo”-JIT Compiler Standard JIT Compiler Native Code Install time Code Gen Common Language Runtime Assembly Language of CLR Code is never interpreted


Download ppt "Laying the groundwork for the next generation of Internet applications Dan Fay Microsoft Research University Relations."

Similar presentations


Ads by Google