Download presentation
Presentation is loading. Please wait.
Published byAlannah Atkins Modified over 8 years ago
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.