Introduction to Microsoft.NET Tom Servaes for BCS Belgium Section March 18th, 2002 Goals of this Presentation Understand where .NET fits in the computing market place .NET and the New Economy Provide an overview of this massive technology called Microsoft.NET .NET is more than Web Services Educated guess on the .NET Strategy for Microsoft Why .NET? Why Now? Where Have We Been? DOS One application at a time No sharing between apps (re-entry) Lack of standards Windows Multiple apps Cut&Paste, Drag&Drop, ... OS services for ISVs: Print, Clipboard, ... Application Evolution Through The Decades 1970s: 3270, tty (Server centric) 1990s: HTML (Server centric) 1980s: resource sharing (Client centric) Difference In Money Web Adoption Phase 1: Portals (& presence) Phase 2: Simple transactions (& revenue) ... then came XML ... Phase 3: Digital Economy & Profit Building the Business Internet Web today One site at a time Re-enter information No reliable services No standard way of creating, using, integrating .NET Integrated web experience Interoperation between applications; platforms, businesses Services to rely on: Identity, Authentication, Calendar, ... Internet based standards .NET Developer Momentum Strong early adoption 250 000 Visual Studio .NET Beta 1 500 000 .NET Framework SDK Beta 2 (Oct 2001) Shipped Official to more than 1 million developers Release Candidates February 2002 (MSDN Customers) May 2002 (estimate general public) What Is Microsoft.Net? Framework, Languages, Tools VB C++ C# JScript … Common Language Specification Windows Forms ADO.NET and XML Base Class Library Common Language Runtime Operating System Visual Studio.NET ASP.NET Web Forms Web Services Mobile Internet Toolkit .NET Design Goals Unifies programming models Dramatically simplifies development Provides robust execution environment Supports multiple programming languages Natively supports XML Web Services The .NET Evolution Applicatio n Code and data structures Before COM, applications were completely separate entities with little or no integration The .NET Evolution COM provides a way for components to integrate. However, each component must provide the “plumbing” and objects cannot directly interact. The .NET Evolution With the .NET Framework common language runtime, components are built on a common substrate. No “plumbing” is needed and objects can directly interact What Is A Web Service? A web service is: programmable logic accessible via standard Web protocols XML Web Service XML Web Service XML Web Service Web Service Client “Building Block Services” Web Service Infrastructure Open Internet Protocols Web Service A programmable application component accessible via standard Web protocols Provide a Directory of Services on the Internet Web Services are defined in terms of the formats and ordering of messages Web Services consumers can send and receive messages using XML Built using open Internet protocols UDDI Universal Description, Design, and Integration WSDL Web Services Description Language SOAP XML & HTTP .NET at 50,000 Feet Visual Studio .NET .NET Framework Microsoft Application Services “HailStorm” Services Communication Protocols XML, SOAP, HTTP, HTML Easy to use, visual designers for drag-and-drop development Common infrastructure for loosely-coupled objects Common infrastructure for high performance applications Set of user-centric XML Web Services Open Internet standards .NET at 50,000 Feet Visual Studio .NET .NET Framework Microsoft Application Services “HailStorm” Services Communication Protocols XML, SOAP, HTTP, HTML Easy to use, visual designers for drag-and-drop development Common infrastructure for loosely-coupled objects Common infrastructure for high performance applications Set of user-centric XML Web Services Open Internet standards Visual Studio.NET One tool for all languages Increased developer productivity Powerful design tools Easier to write code Easier to share knowledge Windows Forms, Web Forms XML and component designers Simplify server-based development RAD for the server End-to-end debugging Visual Studio.NET Development Platform 6 million Visual Studio developers worldwide Industry-leading developer tools Languages built-in and plug-in Visual Basic, Visual C++, Visual C# COBOL, Fortran, Perl, Eiffel, Java, more Tools built-in and plug-in Rational, more .NET at 50,000 Feet Visual Studio .NET .NET Framework Microsoft Application Services “HailStorm” Services Communication Protocols XML, SOAP, HTTP, HTML Easy to use, visual designers for drag-and-drop development Common infrastructure for loosely-coupled objects Common infrastructure for high performance applications Set of user-centric XML Web Services Open Internet standards Microsoft .NET Framework Open Platform and Architecture VB C++ C# JScript … Common Language Specification Windows Forms Web Services Web Forms .NET Framework Base Class Lib. ADO.NET XML Security Etc. Common Language Runtime Windows COM+ Services Visual Studio.NET ASP.NET Microsoft .NET Framework Open Platform and Architecture VB C++ C# JScript … Common Language Specification Windows Forms Web Services Web Forms .NET Framework Base Class Lib. ADO.NET XML Security Etc. Common Language Runtime Windows COM+ Services Visual Studio.NET ASP.NET Common Language Runtime Base Class Library Support Thread Support COM Marshaller Type Checker Exception Manager Security Engine Debug Engine IL to Native Compilers Code Manager Class Loader Garbage Collector Common Language Runtime Runtime Environment For .NET Applications Provides common type system Manages running code Value types (integer, float, user defined, etc) All types derive from system.object Verifies type safety Provides garbage collection, error handling, reference counting, memory management, etc. Code access security for semi-trusted code Provides access to system resources Native API, COM interop, etc. .NET Application Structure Assembly Manifest Module … Module Metadata MSIL Type Type Type Fields Properties Members Unit of deployment ID, security, dependencies, resources, keys, Etc. Executable Type Information Platform independent IL Data Data + code Behavior Compilation and Execution Compilation Source Code Language Compiler Native Code JIT Compiler Execution Code MSIL Metadata Before installation or the first time each method is called Simplified Development Object Oriented to the core Classes and inheritance fully supported Even across languages! Seamless integration Any .NET class can be used as a COM class with zero extra work COM classes can be imported as .NET classes .NET classes utilise COM+ services Transactions, Object pooling, etc… Simplified Deployment No registration required Zero-impact install Code is completely self-describing Simply copy components to application directory Installing one app will not affect another Side-by-side execution Multiple component versions can co-exist Microsoft .NET Framework Open Platform and Architecture VB C++ C# JScript … Common Language Specification Windows Forms Web Services Web Forms .NET Framework Base Class Lib. ADO.NET XML Security Etc. Common Language Runtime Windows COM+ Services Visual Studio.NET ASP.NET .NET Framework Namespace System.Web Services Description UI HtmlControls Discovery WebControls System.WinForms Design Protocols ComponentModel System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml ADO SQL XSLT Design SQLTypes XPath Serialization System Collections IO Security Configuration Net ServiceProcess Runtime InteropServices Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization .NET Remoting: Channels Channels transport messages Built-in channels: TCP, HTTP Extensible model: Named Pipes as SDK sample Establish endpoint-to-endpoint communication Formatters render wire format (Binary, SOAP, ...) Proxies map calls to messages Architecture makes no assumptions about endpoint architecture Data and XML ADO.NET DataSet – in-memory buffer of related tables Fill from managed providers or XML Managed Providers Stream-level access to data sources Fastest way to get data out of SQL System.Xml Great Standards support 100% OASIS compliance XSLT 1.0, XPath 1.0, XSD 1.0, DOM2 Great throughput for raw parsing and XSLT Pluggable, chainable architecture A Unified Programming Model Consistent API availability regardless of language and programming model .NET Framework RAD, Composition, Delegation VB Forms Subclassing, Power, Expressiveness MFC/ATL Windows API Stateless, Code embedded in HTML pages ASP How Much Simpler? Windows API HWND hwndMain = CreateWindowEx( 0, "MainWClass", "Main Window", WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hwndMain, SW_SHOWDEFAULT); UpdateWindow(hwndMain); .NET Framework Form form = new Form(); form.Text = "Main Window"; form.Show(); Microsoft .NET Framework Open Platform and Architecture VB C++ C# JScript … Common Language Specification Windows Forms Web Services Web Forms .NET Framework Base Class Lib. ADO.NET XML Security Etc. Common Language Runtime Windows COM+ Services Visual Studio.NET ASP.NET Windows Forms Framework for rich Windows applications Provides advanced features Combines best of VB Forms, MFC and WFC Visual forms inheritance, automatic layout Advanced graphics support – GDI+ Easy access to Win32 ® API Secure Code access security prevents harm No Internet Explorer security dialogs! Microsoft .NET Framework Open Platform and Architecture VB C++ C# JScript … Common Language Specification Windows Forms Web Services Web Forms .NET Framework Base Class Lib. ADO.NET XML Security Etc. Common Language Runtime Windows COM+ Services Visual Studio.NET ASP.NET ASP.NET Simplifies web page development Web Forms Form-based web page development like VB development Replace Active Server Pages (ASP) Similar to VB forms Event based Server controls Web Services support ASP.NET Deployment “XCOPY” deployment Supports all web resources No registration required No stopping the server Web pages, web services Compiled components (DLL) Configuration files Applications gracefully migrated to new versions .NET at 50,000 Feet Visual Studio .NET .NET Framework Microsoft Application Services “HailStorm” Services Communication Protocols XML, SOAP, HTTP, HTML Easy to use, visual designers for drag-and-drop development Common infrastructure for loosely-coupled objects Common infrastructure for high performance applications Set of user-centric XML Web Services Open Internet standards Microsoft Application Services Windows 2000 .NET Enterprise Servers Complete application platform Message Services Component Services Directory Services Windows Web Data Services Services Application Services Core application services Base APIs .NET at 50,000 Feet Visual Studio .NET .NET Framework Microsoft Application Services “HailStorm” Services Communication Protocols XML, SOAP, HTTP, HTML Easy to use, visual designers for drag-and-drop development Common infrastructure for loosely-coupled objects Common infrastructure for high performance applications Set of user-centric XML Web Services Open Internet standards “HailStorm” Set of user-centric XML Web services New model for user-centric computing HailStorm manages, protects user info Puts users in control of their “stuff” Delivers on .NET building block services Creates incredible industry opportunity HailStorm connects Internet applications, devices and services – and transforms them into a user’s personal network – on their behalf, with their permission The Long Term Microsoft.NET Strategy An Educated Guess .NET Platform Roadmap Today .NET .NET Framework, Framework & Visual Studio.NET beta VS.NET .NET My Services .NET Passport .NET Alerts .NET Enterprise Servers .NET Enterprise Servers Operating Systems Win2000 / XP - Unified Platform - XML support - New UI (XP) Soon 2003+ .NET Framework, Visual Studio .NET n+1 .NET My Services Test Environment Other Production Services BizTalk Svr 2002 Commerce Svr 2002 SQL “Yukon” Windows .NET “Longhorn” - .NET Framework - 64-bit Support - Services integration - More services integration - Cust feedback Rational XDE for VS.NET Value of Visual Modeling as a Best Practice Seamless Integration Leverage Open Tools Platform Features and capabilities to be taken advantage of Property browser Task List Tool Box Solution Explorer Tab Windows A New Route Answer to Java and Heterogeneity Enterprise development Interoperability Open tools (VSIP) Microsoft Consulting Services Business critical systems Double-or-quits turnaround vs. Nth re-branding? Summary .NET Framework built for Web Services Comprehensive class libraries Simpler, secure, modern, multi-language, object oriented, distributed, XML built in Consistent, comprehensive foundation Interoperability and Business Profit References Websites www.dotnet.be www.gotdotnet.com www.microsoft.com/uk/msdn/learning.asp www.microsoft.com/belux/msdn/devdays2001/ msdn.microsoft.com/theshow/ www.rational.com/microsoft Books Blown to Bits – Evans, Wurster – HBS Press © 2000 .NET Framework Essentials – Thai, Lam – O’Reilly © 2001