introduction to.net / chapter 1 / 1 of30 introduction to.net
TRANSCRIPT
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 / 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 / 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 / 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 / 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.