.NET Enabling Apache
description
Transcript of .NET Enabling Apache
.NET Enabling Apache.NET Enabling Apache
Presented by Don HsiPresident & CEO, Halcyon Software, Inc.
[email protected]://www.halcyonsoft.com
What is .NET Anyway?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?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 FrameworkThe .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.NET Framework Overview
Web Services
Web Forms
Application Services
ASP.NET
Controls
Drawing
Application Services
Windows Forms
Framework Classes
XML
System
ADO.NET
Security
Threading
Diagnostics
Net
Much more…
Common Language Runtime (CLR)
Memory Management
Common Type System
Lifecycle Monitoring
.NET General Benefits.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) OverviewCommon Language Runtime (CLR) Overview
Common Type System
Intermediate Language runtime
compilersBoolean
Byte
Char
Double
Int16
Int32
Etc…
Execution Support, Runtime
functions
Security Functionality
Class loader and Memory
layout
Garbage Collection,
Stack walker, Code
Manager
What is the CLR?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 HighlightsCLR 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 SupportCLR 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 SystemCLR 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.NET Framework Classes Overview—a Small Selection
DataSet
DataTable
DataColumn, etc.
System.Data
Sqrt
Log
Cos, etc.
System.Math
Debug
Trace
System.Diagnostics
Assembly
Module
System.Reflection
File
FileStream
Path, etc.
System.IO
Cryptography
Permissions
Policy
System.Security
.NET Framework Classes.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 WinFormsA 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 FeaturesASP.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.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.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?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?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
DemoDemo
• .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 ApacheRunning .NET Application With Apache• Technology barrier• Who is doing what• Commercial implication• Developer consideration
Java-based SolutionJava-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?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 ConsiderationsImplementation 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 OverviewArchitecture Overview
Java .NET Servlet Engine
Apache Web Server
Java CLR Implementation
Java .NET Class Libraries
VB.NET support
Java .NET Framework
Session management support
JDBC JDBC JDBC
JDBC JDBC JDBC
JavaServices
Java .NET ImplementationJava .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 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 RoadmapJava.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 InformationContact Information
• Phone: • (408) 998-1998 x101
• Email: • [email protected]
• Web site: • http://www.halcyonsoft.com
Questions & AnswersQuestions & Answers