Presentation is loading. Please wait.

Presentation is loading. Please wait.

1..NET Architecture Based on slides by Joe Hummel.

Similar presentations


Presentation on theme: "1..NET Architecture Based on slides by Joe Hummel."— Presentation transcript:

1 1..NET Architecture Based on slides by Joe Hummel

2 2 UCN Technology: Computer Science - 2014 Aim “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework Class Libraries (FCL). The CLR defines a common programming model and a standard type system for cross-platform, multi-language development.” CLR-based execution Application design Component-based development

3 3 UCN Technology: Computer Science - 2014 Inspiration.NET is inspired by a number of elements.NET OOP JVM GUI Web component-based design n-tier design

4 4 UCN Technology: Computer Science - 2014.NET supports a number of languages.NET supports VB, C# (C-sharp), C++, J# (Java 1.1), Eiffel, etc. code.vbcode.cscode.cpp... Development Tools app.exe FCL

5 5 UCN Technology: Computer Science - 2014.NET is “platform independent” Compiled.NET applications run on all supported platforms: APP.exe ? Win64Win32 ( XP,2K,98) Windows Phone CIL: Common Intermediate Language

6 6 UCN Technology: Computer Science - 2014 CLR-based execution.NET applications are not stand-alone.exe-programs APP.exe other FCL components CLR JIT Compiler obj code OS Process Underlying OS and HW Core FCL Compare to Java JVM View the CIL Code (“byte code”): ILDASM

7 7 UCN Technology: Computer Science - 2014 Java Virtual Machine Execution of Java programs source (xxx.java) compiler CPU bytecode (xxx.class) Interpreter fortolker

8 8 UCN Technology: Computer Science - 2014 CLR-based execution implies: Clients need CLR & core FCL to run.NET apps –Obtained through Redistributable.NET Framework –Runs on Windows 98 and higher, NT (sp6a) and higher –Runtime is integrated in Windows Vista, Windows 7, Windows 8 and Windows Phone 7+ and newer. Design issues… +managed execution (memory protection, etc.) +portability: general assembly language FCL = layer of abstraction between app and OS –slower execution? JIT compilation is expensive But the JIT-compiler may take advantage of specific target HW pre-JIT is possible

9 9 UCN Technology: Computer Science - 2014 Part 2 Application Design…

10 10 UCN Technology: Computer Science - 2014 Often applications are designed as N "tiers" –good separation of responsibility –allows the same back-end tier for different clients object Application Design Front-end object BusinessPresentationData AccessData View demo in VS

11 11 UCN Technology: Computer Science - 2014 Physical Design Where should tiers be physically deployed? –There are a range of different designs… Most common are: –locally –remote –web app –web service

12 12 UCN Technology: Computer Science - 2014 (1) Local Design Local implies that tiers are all deployed on one local computer –though may data be on a remote computer FE obj Pros? –Simple to develop! Cons? –Hard to deploy and maintain –Are to be installed and configured on every client

13 13 UCN Technology: Computer Science - 2014 (2) Remote Design If Remote Design is used then the presentation (user interface, front end) runs on a separate computer FE obj Pros? –Easier to maintain, back-end tiers May be updated without any changes on the clients. –More secure, since the database only is accessed from the server, and directly from the client. Cons? –Clients Must often use the same OS as the server; firewalls may cause troubles. Server Client proprietary protocols

14 14 UCN Technology: Computer Science - 2014 (3) Web App Design In Web app presentation is generated by a Web server obj Browser ANY platform Web server Pros? –scales to the internet, enhances the user group of the applications. –No firewall problems (HTTP / port 80 communication only) Cons? –browser-based clients have limited functionality. HTML / HTTP Web Page Server

15 15 UCN Technology: Computer Science - 2014 (4) Web Service Design Web services are objects that are available through Web technology In stead of HTML data is communicated in XML obj custom FE ANY platform Server Web server XML / SOAP obj Pros? –Open! Opens for integration of applications. Cons? –A technology under development… other APP ANY platform

16 16 UCN Technology: Computer Science - 2014 WCF – Window Communication Foundation obj custom FE ANY platform Server Web server XML / SOAP / REST… And proprietary binary protocols obj other APP ANY platform The new way of doing it: Supports web-services (HTTP-based, SOAP and REST), binary protocols (remoting) and and much more (p2p, message queuing …)

17 17 UCN Technology: Computer Science - 2014 Part 3 Component-based Development…

18 18 UCN Technology: Computer Science - 2014 Component-based Development Application tier is usually build from many components/classes/objects. E.g..: –A typical GUI application with local design has 3 components packed as 1 EXE and 2 DLL Front-end object app.exe business.dll data.dll

19 19 UCN Technology: Computer Science - 2014 Assemblies.NET packs components in what is known as assemblies 1 assembly = 1 or more compiled classes –.EXE represents an assembly with classes + Main program –.DLL represents an assembly with classes Development Tools.EXE /.DLL code.vb code.cs assembly

20 20 UCN Technology: Computer Science - 2014 CLR-based execution revisited All assemblies must be present:.EXE other FCL assemblies CLR JIT Compiler obj code OS Process Underlying OS and HW Core FCL assembly.DLL obj code

21 21 UCN Technology: Computer Science - 2014 Assembly – where are they? How does CLR find the needed assemblies? So far this is sufficient: –DLL-files must be in the same directory as the EXE –FCL assemblies are in GAC (Global Assembly Cache) –CLR starts looking in GAC, the in the directory of the EXE…

22 22 UCN Technology: Computer Science - 2014 GAC? GAC = Global Assembly Cache –C:\Windows or C:\WinNT katalog Observations: –Windows Explorer gives a flat view of GAC. –Command prompt gives the real view. –GAC may have different versions of same assembly. –Some assemblies are pre-JIT-compiled ("native image"). –Hacker-proof by digital signature…

23 23 UCN Technology: Computer Science - 2014 Summing Up.NET architecture is: –multi-language –cross-platform –based on CLR, FCL, and JIT Application design is typically multi-tier Application design provides component-based development –.NET components are packed as assemblies

24 24 UCN Technology: Computer Science - 2014 Summing Up.NET is multi-language –SDK Framework based on C# and VB.NET –But many other languages are supported as well.NET-development is component-based –Auxiliary classes are implemented as one or more DLLs –.EXE is implemented using the DLLs. –if (assembly A is using a class from assembly B) A must reference B!;

25 25 UCN Technology: Computer Science - 2014 References Textbooks: –J. Richter, "Applied Microsoft.NET Framework Programming" –T. Thai and H. Lam, ".NET Framework Essentials“ –Andrew Troelsen.: Pro C# 5.0 and the.NET 4.5 Framework, 6 th Ed. –J. Richter, "Applied Microsoft.NET Framework Programming" Web sites: –http://msdn.microsoft.com/nethttp://msdn.microsoft.com/net –http://www.gotdotnet.com/http://www.gotdotnet.com/

26 26 UCN Technology: Computer Science - 2014 References More textbooks: –T. Archer and A. Whitechapel, "Inside C#" (2 nd edition) –S. Lippman, "C# Primer" –J. Mayo, "C# Unleashed“ –Anders Hejsberg, Mads Torgersen, Scott Wiltamuth, Peter Golde: “The C# Programming Language”. Third Edition


Download ppt "1..NET Architecture Based on slides by Joe Hummel."

Similar presentations


Ads by Google