.NET Overview - MD ColdFusion User`s Group

.NET Overview
Geoff Snowman
.NET Evangelist
[email protected]
Agenda
• .NET Goals
• .NET Framework and Languages
• Application Types
• Case Study
App Dev Trends – Late ’90s
• Application Integration troubles
• XML
• Windows forms hard to deploy
• Web forms hard to develop
• Many inconsistent APIs
• Application drives language choice
.NET Solution
• Clean Start for API Design
• Object-Oriented Approach
• Support for Many Languages
• XML
• Drive Vision across all Products
.NET – Microsoft’s Vision of a
New Generation for
Application Development
Agenda
• .NET Goals
• .NET Framework and Languages
• Application Types
• Case Study
Implementation and Benefits
.NET Framework and Tools
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
Base Class Library
Common Language Runtime
Operating System
Visual Studio .NET
ASP .NET
Implementation and Benefits
Common Language Runtime
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
Base Class Library
Common Language Runtime
Operating System
Visual Studio .NET
ASP .NET
Implementation and Benefits
Compilation and Execution
Compilation
Source
Code
Language
Compiler
Native
Code
JIT
Compiler
Execution
Code (IL)
Assembly
Metadata
At installation or the
first time each
method is called
Implementation and Benefits
.NET Framework Class Library
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
Base Class Library
Common Language Runtime
Operating System
Visual Studio .NET
ASP .NET
Implementation and Benefits
.NET Framework Class Library
System.Web
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
System.Windows.Forms
Design
ComponentModel
System.Drawing
Drawing2D
Imaging
System.Data
OleDb
Common
Printing
Text
System.Xml
SqlClient
SQLTypes
XSLT
XPath
Serialization
System
Collections
Configuration
Diagnostics
Globalization
IO
Net
Reflection
Resources
Security
ServiceProcess
Text
Threading
Runtime
InteropServices
Remoting
Serialization
Implementation and Benefits
.NET Languages
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET and XML
Base Class Library
Common Language Runtime
Operating System
Visual Studio .NET
ASP .NET
.NET Languages (Microsoft)
•
•
•
•
Microsoft: Visual Basic.NET
Microsoft: C#
Microsoft: C++ (Managed/Unmanaged)
Microsoft: J#
.NET Languages (Others)
•
•
•
•
•
•
•
•
•
APL
Fujitsu COBOL
Micro Focus COBOL
Eiffel
Forth
FORTRAN 95
Haskell
Mercury
Mondrian
•
•
•
•
•
•
•
•
Oberon
Pascal
Perl
Python
RPG
S#
Scheme
Standard Meta
Language
Agenda
• .NET Goals
• .NET Framework and Languages
• Application Types
• Case Study
Windows Forms
•
•
•
•
XCOPY Deployment
Web Deployment
Side by Side DLLs
VB provides full functionality
Demo
Web Forms
•
•
•
•
•
•
•
•
Event-Driven Programming Model
Server Controls
Code Behind
ADO.NET
Session State Scalability
IIS 6.0
High-Performance Caching
Multiple Authentication Techniques
Server Controls
•
•
•
Programmable, server-side objects
•
Properties, methods and events
Encapsulate both behavior and rendering
•
HTML, XML, WML, script, etc.
You can create server controls
•
•
•
Custom controls
User controls
Or derive from existing controls
ASP.NET Pages: Part
Declarative, Part Code
•
•
Combines declarative tags (HTML, ASP directives,
server controls and static text) with code
Unlike ASP, good separation provided between code
and tags
single file
code
<tags>
Form1.aspx
separate files (“code-behind”)
<tags>
code
Form1.aspx
Form1.vb
Classic ASP vs. ASP.NET
Development
Features
Programming
Model
Presentation
Tier
Classic ASP
•
No separation of presentation from
business logic
No built-in support for up/down level
browsers
Spaghetti code
Limited session management
•
•
•
•
•
•
•
•
•
•
•
•
Scripted
Top-down processing
Limited error handling
No support for XML/XSL
Difficult debugging
Mediocre performance
Difficult deployment
No built in security
No support for caching
ASP.NET
•
•
•
•
•
•
•
•
•
•
•
•
•
Clean separation of presentation logic
from business logic
Controls render to support browser
Server controls remove spaghetti code
Session mgt now supports separate
session server or db server
Compiled
Event-based programming
Structured error handling
Full support for XML data, web
services, XSLT transformation
IDE allows debugging from UI to DB
Very high performance
Xcopy deployment model
Full access to windows or custom
security model
Full support for object, page caching
Demo
Windows Services
•
•
Easy to create in any .NET language
INSTALLUTIL supplied by .NET Framework
Smart Device Applications
(2003)
•
•
.NET Compact Framework
Created using standard .NET tools and
languages
Demo
Mobile Web Applications
(2003)
•
•
•
Server controls
Markup optimized by device
Created using standard .NET tools and
languages
Mobile Web vs. Rich Client
•
Mobile Web Applications
•
•
•
•
•
Broad device support
•
•
Smart Device Extensions
•
PocketPC, Palm, RIM, Cell
phones
Online
Server side logic
Browser-based UI
No client installation
•
•
•
•
•
Target rich clients
•
Pocket PC/Phone edition,
Smartphones, Windows
CE.NET
Offline and Online
Client side logic
and data
UI flexibility
Client side installation
Leverage SQL Server CE
Built in support for XML Web Services
Demo
XML Web Services
•
•
•
Integration between applications
Integration between organizations
Integration between heterogeneous systems
.NET Connected
Application
XML Web Services Explained
•
•
•
Internet connects
entities together
Email and WWW
inherently cross
boundaries
XML Web Services
applies the same
platform neutral
approach to system
integration
•
•
•
E-mail
WWW
Web Services
Connects
People
Connects
People to
Information
Connects
Applications
Platform Neutral
Leverage Existing
Standards
No Rip and Replace
XML Web Services
Foundation for Programmable Internet
•
Based on public standards
•
•
•
•
•
•
XML, SOAP, XSD, WSDL
Not bound to any single platform
Protocol and format-based contract
Loosely coupled programming
Preserve and connect existing systems
Broad industry support
XML Web Services





J2EE App
BEA Weblogic
Oracle 8i
Solaris
Sun UE 10000




SAP R/3
DB2
AIX
IBM RS/6000
Language Independent
Platform Independent
Device Independent


Motorola i85s
J2ME
XML Web Services






PERL
Apache 2.0
MySQL
Linux




PeopleSoft 7.0
SQL 2000
Windows 2000/.NET
HP ProLiant

Compaq iPAQ
Windows CE
StrongARM
•
•
•
•
Promoters group for Web services
•
•
•
Facilitate customer adoption
Ensure interoperability
Not a standards body
Industry alignment around Web services
•
First testing tools this year
More info: http://www.ws-i.org
100+ member community
Microsoft .NET
Web services support across the Microsoft platform
Services
Servers
Experiences
& Solutions
Tools
Clients
Analyst Perspective On .NET
“.NET is a brilliant strategy that enables Microsoft to
define the next shift in the software business.”
Gartner Group
“Everyone should build on the
XML/SOAP foundation.”
Gartner Web Services
Meta Group
Magic Quadrant
“Gartner believes Microsoft is
now providing more vision and
influence regarding this shift than
any other vendor.”
Gartner Group
IBM
“.NET is a leading example of
what we believe will be the
Sun
dominant architectural model for
HP
Oracle
the third generation of Internet
applications.”
Patricia Seybold Group
Completeness of Vision
*Source: Gartner Research, 9/13/2001
Demo
Pet Shop revisited: Middleware App.
Server & Web Services Benchmark
•
•
•
MiddleWare Co. re-test of J2EE vs. .NET Per./Scale
Spent 4 months testing J2EE and .NET reference applications
•
•
•
Developed new J2EE application optimized for performance
Conducted new series of comprehensive benchmarks
All results taken by and certified by Middleware Company
Includes Web Application, Web Services and Distributed
Transaction benchmarks
•
•
Report available at http://www.middlewarecompany.com/j2eedotnetbench
Downloadable code, test scripts, discussion forum
also available
Web Application Benchmark
Tests n-tier Web application hosting
8000
2CPU
4CPU
7000
550 MHz Compaq ProLiant 8500
8CPU
Responses/sec
6000
5000
Windows Server 2003 outperforms
J2EE by 339% on the Web
application benchmark
4000
3000
2000
1000
0
J2EE Application
Server A
J2EE Application
Server B
.NET 1.0/W2K
.NET 1.1/Windows.NET
Web Services Benchmark
Web Service Hosting Performance
Multiple Clients Making Remote SOAP Requests over HTTP
SOAP Requests/sec
1000
2CPU
900
4CPU
800
8CPU
700
600
550 MHz Compaq
.NET Framework 1.1 on Windows Server 2003
outperforms J2EE by 331% in Web service testing
500
400
300
200
100
0
J2EE A
J2EE B
MS W2K
MS Win .NET
Developer Productivity:
Comparing .NET And J2EE Implementations
Based on new Middleware J2EE Reference Application with EJBs
and Equivalent .NET Reference Application with C# Components
.NET Implementation
16000
14004
J2EE Implementation
Lines of Code Required
14000
Optimizing, configuring
J2EE: 10 man-weeks per application server
.NET: 2 man-weeks
12000
10000
8000
6187
5567
6000
4000
2096
2053
1002
2000
795
197
197
102
0
Total
User Interface
Middle Tier
Data Tier
Config
Agenda
• .NET Goals
• .NET Framework and Languages
• Application Types
• Case Study
computerjobs.com
computerjobs.com
•
•
•
15M hits per month
800k unique visitors
250k resumes
Criteria
•
Speed
•
Stability
•
Productivity
•
TCO
Criteria
•
Speed
•
500% improvement in efficiency
•
Stability
•
Productivity
•
TCO
Criteria
•
•
Speed
•
500% improvement in efficiency
Stability
•
99.998% uptime
•
Productivity
•
TCO
Criteria
•
•
•
•
Speed
•
500% improvement in efficiency
Stability
•
99.998% uptime
Productivity
•
Development time halved
TCO
Criteria
•
•
•
•
Speed
•
500% improvement in efficiency
Stability
•
99.998% uptime
Productivity
•
Development time halved
TCO
•
$100,000 saved in first year
Q & A ?