1. .NET Architecture

rangaleclickSoftware and s/w Development

Nov 4, 2013 (3 years and 11 months ago)

94 views


1. .NET Architecture

Based on slides by Joe
Hummel

2

UCN
Technology:
Computer Science
-

2012

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

UCN
Technology:
Computer Science
-

2012

Part 1


CLR
-
based execution…

4

UCN
Technology:
Computer Science
-

2012

Inspiration


.NET is inspired by a number of elements

.NET

OOP

JVM

GUI

Web

component
-
based
design

n
-
tier design

5

UCN
Technology:
Computer Science
-

2012

.NET supports a number of languages


.NET supports VB, C# (C
-
sharp), C++, J# (Java 1.1), Eiffel,
etc.


code.vb



code.cs



code.cpp



...


Development Tools


app.exe



FCL


6

UCN
Technology:
Computer Science
-

2012

.NET is “platform independent”


Compiled .NET applications run on all supported platforms:


APP.exe


?

Win64

Win32

(
XP,2K,98)

Windows Phone

CIL: Common
Intermediate
Language

7

UCN
Technology:
Computer Science
-

2012

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

8

UCN
Technology:
Computer Science
-

2012

Java Virtual Machine

Execution of Java programs

source

(xxx.java)

compiler

CPU

bytecode

(xxx.class)

Interpreter

fortolker

9

UCN
Technology:
Computer Science
-

2012

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+.


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

10

UCN
Technology:
Computer Science
-

2012

Part 2


Application Design…

11

UCN
Technology:
Computer Science
-

2012


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

object

Business

Presentation

Data Access

Data

12

UCN
Technology:
Computer Science
-

2012

Physical Design


Where should tiers be physically deployed?


There are a range of different designs…



Most common are:


locally



remote



web app


web service

13

UCN
Technology:
Computer Science
-

2012

(1) Local Design


Local implies that tiers are all deployed on one local
computer


though may data be on a remote computer

FE

obj

obj

obj


Pros?


Simple to develop!


C
ons?


Hard to
deploy
and maintain


Are to be installed and configured on every client

14

UCN
Technology:
Computer Science
-

2012

(2) Remote Design


If Remote Design is used then the presentation (user
interface, front end) runs on a separate computer

FE

obj

obj

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.

proprietary protocols

Server

Client

15

UCN
Technology:
Computer Science
-

2012

(3) Web App Design


In Web app presentation is generated by a Web server

obj

obj

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

16

UCN
Technology:
Computer Science
-

2012

(4) Web Service Design


Web services are objects that are available through Web
technology


In stead of HTML data is communicated in XML

obj

obj

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

17

UCN
Technology:
Computer Science
-

2012

WCF


Window Communication Foundation

obj

obj

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
),


binary
protocols (
remoting
)

and


a
nd much more (p2p, message queuing …)

18

UCN
Technology:
Computer Science
-

2012

Part 3


Component
-
based Development…

19

UCN
Technology:
Computer Science
-

2012

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

object

object


app.exe


business.dll

data.dll

20

UCN
Technology:
Computer Science
-

2012

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.vb

code.cs

assembly

21

UCN
Technology:
Computer Science
-

2012

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

.DLL

.DLL

obj code

obj code

obj code

22

UCN
Technology:
Computer Science
-

2012

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…


23

UCN
Technology:
Computer Science
-

2012

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…

24

UCN
Technology:
Computer Science
-

2012

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

25

UCN
Technology:
Computer Science
-

2012

References


Textbooks:


J. Richter, "Applied Microsoft .NET Framework Programming"


T. Thai and H. Lam, ".NET Framework Essentials"



Web sites:


http://msdn.microsoft.com/net


http://www.gotdotnet.com/



2. .NET Development

Aim:

“Microsoft .NET development is based on an underlying framework
of tools and classes. These tools and classes are known as the
Framework SDK (Software Development Kit).”


27

UCN
Technology:
Computer Science
-

2012

.NET Development


3 sets of tools for developing assemblies:



1) .NET Framework SDK


Free (100 MB)


complete set of command
-
line tools and documentation


Available for Windows NT, 2000, XP Pro, Vista and 7



Other platforms?


Mac OS X via
Rotor

(i.e. SSCLI)


Linux (and Mac??) via
Mono

project

28

UCN
Technology:
Computer Science
-

2012

.NET Development


2) Visual Studio .NET


Huge


available from
eAcademy


Powerful integrated development environment (IDE)


One IDE for everything: GUI builder, database
connections, web
-
based, web service, DLLs, etc.


Used by 99% of the developers


$$



3) Free IDEs


Express Editions
of

Visual Studio


#develop
, simplified clone of VS.NET


WebMatrix
, for web
-
based applications

29

UCN
Technology:
Computer Science
-

2012

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!;

30

UCN
Technology:
Computer Science
-

2012

References


Textbooks:


Andrew
Troelsen
.: Pro C# 2010 and the .NET 4 Platform, 5
th

Ed.

(new edition is announced).


J. Richter, "Applied Microsoft .NET Framework Programming"



Web sites:


http://msdn.microsoft.com/net


MSDNAA:
http://www.msdnaa.net/


Mono:
http://
www.mono
-
project.com


Free IDEs:


http://www.icsharpcode.net/OpenSource/SD/default.asp


http://www.asp.net/
webmatrix/

31

UCN
Technology:
Computer Science
-

2012

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