Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
.NET Enabling Apache Presented by Don Hsi President & CEO, Halcyon Software, Inc. [email protected] http://www.halcyonsoft.com What is .NET Anyway? • .NET as defined by Microsoft covers three different areas: • .NET framework—a completely re-engineered development environment and the facet with which this presentation is concerned • .NET products—applications from MS based on the .NET platform, including Office and Visual Studio • .NET services—facilities for 3rd party developers to create services on the .NET platform How Committed is Microsoft to .NET? • 80 percent of R&D resources in 2001 are being allocated to .NET • Most products are expected to be ported to .NET • C#/CLI is in proposed to the ECMA • C# is slated to become the development language of choice The .NET Framework • Three basic parts: • Two top-level development “arenas” for web applications (ASP.NET) and regular Windows applications (Windows Forms) • A set of extensive class libraries, written from the ground up that comprise practically any functionality you could ask for • A runtime engine that handles memory allocation, error trapping, all of the busy work that can make programming less fun .NET Framework Overview ASP.NET Framework Classes Web Services XML Web Forms System Application Services ADO.NET Common Language Runtime (CLR) Memory Management Security Windows Forms Threading Controls Diagnostics Drawing Net Application Services Much more… Common Type System Lifecycle Monitoring .NET General Benefits • Shorter development cycle (code reuse, fewer programming headaches, multiple language support) • Easier deployment (‘XCOPY’ installations) • Fewer bugs (memory leaks disappear) • More flexible, reliable applications Common Language Runtime (CLR) Overview Common Type System Boolean Byte Char Double Intermediate Language runtime compilers Execution Support, Runtime functions Int16 Int32 Etc… Security Functionality Garbage Collection, Stack walker, Code Manager Class loader and Memory layout What is the CLR? • .NET applications are compiled to a common language known as “Microsoft Intermediate Language” or IL • CLR handles compiling the IL to machine language and takes care of the miseries of memory management, process communication, etc. • Ability to handle multiple-language projects; single set of standardized data types CLR Feature Highlights • • • • • • Less concern with internal plumbing Expansive tool support Simpler deployment (end of DLL Hell) Superior scalability Multiple Language Support Common Type System Let’s examine some of these in greater detail… CLR Multiple Language Support • The CLR enables you to use multiple languages in a single project, all working together transparently • 3rd parties are already working on COBOL (Fujitsu) and PERL and Python (ActiveState). More than 50 projects in the works • No IDL—Metadata handles everything! CLR Common Type System • A new set of common types has been defined for the CLR • Casting between types can be done at a lower level for more consistency • Calling one language from another no longer requires weird type conversions or calling conventions .NET Framework Classes Overview—a Small Selection System.Data System.Diagnostics System.IO DataSet Debug File DataTable Trace FileStream DataColumn, etc. Path, etc. System.Math System.Reflection System.Security Sqrt Assembly Cryptography Log Module Permissions Cos, etc. Policy .NET Framework Classes • Consistent and Unified Programming Model • User Interfaces • Windows Forms (conventional Win32 apps) • Web Forms (the forms engine for ASP.NET) • Server Controls (reusable user interface components dwelling server-side) • Console Applications (CLI lives) • Program Interfaces • Web Services (3rd party applications available over the Internet) A Quick Look at WinForms • Winforms are simply the name used to describe the creation of a standard Win32 application • Instead of relying on 3 disparate APIs: COM components (ADO, MSXML, etc.); OS-specific (Win32, Win16, etc.); and Language-specific (Vbrun, MFC, etc.) you now have a single coordinated class framework ASP.NET Features • Language is now full-blown VB or C# (or any supported .NET language for that matter) • Support for HTML Server Controls (session state supported on the server) • Server-side processing of client-side events • New control families including enhanced Intrinsics, Rich controls, List controls, DatGrid control, Repeater control, Data list control, and validation controls • Web Services—canned application logic programmatically accessible via the Internet .NET Considerations • Cross Platform Concerns—while the CLR and the .NET framework libraries can, in theory, be ported to other operating systems, the scope of support is unknown • ASP.NET, however, is NOT designed to be ported • You may be able to write Winform apps and deploy them on other supported platforms, but your Web platform will still be Microsoft .NET Considerations cont’d • Will Microsoft be able to create a groundswell of support? Reports in the field indicate that customers are already requesting .NET tools • Will .NET be delivered on time? A loaded question, but much of the functionality appears to be in place Why Should You Care? • The benefits are compelling—multiple language support, garbage collection, possible cross-platform support • The beta development tools do exist and people are using them • Microsoft has enough marketing muscle to make the .NET initiative successful • Your clients will want the benefits too… But what’s Wrong with Current Frameworks for Apache? • ASP: Conducive to spaghetti code. HTML+Scripting is messy and unstructured. • JSP: Elegant specification but complex— requires much greater investment • PHP: More suitable for smaller projects. Lack tier-one support • CGI: Performance is a concern—each time an application is access a separate process is spawned Demo • .NET HelloWorld application running on the .NET environment with IIS • Same binary code running on Windows with Apache, without .NET environment • Same binary code running on Linux with Apache, without .NET environment Running .NET Application With Apache • • • • Technology barrier Who is doing what Commercial implication Developer consideration Java-based Solution • An implementation of ASP.NET on Java requires the following: • A Java-based version of the CLR (VM on VM) including plenty of optimization • A Java-based version of the .NET Framework Classes • A Java-based implementation of ASP.NET, including full support for the new extensions to VB as well as the server-side components and features Why Java? • Java is mature and robust on the server • Java has excellent development tools available for it • Java is well-supported on practically every OS in existence • Java will enable a .NET implementation that runs on any platform Implementation Considerations • Must support at the very least VB.NET and all its enhancements • Session management must be implemented for the server-side components • Must have the same language flexibility as ASP.NET • Must have a much of the required .NET class framework implemented as possible • Must equal or exceed ASP.NET performance • Must be able to leverage the excellent Microsoft and other 3rd party tools Architecture Overview Apache Web Server Java .NET Framework Java CLR Implementation Java .NET Servlet Engine Java .NET Class Libraries VB.NET support Session management support Java Services JDBC JDBC JDBC JDBC JDBC JDBC Java .NET Implementation • VB.NET implementation • IL to Java bytecode conversion for maximum performance • System services are mapped from Microsoft services to Java services (e.g. ADO.NET to JDBC) • CLR environment • .NET class libraries Java.NET Roadmap • Late 2001: • Fully implemented IL2Java conversion engine • Fully implemented ASP.NET framework • 80 percent of the core .NET framework libraries implemented for 95 percent of the functionality • 80 percent of the .NET web services libraries implemented for 95 percent of the functionality • 80 percent of the ADO.NET libraries implemented Java.NET Roadmap • Mid 2002: • • • • • • Fully implemented core libraries Fully implemented web services libraries Fully implemented ADO.NET Fully implemented XML.NET Fully implemented Visual Basic.NET GUI .NET (late 2002) Contact Information • Phone: • (408) 998-1998 x101 • Email: • [email protected] • Web site: • http://www.halcyonsoft.com Questions & Answers