850 likes | 956 Views
Introduction to .NET. 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.
E N D
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
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 beenseveral terms that have been associated with .NET that have also been floating around, such as CLR, and IL among others.
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
1.2 Transformation in Computing Centralized Computing Mainframe Dumb terminals
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
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’
Centralized Computing Client-Server Computing Server PC Clients: Smart terminals Transformation in Computing
Advantages: • Processing load is shared between client and server • Disadvantages: • Server still continues to get loaded
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
Cont… • Therefore, it was assumed that if job could be distributed between several computers, it would be done more quickly • suchjobs 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
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
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
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 likedistributed computing is here to stay
Centralized Computing Client-Server Computing Distributed Computing Network Transformation in Computing Smart terminals In local distributed computing, computers are present generally in a LAN
Distributed Computing Internet
Advantages: • Workload is shared between system • Processing still continues even if one or more system are down • Disadvantages: • Improper Security • Difficult to work with
Centralized Computing Client-Server Computing Distributed Computing Internet Transformation in Computing
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
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
Web Server Web Server 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!
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
3.Results Data embedded in HTML Database 5.HTML+data transmitted 2.Request for data 1.Request for data Client
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
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.6illustrates
Other Info Offline Info Online Info Emails I need a system that allows me to write code for a PC, & deploy it to a variety of devices The Present Dilemma DEVELOPER USER • Inadequate tools for building, testing and deploying sites • Sites-generally attractive, not useful! I need a personal Information Space OFFICE HOME
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.
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
Therefore, it is observed that there is a need for websites to be able to interact with each otherto 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
Web Server Web Server Web Server Web Server Web Server Web Server Transformation in the Internet Constellation Web sites as islands Sites, services, and devices-collaborate and provide rich user experience
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 builtin 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
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).
Although such a scenarioprovided 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.
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 anRMI-server, the code would also need to be reworked.
This obviously meant that there was need for transformation in the way applications were developed, so that clients and serverscould 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.
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
Internet Evolution of App Development Software as a service Less time to market Higher developer productivity Apps can be used by Anyone, Anywhere Higher quality software • 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! • Apps integrate entire applications from all over network+add unique value • Focus-therefore on unique business value, not on building infrastructure Rich resources & control over applications • Apps integrate local system services
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.
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
.NET-a result of evolution Melding Computing & Communications Transformation in the Internet Building Constellations -not islands! Transformation in Computing Distributed Computing -here to stay! Software as a service Transformation in App development Applications used by anyone/anywhere
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.
.NET-a result of evolution Melding Computing & Communications Building Constellations -not islands! .NET Distributed Computing -here to stay! Software as a service Applications used by anyone/anywhere
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 powerof the Internet. • These applications are accessible via any browser, and any device.
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.
Cont… • Earlier, in languages such as VB or C++, the source code written in particular languageis 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
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 tobe generated earlier. • Moreover, each language does not have its own runtime.
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
Program Execution C L R IL