dotnet - University of Wisconsin–Madison
Download
Report
Transcript dotnet - University of Wisconsin–Madison
DotNET
One
A Developer’s Perspective
Mike Litzkow
University of Wisconsin - Madison
Microsoft’s Goals
Better software development tools
Better software
Take over the world
– Desktop
– Servers
– Small Devices
What Is DotNET?
Execution environment above Win32
– Common Language Runtime
Major Technology Pieces
–
–
–
–
–
DotNET Framework
C#
ASP.NET
XML Web Services (passport & friends)
Visual Studio .NET
Common Language Runtime (CLR)
Supports multiple languages
C++, C#, VB, JavaScript
Cobol, Fortran, Perl, Python,
Eiffel, Pascal, SmallTalk, …
– Languages interoperate freely (including inheritance)
All code is compiled on target machine
– Compiler aware of actual CPU to be used
– Nothing is interpreted (not even script)
– JIT is default, can compile at install time
Type safety
– Including array bounds checking
Garbage collection
But, Will the CLR Last?
Enterprise development
– language interoperability
Security
– buffer overrun problems eliminated
Software reliability
– memory leaks, access errors eliminated
– versioning problems addressed (end of DLL Hell)
Transition to 64-bit architecture
– no pointers, target machine compilation
Probably Yes
Visual Studio.NET
Multi-language development
Multi-language debugging
Syntax coloring and checking
Intellisense
Drag ‘n Drop GUI development
C++, C#, VB, JavaScript,
HTML, XML, Schema,
Bitmaps, …
– Same GUI tools for multiple languages
– Similar GUI tools for desktop and web
DotNET Framework
Example content
– Object, String, Int,
–
–
–
–
–
Float, …
I/O
Windows forms
Web forms
XML processing
Reflection
Usage model
– Direct use
– Use by inheritance
– Custom toolbox
C#
Extremely similar to Java
Differences
– Enumerations
– Properties
– Delegates
– No “checked” exceptions
– Everything is an object
Reference types
Value types
C# - Syntax Examples
Enumeration
public enum Direction {North, South, East, West};
private Direction direction;
Property
Property usage
public Direction Direction { obj.Direction =
get { return direction; }
Direction.North;
set {
direction = value;
pointTo( direction );
}
}
But, Will C# Last?
It’s a good language, but a lot like Java
MS has control – unlike Java
Heavily used inside MS
Probably Yes
Is C# a really important part of DotNET?
Nah
ASP.NET
Server-side code
– runs on CLR
– uses .NET Framework
All code is compiled (even JavaScript)
Supports separation of code and HTML
Easy and efficient DB connectivity
Drag ‘n drop web forms development
– Forms work across multiple browsers
– Even small devices
Xcopy deployment
Debugging, logging, caching, …
But, Will ASP.NET Last?
Probably Yes (CLR on Server,
.NET Framework support)
Not sure about web forms,
HTML/Script connection,
DB Connectivty …
XML Web Services
RPC implemented with XML (SOAP)
Service description in XML (WSDL)
Underlying protocol HTTP – penetrates
firewalls
Lots of hype and controversy (Passport)
Geneva convention
But, Will XML Web Services Last?
Web services are an industry wide
initiative
Lots of questions about compatibility
remain
Will be important for B2B commerce
Much more slowly than Microsoft hopes
DotNET Books
Introducing Microsoft .NET
– David S. Platt Easy Intro to Whole Platform
C# Essentials
– Ben Albahari Compact reference for C#
Applied Microsoft .NET Framework Programming
– Jeffery Richter CLR
Essential .NET: The Common Language Runtime
– Don Box CLR
Programming Microsoft Windows With C#
– Charles Petzold
Windows Forms (desktop apps)
Further Talks
C#
ASP.NET
– Delegates
– Web forms
– C# vs C++ performance
– Database connectivity
– GUI builder
– “Business” logic
CLR
– Types
– Metadata
– Versioning
– Security
– Security
Contact Info
Mike Litzkow
– [email protected]
– [email protected]
– 262-6122
eTEACH Home Page
– http://eteach.engr.wisc.edu