C# Programming .NET Framework (cont..) C# 응용 프로그램

Download Report

Transcript C# Programming .NET Framework (cont..) C# 응용 프로그램

제1장 C#의 기초
1.1 .NET Framwork
1.2 .NET Environment
1.3 C# 소개
C# Programming
.NET Platform의 역사
 DOS (1980) : DOS, Windows3.0 …
 Win16(1990): Windows 3.0 ~ Windows Me
 Win32(1995): Windows 95 ~ Windows Vista
Windows CE
 .NET(2002) : Windows Server 2003
Windows Vista
Windows CE 5.0
C# Programming
.NET Framework
 개요
 여러 환경에서 응용 프로그램을 개발하기 위한 플랫폼
 목표 – .NET Framework에 의한 서로 다른 기종들간의 통합
 현재 Windows 운영체제에서만 실행, 차후 FreeBDS, Linux,
Mac., PDA 등에서 실행되는 버전 개발
 다양한 응용 프로그램 개발 – Windows 응용 프로그램, 웹 응
용프로그램, 웹 서비스 등 모든 종류 가능
 언어 독립적 – 다양한 언어 사용 개발 가능
C# Programming
.NET Framework (cont..)
 .NET Framework 내용
 방대한 코드라이브러리로 구성
 용도와 목적에 따라 다른 모듈 구성
 CTS(Common Type System) – 상호운영성을 위한 데이터의
기본적인 특징 정의, .NET 언어가 되기 위한 규약
 CLR(Common Language Runtime) - .NET Framework
Application을 실행하는데 필요한 실행 엔진, 응용 프로그램
실행 시 자동 연결•실행
C# Programming
• 이해하기 쉽고 빠른 개발 모델의 제공 – 기존의 Win32 API, MFC 등을
이용한 프로그래밍 보다 쉬운 개발 모델을 제공하며, Visual Studio.NET의
RAD(Rapid Application Development) 개발 도구로서의 기능이 강화되었
다.
• 자동으로 자원 관리 – 공통 언어 런타임은 프로그램에서 사용되는 자원
을 자동으로 추적하여 자원의 누출 등을 방지하고, 사용하지 않은 자원은
가비지 컬렉션(garbage collection) 기능에 의해 자동으로 해제한다.
• 형식 안전성 – 불안전하거나 잘못된 형식 캐스팅, 초기화하지 않은 변수
등의 여부를 조사하여 이로 인한 프로그램의 불안전성을 막는다.
• 예외에 대한 대비와 디버깅 – 예외가 발생했을 때 예외에 대한 리포팅과
강력한 예외 처리 기능을 지원하며 강력한 디버깅 기능을 지원한다.
• 배포, 설치, 삭제에 용이함 - .NET 응용 프로그램은 레지스트리에 의존
하는 바가 적으며, 기존에 쉽지 않았던 인스톨, 배포 기능을 파일들을 단순
히 복사하듯이 쉽게 관리할 수 있게 되었고, 삭제 기능도 파일들을 삭제하
듯이 쉽게 관리하게 되었다.
C# Programming
.NET Framework (cont..)
 .NET Framework 구성
프로그래밍언어
스크립팅 언어
웹 서비스
사용자 인터페이스
ASP.NET
ADO.NET(데이터와 XML)
.NET Framework Class Library
CLR(Common Language Runtime)
메시지 큐잉
COM+
Win32(윈도우 플랫폼)
IIS
WMI
C# Programming
.NET Framework (cont..)
 응용 프로그램 작성
 C# 언어와 VS.NET의 추가적인 도구 사용
 컴파일 – 2단계의 과정을 통한 실행 가능한 형태로 변환
 MSIL(MicroSoft Intermediate Language) – 운영체제에 국
한되지 않은 중간 언어, 직접 실행 불가능
 JIT(Just-In-Time) – MSIL 코드를 원시코드로 컴파일, OS
가 실행할 수 있는 응용프로그램의 형태
 어셈블리(Assembly)
 프로그램의 실행 및 배포 단위
 실행파일(.exe), 라이브러리파일(.dll) 포함
 메타데이터에 의한 자기서술적 특징
 파일복사에 의한 응용 프로그램 배치 가능
C# Programming
.NET Framework (cont..)
 관리되는 코드
 CLR에 의한 관리 기능을 이용하여 실행되는 코드
 가비지 컬렉션
 응용프로그램이 사용하던 메모리를 해제
 링킹
 응용 프로그램 코드를 여러 개의 소스코드 파일로 나눈 후,
그것을 단일한 어셈블리로 합쳐서 컴파일 하는 것
 코드를 여러 파일로 나누어 작업 → 완료시 파일은 코드 단위
 작업 효율성 증가
C# Programming
.NET Framework (cont..)
 전체 구조
C# 응용
프로그램 코드
네이티브 코드
컴파일
네이티브 코드
.NET CLR
컴파일
어셈블리
네이티브 코드
MSIL코드로 컴파일
결과는 어셈블리 형태
시스템 런타임
C# Programming
.NET Framework (cont..)
 MSIL(MicroSoft Intermediate Language)
 언어마다 다르게 작성
 필요할 때마다 단위별로 Compile하여 사용
 호환성이 높다
 실행시 CPU에 따른 최적화 가능
 첫번째 실행새 JIT컴파일 시간이 필요함
 Cache사용에 따른 메모리 과다 사용
C# Programming
.NET Environment
 Visual Studio.NET
 차세대 운영환경을 개발하기 위한 도구
 .NET Framework가 상위레벨로 존재 → 유연한 구조
 CLS(Common Language Specification, 개발언어 인터페이스)
는 VB.NET, C#에 맞는 런타임 인터페이스 제공
 상위의 언어(C#, VB.NET, C++, Jscript 등)는 동일한 하부구
조의 존재로 자신에게 맞는 언어로 프로그래밍
 하나의 프로그램을 여러 언어로 작성가능
 자유로운 디버깅
C# Programming
.NET Environment (cont..)
 .NET의 특징
 편리함, 향상된 생산성 – 동적 도움말, 자동 숨김 기능, 향상
된 코드 편집기능 등
 새롭고 현대적인 언어 C# 포함
 통합개발환경(1)
 사용자를 위한 환경설정
 시작 페이지는 웹 형식으로 구성 – 웹 브라우저 기본 내장
 MSDN 도움말 활용 가능
 다양한 기능이 있는 도구 모음
C# Programming
.NET Environment (cont..)
 VS.NET 초기화면
C# Programming
.NET Environment (cont..)
 도구상자




윈도우 컨트롤
웹폼 컨트롤
데이터 컨트롤
자주 사용되는 코드 등록 가
능
 컨트롤 추가 방법 – 컨트롤
을 폼으로 드래그, 도구상자
의 컨트롤 더블 클릭
C# Programming
.NET Environment (cont..)
 XML
 데이터 교환의 표준으로 사용
 데이터 교환 시 SOAP 이용
 XML과 XSD를 간단하게 작
성할 수 있도록 지원
C# Programming
.NET Environment (cont..)
 서버탐색기
 서버 상태 리소스를 한눈에 보임
 현재 사용 중인 모듈과 프로세스
의 리스트, 서비스 항목을 볼 수
있음
C# Programming
.NET Environment (cont..)
 코드 편집기
 코딩시 라인별 오류를
알려줌
 프로시저별로 코드 내
용을 펼치거나 줄여서
볼 수 있음
C# Programming
.NET Environment (cont..)
 솔루션 탐색기
 솔루션 – 프로젝트보다 큰 범위,
연관된 다수의 프로젝트 포함가능
 해당 솔루션을 구성하는 프로젝트
들과 각각의 프로젝트를 구성하는
네임스페이스, 클래스, 소스 코드
등을 디렉토리화 하여 관리 가능
 팝업 메뉴를 통한 기능 지원
C# Programming
.NET Environment (cont..)
 클래스 뷰
 클래스에 대한 정보 표시, 편집 시 사용
C# Programming
.NET Environment (cont..)
 속성 창
 컨트롤의 속성과
이벤트에 대한 설
정 기능
 기본 내용에서 바
뀐 부분은 볼드체
로 표시
 컨트롤 더블 클릭
시 이벤트 핸들러
에 자동으로 바인
딩 기능 지원
C# Programming
.NET Environment (cont..)
 동적 도움말
 현재 개발자가 시행하고 있는
작업 내용을 자동으로 보여줌
버튼에 대한 작업 시 동적
으로 버튼에 대한 도움말을
보여줌
C# Programming
.NET Environment (cont..)
 작업 목록과 출력 창
 프로젝트가 컴파일 될때의
정보를 표시
 직접 입력 및 VS.NET에 의
한 자동 생성
작업 목록(Task)
출력 창(Output Window)
C# Programming
C# 소개
 .NET CLR안에서 실행되는 언어 중 하나
 다른 언어들의 장점을 도입하고 문제점을 제거하
여 설계
 데이터에 특정한 형식이 부여되면 그와 관계없는
형식으로 변환할 수 없음
 형식의 안전을 위해 길고 장황한 코드를 작성필요
 .NET 코드라이브러리가 제공하는 모든 기능들을
완전하게 활용
C# Programming
C# 소개 (cont..)
 C#으로 작성할 수 있는 응용 프로그램
 Windows 응용 프로그램
 Web 응용 프로그램
 Web Service
 데이터 베이스 엑세스를 위한 응용 프로그램(ADO.NET)
 네트워킹 구성 요소, 그래픽 출력, 복잡한 수학 연산 등을 위
한 도구
C# Programming
C# 소개 (cont..)
 C# 프로그램의 구조
 객체 지향 언어, 클래스 단위의 프로그램 방식
 반드시 하나이상의 메인 메서드를 갖는 클래스가 존재
Main() 메서드
C# Programming
.NET Component
 정의
- 바이너리 수준에서 조립하여 사용할 수 있는 소
프트 웨어 부품
요건
1. 동적 연결 library
2. 언어간 호환
3. OOP방법론
 기존 Component
- COM, CORBA
C# Programming
Distribute Component
 .NET Remoting
 C/S 양측 다 .NET FrameWork가 설치되어야 함
 .NET의 모든 기술 사용가능
 수행력이 높다
 ASP .NET XML Web Service
 XML 문서를 이용한 통신
 호환성이 높다
 Platform에 구애받지 않는다(Client)
 Method만 사용가능