728x90
참고 : http://msdn.microsoft.com/library/aa663364

Windows Presentation Foundation 설명

기 본적으로 기술은 주로 전문가들이 중요하게 생각하는 부분으로 대부분의 소프트웨어 전문가들은 응용 프로그램과 사용자 간의 상호 작용 방식보다는 응용 프로그램의 작동 방식에 훨씬 더 많은 관심을 가집니다. 그러나 응용 프로그램을 구입하는 실제 사용자에게는 사용자 인터페이스가 매우 중요합니다. 응용 프로그램의 인터페이스는 해당 소프트웨어에 대한 전체적인 사용자 환경에서 중요한 부분을 차지하며, 사용자에게 이러한 환경은 응용 프로그램 '그 자체'를 의미합니다. 더 나은 인터페이스를 통해 향상된 사용자 환경을 제공하면 생산성을 높이고 우수 고객을 더 많이 확보할 수 있으며 웹 사이트에서의 매출을 늘리는 등 다양한 효과를 얻을 수 있습니다.

이전에는 문자 기반 인터페이스만으로 충분했지만 오늘날의 사용자들은 그래픽 인터페이스에 익숙해졌으며 사용자 인터페이스에 대한 요구 사항은 계속해서 증가하고 있습니다. 그래픽과 미디어가 더욱 광범위하게 사용되고 있으며 웹의 발전은 소프트웨어와의 편리한 상호 작용을 기대하는 사용자 계층을 형성하게 되었습니다. 사용자들이 응용 프로그램을 사용하는 시간이 늘어날수록 해당 응용 프로그램의 인터페이스는 더욱 중요해집니다. 이렇듯 점점 높아지는 인터페이스 요구 사항에 부응하기 위해서는 사용자 인터페이스를 만드는 기술도 함께 발전해야 합니다.

WPF(Windows Presentation Foundation)의 목표는 Windows에 바로 이러한 고급 기능을 제공하는 것입니다. Microsoft .NET Framework 버전 3.0에 포함된 WPF를 사용하면 문서, 미디어, 2차원 및 3차원 그래픽, 애니메이션, 웹 특성 등을 포함하는 인터페이스를 만들 수 있습니다. WPF는 .NET Framework 3.0의 모든 구성 요소와 마찬가지로 Windows Vista, Windows XP 및 Windows Server 2003에서 사용할 수 있으며 Windows Vista와 함께 출시될 예정입니다. 이 백서에서는 WPF를 소개하고 WPF의 다양한 구성 요소에 대해 설명하며 이 기술을 통해 해결할 수 있는 문제점과 WPF가 제공하는 솔루션에 대해 살펴봅니다.


728x90

'개발및업무 > C#' 카테고리의 다른 글

dll로 소스 찾기 - (cs파일이 없는 경우)  (0) 2010.12.11
dll 파일 생성 방법  (0) 2010.12.11
클래스와 멤버변수  (0) 2010.12.03
Math.Round 함수  (0) 2010.11.30
자바스크립트 substring 과 substr의 차이  (0) 2010.09.24
728x90
728x90

'개발및업무 > C#' 카테고리의 다른 글

dll 파일 생성 방법  (0) 2010.12.11
Windows Presentation Foundation 소개  (0) 2010.12.11
Math.Round 함수  (0) 2010.11.30
자바스크립트 substring 과 substr의 차이  (0) 2010.09.24
.NET Compiler  (0) 2010.08.10
728x90

Math.Round는 반올림 함수이다.

반올림 하려는 자릿수가 5인 경우 보통 올림이 된다고 생각하는데 Math.Round는 그렇지 않다.

예) Math.Round(3.125, 2) --> 예상값 : 3.13 이라고 생각하지만 실제 결과값 : 
3.12
예) Math.Round(3.135, 2) --> 예상값 : 3.14, 결과값 : 3.14

그 이유인즉, Round 함수는 통계학 함수이다.

Round 함수는 반올림되는 수 바로 앞의 값이 짝수인 경우 버림이 되고, 반올림 되는 자릿 수의 값이 홀수인 경우 올림이 된다.

이렇게 함으로써 확률적으로 실제 평균값에 가깝도록 만드는 것이다.

이런 방식을 금융권에서도 쓰고 있다. 이러한 방식을 Banker's Rounding 방식이라고 한다.

닷넷의 Round 함수를 이용할때 MidpointRounding.AwayFromZero 파라미터의 여부에 따라 다른 값을 가질 수 있다.

* Math.Round(3.125, 2, MidpointRounding.AwayFromZero) --> 결과값 : 3.13
* Banker's Rounding 방식 : Math.Round(3.125, 2) --> 결과값 : 3.12

728x90

'개발및업무 > C#' 카테고리의 다른 글

dll 파일 생성 방법  (0) 2010.12.11
Windows Presentation Foundation 소개  (0) 2010.12.11
클래스와 멤버변수  (0) 2010.12.03
자바스크립트 substring 과 substr의 차이  (0) 2010.09.24
.NET Compiler  (0) 2010.08.10
728x90

자바스크립트에서 substring 은 문자열을 끊을때 시작점과 끝점을 설정하여 그 안에 포함된 문자열을 가져온다.
주의해야 할것은 시작점과 끝점은 인덱스라 하여 0번 부터 시작이다. 

예를 들어
ABCDEF 라는 문자열이 있을때
순서 A가 1번 부터가 아닌 0번 부터 시작 되는것이다.

ABCD 문자열을 뽑고 싶다면 변수.substring(0,3) 이렇게 하면 된다.
0번 인덱스는 A 를 가르키고 3번 인덱스는 D를 가르킨다.
고로 시작점에서 끝점까지 문자열을 가져오므로 ABCD 가 된다.

substr 은 substring 과 같이 문자열의 인덱스를 사용하는데 다른 점은 시작점에서 부터 몇개의 문자열을 가져올때 사용한다.

같은 예로 ABCDEF 를 substr(0,3)을 하면 0번 인덱스 A 에서 3개의 문자를 가져오므로 ABC가 된다.

실제예)
var string ="ABCDEF";
var ex1 = string.substring(0,3);   ===>ABCD
728x90

'개발및업무 > C#' 카테고리의 다른 글

dll 파일 생성 방법  (0) 2010.12.11
Windows Presentation Foundation 소개  (0) 2010.12.11
클래스와 멤버변수  (0) 2010.12.03
Math.Round 함수  (0) 2010.11.30
.NET Compiler  (0) 2010.08.10
728x90

 

http://mkexdev.net/Community/Content.aspx?ID=90&categoryID=15&parentCategoryID=4

위의 페이지에서 가져온 내용입니다.
 

.NET Compiler(csc.exe)

 

VS.NET은 디자인 타임 편집기, 코드마법사, 구성 대화상자 등과 같은 기능들을 이용해 타이핑 시간을 줄여주는 것에 지나지 않는다.

VS.NET을 이용해서 응용 프로그램을 빌드하는 것은 결국 C# 컴파일러에게 *.cs 입력 파일을 조작하는 방법을 지시하는 것과 같다.

이런 의미에서 개발자가 back단에서 컴파일이 어떻게 일어나는지 알아보는 것과 VS.NET 툴을 사용하지 않고 개발을 해 보는 것이 도움이 될 것이라 생각한다.

 

1. .NET Framework 설치

 

Csc.exe .NET SDK가 올바로 설치될 때 정상적으로 구성된다.

설정이 올바로 적용되었는지 확인하기 위해서는 .NET Framework 설치 폴더에서 cmd창을 열어 csc -? 를 입력하여 테스트 할 수 있다.(csc : C Sharp Compiler)

만일 csc 를 인식할 수 없는 에러가 발생한다면 path를 지정해 주지 않았기 때문이다.

내컴퓨터 속성 ? 고급 ? 환경변수 에 Path를 더블클릭 한 후 아래 내용을 추가한다.

 

…;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(.NET SDK 버전)

 

2. CSC.EXE 옵션

 

그럼 csc.exe 컴파일러를 이용하여 c#응용 프로그램을 빌드하여 TestApp.exe 라는 실행파일을 만들어 볼 것이다.

 

우선 c# 컴파일러의 주요 옵션들에 대해 알아보자.

 

 

입력 플래그 정의
/recurse 프로젝트의 하위 디렉터리 구조에 있는 C# 파일을 컴파일하도록 csc.exe에 알린다.
이 플래그는 와일드카드 구문을 지원한다.
/reference (/r) 현재 컴파일에서 참조할 외부 어셈블리를 지정하는 데 사용된다.
/addmodule 다중 파일 어셈블리에 포함할 모듈을 지정하는 데 사용된다.

 

[ 1]c# 컴파일러 입력 옵션

 

출력 플래그 정의
/out 생성할 어셈블리 이름을 지정한다. 이 플래그를 생략하면 출력 파일 이름은 *.dll 어셈블리의 경우에는 초기 입력 파일 이름을 기반으로, *.exe 어셈블리의 경우에는 Main() 메서드를 정의하는 클래스를 기반으로 지정된다.
/target (/t) 만들 어셈블리의 파일 형식을 지정한다.
/doc XML 문서 파일을 생성하는 데 사용된다.
/delaysign 강력한 이름의 서명 연기를 사용하여 어셈블리를 빌드할 수 있도록 한다.
/keyfile 어셈블리에 강력한 이름을 지정하는 데 사용되는 *.snk 파일 경로를 지정한다.
/keycontainer *.snk 파일을 포함하는 컨테이너의 이름을 지정한다.
/platform 어셈블리를 호스트하는 데 필요한 CPU(x86, Itanium, x64, anycpu)를 지정한다. 기본값은 anycpu이다.

 

[ 2]c# 컴파일러 출력 옵션

입력/출력 옵션 중 가장 다양하게 활용되는 옵션은 /target이다. 이 플래그는 사용자가 추가 장식을 사용함으로써 생성하려는 .NET 어셈블리 형식을 컴파일러에 알린다.

 

Target 장식 정의
/target:exe 콘솔 기반 어셈블리를 만든다. /target 옵션이 지정되어 있지 않은 경우의 기본값이다.
/target:winexe Windows Forms 기반 실행 가능 어셈블리를 만든다. /target:exe를 사용하여 Windows Forms 응용 프로그램을 만들 수는 있지만, 콘솔 창은 기본 폼의 배경에 희미하게 표시된다.
/target:library .NET 코드 라이브러리(*.dll) 빌드에 사용된다.
/target:module 다중 파일 어셈블리의 일부가 될 모듈을 만든다.

 

[ 3]c# 컴파일러 /target 상세 옵션

 

3. CSC.EXE 사용

 

그럼 컴파일 하기 위해 Notepad를 열어 간단한 C# 프로그램을 만들어 보자.

 

 

[그림 1]C# 예제 프로그램

 

[그림 1] 소스코드를 TestApp.cs 라는 이름으로 저장한다.

이제 실행 파일(TestApp.exe)을 만들기 위해 명령 창에 아래와 같은 명령을 실행해 보자.

 

Csc /target:exe TestApp.cs

 

위 명령에서 /target 대신 /t 와 같이 약어를 사용할 수 있다.

 

사실 /t:exe c# 컴파일러가 사용하는 기본 출력이므로 이 명령을 생략하고 아래처럼 실행해도 같은 결과가 나타난다.

 

Csc TestApp.cs

 

이와 같이 단일 클래스 파일을 빌드하여 응용 프로그램을 만들었다.

 

4. 외부 어셈블리 참조하기

 

단일 외부 어셈블리 참조

 

외부 .NET Assembly 형식을 사용하는 응용 프로그램을 어떻게 만드는지 알아보자.

외부 어셈블리 참조 과정을 알아보기 위해 TestApp.cs 를 수정하여 테스트를 진행해 보자.

 

 

[그림 2]외부 어셈블리 참조 예제 프로그램

 

[그림 2]코드는 System.Windows.Forms 외부 닷넷 어셈블리를 참조하였다.

이 어셈블리의 MessageBox 객체를 이용하여 메시지 박스로 Hello를 출력하는 예제이다.

Csc.exe 명령어의 /reference 플래그(/r)를 이용하여 어셈블리를 지정해 줘야 한다.

 

CSC /r:System.Windows.Forms TestApp.cs

 

다중 외부 어셈블리 참조

 

여러 개의 외부 어셈블리를 참조해야 하는 경우 세미콜론을 이용하여 각각의 어셈블리를 적어주면 된다. 다중 외부 어셈블리 참조의 예는 아래와 같다.

 

Csc /r:System.Windows.Forms.dll;System.Drawing.dll /out:TestApp.exe *.cs

 

*.cs는 해당 디렉토리에 있는 모든 cs 파일을 컴파일 한다는 의미이다.

 

5. XML 문서 기능 사용하기

 

소스 코드를 XML로 문서화하기 위해 /doc 옵션을 이용할 수 있다.

아래와 같은 명령을 실행하므로써 TestApp.xml 파일을 얻을 수 있다.

 

Csc TestApp.cs /doc TestApp.xml

 

6. csc.exe 지시 파일로 작업하기

 

만일 웹 사이트를 개발할 경우 명령 창에 입력해야 할 명령어들이 굉장이 많을 것이다.

타이핑의 부담을 덜 수 있도록 C#컴파일러는 지시파일을 인식할 수 있게 만들어졌다.

C# 지시 파일에는 컴파일 시 사용되는 모든 명령어를 적어 둘 수 있다.

확장자가 rsp인 이 파일은 명령창에서 수많은 플래그들을 쉽게 등록할 수 있다.

 

예로써 아래 코드를 TestApp.rsp 라는 이름의 지시 파일을 만들어 보자.(주석=#)

 

#TestApp.exe 지시 파일

/r:System.Windows.Forms.dll

/target:exe /out:TestApp.exe *.cs

 

이 파일을 컴파일 할 파일과 같은 경로에 둔 후 아래 명령어를 실행하면 정상적으로 동작한다.

 

Csc @TestApp.rsp

 

필요하다면, 여러 개의 rsp를 지정할 수도 있다. 여러 개를 지정할 때 염두해 두어야 할 점은 컴파일러가 명령 옵션을 순서대로 처리한다는 것이다.

 

기본 지시 파일(csc.rsp)

 

C#컴파일러는 기본 지시 파일을 아래의 경로에 가지고 있다.

 

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.rsp

 

Csc.exe를 이용해 빌드할 때 위 파일이 자동 참조된다.

참고로 csc.rsp 를 자동적으로 읽지 않게 하려면 /noconfig 플래그를 지정하면 된다.

728x90

'개발및업무 > C#' 카테고리의 다른 글

dll 파일 생성 방법  (0) 2010.12.11
Windows Presentation Foundation 소개  (0) 2010.12.11
클래스와 멤버변수  (0) 2010.12.03
Math.Round 함수  (0) 2010.11.30
자바스크립트 substring 과 substr의 차이  (0) 2010.09.24

+ Recent posts