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 Centralized Computing Client-Server Computing Clients: Smart terminals Server PC
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 Centralized Computing Client-Server Computing Distributed 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 Centralized Computing 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 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 Online Info Other Info Offline Info Emails I need a personal Informatio n Space USER DEVELOPER 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 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 software Internet 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 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 evolution 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 / 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 CLRCLR
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 Language Compiler MSIL + Metadata Machine code Code executed CLR 1 st Compilation 2 nd 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 code Language Compiler MSIL + Metadata Machine code Code executed CLR MSIL 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 code Language Compiler MSIL + Metadata Machine code Code executed CLR 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 3 rd party.NET services
Introduction to.Net / Chapter 1 / 58 of 83 Components of Microsoft.NET MS.NET Products & Services 3 rd Party.NET services MS.NET Platform 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 3 rd 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 Internet Protocols XMLXML 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 Internet Protocols XMLXML 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 Internet Protocols XMLXML 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.NET Framework.NET Enterprise Servers Building Block Services Windows (CE, ME, 2000, and.NET) Orchestration Internet Protocols XMLXML 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.NET Framework.NET Enterprise 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.NET Framework.NET Enterprise 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.NET Framework.NET Enterprise 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.NET Framework.NET Enterprise 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.