Creative Commons License

Community

공지/뉴스
지식공유
질문/답변
자료실
자유로운 글
방명록

공유를 넘어 교류로... 제가 알리는 말씀 및 사이트 이용자들이 함게 참여하는 커뮤니케이션 공간입니다.

.

자료실

군인이 최신 무기로 무장한채 전투에 임해야 하듯이 개발자는 강력한 툴로 무장하여 실무에 임해야 합니다. 유용한 툴, 개발 자료, 문서등을 공유하는 공간입니다

[소개] .NET 표준개발 가이드와 Microsoft.Framework 공개

작성자 박종명
작성일 2008-07-09 오후 4:36:24,    조회수 : 3337

공개 된지 꽤 오래된 내용이지만 여전히 유용한 자료를 소개하고자 합니다
 
이 문서는 Microsoft 고객들을 위해 배포 되었으며,
제목은 .NET 가이드이지만 실제 내용은 .NET  표준 개발 , 가이드 뿐만 아니라
프로젝트 구축에 관한 전반적인 내용을 포함하고 있습니다
 
프로젝트 관리자 뿐만 아니라 실무 담당자에게도 매우 가치있는 문서가 되지 않나 싶습니다.
늘 곁에 두고 봅시다 ^^;


바로가기 : .NET 표준개발 가이드와 Microsoft.Framework 공개
 
자료의 내용이 방대해 목차만 미리 올려 봅니다.
 

 목차
목차.... 2

1.     소개.... 6

1.1.           개발 가이드 소개.... 6

1.1.1.         이 문서의 목적.... 6

1.1.2.         이 문서를 읽어야 할 대상.... 6

1.1.3.         전체적인 구성.... 6

1.2.           .NET 프로젝트 Life Cycle. 6

1.2.1.         .NET 프로젝트 Life Cycle 개요.... 6

1.2.2.         개요 ? 개발 전.... 6

1.2.3.         개요 ? 개발 중.... 6

1.2.4.         개요 ? 개발 후.... 6

2.     개발 전 ? 계획과 준비.... 6

2.1.           플랫폼 선정.... 6

2.1.1.         .NET 플랫폼의 장점.... 6

2.1.1.1.        단일 프로그래밍 모델.... 6

2.1.1.2.        다양한 프로그래밍 언어 지원.... 6

2.1.1.3.        신뢰성, 확장성, 성능, 보안.... 6

2.1.1.4.        저비용, 고효율.... 6

2.1.1.5.        웹 서비스를 위한 플랫폼.... 6

2.1.2.         애플리케이션 구현 형태 결정.... 6

2.1.2.1.        웹 애플리케이션.... 6

2.1.2.2.        Windows Form 애플리케이션 (C/S) 6

2.1.2.3.        스마트 클라이언트.... 6

2.1.2.4.        애플리케이션 형태 Matrix. 6

2.1.3.         분산 애플리케이션 구현 시.... 6

2.1.3.1.        COM+ 사용 여부.... 6

2.1.3.2.        .NET Remoting vs. 웹 서비스.... 6

2.1.3.2.1.             .NET Remoting.. 6

2.1.3.2.2.             웹 서비스.... 6

2.2.           애플리케이션 아키텍처 디자인.... 6

2.2.1.         개요.... 6

2.2.1.1.        애플리케이션 아키텍처란?. 6

2.2.1.2.        계층 분할의 장단점.... 6

2.2.1.3.        논리적 아키텍처와 물리적 아키텍처.... 6

2.2.2.         논리적 아키텍처 디자인.... 6

2.2.2.1.        Presentation Layer 6

2.2.2.1.1.             Thin 클라이언트 ? 웹 애플리케이션.... 6

2.2.2.1.2.             Rich 클라이언트 ? Windows 애플리케이션 기반.... 6

2.2.2.2.        Business Logic Layer 6

2.2.2.2.1.             Business Facade Layer 6

2.2.2.2.2.             Business Rule Layer 6

2.2.2.3.        Data Access Layer 6

2.2.2.3.1.             Data Access Helper 6

2.2.2.3.2.             ADO.NET Data Provider 6

2.2.2.4.        Data Source Layer 6

2.2.2.5.        기타 Layer 6

2.2.3.         물리적 아키텍처 디자인.... 6

2.2.3.1.        2-Tier 6

2.2.3.2.        3-Tier 6

2.2.3.3.        N-Tier (Distributed 3-Tier) 6

2.2.3.4.        SOA(Service-Oriented Architecture) 6

2.2.4.         N-Tier에서 서버 배치 모델.... 6

2.2.4.1.        Web Farm 모델.... 6

2.2.4.1.1.             InProcess 모델.... 6

2.2.4.1.2.             Out-Of-Process 모델 1. 6

2.2.4.1.3.             Out-Of-Process 모델 2. 6

2.2.4.2.        Dedicated 모델.... 6

2.2.4.2.1.             DCOM RPC를 사용.... 6

2.2.4.2.2.             .NET 리모팅을 사용.... 6

2.2.4.2.3.             XML 웹 서비스를 사용.... 6

2.2.5.         .NET 관련 기술 정리.... 6

2.3.           시스템 아키텍처 디자인.... 6

2.3.1.         네트워크 아키텍처.... 6

2.3.1.1.        Intranet 아키텍처.... 6

2.3.1.2.        Internet 아키텍처.... 6

2.3.2.         하드웨어 아키텍처.... 6

2.3.2.1.        데이터베이스 서버.... 6

2.3.2.2.        애플리케이션 서버.... 6

2.3.2.3.        웹 서버.... 6

2.3.2.4.        개발 서버.... 6

2.3.2.5.        개발자 PC.. 6

2.3.3.         클러스터링, 로드밸런싱 관련 기술.... 6

2.3.3.1.        클러스터링의 개념.... 6

2.3.3.2.        Windows 2000 클러스터링 기술 개요.... 6

2.3.3.3.        MSCS(Microsoft Cluster Service) 6

2.3.3.4.        CLB(Component Load Balancing) 6

2.3.3.5.        NLB(Network Load Balancing) 6

2.4.           팀 개발 환경.... 6

2.4.1.         팀 개발 모델.... 6

2.4.1.1.        팀 개발 개요.... 6

2.4.1.1.1.             팀 개발의 특징.... 6

2.4.1.1.2.             팀 개발의 문제점.... 6

2.4.1.1.3.             팀 개발 문제 해결을 위한 열쇠.... 6

2.4.1.1.4.             팀 개발 프로세스 ? High Level Life Cycle. 6

2.4.1.2.        팀 개발 프로세스 구축 순서.... 6

2.4.1.2.1.             팀 개발 환경 구축.... 6

2.4.1.2.2.             팀 개발 환경을 위한 전용 하드웨어 리소스.... 6

2.4.1.2.3.             웹 개발 모델 선정.... 6

2.4.1.2.4.             소스프로젝트 구조 수립.... 6

2.4.1.2.5.             빌드 프로세스 구축.... 6

2.4.2.         소스세이프 사용 가이드.... 6

2.4.2.1.        소스세이프 개요.... 6

2.4.2.2.        소스세이프 서버 구성.... 6

2.4.2.2.1.             소스세이프 데이터베이스 생성.... 6

2.4.2.2.2.             소스세이프 사용자 추가.... 6

2.4.2.2.3.             공유 설정.... 6

2.4.2.3.        Visual Studio .NET에서 소스세이프 사용법.... 6

2.4.2.3.1.             소스세이프에 솔루션/프로젝트 추가.... 6

2.4.2.3.2.             소스세이프에서 솔루션/프로젝트 가져오기.... 6

2.4.2.3.3.             소스 제어 하에서 개발.... 6

2.4.2.3.4.             기타.... 6

2.4.2.4.        Visual Studio .NET 2003에서 소스세이프 변경사항.... 6

2.4.2.4.1.             소스제어 추가 시 ‘.root’가 붙게 됨.... 6

2.4.2.4.2.             임시 파일(~sak) 없애기.... 6

3.     개발 중 ? 설계와 구현.... 6

3.1.           분석 및 설계.... 6

3.1.1.         설계 프로세스 개요.... 6

3.1.1.1.        설계 프로세스.... 6

3.1.1.2.        공정표.... 6

3.1.2.         Conceptual Design. 6

3.1.2.1.        수행 절차.... 6

3.1.2.1.1.             Conceptual Design Research. 6

3.1.2.1.2.             Conceptual Design Analysis. 6

3.1.2.1.3.             Conceptual Design Optimization. 6

3.1.2.2.        세부 행동 설명.... 6

3.1.2.2.1.             Context 6

3.1.2.2.2.             Workflow Process. 6

3.1.2.2.3.             Use Case Scenario.. 6

3.1.2.3.        고려사항.... 6

3.1.3.         Logical Design. 6

3.1.3.1.        수행 절차.... 6

3.1.3.1.1.             Logical Design Analysis. 6

3.1.3.1.2.             Logical Design Rationalization. 6

3.1.3.2.        세부 행동 설명.... 6

3.1.3.2.1.             Object 추출 및 정의.... 6

3.1.3.2.2.             Object 상관도.... 6

3.1.3.2.3.             Service 일반화.... 6

3.1.3.2.4.             Class Diagram (선택적으로 작업 수행) 6

3.1.3.2.5.             UI Scratch (Sketch) 6

3.1.3.2.6.             Logical ERD.. 6

3.1.3.3.        고려사항.... 6

3.1.4.         Physical Design. 6

3.1.4.1.        수행 절차.... 6

3.1.4.1.1.             Physical Design Research. 6

3.1.4.1.2.             Physical Design Analysis. 6

3.1.4.1.3.             Physical Design Rationalization. 6

3.1.4.1.4.             Physical Design Specification Analysis. 6

3.1.4.2.        세부 행동 설명.... 6

3.1.4.2.1.             Component 상관도.... 6

3.1.4.2.2.             Application 구조도.... 6

3.1.4.2.3.             Component 명세(Specification) 6

3.1.4.2.4.             UI 명세(Specification) 6

3.1.4.2.5.             Physical ERD.. 6

3.1.4.3.        고려사항.... 6

3.2.           구현 ? 일반 지침.... 6

3.2.1.         개발 환경 설정.... 6

3.2.1.1.        개발 PC 설정.... 6

3.2.1.2.        운영체제별 환경 설정.... 6

3.2.1.2.1.             Windows 2000 / Windows XP Professional의 경우.... 6

3.2.1.2.2.             Windows 2003의 경우.... 6

3.2.1.3.        VS .NET 환경 설정.... 6

3.2.1.3.1.             키보드 단축키 설정.... 6

3.2.1.3.2.             탭과 들여쓰기 지정.... 6

3.2.1.3.3.             데이터베이스 연결 설정.... 6

3.2.2.         프로젝트 생성 및 구조 수립.... 6

3.2.2.1.        개요.... 6

3.2.2.2.        프로젝트 계층 구조 수립 방식의 종류.... 6

3.2.2.3.        소스 프로젝트 구조 기획.... 6

3.2.2.4.        실제 프로젝트 생성.... 6

3.2.2.4.1.             솔루션 생성.... 6

3.2.2.4.2.             마스터 프로젝트 템플릿 생성.... 6

3.2.2.4.3.             마스터 프로젝트 템플릿에 프로젝트 추가.... 6

3.2.2.4.4.             업무별 프로젝트 템플릿 생성.... 6

3.2.2.4.5.             업무별 프로젝트 템플릿에 프로젝트 추가.... 6

3.2.2.5.        프로젝트 구조 생성 결과.... 6

3.2.3.         명명 규칙(Naming Rule) 6

3.2.3.1.        일반 사항.... 6

3.2.3.1.1.             대소문자 혼용.... 6

3.2.3.1.2.             약어 사용을 자제.... 6

3.2.3.1.3.             단어의 선정.... 6

3.2.3.2.        네임스페이스 명명 규칙.... 6

3.2.3.3.        클래스 명명 규칙.... 6

3.2.3.4.        인터페이스 명명 규칙.... 6

3.2.3.5.        메서드 명명 규칙.... 6

3.2.3.6.        열거형(Enum) 명명 규칙.... 6

3.2.3.7.        변수 및 필드 명명 규칙.... 6

3.2.3.8.        상수(Constants) 명명 규칙.... 6

3.2.3.9.        속성(Property) 명명 규칙.... 6

3.2.3.10.             이벤트 명명 규칙.... 6

3.2.4.         주석 사용 지침.... 6

3.2.4.1.        일반 사항.... 6

3.2.4.2.        C# 주석 포맷.... 6

3.2.4.2.1.             단일 라인 주석.... 6

3.2.4.2.2.             블록 주석.... 6

3.2.4.2.3.             XML 주석.... 6

3.2.4.3.        소스코드 주석 권장안.... 6

3.2.4.4.        VB.net 주석 포맷.... 6

3.2.4.4.1.             단일 라인, 블록 주석.... 6

3.2.4.4.2.             XML 주석.... 6

3.2.4.5.        소스코드 주석 권장안.... 6

3.3.           구현 ? 프로그래밍 지침.... 6

3.3.1.         개요.... 6

3.3.2.         계층 간 데이터 전달.... 6

3.3.2.1.        별도의 메서드 매개변수로 전달.... 6

3.3.2.2.        Entity 클래스 / 구조체로 전달.... 6

3.3.2.3.        데이터 컨테이너 사용 - DataSet 6

3.3.2.4.        데이터 컨테이너 사용 - DataPack. 6

3.3.2.5.        권장 사항.... 6

3.3.3.         Presentation Layer 개발 지침.... 6

3.3.3.1.        ASP.NET Web Form... 6

3.3.3.1.1.             웹 폼 클래스 계층 구조.... 6

3.3.3.1.2.             ASP.NET 서버 컨트롤의 활용.... 6

3.3.3.1.3.             Fetch와 DataBind.. 6

3.3.3.1.4.             Load와 PreRender 이벤트.... 6

3.3.3.1.5.             구현 순서.... 6

3.3.3.2.        Windows Form... 6

3.3.3.2.1.             Windows Form 클래스 계층 구조.... 6

3.3.3.2.2.             Windows Form 컨트롤의 활용.... 6

3.3.3.2.3.             Fetch와 DataBind.. 6

3.3.3.2.4.             Windows Form의 이벤트.... 6

3.3.3.2.5.             구현 순서.... 6

3.3.4.         Business Facade Layer 개발 지침.... 6

3.3.4.1.        .NET Remoting.. 6

3.3.4.2.        웹 서비스(Web Services) 6

3.3.5.         Business Rule Layer 개발 지침.... 6

3.3.5.1.        RuleBase 클래스.... 6

3.3.5.2.        트랜잭션이 필요하지 않은 클래스(_NTx) 6

3.3.5.3.        트랜잭션이 필요한 클래스(_Tx) 6

3.3.6.         Data Access Layer 개발 지침.... 6

3.3.6.1.        DacBase 클래스.... 6

3.3.6.2.        DAC 클래스 작성.... 6

3.3.6.3.        DAC 클래스 메서드 작성.... 6

3.3.6.3.1.             쿼리를 사용하는 경우.... 6

3.3.6.3.2.             저장 프로시저를 사용하는 경우.... 6

3.3.7.         Database Connection 관리.... 6

3.3.7.1.        개요.... 6

3.3.7.2.        연결 문자열(Connection String) 6

3.3.7.3.        연결 풀링(Connection Pooling) 6

3.3.7.4.        자동 Connection 관리.... 6

3.3.8.         트랜잭션 처리.... 6

3.3.8.1.        개요.... 6

3.3.8.2.        데이터베이스 트랜잭션.... 6

3.3.8.3.        ADO.NET 수동 트랜잭션.... 6

3.3.8.4.        COM+ 수동 트랜잭션.... 6

3.3.8.5.        COM+ 자동 트랜잭션.... 6

3.3.8.6.        트랜잭션 방법 비교.... 6

3.3.8.7.        DxFrameworkLite에서의 트랜잭션 관리.... 6

3.3.8.7.1.             AutoComplete의 사용.... 6

3.3.8.7.2.             DxFrameworkLite에서 트랜잭션 구현.... 6

3.3.8.8.        결론.... 6

3.3.9.         예외 처리.... 6

3.3.9.1.        예외처리와 관련한 일반적 사항.... 6

3.3.9.1.1.             예외처리 과정.... 6

3.3.9.1.2.             예외 탐지.... 6

3.3.9.1.3.             예외 전달.... 6

3.3.9.2.        사용자 정의 예외.... 6

3.3.9.3.        Unhandled Exception 관리.... 6

3.3.9.3.1.             Web.config.. 6

3.3.9.3.2.             @Page 지시자.... 6

3.3.9.3.3.             Page_Error 6

3.3.9.3.4.             Application_Error 6

3.3.9.4.        N Tier 개발 시 예외 처리 전략.... 6

3.3.9.4.1.             기본 개념.... 6

3.3.9.4.2.             Business Logic Layer의 예외 처리.... 6

3.3.9.4.3.             Presentation Layer에서의 예외처리.... 6

3.3.9.4.4.             Unhandled Exception의 처리.... 6

3.3.9.5.        예외 정보 수집 및 로그.... 6

3.3.9.5.1.             예외 정보 수집.... 6

3.3.9.5.2.             로그 기록.... 6

3.3.10.        ASP.NET 상태 정보 관리.... 6

3.3.10.1.             개요.... 6

3.3.10.2.             Cookie. 6

3.3.10.2.1.           사용법.... 6

3.3.10.2.2.           고려사항.... 6

3.3.10.3.             ViewState. 6

3.3.10.3.1.           사용법.... 6

3.3.10.3.2.           고려사항.... 6

3.3.10.4.             Application. 6

3.3.10.4.1.           사용법.... 6

3.3.10.4.2.           고려사항.... 6

3.3.10.5.             Session. 6

3.3.10.5.1.           사용법.... 6

3.3.10.5.2.           고려사항.... 6

3.3.10.6.             Cache. 6

3.3.10.6.1.           사용법.... 6

3.3.10.6.2.           고려사항.... 6

3.3.11.        구성 정보 파일 처리.... 6

3.3.11.1.             구성 파일의 유형.... 6

3.3.11.1.1.           컴퓨터 구성 파일.... 6

3.3.11.1.2.           보안 구성 파일.... 6

3.3.11.1.3.           애플리케이션 구성 파일.... 6

3.3.11.2.             기본 구성 정보 섹션 사용법.... 6

3.3.11.3.             사용자 지정 섹션 사용법.... 6

3.3.11.3.1.           <configSections> 섹션.... 6

3.3.11.3.2.           <DxFrameworkLite> 섹션.... 6

3.3.11.3.3.           DxApplication 섹션.... 6

3.3.12.        애플리케이션 보안 ? 인증 및 권한 부여.... 6

3.3.12.1.             인증.... 6

3.3.12.1.1.           ASP.NET 인증.... 6

3.3.12.2.             권한 부여.... 6

3.3.12.2.1.           사용자 지정 권한 부여.... 6

3.3.12.2.2.           역할 기반 보안.... 6

3.3.12.2.3.           ASP.NET 권한 부여.... 6

3.4.           테스트.... 6

3.4.1.         기능 테스트.... 6

3.4.1.1.        개요.... 6

3.4.1.2.        단위 테스트.... 6

3.4.1.2.1.             NUnit 소개.... 6

3.4.1.2.2.             테스트 코드 작성.... 6

3.4.1.2.3.             테스트 수행.... 6

3.4.1.3.        사용자 액션 테스트.... 6

3.4.2.         성능 및 부하 테스트.... 6

3.4.2.1.        개요.... 6

3.4.2.2.        ACT를 사용한 테스트.... 6

3.4.2.2.1.             ACT 실행.... 6

3.4.2.2.2.             테스트 프로젝트 생성.... 6

3.4.2.2.3.             사용자 생성.... 6

3.4.2.2.4.             테스트 생성.... 6

3.4.2.2.5.             테스트 스크립트 사용자 정의.... 6

3.4.2.2.6.             테스트 실행.... 6

3.4.2.2.7.             결과 분석.... 6

4.     개발 후 ? 배포와 관리.... 6

4.1.           배포.... 6

4.1.1.         배포 단계.... 6

4.1.1.1.        물리적 환경 상의 흐름.... 6

4.1.1.2.        과정 상의 흐름.... 6

4.1.2.         배포 계획 수립.... 6

4.1.2.1.        배포 내용 선정.... 6

4.1.2.1.1.             파일 및 폴더.... 6

4.1.2.1.2.             어셈블리(Assembly) 6

4.1.2.1.3.             Serviced Component(COM+ 컴포넌트) 6

4.1.2.1.4.             IIS 설정.... 6

4.1.2.1.5.             레지스트리 설정.... 6

4.1.2.2.        배포 대상 선정.... 6

4.1.2.2.1.             클라이언트.... 6

4.1.2.2.2.             웹 서버.... 6

4.1.2.2.3.             애플리케이션 서버.... 6

4.1.2.2.4.             데이터베이스.... 6

4.1.2.3.        .NET Framework의 배포.... 6

4.1.2.3.1.             사전 설치.... 6

4.1.2.3.2.             애플리케이션과 함께 설치.... 6

4.1.2.4.        배포 전략 선정.... 6

4.1.2.4.1.             설치 패키지를 통한 배포.... 6

4.1.2.4.2.             No-Touch 배포.... 6

4.1.2.4.3.             파일 복사.... 6

4.1.3.         배포 전략 구현.... 6

4.1.3.1.        설치 패키지.... 6

4.1.3.1.1.             설치 프로젝트 생성.... 6

4.1.3.1.2.             파일 시스템 설정.... 6

4.1.3.1.3.             시작 조건 지정.... 6

4.1.3.1.4.             레지스트리에 추가.... 6

4.1.3.1.5.             파일 형식 설정.... 6

4.1.3.1.6.             사용자 지정 작업.... 6

4.1.3.1.7.             사용자 인터페이스.... 6

4.1.3.1.8.             설치 패키지 빌드.... 6

4.1.3.2.        No-Touch 배포.... 6

4.1.3.2.1.             웹 서버에 배포.... 6

4.1.3.2.2.             클라이언트에서의 실행.... 6

4.1.3.2.3.             보안 문제.... 6

4.1.3.2.4.             HTTP 를 통한 어플리케이션의 구동.... 6

4.1.3.3.        파일 복사.... 6

4.1.4.         유지 보수.... 6

4.1.4.1.        유지 보수 전략 수립.... 6

4.1.4.1.1.             업그레이드 레벨.... 6

4.1.4.1.2.             업그레이드 선택 사항.... 6

4.1.4.2.        버전 관리.... 6

4.2.           운영 및 관리.... 6

4.2.1.         시스템 관리.... 6

4.2.1.1.        인터넷 정보 서비스.... 6

4.2.1.2.        구성 요소 서비스.... 6

4.2.2.         모니터링.... 6

4.2.2.1.        이벤트 로그.... 6

4.2.2.2.        작업 관리자.... 6

4.2.2.3.        성능 모니터.... 6

 

 

 
 

이름
비밀번호
홈페이지
ON <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요