300 likes | 433 Views
.NET Enabling Apache. Presented by Don Hsi President & CEO, Halcyon Software, Inc. dhsi@halcyonsoft.com http://www.halcyonsoft.com. What is .NET Anyway?. .NET as defined by Microsoft covers three different areas:
E N D
.NET Enabling Apache Presented by Don Hsi President & CEO, Halcyon Software, Inc. dhsi@halcyonsoft.com 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 Common Language Runtime (CLR) Web Services XML Web Forms System Memory Management Application Services ADO.NET Security Common Type System Windows Forms Threading Controls Diagnostics Lifecycle Monitoring Drawing Net Application Services Much more…
.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 Intermediate Language runtime compilers Common Type System Boolean Garbage Collection, Stack walker, Code Manager Byte Execution Support, Runtime functions Class loader and Memory layout Char Double Int16 Int32 Security Functionality Etc…
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.Diagnostics System.IO System.Data 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: • dhsi@halcyonsoft.com • Web site: • http://www.halcyonsoft.com