Midnight Peach 2.0 샘플 애플리케이션, 웹 애플리케이션 (1/2)

Midnight Peach 2009. 3. 19. 12:15

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

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

이번 시간에는 메모패드의 프론트 엔드인 웹 애플리케이션을 만들어보겠습니다.

전체적인 모습은 다음과 같습니다.

비지니스 레이어 생성

먼저 앞 시간에 만든 솔루션에 Memopad.Web이라는 웹 애플리케이션 프로젝트를 추가하고, 생성된 웹 애플리케이션 프로젝트의 참조에 Memopad.Biz 프로젝트를 추가합니다.

이제 MP가 나서서 비지니스 레이어 코드를 만들 차례입니다.

MP를 실행시키고 비지니스 레이어 생성 버튼을 누릅니다.

Memopad.Biz를 빌드하여 생긴 DLL을 선택하고 확인을 누릅니다.

(내장 패키지와 커스텀 패키지를 선택할 수도 있으나 현재로서는 Default라는 내장 패키지 만이 제공되고 있으므로 기본값 그대로 선택하면 됩니다.)

MP가 코드를 생성할 테이블과 뷰를 지정합니다.

기본값은 모든 테이블과 뷰에 대해 코드를 생성하는 것입니다.

확인을 눌러 다음으로 넘어갑니다.

DBML을 변경해야 한다는 안내가 나타났습니다.

LINQ to SQL는 모든 값 저장 방식과 버전 번호 방식이라는 두 가지 동시성 검사 방법을 지원합니다.

MP에서는 현재 버전 번호 방식만 지원하니다.

따라서 모든 테이블은 IsVersion 속성이 지정된 컬럼을 가져야 하며, 그렇지 않은 경우에는 모든 컬럼의 UpdateCheck 속성이 “Never”로 설정되어야 합니다.

위 안내 메시지는 이 규칙을 위반한 테이블의 목록을 보여주며, 자동으로 이 규칙을 적용하는 방법을 제공합니다.

메모패드의 테이블들은 버전 번호 컬럼이 없으니까 모든 컬럼의 UpdateCheck 속성을 “Never”로 변경하는 방법을 사용하겠습니다.

화면 하단의 변경 버튼을 누르면 변경할 dbml 파일을 선택하는 대화 상자가 나타납니다.

dbml 파일을 선택하면 dbml 파일이 수정되어, 버전 번호 컬럼이 없는 모든 테이블의 컬럼의 UpdateCheck 속성이 “Never”로 변경됩니다.

여기서 주의할 점이 있습니다.

dbml 파일이 변경되면 반드시 비주얼 스튜디오에서 dbml 파일을 열어 저장을 해주어야 한다는 것입니다.

저장을 하지 않으면 Memopad.designer.cs 파일이 새로 생성되지 않아 dbml의 변경 내용이 반영되지 않습니다.

(참고로 Memopad.designer.cs은 Memopad.dbml을 입력값으로 하여 sqlmetal.exe 툴이 생성한 코드입니다.)

이제 비지니스 코드 생성의 3단계인 설정화면이 나타났습니다.

네임 스페이스 등의 변수 값을 수정하거나 템플릿을 통해 생성될 파일의 저장위치를 변경할 수 있긴 한데, 일반적인 경우에는 기본값을 그대로 사용하는 것이 무난할 것입니다.

다만 연결 문자열과 컬렉션 타입은 눈여겨 볼 만 합니다.

연결 문자열의 값은 DB 연결 문자열을 말하는데, “server=xxx.xxx.xxx.xxx; database=Memopad;….” 하는 식으로 직접 연결 문자열을 지정할 수도 있고, 기본값처럼 구성 파일(app.config / web.config)의 연결 문자열 설정을 사용하겠다고 지정할 수도 있습니다. (기본값)

기본값으로 연결 문자열의 이름이 솔루션의 이름과 동일한 “Memopad”로 설정되어 있는 것을 기억하시기 바랍니다.

또 한가지 흥미로운 변수는 컬렉션 타입니다.

기본값으로는 아마도 가장 보편적인 컬렉션일 List<T>를 사용하는 것으로 되어 있는데, 경우에 따라서는 BindingList<T> 같은 컬렉션을 사용하도록 설정할 수도 있습니다.

물론 모든 컬렉션을 다 사용할 수 있는 것은 아니고 Add(T item) 이라는 메서드를 구현하고 있는 컬렉션만 사용 가능합니다.

확인을 누르면 이제 비지니스 코드가 생성되고 화면에 표시됩니다.

화면의 가운데에는 템플릿과 엔터티의 목록이 계층 구조로 표시되고, 오른쪽에는 해당 템플릿과 엔터티로 생성된 코드가 표시됩니다.

템플릿은 데이터베이스 범위(1)와 (뷰를 포함한) 테이블 범위(2)로 구분됩니다.

또한 생성된 코드는 파일 단위로 특정 위치에(3) 저장(4) 할 수 있으며 클립보드로 복사(5)할 수도 있습니다.

하지만 생성된 코드를 저장하는 편리한 방법은 화면 왼쪽에 있는 저장 항목(6)을 클릭하는 것입니다.

여기서는 이전 포스트에서 생성한 솔루션을 지정하도록 하겠습니다.

윈도우 탐색기에서 보면 생성된 파일들을 볼 수 있는데, 이를 모두 비주얼 스튜디오에 추가하도록 합시다.

탐색기에서 비주얼 스튜디오 솔루션 탐색기로 파일을 끌어다 놓아도 되고, 비주얼 스튜디오에서 “기존 항목 추가” 컨텍스트 메뉴를 사용하는 방법도 있지만, 가장 편리한 방법은 “프로젝트에 포함” 컨텍스트 메뉴를 사용하는 것일 것입니다.

먼저 솔루션 탐색기에서 모든 파일 보기 명령을 활성화 시킵니다.

이제 폴더에는 있으나 프로젝트에는 포함되지 않은 파일이 화면에 표시됩니다.

(혹시 파일이 보이지 않으면 솔루션을 닫았다 다시 여시기 바랍니다.)

포함되지 않은 파일들을 선택한 후 컨텍스트 메뉴에서 “프로젝트에 포함”을 선택하여 프로젝트에 추가합니다.

여기까지 해서 비지니스 레이어가 만들어 졌습니다.

비지니스 레이어를 사용하여 웹 애플리케이션을 만드는 과정은 다음 포스트에서 이어서 다루도록 하겠습니다.

: