달력

02

« 2012/02 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  •  
  •  
  •  

'어셈블리'에 해당되는 글 3

  1. 2008/04/27 닷넷 전용 어셈블리
  2. 2008/02/13 정보에 대한 표현 그리고 저장
  3. 2007/12/17 닷넷 전용 어셈블리
2008/04/27 00:38

닷넷 전용 어셈블리 General .NET2008/04/27 00:38

2006년 10월 31일자 글이고, 기존의 네이버 블로그를 폐쇄하고, 가져온 글입니다.

 

l         어셈블리 전용(Private) 또는 공유(Shared) 형태로 배포됨.

l         전용과 공유의 차이점 명명 규칙과 버전관리 정책

 

l         전용 어셈블리의 특징

n         배포된 응용 프로그램에 의해서만 이용될 수 있는 모듈들의 집합.

n         해당 형식들을 소유하는응용 프로그램만이 이 형식들을 사용할 수 있고 시스템의 다른 응용 프로그램과 공유하지 않게 한다는 것을 의미.

n         클라이언트 응용 프로그램과 동일한 디렉토리(응용 프로그램 디렉토리)나 그 하위 디렉토리에 있어야 함.

n         전용 어셈블리의 resolution과 로딩은 어셈블리가 위치한 응용 프로그램 디렉토리(bin 디렉토리)에서 일어난다. 옮겨도 실행됨.

n         삭제를 하여도 머신의 다른 응용 프로그램에는 손상을 주지 않음.

 

l         전용 어셈블리 프로빙(기초)

n         프로빙 외부 어셈블리 참조자를 정확히 상응하는 바이너리 파일에 매핑하는 과정

n         프로빙이란?

u        닷넷 런타임이 어떤 모듈의 매니페스트로부터 .assembly extern CarLibrary 라는 라인을 읽게 되면 CarLibrary.dll이라는 이름의 파일을 검색한다. 이 때 이 파일을 검색할 수 없게 된다면 *.exe 버전을 검색하게 된다. 이 두 파일이 모두 검색되지 않으면 런타임 예외를 발생시킨다. 그러나 XML 구성 파일(*.config)을 이용하게 되면 런타임이 응용 프로그램 디렉토리 밖의 다른 위치에 에서 프로브하게 할 수 있다.

 

l         전용 어셈블리 식별하기

n         전용 어셈블리 식별자 문자열 이름과 숫자 버전으로 구성.

n         문자열 이름 어셈블리의 매니페스트를 포함하는 바이너리 모듈의 이름에 기초해서 만들어진다.

Ex) CarLibrary.dll 어셈블리의 매니페스트

.assembly CarLibrary

{

….

.ver 1:0:454:30104 ß--- 버전 번호는 다를 수 있다.

}

어셈블리의 버전 정책은 닷넷 런타임이 어셈블리를 로딩할 때 적용하려 하지 않을 것이다. 그 이유는 이 전용 어셈블리를 알고 있는 것은 바로 해당 클라이언트 응용 프로그램밖에 없기 때문이다. 그렇기 때문에 전용 어셈블리에 대해서는 정확한 버전 검사를 할 필요가 없는 것이다.

 

 

Reference

1. Part3 .NET 어셈블리를 이용한 프로그래밍, 9장 .NET 어셈블리, C# and the .NET Platform, p.440~442

'General .NET' 카테고리의 다른 글

닷넷2.0을 시작하며...  (0) 2008/07/22
세티의 닷넷강좌를 다시 살리겠습니다.  (0) 2008/07/22
닷넷 전용 어셈블리  (0) 2008/04/27
델리게이트(1)  (0) 2008/04/27
C# 전처리기 지시문  (0) 2008/04/27
기초 C# - 제너릭  (0) 2008/04/27
Posted by -세티-
2008/02/13 22:20

정보에 대한 표현 그리고 저장 General Tech.2008/02/13 22:20

Computer가 처리하는 정보의 종류
- 프로그램 코드
- 데이터

컴파일러란?
- 인간이 작성한 프로그램 코드를 하드웨어가 이해할 수 있는 언어로 번역해주는 것.
- 기계어 또는 기계코드

어셈블리 언어란?
- CPU라는 하드웨어의 내부 구조에 따라 이해할 수 있는 기계어도 달라진다.
- 중간언어가 필요.(언어의 차이를 극복)

고급프로그램언어 : c = a+b
어셈블리프로그램: LOAD A, a (기억장치 a번지의 내용을 읽어서 레지스터 A에 저장
                            ADD A, b (기억장치 b번지의 내용을 읽어서 레지스터 A값과 더하고 A에 저장)
                            STOR c, A (A값을 z번지에 저장)

기계어 프로그램: 00100101
                          10000110
                          01000111

위의 2진수 코드는 8비트 기계어로 되어 있다.
001             00101
----           -----
연산코드     오퍼랜드


연산코드? - 연산을 지정해주는 비트
오퍼랜드? - 데이터가 저장되어 있는 기억장치의 주소


연산의 비트가 3비트 이므로 총 8가지의 연산이 지정될 수 있다.
(예: 000, 001, 010, 100, 101, 110, 111, 011)

이와 마찬가지로 오퍼랜드는 비트의 수가 5개 이므로 기억 장소가 최대 32개가 된다.

Word : CPU에 의해 한 번에 처리될 수 있는 비트들의 그룹
          8비트 = 1바이트

'General Tech.' 카테고리의 다른 글

CPU의 구조  (0) 2008/02/17
CPU와 기억장치  (0) 2008/02/16
정보에 대한 표현 그리고 저장  (0) 2008/02/13
컴퓨터의 기본구조  (0) 2008/02/12
T-Sql, sp_who에 관한 링크  (0) 2008/02/01
땅을 팔려면 포크레인으로~  (0) 2008/01/29
Posted by -세티-
2007/12/17 10:25

닷넷 전용 어셈블리 General .NET2007/12/17 10:25

어셈블리 전용(Private) 또는 공유(Shared) 형태로 배포됨.

l         전용과 공유의 차이점 명명 규칙과 버전관리 정책

 

l         전용 어셈블리의 특징

n         배포된 응용 프로그램에 의해서만 이용될 수 있는 모듈들의 집합.

n         해당 형식들을 소유하는응용 프로그램만이 이 형식들을 사용할 수 있고 시스템의 다른 응용 프로그램과 공유하지 않게 한다는 것을 의미.

n         클라이언트 응용 프로그램과 동일한 디렉토리(응용 프로그램 디렉토리)나 그 하위 디렉토리에 있어야 함.

n         전용 어셈블리의 resolution과 로딩은 어셈블리가 위치한 응용 프로그램 디렉토리(bin 디렉토리)에서 일어난다. 옮겨도 실행됨.

n         삭제를 하여도 머신의 다른 응용 프로그램에는 손상을 주지 않음.

 

l         전용 어셈블리 프로빙(기초)

n         프로빙 외부 어셈블리 참조자를 정확히 상응하는 바이너리 파일에 매핑하는 과정

n         프로빙이란?

u        닷넷 런타임이 어떤 모듈의 매니페스트로부터 .assembly extern CarLibrary 라는 라인을 읽게 되면 CarLibrary.dll이라는 이름의 파일을 검색한다. 이 때 이 파일을 검색할 수 없게 된다면 *.exe 버전을 검색하게 된다. 이 두 파일이 모두 검색되지 않으면 런타임 예외를 발생시킨다. 그러나 XML 구성 파일(*.config)을 이용하게 되면 런타임이 응용 프로그램 디렉토리 밖의 다른 위치에 에서 프로브하게 할 수 있다.

 

l         전용 어셈블리 식별하기

n         전용 어셈블리 식별자 문자열 이름과 숫자 버전으로 구성.

n         문자열 이름 어셈블리의 매니페스트를 포함하는 바이너리 모듈의 이름에 기초해서 만들어진다.

Ex) CarLibrary.dll 어셈블리의 매니페스트

.assembly CarLibrary

{

….

.ver 1:0:454:30104 ß--- 버전 번호는 다를 수 있다.

}

어셈블리의 버전 정책은 닷넷 런타임이 어셈블리를 로딩할 때 적용하려 하지 않을 것이다. 그 이유는 이 전용 어셈블리를 알고 있는 것은 바로 해당 클라이언트 응용 프로그램밖에 없기 때문이다. 그렇기 때문에 전용 어셈블리에 대해서는 정확한 버전 검사를 할 필요가 없는 것이다.

 

 

Reference

1. Part3 .NET 어셈블리를 이용한 프로그래밍, 9장 .NET 어셈블리, C# and the .NET Platform, p.440~442

'General .NET' 카테고리의 다른 글

DataTable.NewRow  (0) 2007/12/17
int.Parse(int value)와 Convert.ToInt(object value)와의 차이점  (0) 2007/12/17
닷넷 전용 어셈블리  (0) 2007/12/17
델리게이트  (0) 2007/12/17
제너릭  (0) 2007/12/17
C# '전처리기' 지시문  (0) 2007/12/17
Posted by -세티-