Platforms and tools for Web Services and Mobile Applications Introduction to .Net Bent Thomsen Aalborg University 3rd and 4th of June 2004 Microsoft .NET Web services support across the Microsoft platform Services Servers Experiences & Solutions Tools Clients A Unified Programming Model Consistent API availability regardless of language and programming model .NET Framework RAD, Composition and Delegation VB Object Model Subclassing, Power and Expressiveness MFC/ATL Windows API Stateless, code embedded in HTML pages ASP Visual Studio .NET and the .NET Framework VB C++ C# … J# Common Language Specification Web Forms Web Services Mobile Internet Toolkit Windows Forms ADO .NET and XML Base Class Library Common Language Runtime Windows Operating System Visual Studio .NET ASP .NET Common Language Runtime • Manages running code – – – – – • Fine-grained evidence-based security – – – • Code access + Role-based Integrated with underlying OS Security model ensures safety No-touch deployment – • Threading, Memory management Eliminates memory management drudgery Kills entire classes of bugs (e.g., memory corruption, ref counting) Auto-versioning, no more DLL Hell Scalability, performance, reliability all improve XCOPY, no registry required Object remoting with SOAP CLR: Internals Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to Native Compilers Code Manager Class Loader Garbage Collector Framework Classes • Spans all programming languages – Enables cross language inheritance and debugging – Integrates well with tools • Object-oriented and consistent – Increases developer productivity by reducing the number of APIs to learn • • Common type system built-in Extensible – Makes it easy to add or modify framework features • Secure – Allows creation of secure applications .Net Framework Classes Unified and Comprehensive API • • • • • • • • • System & Runtime Functions Windows & Web Development Web Services Data Access & XML Services Networking & IO Enterprise Services (COM+ & MSMQ) Directory & Security Services Diagnostics, Perf-Mon, Debug And many more… .Net Framework Classes System.Web (ASP .NET) Services Description UI HTMLControls Discovery WebControls System.WinForms Design Protocols ComponentModel System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data (ADO .NET) System.XML ADO SQL XSLT Design SQLTypes XPath Serialization System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Diagnostics Reflection Text Remoting Globalization Resources Threading Serialization Referencing the Framework .Net Assemblies Compilation Assembly Source Code Compiler csc.exe or vbc.exe C++, C#, VB or any .NET language DLL or EXE 11 .Net Execution Model Common Language Runtime Source code Managed code VB C# C++ Compiler Compiler Compiler Assembly IL Code Assembly IL Code Assembly IL Code Common Language Runtime JIT Compiler Native Code Operating System Services .NET Security • Role-based Security – What the user is allowed to do within the application – .NET Roles = Windows Active Directory® groups • Code Access Security – What the code is allowed to do on this machine – Evidence Based (Policies, Permissions, Evidence) • Cryptography Built In to .NET FX Visual Basic .NET • Evolution, not revolution, of language used by developers worldwide • Builds on existing technology while adding power – – – – True OOP Multithreading NT Services Web Services • The fastest way to build scalable applications for industry Visual C# .NET Component Oriented Language • C# is the first “component oriented” language in the C/C++ family • Component concepts are first class: – Properties, methods, events – Design-time and run-time attributes – Integrated documentation using XML • Enables one-stop programming – No header files, IDL, etc. – C++ heritage – simplification with no unnecessary sacrifices Visual J# .NET • Native support for XML Web services • Fully integrated with Visual Studio .NET development environment • Full access to the .NET Framework – ASP.NET, ADO.NET, Windows Forms – Integration with >20 other languages • Protection of existing investments – Use java language syntax on .NET – Move applications and skills forward Visual C++ .NET Continue to provide most powerful and flexible language • Better ANSI/ISO conformance • Enable seamless, incremental use of .NET Framework • Enhanced ATL Servers • Improved ATL and MFC Clients • Enhanced STL .NET Applications • • • • Web Form – Next Generation ASP Page Win Form – Next Generation Win32 App Web Services – Key to Interoperability Others – – Server Objects – Console Applications – Window Services – Mobile Clients – Many more… ASP.NET • Server-side Web Forms and Web Services components separate code from content – Developer productivity increases – Tools easily use ASP.NET – Any programming language: full VB, JScript, C++, COBOL, Perl, etc. – 40% to 70% reduction in lines of code • • • • • Compiled No-touch deployment system Intelligent state management Backwards compatible with ASP Controls sense client and adapt output: HTML, DHTML, WML What Is an XML Web Service? • A Component That Uses XML & HTTP To Define and Deliver A Service – – – – Global reach Based on open set of standards Reuse across platforms Works with any operating system, programming language, or network – Expose legacy code • Different systems can actually talk Web Services Open Standards & Protocols • XML – Universal data format – Standards-based integration – User-customizable • HTTP – Ubiquitous protocol – Universally understood VS.NET and Web Services • Expose functionality as service – No need to learn XML, SOAP, or WSDL – Interface is automatically generated – Seamless deployment • Reuse existing Web Services – VS.NET generates the plumbing – Full IntelliSense support • Build and consume with any VS language Software as a Service Visual Studio .Net and the Net Framework • Built-in Support for Developing and Consuming Web Services – – – – Based entirely on open standards Automatically generates WSDL Automatically provides test page Attribute based – No heavy coding needed [WebMethod] Public Function HelloWorld() as String return “Hello World” End Function WSDL Compiler Test Page Web Service Object Windows Forms • Rich, powerful client UI – Control anchoring, visual inheritance – Shared across all .NET languages – No-touch deployment • Secure – Semi-trusted browser component – Fully-trusted local application • Full Web Service integration .NET (R)Evolutionary • Evolutionary – Existing Skills Migrate Smoothly – Interoperates with Existing Applications – Extension of WinDNA Architecture • Revolutionary – Common Language Runtime – Deployment / Versioning (Ends DLL Hell) – Web Services & XML Integration – Evidence Base Code Access Security 5 Key Points to Remember… • Developers can use any .NET Language • The .NET Framework provides a foundation of classes for developers to build a wide variety of applications • Source code is compiled to MSIL within an Assembly • Assembles contain rich meta data and are the primary units of deployment • MSIL is compiled to native code and executed by the Common Language Runtime