|
|
|
|
|
|
What is .NET? |
|
Architectural Overview |
|
Common Language Runtime |
|
New Language Features of VB.NET |
|
Core Language Features |
|
VB and the Web |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A universal data exchange format |
|
Simple, open, broadly adopted |
|
Contract for interactions between services |
|
Enables powerful distributed apps |
|
Impacts the evolution of all software |
|
|
|
|
|
Common Language Runtime |
|
Multi-language development and integration |
|
Secure, integrated class libraries |
|
Facilitates Web services development |
|
Integral SOAP support |
|
Encapsulates Windows and COM+ services |
|
ASP.NET |
|
Takes ASP to the next level |
|
Build Web sites or Web services |
|
|
|
|
|
|
|
|
|
|
Common Language Runtime Goals |
|
Design and Compile Time |
|
Deployment Time |
|
Execution Time |
|
Summary |
|
|
|
|
|
Write less, reuse more |
|
Broad, consistent framework |
|
Classes as well as interfaces |
|
Plumbing disappears |
|
Metadata |
|
Transparent proxies |
|
Memory management |
|
Great WYSIWYG tool support |
|
Designers and wizards |
|
Debuggers |
|
Profilers |
|
|
|
|
|
No registration, zero impact install |
|
XCOPY deployment, incremental download |
|
Side-by-side versions of shared components |
|
Capture version at compile time |
|
Administrative policy at run time |
|
Evidence-based security policy |
|
Based on code as well as user |
|
Code origin (location) |
|
Publisher (public key) |
|
|
|
|
|
Smart device to Web farm |
|
Automatic memory management |
|
Thread pool |
|
Asynchronous messaging |
|
Object remoting |
|
Events |
|
Smart device version |
|
Multiple RTOSes |
|
Same tools used for desktop |
|
|
|
|
|
|
Win Forms on the client |
|
ASP.NET Web Forms on the server |
|
Code is granted permissions |
|
Evidence is used by policy to grant permissions |
|
Application that starts runtime |
|
Like Internet Explorer, IIS, SQL Server™,
Shell |
|
Provides some evidence |
|
Controls code loading |
|
Maps applications to processes |
|
|
|
|
|
Common type system |
|
Object-oriented in flavor |
|
Procedural languages well-supported |
|
Functional languages possible |
|
CLS guides frameworks design |
|
Rules for wide reach |
|
All .NET Framework functionality available |
|
Over 20 languages “under development” |
|
|
|
|
Common Language Runtime Goals |
|
Design and Compile Time |
|
Deployment Time |
|
Execution Time |
|
Summary |
|
|
|
|
|
|
Key to simpler programming model |
|
Generated automatically |
|
Stored with code in executable file
(.dll or .exe) |
|
Uses existing COFF format |
|
Via existing extension mechanism |
|
Stored in binary format |
|
Convertible to/from XML Schema |
|
Convertible to/from COM type libraries |
|
|
|
|
|
Description of deployment unit (assembly) |
|
Identity:
name, version, culture[, public key] |
|
What types are exported |
|
What other assemblies it depends on |
|
Security permissions needed to run |
|
Description of types |
|
Name, visibility, base class, interfaces
implemented |
|
Members (methods, fields, properties, events,
nested types) |
|
Custom attributes |
|
User-defined |
|
Compiler-defined |
|
Framework-defined |
|
|
|
|
|
|
|
For cross-language data type import |
|
Emit metadata with output code |
|
Describe types defined and used |
|
Record external assemblies referenced |
|
Record version information |
|
Custom attributes can be used |
|
Obsolete |
|
CLS compliance |
|
Compiled for debugging |
|
Language-specific markers |
|
|
|
|
.NET Framework |
|
Common Language Runtime Goals |
|
Design and Compile Time |
|
Deployment Time |
|
Execution Time |
|
Summary |
|
|
|
|
|
Unit of deployment |
|
One or more files, independent of packaging |
|
Self-describing via metadata (“manifest”) |
|
Versioning |
|
Captured by compiler |
|
Policy per-application as well as per-machine |
|
Security boundary |
|
Assemblies are granted permissions |
|
Methods can demand proof that a permission
has been granted to entire call chain |
|
Mediate type import and export |
|
Types named relative to assembly |
|
|
|
|
|
Applications are configurable units |
|
One or more assemblies |
|
Application-specific files or data |
|
Assemblies are located based on… |
|
Their logical name and |
|
The application that loads them |
|
Applications can have private versions of
assemblies |
|
Private version preferred over shared |
|
Version policy can be per-application |
|
|
|
|
.NET Framework |
|
Common Language Runtime Goals |
|
Design and Compile Time |
|
Deployment Time |
|
Execution Time |
|
|
|
|
|
|
|
Managed code provides... |
|
Metadata describing data |
|
Location of references to objects |
|
Exception handling tables |
|
So runtime can provide… |
|
Exception handling |
|
Security |
|
Automatic lifetime management |
|
Debugging and profiling |
|
|
|
|
|
“Econo” JIT |
|
Generates unoptimized native code |
|
Code can be discarded and regenerated |
|
“Standard” JIT |
|
Generates optimized native code |
|
Includes verification of IL code |
|
Install time code generation |
|
Done at install time |
|
Reduces start-up time |
|
Native code has version checks and reverts
to runtime JIT if they fail |
|
|
|
|
|
|
Uses P/Invoke mechanism for calls |
|
Object identity is maintained (IUnknown) |
|
Selected COM interfaces automatically created |
|
Types are automatically exported to COM and
registered |
|
COM type libraries can be converted
to metadata and imported |
|
Many data types are automatically marshaled |
|
|
|
|
|
|
Web standards and practices as the foundation |
|
Unify application models |
|
Make it simple to use |
|
Factored and extensible |
|
|
|
|
|
The .NET Framework supports |
|
HTML, XML, SOAP, XSLT, XPath… |
|
Internet Ready distributed apps |
|
The traditional tightly connected, stateful
model just doesn't work on the Web |
|
The .NET Framework favors loosely connected,
stateless Web Services |
|
This affects everything |
|
Base services, data access,
UI, invocation/activation, programming model |
|
|
|
|
|
|
|
Organization |
|
Code organized in hierarchical namespaces and
classes |
|
Unified type system |
|
Everything is an object, no variants, one string
type, all character data is Unicode |
|
Component Oriented |
|
Properties, methods, events, and attributes are
first class constructs |
|
Design-time functionality |
|
|
|
|
|
|
|
|
|
The .NET Platform is Language Neutral |
|
All .NET languages are first class players |
|
You can leverage your existing skills |
|
Common Language Specification |
|
Consumer: Can use the .NET Framework |
|
Extender: Can extend the .NET Framework |
|
Microsoft provides: |
|
VB, C++, C#, Jscript, J# J |
|
Third-parties are building |
|
APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon,
Perl, Python, Scheme, Smalltalk |
|
|
|
|
|
First class player |
|
VBRUN replaced by .NET Framework |
|
Every feature of the .NET Framework is directly
available |
|
Substantial Language Innovation |
|
Classes, inheritance, constructors,
polymorphism, overloading, etc. |
|
Structured exceptions |
|
One form of assignment |
|
Optional stricter type checking |
|
|
|
|
|
Simpler… |
|
Development, deployment, administration |
|
Multi-language, secure, mobile code |
|
All code compiled before execution |
|
Not your traditional virtual machine! |
|
Full interoperation with unmanaged code |
|
COM, COM+ 1.0 Services, Win32®,
your DLLs |
|
. |
|