1 / 58

danf @microsoft

.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

rufus
Download Presentation

danf @microsoft

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET Laying the groundwork for the next generation of Internet applicationsDan FayMicrosoft ResearchUniversity Relations danf@microsoft.com

  2. What is .NET? • A domain name extension? • A Brand? • .net = C#? • A vision? • Set of technologies?

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

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

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

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

  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’s Vision • People will use many different kinds of devices • Information will be accessible from anywhere • Information will stay in digital form • Companies will offer services via the web

  10. Open Standards • .NET is based on open Internet standards • HTTP, HTML, XML, SOAP, WSDL WWW Consortium • .NET itself is an open standard • ECMA - 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 • Co-Sponsors with Microsoft - HP, Intel, IBM, Ariba…

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

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

  13. Web Service Web Service Web Service Database

  14. Web Service Web Service XML XML XML XML XML Web Application Web Service “Building Block Services” Client Client XML .NET Applications HTML

  15. Student Data Course Catalog XML XML XML XML XML University Portal Search Service “Building Block Services” Client Client XML .NET Applications HTML

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

  17. Creating Web Services • ASP.NET • Easiest way to create web services • SOAP Toolkit V2 (VS6) – MSDN • http://msdn.microsoft.com/webservices/ • SOAP Toolkits for • Apache - http://xml.apache.org/soap/ • XMethods http://www.xmethods.net • …

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

  19. Building On An XML Foundation

  20. User: Beyond browsing Access and act on information Greater control, better decision-making, easier collaboration Optimal support for different devices Benefits Of XML Foundation Business: Integrationby 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

  21. Tools Enterprise Servers Building Block Services Devices

  22. Tools .NET Framework Visual Studio.NET Enterprise Servers .NET Foundation Services Identity Notification Storage Devices .NET Compact FW

  23. Microsoft .NET A Software Platform for XML Web Services • Bring distributed computing to the Internet • Spans clients, servers and services • Consistent programming model • Interoperable via XML Web Services • 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

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

  25. Inside the .NET Framework VB C++ C# J# Python … ASP.NET High-productivity environment for building and running Web services Web Services User Interface ASP.NET Data and XML Base Framework • Secure, integrated class libraries • Unifies programming models across languages • Enables cross-language integration • Factored for extensibility • Designed for tools Common Language Runtime (CLR) Operating System Common Language Runtime Executes code, maintains security, handles component “plumbing” and dependencies

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

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

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

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

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

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

  32. 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

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

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

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

  36. Compiler Assembly Common Language Runtime DEVELOPMENT 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 C# J# VB Cobol … MSIL Metadata Resources

  37. DEVELOPMENT DEVELOPMENT 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()); } } GlobalAssemblyCache (GAC) 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()); } } Compiler Assembly Assembly Source code C# J# VB Cobol … MSIL Metadata Resources ApplicationDirectory Download Cache Install Common Language Runtime DEPLOYMENT Setup Copy Browser

  38. DEVELOPMENT Assemblyon Target Machine GlobalAssemblyCache (GAC) Assembly Setup Copy Browser ApplicationDirectory Class Loader Security Assembly Loader IL to NativeCompiler Download Cache Garbage Collection Code Manager Exception Manager Native .exe + GC table Thread Support COM Interop Install Debug Engine Common Language Runtime DEPLOYMENT 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" EXECUTION

  39. ASP.NET Web Service Demo

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

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

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

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

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

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

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

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

  48. 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

  49. 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.

  50. Summary • .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 • Open protocols are the core building block • Standardization is a key tenet • .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

More Related