1. .NET Framework
: .NET 플랫폼용 응용프로그램을 개발하기 위한 개발 인프라
- 구성
1) .NET Framework Class Library
: 기존 마이크로소프트의 개발 API(Win32API, MFC, ATL, VB6 함수들, ASP 내장 개체들 + Alpha)
를 객체지향의 클래스 형태로 재구성한 개발 API
2) 공용 언어 런타임(Common Language Runtime: CLR)
: .NET 기반 응용프로그램에 대한 실행 환경을 제공하는 런타임 엔진
2. 어셈블리(Assembly)
: .NET 기반의 실행 가능한 파일(.exe)와 클래스 라이브러리(.dll)를 말함
응용프로그램의 배포, 재사용 그리고 버전관리의 기본단위
클래스 라이브러리(.dll) 형태의 어셈블리를 .NET 컴포넌트라 함
3. 네임스페이스(Namespace)
: .NET Framework Class Library의 클래스들에 대한 계층적 구조의 논리적 그룹핑 단위
- 목적
1) 원하는 클래스를 쉽고 효율적으로 검색, 사용하기 위함
2) 클래스 이름의 충돌을 방지하기 위함
- 네임스페이스의 클래스 참조 방법
1) 네임스페이스와 클래스 이름 전체를 기술해서 참조
Dim fs As System.IO.FileStream
fs = New System.IO.FileStream(fName, System.IO.FileMode.Open)
...
fs.Close()
2) 네임스페이스를 Imports문을 사용하여 가져오기 한 후 클래스 이름만 기술해서 참조
Imports System.IO
...
Dim fs As FileStream
fs = New FileStream(fName, System.IO.FileMode.Open)
...
fs.Close()
4. .NET 컴포넌트(.dll)
: 크게 사설(Private) 어셈블리와 공유(Shared) 어셈블리로 구분된다.
1) 사설(Private) 어셈블리
특정 응용프로그램이나 관련된 몇몇 응용프로그램에 한정적으로 사용되는 어셈블리
- 위치
: 응용프로그램의 루트 디렉토리(웹 응용프로그램의 경우 bin 디렉토리)
응용프로그램의 루트 디렉토리 하위 디렉토리에 위치할 경우 환경설정(.config)를 통해 하위 디렉토리를 지정함
2) 공유(shared) 어셈블리
시스템에 있는 모든 .NET 응용프로그램에서 사용 가능한 어셈블리
- 조건
: 반드시 강력한 이름(strong-Named) 어셈블리이어야 함
전역 어셈블리 캐시에 위치해야 함
- 특징
: 버전별 실행(side-by-side Execution)지원 : 클라이언트에 서로다른 버전이 동시에 존재, 원하는 버전 실행 가능
.NET 엔터프라이즈 서비스(COM+)용 컴포넌트가 되기 위한 기본조건
- 강력한 이름(strong-Named) 어셈블리
(1) 생성
1. 강력한 이름 키(key)파일 생성 : 하나의 키 파일을 생성하여 공통으로 사용
sn.exe 사용하여 생성 : sn.exe -k 키파일명(vs.net의 명령프롬프트에서 실행)
2. 생성된 키(key)파일과 함께 어셈블리 빌드
AssemblyKeyFileAttribute 특성 클래스 사용
=> AssemblyInfo.vb에 추가: <Assembly: AssemblyKeyFile(@"(절대경로 or 상대경로)키파일명")>
- 전역 어셈블리 캐시(GAC, Global Assembly cache)에 등록
: 강력한 이름(strong-Named) 어셈블리가 위치하는 시스템 캐시 영역
위치: %Window%\Assembly
gacutil.exe 사용하여 등록, 조회, 삭제 가능
=> gacutil.exe 외부도구에 추가
1. vs.net 2003 실행
2. 도구 -> 외부도구 선택
3. 외부도구 창에서 추가
제목: GAC 등록
명령: 찾기에서 C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\gacutil.exe 선택
인수: -i 입력, 한칸띄우고 화살표 클릭하여 "대상경로"선택(-i $(TargetPath))
"출력 창 사용" 에 체크하고 적용, 확인한다.
다음 강의에서 오늘 작업한 내용을 가지고 실제로 공유 어셈블리를 생성해 보도록 하겠습니다.
: .NET 플랫폼용 응용프로그램을 개발하기 위한 개발 인프라
- 구성
1) .NET Framework Class Library
: 기존 마이크로소프트의 개발 API(Win32API, MFC, ATL, VB6 함수들, ASP 내장 개체들 + Alpha)
를 객체지향의 클래스 형태로 재구성한 개발 API
2) 공용 언어 런타임(Common Language Runtime: CLR)
: .NET 기반 응용프로그램에 대한 실행 환경을 제공하는 런타임 엔진
2. 어셈블리(Assembly)
: .NET 기반의 실행 가능한 파일(.exe)와 클래스 라이브러리(.dll)를 말함
응용프로그램의 배포, 재사용 그리고 버전관리의 기본단위
클래스 라이브러리(.dll) 형태의 어셈블리를 .NET 컴포넌트라 함
3. 네임스페이스(Namespace)
: .NET Framework Class Library의 클래스들에 대한 계층적 구조의 논리적 그룹핑 단위
- 목적
1) 원하는 클래스를 쉽고 효율적으로 검색, 사용하기 위함
2) 클래스 이름의 충돌을 방지하기 위함
- 네임스페이스의 클래스 참조 방법
1) 네임스페이스와 클래스 이름 전체를 기술해서 참조
Dim fs As System.IO.FileStream
fs = New System.IO.FileStream(fName, System.IO.FileMode.Open)
...
fs.Close()
2) 네임스페이스를 Imports문을 사용하여 가져오기 한 후 클래스 이름만 기술해서 참조
Imports System.IO
...
Dim fs As FileStream
fs = New FileStream(fName, System.IO.FileMode.Open)
...
fs.Close()
4. .NET 컴포넌트(.dll)
: 크게 사설(Private) 어셈블리와 공유(Shared) 어셈블리로 구분된다.
1) 사설(Private) 어셈블리
특정 응용프로그램이나 관련된 몇몇 응용프로그램에 한정적으로 사용되는 어셈블리
- 위치
: 응용프로그램의 루트 디렉토리(웹 응용프로그램의 경우 bin 디렉토리)
응용프로그램의 루트 디렉토리 하위 디렉토리에 위치할 경우 환경설정(.config)를 통해 하위 디렉토리를 지정함
2) 공유(shared) 어셈블리
시스템에 있는 모든 .NET 응용프로그램에서 사용 가능한 어셈블리
- 조건
: 반드시 강력한 이름(strong-Named) 어셈블리이어야 함
전역 어셈블리 캐시에 위치해야 함
- 특징
: 버전별 실행(side-by-side Execution)지원 : 클라이언트에 서로다른 버전이 동시에 존재, 원하는 버전 실행 가능
.NET 엔터프라이즈 서비스(COM+)용 컴포넌트가 되기 위한 기본조건
- 강력한 이름(strong-Named) 어셈블리
(1) 생성
1. 강력한 이름 키(key)파일 생성 : 하나의 키 파일을 생성하여 공통으로 사용
sn.exe 사용하여 생성 : sn.exe -k 키파일명(vs.net의 명령프롬프트에서 실행)
2. 생성된 키(key)파일과 함께 어셈블리 빌드
AssemblyKeyFileAttribute 특성 클래스 사용
=> AssemblyInfo.vb에 추가: <Assembly: AssemblyKeyFile(@"(절대경로 or 상대경로)키파일명")>
- 전역 어셈블리 캐시(GAC, Global Assembly cache)에 등록
: 강력한 이름(strong-Named) 어셈블리가 위치하는 시스템 캐시 영역
위치: %Window%\Assembly
gacutil.exe 사용하여 등록, 조회, 삭제 가능
=> gacutil.exe 외부도구에 추가
1. vs.net 2003 실행
2. 도구 -> 외부도구 선택
3. 외부도구 창에서 추가
제목: GAC 등록
명령: 찾기에서 C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\gacutil.exe 선택
인수: -i 입력, 한칸띄우고 화살표 클릭하여 "대상경로"선택(-i $(TargetPath))
"출력 창 사용" 에 체크하고 적용, 확인한다.
다음 강의에서 오늘 작업한 내용을 가지고 실제로 공유 어셈블리를 생성해 보도록 하겠습니다.
[100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷… | 12-27 | 2520 | ||
[채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… | 12-11 | 1849 | ||
53 | [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… | 03-15 | 1657 | |
52 | [주말]C#,ASP.NET마스터 | 01-31 | 1746 | |
51 | [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… | 01-31 | 2516 | |
50 | [평일주간야간,주말]C기본&자료구조,알고리즘 | 01-31 | 1391 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… | 01-19 | 1691 | |
48 | [평일야간,주말]안드로이드개발자과정(Android기초실무) | 01-11 | 1579 | |
47 | [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… | 01-03 | 2094 | |
46 | [100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷… | 12-27 | 2520 | |
45 | [평일주간]NoSQL,MongoDB,빅데이터기초과정 | 12-19 | 1808 | |
44 | [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… | 12-14 | 1791 | |
43 | [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… | 12-11 | 1849 | |
42 | [평일주간]빅데이터하둡기초과정(BigData Hadoop) | 12-09 | 1451 | |
41 | [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1674 | |
40 | [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… | 12-01 | 1849 | |
39 | [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) | 12-01 | 1320 |
댓글 없음:
댓글 쓰기