Transcript Document
Platforms and tools for Web
Services and Mobile Applications
Introduction to .Net
Bent Thomsen
Aalborg University
3rd and 4th of June 2004
Microsoft .NET
Web services support across the Microsoft platform
Services
Servers
Experiences
& Solutions
Tools
Clients
A Unified Programming Model
Consistent API availability regardless of
language and programming model
.NET Framework
RAD,
Composition and
Delegation
VB Object
Model
Subclassing,
Power and
Expressiveness
MFC/ATL
Windows API
Stateless,
code embedded
in HTML pages
ASP
Visual Studio .NET and the
.NET Framework
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
Windows Operating System
Visual Studio .NET
ASP .NET
Common Language Runtime
•
Manages running code
–
–
–
–
–
•
Fine-grained evidence-based security
–
–
–
•
Code access + Role-based
Integrated with underlying OS
Security model ensures safety
No-touch deployment
–
•
Threading, Memory management
Eliminates memory management drudgery
Kills entire classes of bugs (e.g., memory corruption, ref
counting)
Auto-versioning, no more DLL Hell
Scalability, performance, reliability all improve
XCOPY, no registry required
Object remoting with SOAP
CLR: Internals
Base Class Library Support
Thread Support
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
IL to Native
Compilers
Code
Manager
Class Loader
Garbage
Collector
Framework Classes
•
Spans all programming languages
– Enables cross language inheritance and debugging
– Integrates well with tools
•
Object-oriented and consistent
– Increases developer productivity by reducing the
number of APIs to learn
•
•
Common type system built-in
Extensible
– Makes it easy to add or modify framework features
•
Secure
– Allows creation of secure applications
.Net Framework Classes
Unified and Comprehensive API
•
•
•
•
•
•
•
•
•
System & Runtime Functions
Windows & Web Development
Web Services
Data Access & XML Services
Networking & IO
Enterprise Services (COM+ & MSMQ)
Directory & Security Services
Diagnostics, Perf-Mon, Debug
And many more…
.Net Framework Classes
System.Web (ASP .NET)
Services
Description
UI
HTMLControls
Discovery
WebControls
System.WinForms
Design
Protocols
ComponentModel
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data (ADO .NET)
System.XML
ADO
SQL
XSLT
Design
SQLTypes
XPath
Serialization
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization
Referencing the Framework
.Net Assemblies
Compilation
Assembly
Source Code
Compiler
csc.exe or vbc.exe
C++, C#, VB or
any .NET
language
DLL or EXE
11
.Net Execution Model
Common Language Runtime
Source
code
Managed
code
VB
C#
C++
Compiler
Compiler
Compiler
Assembly
IL Code
Assembly
IL Code
Assembly
IL Code
Common Language Runtime
JIT Compiler
Native Code
Operating System Services
.NET Security
• Role-based Security
– What the user is allowed to do within the
application
– .NET Roles = Windows Active Directory®
groups
• Code Access Security
– What the code is allowed to do on this machine
– Evidence Based (Policies, Permissions,
Evidence)
• Cryptography Built In to .NET FX
Visual Basic .NET
• Evolution, not revolution, of language
used by developers worldwide
• Builds on existing technology while adding
power
–
–
–
–
True OOP
Multithreading
NT Services
Web Services
• The fastest way to build scalable
applications for industry
Visual C# .NET
Component Oriented Language
• C# is the first “component oriented”
language in the C/C++ family
• Component concepts are first class:
– Properties, methods, events
– Design-time and run-time attributes
– Integrated documentation using XML
• Enables one-stop programming
– No header files, IDL, etc.
– C++ heritage – simplification with no
unnecessary sacrifices
Visual J# .NET
• Native support for XML Web services
• Fully integrated with Visual Studio .NET
development environment
• Full access to the .NET Framework
– ASP.NET, ADO.NET, Windows Forms
– Integration with >20 other languages
• Protection of existing investments
– Use java language syntax on .NET
– Move applications and skills forward
Visual C++ .NET
Continue to provide most powerful
and flexible language
• Better ANSI/ISO conformance
• Enable seamless, incremental use
of .NET Framework
• Enhanced ATL Servers
• Improved ATL and MFC Clients
• Enhanced STL
.NET Applications
•
•
•
•
Web Form – Next Generation ASP Page
Win Form – Next Generation Win32 App
Web Services – Key to Interoperability
Others –
– Server Objects
– Console Applications
– Window Services
– Mobile Clients
– Many more…
ASP.NET
•
Server-side Web Forms and Web Services
components separate code from content
– Developer productivity increases
– Tools easily use ASP.NET
– Any programming language: full VB, JScript, C++,
COBOL, Perl, etc.
– 40% to 70% reduction in lines of code
•
•
•
•
•
Compiled
No-touch deployment system
Intelligent state management
Backwards compatible with ASP
Controls sense client and adapt output: HTML,
DHTML, WML
What Is an
XML Web Service?
• A Component That Uses XML & HTTP To
Define and Deliver A Service
–
–
–
–
Global reach
Based on open set of standards
Reuse across platforms
Works with any operating system, programming
language, or network
– Expose legacy code
• Different systems can actually talk
Web Services
Open Standards & Protocols
• XML
– Universal data format
– Standards-based integration
– User-customizable
• HTTP
– Ubiquitous protocol
– Universally understood
VS.NET and Web Services
• Expose functionality as service
– No need to learn XML, SOAP, or WSDL
– Interface is automatically generated
– Seamless deployment
• Reuse existing Web Services
– VS.NET generates the plumbing
– Full IntelliSense support
• Build and consume with any VS language
Software as a Service
Visual Studio .Net and the Net Framework
• Built-in Support for Developing and
Consuming Web Services
–
–
–
–
Based entirely on open standards
Automatically generates WSDL
Automatically provides test page
Attribute based – No heavy coding needed
[WebMethod]
Public Function HelloWorld() as String
return “Hello World”
End Function
WSDL
Compiler
Test
Page
Web
Service
Object
Windows Forms
• Rich, powerful client UI
– Control anchoring, visual inheritance
– Shared across all .NET languages
– No-touch deployment
• Secure
– Semi-trusted browser component
– Fully-trusted local application
• Full Web Service integration
.NET (R)Evolutionary
• Evolutionary
– Existing Skills Migrate Smoothly
– Interoperates with Existing Applications
– Extension of WinDNA Architecture
• Revolutionary
– Common Language Runtime
– Deployment / Versioning (Ends DLL Hell)
– Web Services & XML Integration
– Evidence Base Code Access Security
5 Key Points to Remember…
• Developers can use any .NET Language
• The .NET Framework provides a foundation
of classes for developers to build a wide
variety of applications
• Source code is compiled to MSIL within an
Assembly
• Assembles contain rich meta data and are
the primary units of deployment
• MSIL is compiled to native code and
executed by the Common Language
Runtime