|
|
|
Kevin Grossnicklaus |
|
kvgros@sseinc.com |
|
www.SSEinc.com |
|
|
|
|
|
Languages? |
|
C++ |
|
Java |
|
Visual Basic |
|
Platforms? |
|
I486 (80x86 = ~142 Instructions) |
|
Win32 (MFC Layer) |
|
|
|
|
|
Java = 1 Language (Java) |
|
Java = Many Platforms |
|
Virtual Machine |
|
Java code compiles to byte-code |
|
Byte-code=Platform Neutral Assembly |
|
Virtual Machine implemented on many platforms |
|
Byte-code runs through VM and is converted to
assembly at run-time (each time) |
|
|
|
|
|
|
|
History |
|
MS-DOS |
|
16 Bit Windows |
|
Win32 (Win95,98,ME,NT,2000,XP) |
|
MFC |
|
Languages |
|
C++ |
|
VB |
|
MS = Many Languages |
|
MS = 1 Platform |
|
|
|
|
|
|
|
|
|
Intel 64-Bit Itanium |
|
Varying Development Paradigms |
|
C++ vs VB vs ASP/Web |
|
Language Limitations |
|
OO vs VB |
|
Interoperability vs COM |
|
Visual J++ vs. Sun lawsuit |
|
Services |
|
COM, Memory, UI, Graphics, Etc… |
|
Standards |
|
XML, SOAP, Etc… |
|
|
|
|
|
|
|
Who?
Visual J++ Team |
|
Experience with VM’s |
|
Anders Hejlsberg |
|
What? NGWS -> .NET |
|
Common Language Runtime (CLR) |
|
NGWS |
|
Equivalent of a Virtual Machine |
|
JIT Compilation and Compile Once |
|
A New Language: C# |
|
|
|
|
|
|
|
|
Understands Microsoft Intermediate Language
(MSIL) |
|
JIT |
|
Enhanced Typing Support |
|
Garbage Collection |
|
Language Neutral |
|
Single Inheritance |
|
100% Object Oriented |
|
Structured Exception Handling |
|
Simplified Deployment and Maintenance |
|
Full and Compact versions |
|
Secure Execution Environment |
|
Targeted Compilation per Platform |
|
Reflection |
|
|
|
|
|
|
Written in conjunction with the CLR |
|
Java/VB Hybrid:
Very simple and powerful development language incorporating years of
MS language development lessons learned |
|
All .NET base classes were developed in C# |
|
|
|
|
Written in C# on top of CLR |
|
Entire development platform presented in a well
organized set of namespaces. |
|
All functionality of Win32 API exposed |
|
Available to all CLR based languages as an
organized library of classes and interfaces that provides very powerful
tools to do about anything |
|
|
|
|
|
|
|
|
System.Data |
|
System.Data.SQLClient |
|
System.Data.OleDB |
|
System.XML |
|
System.Web |
|
System.Web.UI |
|
System.Threading |
|
System.Security |
|
System.Net |
|
System.Diagnostics |
|
System.CodeDOM |
|
System.ComponentModel |
|
|
|
|
Current languages that offer compilers that
compile to MSIL and support the full .NET Framework: |
|
|
|
|
|
|
Whatever language you know best and are most
productive with. |
|
All languages that compile to MSIL are bound by
the same constraints |
|
Some languages may produce a little more
optimized MSIL but basically they are all identical |
|
Learn the Framework and the language becomes a
syntax |
|
|
|
|
|
Assembly = Entire Application written in .NET |
|
A collection of files |
|
Side by Side deployment |
|
Everything needed by the assembly is included in
the assembly |
|
No More “DLL Hell” |
|
Nothing is Registered, No More COM |
|
Self Describing Assemblies |
|
XML Manifests describe all files and versions
required for app to run |
|
All files included in a single directory with a
manifest describing what should be there |
|
Code level security |
|
Public/Private Key Descriptions |
|
Uninstall = Delete Directory |
|
|
|
|
|
|
Any language that compiles to MSIL has access to
ALL CLR features and base classes |
|
Any class written in one language can
use/inherit from/extend any class written in another language |
|
Simplified Deployment |
|
Tons of other major development paradigm
implications |
|
|
|
|
|
WinForms |
|
WebForms |
|
Data |
|
ADO.NET |
|
XML Web Services |
|
|
|
|
|
Visual Basic type RAD for “Thick” Apps |
|
Replaces Win32 and MFC |
|
New Features |
|
Forms Inheritance |
|
Same Forms Designer for Any Language |
|
Easier to include and extend 3rd
party controls or “widgets” |
|
Better OO Design |
|
|
|
|
|
Web Development Paradigm Similar to VB Type
Development |
|
Replaces Classic ASP |
|
New Features |
|
Output Caching |
|
Server Side Controls |
|
WebControls = ActiveX Controls for the Web |
|
Code Behind Seperation |
|
Databind to Anything |
|
DataGrid Controls |
|
Powerful Security Infrastructure |
|
EVENTS in the web |
|
|
|
|
|
|
|
Database Neutral Data Classes |
|
Data = XML = Data = XML |
|
Designed for the disconnected development
paradigm surrounding the web |
|
|
|
|
|
Remote procedure calls to web servers hosting
“services” |
|
RPC over the web through XML |
|
Base classes provide complete support |
|
Simple Object Access Protocol (SOAP) |
|
Web Service Description Language (WSDL) |
|
VS.NET Generates Simple Object Proxies |
|
|
|
|
|
Unified IDE for all languages compatible with
CLR |
|
Built-in, “Dynamic” Help |
|
Everything compiles into MSIL and is easily
packaged into assemblies |
|
Fully customizable and extensible development
environment |
|
EXTREMELY POWERFUL DEBUGGING FOR ALL MANAGED
CODE |
|
Step seamlessly between components written in
any language |
|
|
|
|
|
|
|
|
|
Immediate feedback of errors |
|
Similar to MS Word Spellcheck |
|
Powerful WinForms and WebForms Development
Environment |
|
All languages extensible through custom
developed Attributes |
|
Integrated Visio 2002 modeler/designer |
|
All database design tools built in |
|
Custom XML designer |
|
Easily Develop Against Web Services |
|
Powerful Server Explorer |
|
Many, Many, MANY other features |
|
|
|
|
|
|
All Microsoft Products will eventually be ported
to the .NET Framework |
|
Support for older technologies will slowly fade |
|
MS has made a HUGE investment in this change in
direction |
|
Port the CLR to other platforms? |
|
CLR will be standard in any new OS |
|
|
|
|
|
www.msdn.microsoft.com |
|
Search the web…find plenty of info J |
|
Books |
|
VB.NET Bible J |
|
User Groups |
|
St. Louis .NET Users Group (www.stlnet.org) |
|
|
|
|
kvgros@SSEinc.com |
|
|
|
|
|
|
|
Ad Hoc Demo J |
|