83
Introduction to .Net / Chapter 1 / 1 of30 Introduction to .NET

Introduction to.Net / Chapter 1 / 1 of30 Introduction to.NET

Embed Size (px)

Citation preview

Introduction to .Net / Chapter 1 / 1 of30

Introduction to .NET

Introduction to .Net / Chapter 1 / 2 of 83

Objectives Discuss the transformation in computing, the Internet, and

application development

Identify the need for .NET

Explain the role of the CLR and IL

Describe the core components of Microsoft. NET

Discuss the .NET Framework and list the components in it

Introduction to .Net / Chapter 1 / 3 of 83

1.1 Introduction Since July 2000, when the world was

introduced to .NET the IT world has been abuzz with this latest development at Microsoft.

There have been several terms that have been associated with .NET that have also been floating around, such as CLR, and IL among others.

Introduction to .Net / Chapter 1 / 4 of 83

1.2 Transformation in Computing In the beginning of the computing

timeline, When the concept of networks was

introduced, a mainframe was placed at the head, with several

dumb terminals connected to it dumb terminals did not process any processing

power all the processing was done at the mainframe’s

end

Introduction to .Net / Chapter 1 / 5 of 83

1.2 Transformation in Computing

Dumb terminals

Mainframe

Centralized Computing

Introduction to .Net / Chapter 1 / 6 of 83

1.2 Transformation in Computing Advantages:

Data is centralized, and therefore secure Dumb terminals are not costly

Disadvantages: Load on the networks is high Mainframe has to handle all the processing

alone

Introduction to .Net / Chapter 1 / 7 of 83

1.2 Transformation in Computing with time, the PCs gained popularity,

and they became affordable as well Therefore, a new form of computing

arose, in which the dumb terminals were replaced my intelligent PCs

This form of computing used the processing capabilities of the PC as well

The PC, therefore, became a ‘client’ that requested information from the ‘server’

Introduction to .Net / Chapter 1 / 8 of 83

Transformation in Computing

CentralizedComputing

Client-Server Computing

Clients: Smart terminals

ServerPC

Introduction to .Net / Chapter 1 / 9 of 83

Advantages: Processing load is shared between client

and server Disadvantages:

Server still continues to get loaded

Introduction to .Net / Chapter 1 / 10 of 83

Distributed Computing The next phase of computing, namely

‘Distributed Computing’ , evolved out of the client-server architecture

This evolution was triggered because the processing power of the PC was still not being utilized to its optimum

As a result , the processor was dormant most of the time

Introduction to .Net / Chapter 1 / 11 of 83

Cont… Therefore, it was assumed that if job could

be distributed between several computers, it would be done more quickly

such jobs could be distributed between computers in a networks, so that different computers could end up doing several jobs at the same time parallely, and the workload could thus be share

A job, therefore, which would take a supercomputer a little while to do, could be computed using such a scenario in much lesser time

Introduction to .Net / Chapter 1 / 12 of 83

Cont… Which such a scenario reduced the load on

the server, the clients still depended on the server

This meant that the load on the network continued to be present

Moreover, with time, the processors became more powerful

However, their potential was not being totally utilized in such a client-server scenario

Introduction to .Net / Chapter 1 / 13 of 83

Cont… As a result, for most of the time, the

processor was idle Therefore, there was a need felt for an

architecture, where the processor time would be completely utilized, and the dependence on a server would be removed

Introduction to .Net / Chapter 1 / 14 of 83

Cont… Such a scenario was popular in a local network. However, with the present popularity of the

internet, distributing is also being used on the Internet.

SETI@home is popular application of this concept.

It analyzes data from a telescope, searching for potential signals from extraterrestrials life.

With more and more applications moving towards such an architecture, it looks like distributed computing is here to stay

Introduction to .Net / Chapter 1 / 15 of 83

Transformation in Computing

CentralizedComputing

Client-Server ComputingDistributed Computing

Smart terminals

Network

In local distributed computing, computers are present generally in a LAN

Introduction to .Net / Chapter 1 / 16 of 83

Distributed Computing

Internet

Introduction to .Net / Chapter 1 / 17 of 83

Advantages: Workload is shared between system Processing still continues even if one or

more system are down Disadvantages:

Improper Security Difficult to work with

Introduction to .Net / Chapter 1 / 18 of 83

Transformation in Computing

CentralizedComputing

Client-Server Computing

Distributed Computing

Internet

Introduction to .Net / Chapter 1 / 19 of 83

1.3 transformation in the Internet The Internet too has been evolving

since its inception Earlier web sites used to work as

islands, providing information to the clients requesting it

Introduction to .Net / Chapter 1 / 20 of 83

Cont… Here, mobile devices, PDAs (Persoanl

Digital Assistants), laptops, desktop computer and other such devices access information from the web servers

However, each of the web servers from where the data is accessed exists in isolation from the other; hence, there is no interaction between these

Introduction to .Net / Chapter 1 / 21 of 83

Internet

Web Server

Web Server

Web Server

The Internet Today

• Today – Websites are isolated islands• Web serves HTML ‘pictures of data’-not

actual data• Browser: glorified read-only dumb

terminal• Architecture mirrors old time-sharing

model• Personalization involves entering same

personal info at every site!

Introduction to .Net / Chapter 1 / 22 of 83

In addition, these web servers do not send the actual data, but ‘pictures’ of data

That is, when the servers are requested for data that exists in a database, these web servers interact with the RDBMS, access the required data, embed it within HTML, and send this HTML code across to the browser

Introduction to .Net / Chapter 1 / 23 of 83

3.Results

Database

Client 1.Request for data

2.Request for data

5.HTML+data transmitted

Data embedded in HTML

Introduction to .Net / Chapter 1 / 24 of 83

Therefore, when the data has to be sorted or filtered, the command needs to be resent to the server, which in turn interacts with the database server, and returns to sorted or filtered data

Introduction to .Net / Chapter 1 / 25 of 83

Again, with the varied number of devices that the user currently uses, it becomes even more difficult to provide the same information to the user through all the devices

For example, as figure 1.6 illustrates

Introduction to .Net / Chapter 1 / 26 of 83

The Present Dilemma

HOME

OFFICE

OnlineInfo

Other

Info

OfflineInfo

Emails

I need a personal

Information Space

USERDEVELOPER

• Inadequate tools for building, testing and deploying sites

• Sites-generally attractive, not useful!

I need a system that allows me to write code for a PC, & deploy it to a variety of devices

Introduction to .Net / Chapter 1 / 27 of 83

A person with many devices may have some of them connected at home, some in the office, and a few (such as the laptop or PDA) he would carry around with him.

In such a scenario, the user may need to access the same information regardless of where he is and which device he is using.

For instance, while in office he may want to listen to the mp3 songs residing on his home PC, or he may want to access the details present in the address book of his PC through his mobile.

Introduction to .Net / Chapter 1 / 28 of 83

In other words, the user feels the need to access the data from anywhere and with any device.

On the user’s part, this call for a ‘personal information space’, where all the information can reside centrally and from where the users can access all their information’

On the developer’s part, this calls for tools that help him develop just one application that runs on any device

Introduction to .Net / Chapter 1 / 29 of 83

Therefore, it is observed that there is a need for websites to be able to interact with each other to provide the necessary services, and information.

Hence, the internet needs to be transformed from a set of isolated island that provided ‘picture’ of data, into a constellation that provides the data itself, as well as a collaborative experience to the users who visit the site

This is illustrated in figure 1.7

Introduction to .Net / Chapter 1 / 30 of 83

Transformation in the Internet

Web Server

Web Server

Web Server

Web Server

Web Server

Web Server

Constellation

Web sites as islands

Sites, services, and devices-collaborate and provide rich user experience

Introduction to .Net / Chapter 1 / 31 of 83

1.4 Transformation in Apps. Development

A few year ago, when component technology became popular, individual components were created, which were reused by other applications.

The component was built in such a way that it enclosed only the necessary functionality within it.

In order to reuse this component, the developer had to ensure that it was present on the local system

Introduction to .Net / Chapter 1 / 32 of 83

The component exposed methods, which could be called by the application to invoke the required functionality.

Note that the code providing the functionality itself was not exposed to the application developer.

In such a scenario, the application can be referred to as a client that requests service from the component (the server).

Introduction to .Net / Chapter 1 / 33 of 83

Although such a scenario provided reusable components, which reduced the developer’s job, the drawback was that these components needs to be present locally.

This limitation was reduced by newer technologies such as DCOM, RMI, CORBA, where components could be present on the network, and their functionalities accessed across it.

A minor limitation, however, still persisted.

Introduction to .Net / Chapter 1 / 34 of 83

The same technology had to be used on the client, as well as the server.

Therefore, if CORBA clients were used, the server needed to be CORBA-compliant.

This limitation posed a problem when it came to vendor-independent component communication.

For example, when a DCOM client needed to talk to a CORBA-server, a whole lot of code had to written to make this communication possible.

Coincidentally, if the server were to be replaced by an RMI-server, the code would also need to be reworked.

Introduction to .Net / Chapter 1 / 35 of 83

This obviously meant that there was need for transformation in the way applications were developed, so that clients and servers could communicate with each other in a vendor-independent manner.

Therefore, we came upon the concept of web services, where components exposed there functionality over the internet.

Other applications could invoke this functionality to get a particular job done.

Introduction to .Net / Chapter 1 / 36 of 83

These components or applications that expose their functionality are known as ‘web services’

A web service may, therefore, be invoked by another web service, or by application.

Note here that the essence of web services in vendor-independence.

Therefore, a web service created using C# can invoked by a client built using Java, and vice-versa

Introduction to .Net / Chapter 1 / 37 of 83

Evolution of App Development

Rich resources & control

over applications

Less time to market

Higher developer productivity

Higher quality softwareInternet

Apps can be used by Anyone, Anywhere

Software as a service

•Apps integrate local system services

•Apps integrate entire applications from all over network+add unique value •Focus-therefore on unique business value, not on building infrastructure

•Apps (Web Services) expose features programmatically over inter/intranet•developers integrate web services into their apps by calling web APIs•COMPONENT PROGRAMMING over the web!

Introduction to .Net / Chapter 1 / 38 of 83

1.5.NET a result of evolution With the transformation in computing, it

became obvious that distributed computing was here to stay.

On the other hand, with the transformation in the Internet, communications and computing got melded together, with the same applications being available on devices other than computers.

Introduction to .Net / Chapter 1 / 39 of 83

Cont… To be Moreover, web sites evolved into

constellations from the isolated islands that they were.

Similarly, with the transformation in application development, software is soon expected to be available as a service, and applications are expected to be available to anyone, anywhere

Introduction to .Net / Chapter 1 / 40 of 83

.NET-a result of evolution

Transformation in the InternetTransformation in the Internet

Transformation in ComputingTransformation in Computing

Transformation in App development

Transformation in App development

Melding Computing & Communications

Building Constellations-not islands!

Distributed Computing-here to stay!

Software as a service

Applications used by anyone/anywhere

Introduction to .Net / Chapter 1 / 41 of 83

Microsoft’s .NET Microsoft’s .NET is said to fuel the next

generation of computing, accelerate the next generation of the Internet, and ease the next generation of application development.

Introduction to .Net / Chapter 1 / 42 of 83

.NET-a result of evolutionMelding Computing & Communications

Building Constellations-not islands!

Distributed Computing

-here to stay!

Software as a service

Applications used by anyone/anywhere

Introduction to .Net / Chapter 1 / 43 of 83

Microsoft’s .NET It can be said that .NET is a whole new

centered around the Internet. With .NET, user data lives on the net. This data is accessible to the user from any

place, at any time, and through any .NET compatible device.

It also enables the user to create applications that harness the power of the Internet.

These applications are accessible via any browser, and any device.

Introduction to .Net / Chapter 1 / 44 of 83

.Net – taking DC one step further

Introduction to .Net / Chapter 1 / 45 of 83

1.6 Building .NET Applications The unique feature of .NET is the multi-

language support that it provides. .NET provides several languages that

allow developers to develop applications that run on the WINDOWS platform.

Introduction to .Net / Chapter 1 / 46 of 83

Cont… Earlier, in languages such as VB or C++,

the source code written in particular language is compiled by the specific compiler into the executable code.

Each language has its own runtime, which takes care of executing the executable code that has been generated.

This, therefore, requires the languages to have their own compilers as well as their own runtimes

Introduction to .Net / Chapter 1 / 47 of 83

Program Execution

Introduction to .Net / Chapter 1 / 48 of 83

Program Execution in .NET In .NET, however, the compiler of the

respective language compiles the source code into intermediate format-called ‘Intermediate language’ IL or MSIL

This replaces the executable code that uses to be generated earlier.

Moreover, each language does not have its own runtime.

Introduction to .Net / Chapter 1 / 49 of 83

Cont… Here, the language-specific runtime is

replaced by a Common Language Runtime : CLR

This runtime takes care of executing the IL that has been generated

Introduction to .Net / Chapter 1 / 50 of 83

Program Execution

IL CLR

Introduction to .Net / Chapter 1 / 51 of 83

Executing .NET programs A program written in a language support

by .NET, is compiled by the language-specific compiler into Intermediate Language.

At the end of this compilation, therefore, we get a PE (Portable Executable) file, which contains the IL.

When this program (or PE file) is executed, the CLR compiles it into machine code just before the execution, said to be ‘Just In Time’ compiled, or JITed.

Introduction to .Net / Chapter 1 / 52 of 83

Executing .NET programs Hence, it can be noted that a piece of

source code in a .NET language is compiled twice.

The first compilation is slower than the second, as the IL generated after the first compilation is very close to machine code.

Introduction to .Net / Chapter 1 / 53 of 83

Executing .NET programs.NET

source code

Lan

gu

age

Co

mp

iler

MSIL+

Metadata

Machinecode

Code executedC

LR

1st Compilation

2nd Compilation

.NET programs are compiled twice—the first compilation is slow, while the second one is relatively faster!

Introduction to .Net / Chapter 1 / 54 of 83

Microsoft Intermediate Language

.NET source

codeL

ang

uag

eC

om

pile

r

MSIL+

Metadata

Machinecode

Code executedC

LRMSIL

Helps Language interoperability

IL is not bytecode, but is very close to it. Therefore, when the application is executed, the IL to machine code conversion is quick!

MSIL converted to CPU-specific code by CLR

CPU-independent set of instructions

Introduction to .Net / Chapter 1 / 55 of 83

The Common Language Runtime

.NET source

codeL

ang

uag

eC

om

pile

r

MSIL+

Metadata

Machinecode

Code executedC

LRCLR

Manages memory

Makes it easy to design components & applications whose objects interact across languages

Cross-language integration (especially cross-language inheritance)

Compile once, and run on any CPU & OS that supports the runtime!

Introduction to .Net / Chapter 1 / 56 of 83

Today, the CLR is built for the windows platform.

This means that the machine code generated by the CLR can only be executed on the windows platform.

However, there is a move to make a CLR available for each of major platform such as Linux

Introduction to .Net / Chapter 1 / 57 of 83

1.8 Components of Microsoft .NET Microsoft .NET is primarily made up of

three components. Microsoft .NET products & services Microsoft .NET platform 3rd party .NET services

Introduction to .Net / Chapter 1 / 58 of 83

Components of Microsoft.NET

MS.NETProducts

& Services

3rd Party .NET services

MS.NETPlatform

VS.NET

MSN.NET

Office.NET

bCentral server

for .NET

Windows.NET

.Net infrastructure + tools

.Net user experience

.NET building block services

.NET device software

Range of partners & developers with opportunity to produce services built on .NET

platform

Introduction to .Net / Chapter 1 / 59 of 83

Microsoft .NET platform

The core foundation for building applications Microsoft .NET & Services

Offer tools such as VS.NET, which help developers exploit the benefits of the platform to it fullest

3rd party .NET services Provide services that offered by partners

and developers

Introduction to .Net / Chapter 1 / 60 of 83

1.9 The Microsoft .NET platform The .NET platform forms the base of

applications that are language independent, and can be run from different .NET compatible devices.

This allows the developers to make use of the existing methods and services, without having waste time and efforts to develop the same.

Introduction to .Net / Chapter 1 / 61 of 83

Cont… Users benefit too, as they can access their

data from anywhere in the world, using any .NET-enabled device.

Therefore, in order to appreciate the working of this platform, it is important that we first discuss the two core components underlying the .NET platform : XML Suite of Internet protocols

Introduction to .Net / Chapter 1 / 62 of 83

Features of Microsoft.NET Platform

InternetProtocols

XML

Microsoft.NET

Built on XML and internet protocols

Set of tools and services for developing new generation of software Designed to allow integration/orchestration of any group of resources on the Internet

Makes it quick and easy to design, implement, and deploy collaborative web solutions

Introduction to .Net / Chapter 1 / 63 of 83

Cont… As we already know, the Internet brings

together a variety of computing devices.

It has been mentioned earlier that users can access their data at anytime and from anywhere, using the .NET enabled devices.

One of the reasons that this is possible is due to the use of XML.

Introduction to .Net / Chapter 1 / 64 of 83

XML - one of the core components of Microsoft.NET

InternetProtocols

XML

Microsoft.NET

Separates actual data from presentation.

Key to next generation internet; unlocks info that can be organized, programmed, and edited.

Provides way to distribute data to variety of devices.

Allows websites to collaborate and provide constellation of web services that will be able to interact with each other.

Introduction to .Net / Chapter 1 / 65 of 83

Cont… Besides XML, the .NET platform is also

built on Internet Protocols such as HTTP and SOAP

Introduction to .Net / Chapter 1 / 66 of 83

Internet Protocols in .NET

InternetProtocols

XML

Microsoft.NET

Microsoft.NET is built on existing protocols such as HTTP & SOAP(Simple Object Access Protocol)

SOAP is an XML/HTTP-based protocol

SOAP allows access to services, objects, and servers in a platform-independent manner SOAP used for exchange of information in a decentralized, distributed environment

Introduction to .Net / Chapter 1 / 67 of 83

Outline of components in .NET

.NETFramework

.NETEnterprise

Servers

Building Block

Services

Windows (CE, ME, 2000, and .NET)

Orchestration

InternetProtocols

XML

Microsoft.NET

Introduction to .Net / Chapter 1 / 68 of 83

As we can see, the platform consists of several components.

The windows operating system forms the bottom-most layer.

Microsoft .NET allows developers to develop applications using different languages, which run on the windows platform.

Introduction to .Net / Chapter 1 / 69 of 83

Cont… The middle layer includes the .NET

framework, the .NET Enterprise Servers and the Building Block Services.

These three work together to allow developers to build a complete .NET solution.

The top-most layer is the orchestration layer, which allow interaction between multiple .NET solution or applications

Introduction to .Net / Chapter 1 / 70 of 83

Windows 2000 Family- the Chosen One

The .NET platform is built on Scalability, Reliability, Security, and Manageability of Windows 2000 Server family

Orchestration

.NETFramework

.NETEnterprise

Servers

Building Block

Services

Windows (CE, ME, 2000 and .Net)

Introduction to .Net / Chapter 1 / 71 of 83

.NET Framework Consists of :-

CLR Base classes Data & XML Web service Web user interface

Introduction to .Net / Chapter 1 / 72 of 83

Components of .Net framework

Orchestration

.NETFramework

.NETEnterprise

Servers

Building Block

Services

Windows (CE, ME, 2000 and .Net)

Web Services

Web UI

Data and XML

Base classes

Common Language Runtime

Introduction to .Net / Chapter 1 / 73 of 83

Cont… We may recall that CLR allows integration

of code written in various languages. The base classes simplify a lot of our work. We can simplify reuse the existing classes

in our code. Remember that XML provides an ease with

which we can dynamically present data across platforms.

Introduction to .Net / Chapter 1 / 74 of 83

Cont… A web service is an application

delivered as a service that can be integrated with another application across the Internet.

Introduction to .Net / Chapter 1 / 75 of 83

.Net Enterprise Servers

Orchestration

.NETFramework

.NETEnterprise

Servers

Building Block

Services

Windows (CE, ME, 2000 and .Net)

•SQL Server 2000

•Internet Security & Acceleration Server 2000

•Host Integration Server

•Exchange 2000 Server & Exchange 2000 Conferencing Server

•Commerce Server 2000

•Biztalk Server 2000

•Application Server 2000

Introduction to .Net / Chapter 1 / 76 of 83

Figure describes the group of the .NET Enterprise Servers that are helpful for developing web-based enterprise applications in a short time.

The diagram also lists the servers currently avialable.

Introduction to .Net / Chapter 1 / 77 of 83

Building Block Services

Orchestration

.NETFramework

.NETEnterprise

Servers

Building Block

Services

Windows (CE, ME, 2000 and .Net)

Core Microsoft .Net building block services:-

•Notification

•Personalization

•Calendar

•Dynamic Delivery

Introduction to .Net / Chapter 1 / 78 of 83

Cont… Notification and Messaging -this service bundles

together the instant messaging, email, and other forms of messaging (ex : voice mail) into a unified experience that can be delivered to any PC.

Personalization -the users are able to create their own rules for handling messages and notifications. Additionally, the user may synchronize the data contents of different devices along with their MS.NET storage service.

Introduction to .Net / Chapter 1 / 79 of 83

Cont… Calendar –allow the users to maintain

their schedules, which would facilitate timely and manageable interactions with other users. MS.NET provides the basic for securely and privately integrating our work, social, and home calendar so that they are accessible to all our devices and, with our consent, to other services and individuals.

Introduction to .Net / Chapter 1 / 80 of 83

Dynamic Delivery -provides automatic upgrading without going through the elaborate procedures of installing and upgrading the software. Users are able to enjoy the benefits of these services on multiple devices.

Introduction to .Net / Chapter 1 / 81 of 83

Orchestration Contain processes are common to

different applications. The process may be shared by

applications running within an organization or between organization.

It is not difficult to imagine that there will be a diverse set of software and hardware platforms, which will be in use.

Introduction to .Net / Chapter 1 / 82 of 83

Cont… Thus, there is a need for orchestration

that will help applications share these processes.

Orchestration allows developers and business analysts work together to define and modify business processes shares between applications.

Introduction to .Net / Chapter 1 / 83 of 83

Orchestration