Microsoft .
NET
By Viraj Bhat
virajb@[Link]
What is the .NET ?
.NET Framework is a new computing platform
Simplify application development in a distributed
environment.
.NET is the Microsoft’s platform for XML based
Web services.
.NET has a central role Microsoft’s strategy to
integrate the Web Services, building blocks
services and numerous tools for Developers.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 2
.NET continued..
.Net provides a comprehensive family of
products, built on XML and Internet Industry
Standard
Five areas where Microsoft is building .NET
services are:
Tools
Services
XML Services
Client
.NET Services
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 3
What are the areas of .NET?
Define products implemented by Microsoft
Define client devices that use these services
Defines backbone for the applications to build on.
Managing, deploying and orchestrating the Web
Services.
Microsoft provides a tool for building the .NET
framework.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 4
.NET Experience
.NET experiences are XML web services that
allow you to access information across the
internet in an integrated way.
Products which are transitioning into the .NET
experiences are :
MSN Website
bCentral Website
Passport Website
Visual Studio .NET website.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 5
.NET Clients
Clients are PC’s handheld computers, Tablet
PCs, game consoles, smart phones, Game
consoles and XBox.
The common thing is that all of them use XML
services.
.Net Client Software include.
Windows CE
Windows XP
Windows Embedded
Windows 2000
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 6
.Net Services
XML Web Services
Microsoft is also creating a core set of building block
services that perform routine tasks and act as the
backbone for developers to build upon.
First set of XML Web services being built, known as .NET
My Services (“HailStorm”) is user centric services
oriented around people, rather than specific devices,
networks, or applications
XML Web services offer a direct means for applications
to interact with other applications.
Applications can communicate via the SOAP or XML
Messages
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 7
.NET Servers
Microsoft .NET Enterprise Servers including Microsoft
Windows 200 Server form a part of it.
Designed with Machine Critical Performance.
They provide enterprises with the agility they need to
integrate their systems, applications, and partners
through XML Web services
Various .NET Servers are :
Microsoft Application Center 2000:
Microsoft BizTalk Server 2000
Microsoft Commerce Server 2000
Microsoft Content Management Server 2001
Microsoft Exchange Server
ECE 579 2000
Peer to Peer Computing
10/19/2001 Manish Parashar 8
.NET Tools.
Microsoft Visual [Link] and the Microsoft .NET
Framework supply a complete solution for developers to
build, deploy, and run XML Web services.
Visual Studio .NET is the next generation of Microsoft's
popular multi-language development tool, built especially
for .NET. Visual Studio
.NET advances the high-productivity programming
languages Microsoft Visual Basic, which includes new
object oriented programming features
Microsoft Visual C++, which advances Windows
development and enables you to build .NET applications
C#, which brings RAD to the C and C++ developer.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 9
WHAT .NET ISN’T ?
It is neither an Operating System or
Programming Language.
.NET has introduced a new language C#(C-
sharp), but it is not the focus of the technology.
It is an means to end, the basic notation for
programming the .NET routine.
C# is not an attempt to replace all existing
languages.
.NET is language neutral. In addition to
Microsoft’s supported languages supports
Cobol,Effiel,Fortran,Perl,Python,SmallTalk.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 10
.NET Architecture.
Web Services
Frameworks and libraries:
[Link],[Link],Window Controls
Interchange standards Common development tools
SOAP,WSDL Visual Studio .NET
Component Model
Object Model and Common Language Specification
Common Language Runtime
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 11
Architecture Explained
Web Services
Top layer provides .Net users-persons and companies with
Web Services for e-commerce and business to business
applications
Frameworks and Libraries
[Link] for developing smart Web pages.
[Link] an XML based improvement for databases and
object relational processing.
Interchange standards
Platform independent means of exchanging objects
SOAP (Simple Object Access Protocol)
WSDL(Web Services Description Languauge)
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 12
Architecture contd..
Development environment
Visual Studio .NET provides a tool for development.
Outgrowth of Visual Studio.
Not only allows Microsoft implemented languages like
Visual C++, Visual Basic and C# but also third party
vendors to plug in tools and compliers
Component Model
Derived from original component based development :
Corba,J2EE,COM
Difference in .NET you can build assemblies each
consisting of a number of classes with well defined
interfaces
Convenience absence of IDL (Interface Description
Language)
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 13
Architecture contd..
Object Model
Object model provides the conceptual basis for on which
everything rests.
.NET is a OO type system.
Common language system defines restrictions ensuring
language operability.
Common language runtime
Provides the basic set of mechanisms for executing .NET
programs regardless of the language of origin.
Translation to machine code (judiciously incremental
translation or “jitting”,loading, security mechanisms.
Provided over a broad spectrum of hardware and software
platforms.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 14
.Net Benefits
Users and developers can expect
numerous benefits. One of the most
impressive is the [Link]
[Link] is not an incremental update.
New Development that provides tools for
building smart websites.
Attractive aspects of [Link] are listed in
the next slides.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 15
[Link] Advantages
[Link] Web Controls provide a user interface similar to what is
possible in the non GUI Web environments
Facilitate building of web pages that look like a modern non Web
GUI.
Web controls handled by default on the server side ,yield browser-
dependent rendering-output what is tailored to the browser.
Some operations can be processed on the client side.
Maintains protocol state without storing client information on the
server.
Accomplished on single server and across web farms
Connection to [Link] which handles database connections.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 16
[Link] Advantages
[Link] enables setting up of the web
page to reflect the contents of the
database table directly.
Code associated with the Web page can
directly be a part of the application
however.
Can benefit from the security versioning
and jitting.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 17
Closing the Gap
Removes distinction between IT and Traditional
software development
Web enabling an existing application can be a
major part and so in the other way.
Traditional scripting languages are developed in
an ad hoc fashion.
With .NET a Web page is a program and a
program can be a web page.
It is easy to turn a web interactive interface into
a traditional non Web Windows.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 18
Web Services
Aim is to bring major simplifications to the many
interactions we pursue with many different
companies.
Through it’s “Hailstrom “ Microsoft is giving
major push to it’s passport technology.
Passport available as in Windows XP, enabling
users to define a personal profile and make it
available as a set of Web Services.
Microsoft and IBM have developed SOAP XML
based format which exports .NET objects at
large.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 19
.NET Security
.NET security policy a benefit to both users and
developers
Is a systematic attempt to shed the image of
Windows as having a poor security record.
Combines 4 major techniques.
Type Verification. Site administrator turns verification
on, .NET code is subject to verification
Code should obey objects system rules.
Origin of Verification
.NET assembly is signed using 128-bit public key
cryptography.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 20
.NET security
A fine grained permission mechanism
Each assemble requires it’s callers to have file read
and write, DNS access including programmer defined
permissions
Stack walk mechanism ensures that if you require a
permission you enforce not only on direct callers but
also on their direct or indirect callers.
A notion of “principal.
Software elements can assume various roles during
their lifetime.
Each role giving access to specific security levels.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 21
.NET Versioning
.NET provides simple but strong mechanism that lets
applications specify precisely what versions they can
accept for the modules they use.
Previously Windows has offered 2 extremely
unsatisfactory versioning policies.
DLL: An application installs a new DLL version that replaces the
previous one.
COM : which avoids this situation, but at the expense of
considering any update as a new incompatible version.
Versioning model defines a standard version numbering
policy that lets us specify what is acceptable for the
number
E.g.. I want “[Link]” and nothing else will do”
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 22
.NET Component Model
Offers developers a new component model directly based on OO.
Removing this distinction between a program element and a
software component it provides significant benefits over
technologies like CORBA and COM.
.Net gets rid of the IDL. We can use .Net assembly directly as a
component.
.NET component model is considerably simpler than COM.
Does away with the HRESULT special type of COM and uses low
level operations to keep track of references such as Addref and
Release,
Replacing it with garbage collection.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 23
SELF-Documenting Components
Uses interface documentation already present in the source code.
Compliers for .NET supported languages retain this information as
metadata-the idea of producing self documented components.
Use custom attributes to specify any information that can be
included in the Meta Data.
IDLASM (intermediate language disassembler is a graphical tool
that lets us visually examine assembly’s interface to obtain
information from Metadata.
Any program can access meta data using the Reflection library.
Meta data is also available in XML format, any application whether it
is a part of .NET or not can obtain information about components.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 24
.NET Language Interoperability
Modules written in different languages can call
each other and in the case of classes-inherit
from each other.
Debugging sessions in Visual [Link] easily
across language borders.
Makes it possible for developers to choose the
best language for each part of the application.
Knowing that it will smoothly and automatically
interface with the other parts.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 25
.NET object model
The object model and the common language
specification (CLS) are the basis of .Net's language
interoperability.
Similar to an OO language, but without the syntax or
anything governing the programs external appearance
and presentation.
Shortcomings
There is a clear cut distinction between classes-fully
implemented abstractions-and interfaces.
Restriction of multiple inheritance to interfaces.
Does not support genericity or type parameterized classes
All languages generate an intermediate code, MSIL (Microsoft
Intermediate Language)
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 26
.Net Interface Rules
Language interoperability comes at price: the CLS (Common
Language Specification) compatibility constraints.
Constraints affects the modules that need to interact with other
languages.
CLS compliance is at three levels
Supplier :Others can consume what they produce.
Consumer : You modules can be clients of others’ producer-compliant
modules.
Extender : Your classes can inherit from classes in other languages
.NET language complier provides the option of flagging each module
as compliant or non complaint at each level.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 27
.NET Execution Model
C# VB C++ Eiffel
Language Compliers
MSIL code +
Meta data
Loader
Unjitted routine call
JIT verifier
MSIL code +
Meta data
ECE Execution
579 Peer to Peer Computing
10/19/2001 Manish Parashar 28
Jitting
With Default jitter, individual routines are jitted
on demand, as required by execution and kept
in their jitted form.
EconoJit, a variant for small memory footprint
devices ,we can specify a maximum amount of
space and apply a caching policy to remove a
jitted routine and make room for a new one.
Prejit, which will perform translation once for the
entire application.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 29
Managed Code
Code meant for execution by the .Net runtime routine is known as
“managed”.
Benefits from all runtime’s facilities like garbage collection,
exception handling and security.
Garbage collection raises issues for C++, one of the languages .Net
offers
C++ has a lax type system that has that allows casts between
almost contradictory the requirements of safe GC.
C++ cannot generate managed code on .NET. Uses “Managed
C++” a new variant of the language.
Managed C++ imposes strong restrictions on mixed types.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 30
BEYOND WINDOWS
Only some .NET facilities are Windows specific.
The Windows Forms framework is intended to replace the Windows
graphical API and the graphical part of the Microsoft foundation
classes.
[Link] is implemented on top of Microsoft’s IIS Web Server.
Rest of the .NET might be implemented on Linux, Solaris..
Although currently need Windows to use .NET
Recently introduced MONO effort is intended to develop an open
sourced implementation of the .NET, based on the ECMA
specifications.
([Link]
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 31
Failure or the Future ??
.NET’s breadth of coverage puzzled some technical
observers and made then wonder whether there is
anything beyond the hype.
John Dovark in his November 2000 PC Magazine wrote
“.NET is surrounded by too many buzzwords and
generalities to be understood”.
Patricia Seybold Group wrote that “.NET is a leading
example of what we believe will be the dominant
architectural model for the third generation of “Internet
Applications” and it has large number of ominous
implications for a large number of Microsoft’s
competitors.
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 32
References
“.NET Is Coming” by Bertrand Meyer,
Interactive Software Engineering pg 92-97
IEEE Computer Magazine August 2001
Microsoft .NET
[Link]/net/default. asp
Microsoft .Net Whitepapers.
[Link]/net/whitepapers. asp
ECE 579 Peer to Peer Computing
10/19/2001 Manish Parashar 33