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