Intro to ASP.NET
CS-422 Dick Steflik
What is .NET • As applications in the Enterprise become more and more netcentric and less and less standalone .NET is Microsoft’s computing platform for the new millenia. • It provides: – – – –
OS-Neutral Environment Device Independence Wide Language Support Internet based Component Services
OS-Neutral Environment • Underlying .NET runtime libraries make it possible to build both desktop and Web based applications without calling the OS code. – Eliminates need to have detailed understanding about the Windows OS
• By porting the runtimes to other non-Microsoft computing platforms .NET applications are easily used in other computing platforms – Mono – Open Source sponsored by Novell • Several companies sell support contracts • Linux, OprnBSD, FreeBSD, NetBSD, MAC OS X, Solaris, Windows
Device Independence • .NETs output has been targeted for use on a variety of devices including Web, Desktop and Mobile – Web Forms – Mobile Internet Tools (MIT) SDK
• Goal is to make a single source code library that will run on any device
Wide Language Support • The .NET platform ships with support for three Microsoft Languages: – C# – Visual Basic – Jscript
• Additionally a version of C++ called Managed C++ that interfaces with the .NET runtimes for building agile desktop applications • Much of .NET is written in C# (similar to Java)
C# • • • •
Object –oriented Type-safe Garbage collected Many similarities with Java – Virtual machine environment – almost a 1-to-1 mapping of Java’s class hierarchy
Visual Basic • Updated version of Visual Basic 6.0 – Full object-orientation – Not upwards compatible with VB 6.0 • Porting from VB 6.0 to VB.NET is considered a non-trivial task
Jscript • New version of the ECMA Jscript scripting language – Used in Internet Explorer and ASP – Fully compiled – Not upwards compatible with previous versions of Jscript • requires minimal changes
Other Language Support • Fujitsu – COBOL.NET • ActiveState – PERL.NET • Interactive Software Engineering – Eiffel for .NET
Internet-Based Component Services • .NET allows any internet location to become a distributed component – Web Services – XML • Simple Object Access Protocol (SOAP) • Web Services Definition Language (WSDL)
Common Language Runtime (CLR) • The .NET Virtual Machine – Parsing and execution of all .NET application instructions – Manages deployment and security – Class libraries • • • •
System Classes Data and XML Classes Windows and Drawing Classes The Web Classes
CLR Internals • CLR provides the following low level services: – Code Management – locating and executing code, thread management, stack and heap management – Security Support – evidence based security model for code access security, high-level user and group access security – Garbage Collection and Error Handling – optomized garbage collection for .NET, error management, stack tracing and debugging Base Class Library Support Thread Manager
COM Marshalling
Type Checking
Exception Handling
Security
Debugging
Native Compilers
Code Manager Class Loader
CG Services
Code Management and Execution • Primary job is to convert CLR Intermediate Language to platform executable code – Similar idea to Java JIT Compilers Source Code
JIT
Native Code
Language Compiler
Intermediate Language
Security Support • Keeps track of security evidence items like permissions, code location (remote or local), user rights and privileges to enforce evidence based security policies Evidence Items
Security Policies
Security Policy Engine
Resulting Permissions
Error handling and Garbage Collection • Try/Catch based error handling • Objects and memory variables are garbage collected when no longer needed – Highly deterministic algorithms – Always close any open resources before releasing objects