Active Server Pages - Write Once - Deploy Anywhere

Download Report

Transcript Active Server Pages - Write Once - Deploy Anywhere

.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