33
제 1 제 C# 제 제제 1.1 .NET Framwork 1.2 .NET Environment 1.3 C# 제제

제 1 장 C# 의 기초 1.1 .NET Framwork 1.2 .NET Environment 1.3 C# 소개

Embed Size (px)

DESCRIPTION

제 1 장 C# 의 기초 1.1 .NET Framwork 1.2 .NET Environment 1.3 C# 소개. Visual Studio.NET 설치하기. 컴포넌트 업데이트 컴포넌트 (Component) – 프로그램을 설치하기 위한 구성요소 Visual Studio.NET 설치의 1 단계 과정 Windows Component Update – 컴포넌트들을 VS.NET 에 필요한 수준으로 업데이트 Visual Studio.NET 설치 설치를 위한 리소스 임시디렉토리에 복사 사용권 계약 - PowerPoint PPT Presentation

Citation preview

제 1 장 C# 의 기초

1.1 .NET Framwork

1.2 .NET Environment

1.3 C# 소개

C# Programming

Visual Studio.NET 설치하기

컴포넌트 업데이트 컴포넌트 (Component) – 프로그램을 설치하기 위한

구성요소 Visual Studio.NET 설치의 1 단계 과정 Windows Component Update – 컴포넌트들을 VS.NET 에

필요한 수준으로 업데이트

Visual Studio.NET 설치 설치를 위한 리소스 임시디렉토리에 복사 사용권 계약 설치 옵션 설정

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 Applicati

on 을 실행하는데 필요한 실행 엔진 , 응용 프로그램 실행 시 자동 연결 실행•

C# Programming

.NET Framework (cont..)

웹 서비스 사용자 인터페이스

ADO.NET( 데이터와 XML)

.NET Framework Class Library

CLR(Common Language Runtime)

메시지 큐잉 COM+ IIS WMI

Win32( 윈도우 플랫폼 )

ASP.NET

프로그래밍언어스크립팅 언어

.NET Framework 구성

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 코드로 컴파일

결과는 어셈블리 형태

MSIL 코드로 컴파일

결과는 어셈블리 형태

컴파일

컴파일

전체 구조

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)작업 목록 (Task)

출력 창 (Output Window)출력 창 (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() 메서드Main() 메서드

C# Programming

C# 소개 (cont..)

기본 클래스 구현하기 콘솔 응용 프로그램 생성 [ 파일 | 새로 만들기 | 프로젝트 ] 선택

C# Programming

C# 소개 (cont..)

Visual C# 프로젝트에서 콘솔 응용 프로그램 선택

프로젝트명

확인 버튼 클릭시

HelloWorld 응용 프로그램 생성

프로젝트명

확인 버튼 클릭시

HelloWorld 응용 프로그램 생성

C# Programming

C# 소개 (cont..)

Class1.cs 의 이름을 HelloWorld.cs 라고 바꿔준다 . 오른쪽 마우스 이용 Class1.cs 파일을 선택

한 후 속성창에서 변경

Class1.cs 를 선택한 후 이 버튼을 클릭하면 속성창이 나타난다 .

Class1.cs 를 선택한 후 이 버튼을 클릭하면 속성창이 나타난다 .

C# Programming

C# 소개 (cont..)

기본으로 생성되는 코드

C# Programming

C# 소개 (cont..)

코드추가 예제 1-1

Hello, World!

콘솔 창에 출력

Hello, World!

콘솔 창에 출력

C# Programming

C# 소개 (cont..)

컴파일과 실행 메뉴에서 [ 빌드 |솔루션 빌드 ]를선택하여 컴파일

[디버그 |시작 }을 선택하여실행한다 .

컴파일과 실행을 일괄적으로 처리하기 위해선 Ctrl+F5를 누르면 된다 .

C# Programming

C# 소개 (cont..)

HelloWorld 의 결과 화면

C# Programming

C# 소개 (cont..)

HelloWorld.cs 분석 자바와 같이 main() 메서드를 포함하고 있는 클래스 이름과

파일 이름이 같아야 할 필요 없음 BCL(Base Class Library) 중 System namespace 안에 정의된

클래스 사용 명시

HelloWorld 란 이름의 namespace 로 정의유지보수와 프로그램 이해 이점

using System; using System;

Namespace HelloWorld

{

…//

}

Namespace HelloWorld

{

…//

}

C# Programming

C# 소개 (cont..)

class란 키워드를 사용하여 helloworld 클래스 선언

메인 함수를 하나의 싱글 쓰레드안에서 실행하기 위해 어트리뷰트를 선언Main() 메서드 안에서 멀티 쓰레드를 구현하기 위해서는 [MTAThread]로 설정

class helloworld

{

}

class helloworld

{

}

[STAThread][STAThread]

C# Programming

C# 소개 (cont..)

Main() 메서드는 애플리케이션의 진입점 static – 모든 클래스에서 공유하기 위한 멤버를 선언하는데 사용

객체를 생성하지 않고 시작이 가능 string[] args – 매개변수 , 명령행의 명령어를 인자로 받음

Console 클래스는 콘솔 응용프로그램에 대한 표준 입출력 및 오류 스트림을 말함 , Console 클래스의 WriteLine() 메서드를 이용하여 “ “ 내의 Hello, World! 문자열 출력

static void Main(string[] args)static void Main(string[] args)

Console.WriteLine(“Hello, World!”);Console.WriteLine(“Hello, World!”);