Midnight Peach 2.0 샘플 애플리케이션, 솔루션의 생성과 DBML 파일의 생성

Midnight Peach 2009. 3. 18. 14:31

[주의]
이 글은 MP의 현재 버전 (3.X)에 맞지 않습니다.

단순 참고용으로만 활용하십시오

오늘부터 몇 회에 걸쳐 Midnight Peach 2.0을 사용하는 샘플 애플리케이션을 만들어보도록 하겠습니다.

이를 통해 Midnight Peach를 활용하면 개발 방법이 어떻게 바뀌는지, 또 그로 인해 얻게 되는 득과 실은 무엇인지에 대해 감을 잡을 수 있기를 기대합니다.


‘메모패드’ 라는 단순한 애플리케이션을 만들어 볼 것인데, 그 전에 이 ‘단순한’ 이란 형용사 대한 제 고민을 고백해야겠습니다.

한 때 C로 작성된 Hello world의 여러 가지 버전이 유행한 적이 있습니다.

(리치의 책에 등장하는) 오리지널 한 줄 짜리 버전 부터 시작해서 점점 복잡하고 정교한 버전으로 변화해 가는데, 그 중에는 C에서 유사 클래스(함수 포인터를 가진 구조체)를 구현한 버전이 있나 하면, Hello World를 출력하기 위한 프레임웍을 구축한 것으로 (제가 보기에는) 짐작되는 버전도 있었습니다.

Midnight Peach의 샘플 애플리케이션을 만드려니 뜬금없이 그 이야기가 생각이 납니다.

샘플이 너무 단순하여 필드에서의 요구사항들(보안, 확장성, 성능 등)을 생략하면 샘플의 유용성이 떨어질 것이고, 필드에서 개발하는 수준으로 샘플을 만들면 원래 샘플이 보여주려고 했던 핵심이 가리워질 것입니다.

대부분의 문제가 그렇듯이 이 문제 역시 취사선택의 문제인 듯 합니다.

메모패드는 샘플이 원래 보여줄려고 한 부분, 즉 Midnight Peach를 프레임웍 한 개발 방법을 보여주는 것에 주안을 두도록 하겠습니다.

굳이 이 이야기를 미리 말씀드리는 이유는, Midnight Peach를 필드에서 사용하실 때 메모패드를 기준으로 삼는 우를 범하지 마시라는 노파심에서였습니다.


메모패드는 아래 그림에서 보듯이 일종의 방명록 입니다.

사용자가 메모를 남기는 웹과 관리자가 메모들 관리하는 관리자 툴로 이루어져 있습니다.

아래 스샷은 각각 웹과 관리자 툴의 모습입니다.

데이터베이스의 스키마는 아주 간단한데, 메모와 카테고리라는 두 개의 테이블로 이루어져 있습니다.


아래 .sql 파일을 실행하여 데이터베이스를 생성한 후 본격적으로 샘플 애플리케이션을 만들어 보도록 하겠습니다.

Memopad.sql


Midnight Peach 2.0에는 전용 비주얼 스튜디오 솔루션을 생성하는 기능이 있습니다.

Midnight Peach를 실행한 후 솔루션 생성 버튼을 눌러 비주얼 스튜디오용 솔루션을 생성합니다.

솔루션 명과 솔루션이 생성될 디렉토리를 지정합니다.

확인을 누르면 아래와 같은 질문이 나타납니다.

Yes를 눌러 바로 솔루션을 열거나, No를 눌러고 비주얼 스튜디오를 실행시켜 방금 만든 솔루션을 엽니다.

생성된 솔루션의 구조를 살펴봅시다.

비지니스 레이어(Memopad.Biz)와 그 단위 테스트(Memopad.BizTest), WCF 서비스(Memopad.Service), 서비스 레이어(Memopad.ServiceBiz)에 해당하는 프로젝트가 각각 생성되었습니다.

또한 각 프로젝트에 필요한 참조도 추가되었는데(예를 들어 비지니스 레이어 단위 테스트 프로젝트는 비지니스 레이어 프로젝트가 필요합니다.), 이에는 MP가 생성한 프로젝트 뿐 아니라 System.Conmfiguration.dll과 같은 시스템 어셈블리도 포함됩니다.

붉은 색으로 표시된 부분은 추가된 폴더 혹은 프로젝트 아이템인데, MP가 생성하거나 사용자가 작성한 코드가 들어가게 됩니다.


이제 DBML 파일을 작성할 차례입니다.

Memopad.Biz 프로젝트의 Memopad.dbml 파일을 엽니다.

속성 창을 보면 Serialization Mode 속성이 기본값이 None이 아닌 Unidirectional로 지정되어 있는 걸 볼 수 있습니다.

이는 WCF 서비스를 통해 엔터티를 전송할 때 필요한 설정인데 WCF를 사용하지 않는다면 기본값 그대로 두어도 무방합니다.

자세한 내용은 MSDN을 참조하십시오.

서버 탐색기에서 Memo와 Category 테이블, 그리고 MemoView 뷰를 디자이너 화면으로 끌어옵니다.

그럼 디자이너의 화면은 다음과 같습니다.

솔루션을 빌드하여 무사히 빌드가 되는지 확인합니다.


여기까지가 본격적인 코딩을 위한 위밍업이었습니다.

다음 포스트 부터는 LINQ를 비롯해 다소 복잡한 코드가 등장합니다.

맛있는 담배를 한 대 하면서 머리를 잠시 식힌 후 또 달리도록 합시다.

: