Tech

Dot Net

onesixx 2008. 8. 7. 10:59
반응형

.NET

.NET  Microsoft의 다양한 기술들을 설명하는 포괄적인 (좀 모호한) 용어
         윈도우즈 프로그래밍을 위한 전혀 새로운 개발환경이며,
         새로운 API(Application Programming Interface)

VS.NET   통합 개발환경

image

 

.NET Framework


.NET Framwork 의 두부분
1. .NET 프레임워크 클래스 라이브러리(.NET Framework class library)
이전의 Windows API에 의해서 가능했던 모든 작업들에 관한 기능들을 제공하는 클래스들의 거대한 집합

구성요소
Base Class Library는 I/O, 문자열, 네트웍 보안, 스레딩, 텍스트, 리플렉션, 컬렉션등의 기본적인 클래스를 제공하는 기본 클래스 라이브러리
DATA & XML은 데이터 액세스와 관계한 ADO.NET과 XML 부분을 제공하는 역할
ASP.NET과 웹 서비스는 분산 웹 어플리케이션을 구축하는 근간을 제공
Windows Forms 는 윈도우즈 어플리케이션을 구축하는 기반

- .NET 에서 제공하는 모든 Data Type
- Windows Graphics User Interface와 Controls
- ASP.NET의 Web Forms
- ADO.NET의 Data Ascess
- Directory Access
- File System & Registry Access
- Networking and Web Browsing
- .NET Attributes and Reflection
- Windows 환경 변수 Access
- COM 상호운용
- GDI+ (Windows Graphics Device Interface +)

MSDN Code Gallery

2.공통 언어 런타임(Common Language Runtime)

image

코드의 실행을 관리하는 런타임 관리환경
MFC나 ATL 같은 개발을 돕는 라이브러리가 아니라, 프로그램이 실행되고, 관리되는 환경

CLR구성요소

Class Loader : 메타 데이터를 관리하며, 클래스들의 레이아웃과 로드를 관리하는 역할
IL to Native Compiler : 코드가 컴파일되어져 만들어진 중간언어  를 Native 코드로 컨버트 시켜주는 역할을 담당
Code Manager : 말 그대로 코드의 실행을 관리하는 역할
Garbage Collector: 어플리케이션을 위해 자동으로 메모리를 관리하는 역할
Security Engine : 사용자뿐 아니라 코드 자체를 기반으로 하는 보안까지 제공하는 엔진
Debug Engine: 코드의 실행을 추적하거나 어플리케이션을 디버그할 수 있도록 해주는 엔진
Type Checker: 형의 안정성을 체크하는 기능을 제공, 초기화 되지 않은 변수나 불안전 형 변환을 막도록 해주는 역할
Exception Manager: 예외 및 에러를 관리하는 기능을 제공
Thread Support:  멀티 쓰레드를 가진 프로그래밍이 가능하도록 클래스와 인터페이스를 제공해 주는 역할
                          COM Marchaller 를 통해서 COM으로의 마샬링(서로 다른 Process간의 COM 개체의 통신)을 가능하게 함

 

 

.NET Execution Model

.NET 코드의 실행 모델
image

 

구체적인 Execution Model
image

 

ASP.NET Execution Model

image

첫 요청에 의해 aspx 페이지가 어셈블리 캐쉬에 올라가 있어, 그 이후의 요청에는 빠르게 응답할 수 있는 실행 흐름

: 일단 첫 요청에 의해 어셈블리 캐쉬에 관리 코드가 존재하게 되면, 두번째 요청부터는 캐쉬로부터 빠르게 응답을 해 줄 수 있게 된다.

 

Output Cache :사용자에게 최종으로 넘겨줄 두번째 컴파일 버전의 결과물을 캐쉬에 저장해 두는 방법
                        Output Cache 라는 특별한 캐쉬구역에 저장해 두게 되면,
                        사용자의 요청은 파싱, 코드 컴파일 단계, 런타임 컴파일 단계등을 거치지 않고,
                        Output Cache 구역에 존재하고 있는 결과물로써 대단히 빠르게 응답해 줄 수 있게 된다.

 

개발 흐름

ASP의 개발 흐름

ASP 때의 경우는 컴파일 언어가 아닌 인터프리트 언어를 사용
했었기에, 컴파일이라는 단계가 필요하지 않았다.

단지 개발자의 몫은 단지 ASP 소스 코드를 수정하고 그냥 놔두기만 하면 되었다. 모든 ASP 페이지는 사용자의 요청시 서버에서 매번 인터프리트되었고, 그 결과를 클라이언트에게 건네어 주었다. 그로 인해, 매 페이지는 매번 파싱, 인터프리트 단계를 거치는 불합리함이 있었다.

하지만, 개발자의 입장에서는 단지 해당 소스만을 수정하면 그것으로 전부였기에 개발하기는 상당히편리하였다.

ASP.NET으로 들어서면 이제는 컴파일 단계가 요구되어진다. 그것도 2번이나. 코드 컴파일 단계와 런타임 컴파일 단계를 거치고, 코드 컴파일이 되어진 관리 코드는 어셈블리 캐쉬에 올라가게 되어 이후 더욱 빠르게 서비스를 제공할 수 있게 된다. 해

 

 

 

ASP.NET에서의 개발 흐름

 

 

ASP.NET

ASP 와 ASP.NET 차이 .....

ASP.NET은 프로그래밍 언어가 아니라, 단지 웹상에서 어플리케이션을 구동할 수 있게 해주는 환경일 뿐

ASP.NET 에서는 NET을 지원(CLS을 따르는 언어)하고, 중간언어인 MSIL을 생성할 수 있는 컴파일 언어를 사용
- Visual C#.NET, Visual Basic.NET, Visual C++.NET, Java.NET(아마도) 
   (인터프리트 언어인 VBScript나 Jscript는 지원되지 않는다. 확실하게 미련을 버려라.)

what's difference between compile language and interpleter language?

 

 

참조

http://www.taeyo.net
Wrox의 PROFESSIONAL .NET FRAMEWORK
Ms Press

반응형

'Tech' 카테고리의 다른 글

MKV (Matroska Video)  (0) 2008.08.16
ASP 설치  (0) 2008.08.07
Ultraedit 사용 Tip  (0) 2008.08.07
터미널 끊고 들어가기  (0) 2008.08.06
Program List  (0) 2008.08.05
Windows Update 실패  (0) 2008.08.01