Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Component-Based
Software Engineering
Introduction to .NET
Paul Krause
Lecture 11 Introducing .NET
Motivation
The
.NET Framework
CLR
C#
Web Services
A .NET Scenario
Summing Up
Motivation
“.NET
is a tectonic shift for Windows
developers”
David Chappell - Understanding .NET
.NET
is Microsoft’s response to the:
increasing power of client side processing
increasing use of the internet as an integral part of
applications
increasing threat of Java to Microsoft’s dominance
What is .NET?
Hard
to be concise - in effect .NET is a brand
covering a range of technologies
Key core technology is Web services
supports programmatic, rather than browserbased, access to Web applications
Although
not explicitly marketed as a
component technology, the idea is to access
Web services via well defined interfaces
.NET components are referred to as “Assemblies”
Lecture 11 Introducing .NET
Motivation
The
.NET Framework
CLR
C#
Web Services
A .NET Scenario
Summing Up
The .NET Framework
Browser
Apps
ASP.NET
Web Services
Apps
ADO.NET
Windows
Forms
Local
Apps
Enterprise
Services
.NET Framework Class Library
Common Language Runtime (CLR)
Windows
Other
Apps
More
The Java Environment
Browser
Apps
Java Server
Pages
Web Services
Apps
JDBC
Local
Apps
Swing
Enterprise
JavaBeans
Standard Java Packages
Java Virtual Machine (JVM)
Windows, Solaris, Linux, …
Other
Apps
More
Lecture 11 Introducing .NET
Motivation
The
.NET Framework
CLR
C#
Web Services
A .NET Scenario
Summing Up
CLR
The
Common Language Runtime (CLR)
provides a “standard implementation” for a
range of languages
Primarily C#, J#, Managed C++, JScript.NET and
VisualBasic .NET
Provides
common set of data types:
integers, strings, classes and interfaces
specification of how inheritance works
CLR Services
Garbage
collection
Standard format for metadata
information about classes and interfaces (and
other types) that is stored with the compiled code
Assemblies
- a scheme for organising
compiled code
can consist of DLLs, EXEs and/or compiled
classes
Compiling and Running Code
Code
from any of the supported languages is
first compiled into MSIL
Microsoft Intermediate Language
MSIL is
CPU independent
Metadata is also produced and stored in the same
file as the MSIL
MSIL must
then be compiled into native code
for the processor on which it is running
Compilation and Execution
Compilation
Source
Code
Language Compiler
MSIL and
Metadata
First time each
method is called
Execution
Native Code
JIT
Compiler
Lecture 11 Introducing .NET
Motivation
The
.NET Framework
CLR
C#
Web Services
A .NET Scenario
Summing Up
C#
Very
Single inheritance
Method overriding
Exception handling
Multithreading
Multiple implementation of interfaces
But
similar to Java in many ways:
also
can directly access specific memory addresses
use of Goto statement
C#
using System;
class MyFirstProg {
public static void Main( string [ ], args ) {
Console.WriteLine(“Hello Friends”);
foreach (String s in args) {
Console.WriteLine(“Hi ” + s);
}
}
}
.NET Framework Class Library
System
Int32, String,
…
Web
Data
Windows
Forms
UI
Enterprise
Services
XML
XmlDocument
Services
ServicedComponent, …
…
…
Lecture 11 Introducing .NET
Motivation
The
.NET Framework
CLR
C#
Web Services
A .NET Scenario
Summing Up
Web Services
Allows software to be accessed programatically over
the Web
XML
Web Services Description Language (WSDL)
specify what services are available - operations are
grouped into interfaces
Simple Object Access Protocol (SOAP)
to describe information sent
how to invoke operations in an interface
Universal Description, Discovery and Integration
(UDDI)
standard registry for storing information about services
Lecture 11 Introducing .NET
Motivation
The
.NET Framework
CLR
C#
Web Services
A .NET Scenario
Summing Up
A .NET Scenario
Passport
.NET Profile
Internet
.NET Wallet
Ordering
Application
SQL
Server
Shipping
Application
BizTalk
Server
Intranet
Billing
Application
Summing Up
.NET
is a significant response to J2EE
It is locked (for the moment) to the Windows
platform
It does not have the maturity of J2EE
But there are some things (Web Services) that
it does better
Whatever your preference, the competition is
healthy