RedPlus 개인 블로그

시삽: 레드플러스 님 
게시판 이동:
 제목 : 24. 초간단 모듈 제작 : HelloWorld 모듈 만들기
글번호: 274
작성자: Administrator ( 레드플러스 / redplus@live.com )
작성일: 2011/06/13 오후 1:01:27 (2011/06/13 오후 1:01:27 수정)
조회수: 4328

소개

이번 시간에는 앞서서 계속해서 사용해 본 모듈(Module)을 직접 간단하게나마 만들어보는 시간을 갖도록 하겠습니다.

하지만… 하지만… 말 그대로 “Hello World”를 화면에 출력하는 수준입니다.

아쉽지만, 이번 강좌 시리즈에서는 개발자를 위한 것이기보다는 학생개발자/디자이너/퍼블리셔/관리자를 위해서 포커스를 맞추었습니다.

 

따라하기

Step 1: HelloWorld 모듈 생성하기

1. WebMatrix로 Modules 폴더를 열어보면 현재 Orchard에서 사용중인 모듈이 폴더 단위로 저장되어져 있음을 알 수 있습니다.

image

 

2. 새로운 모듈을 제작하기 위해 Orchard.exe 파일을 실행합니다.

image

 

3. Orchard 명령 프롬프트 환경에서 “codegen module HelloWorld” 명령어를 통해서 HelloWorld란 이름의 모듈을 생성합니다.

image

 

4. WebMatrix로 돌아와서 MJodules 폴더를 새로고침하면 아래와 같이 HelloWorld란 폴더가 생성되고 기본 모듈의 폴더 구조를 갖습니다. 사실, 이 폴더구조는 ASP.NET MVC 3의 Areas 기능에서 사용되는 구조입니다.

image

 

Step 2: 모듈 실행을 위한 주요 파일 생성하기

1. 아래 그림처럼 HelloWorld 폴더에 [Class] 파일을 [Routes.cs] 이름으로 생성합니다.

image

 

2. 생성된 Routes.cs 파일을 아래와 같이 작성합니다. 직접 작성하지 말고, 아래 소스코드를 복사해서 붙여넣기하면 됩니다.

image

 

using System.Collections.Generic;
using System.Web.Mvc;
using System.Web.Routing;
using Orchard.Mvc.Routes;

namespace HelloWorld {
    public class Routes : IRouteProvider {
        public void GetRoutes(ICollection<RouteDescriptor> routes) {
            foreach (var routeDescriptor in GetRoutes())
                routes.Add(routeDescriptor);
        }
        // ASP.NET MVC 3 Area
        public IEnumerable<RouteDescriptor> GetRoutes() {
            return new[] {
                new RouteDescriptor {
                    Priority = 5,
                    Route = new Route(
                        "HelloWorld",
                        new RouteValueDictionary {
                            {"area", "HelloWorld"},
                            {"controller", "Home"},
                            {"action", "Index"}
                        },
                        new RouteValueDictionary(),
                        new RouteValueDictionary {
                            {"area", "HelloWorld"}
                        },
                        new MvcRouteHandler())
                }
            };
        }
    }
}

3. 이번에는 HelloWorld 폴더 아래의 [Controllers] 폴더에 [Class] 파일을 HomeController.cs로 파일을 생성합니다.

image

 

4.

image

 

using System.Web.Mvc;
using Orchard.Themes;

namespace HelloWorld.Controllers {
    //[Themed]
    public class HomeController : Controller {
        public ActionResult Index() {
            return View("HelloWorld");
        }
    }
}

5. 다음에 아래 그림과 같이 Views-Home 폴더를 생성하고 HelloWorld.cshtml 파일을 생성하고 아래와 같이 입력합니다.

image

 

<h3>@T("안녕하세요...")</h3>
<h3>반갑습니다.</h3>


6. WebMatrix에서 마지막으로 HelloWorld 프로젝트 루트에 있는 HelloWorld.csproj 파일을 열고 아래 2개의 영역을 입력합니다.

image

 

...
    <Reference Include="System.Xml" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Xml.Linq" />
  </ItemGroup>

<ItemGroup>
  <Compile Include="Routes.cs"/>
  <Compile Include="Controllers\HomeController.cs"/>
</ItemGroup>

  <ItemGroup>

    <Content Include="Views\HelloWorld.cshtml" />

    <Content Include="Web.config" />
    <Content Include="Views\Web.config" />
    <Content Include="Scripts\Web.config" />
...

 

Step 3: 만들어진 모듈 활성화

1. Orchard.exe 환경으로 들어와서 아래 그림처럼 “feature enable HelloWorld” 명령어를 실행하여 HelloWorld 모듈을 활성화시킵니다.

image

 

2. 홈페이지 메인으로 돌아와서 웹브라우저 주소창에 아래 그림과 같이 /HelloWorld를 요청하면, 간단히 메시지가 출력됩니다.

image

 

3. 만약 상하좌우에 대한 테마를 적용하고자한다면, HomeController.cs 파일로 이동해서 [Themed] 부분을 적용해주면 됩니다.

image

 

using System.Web.Mvc;
using Orchard.Themes;

namespace HelloWorld.Controllers {
    [Themed]
    public class HomeController : Controller {
        public ActionResult Index() {
            return View("HelloWorld");
        }
    }
}

4. 테마가 적용된 후의 모습입니다.

image

 

5. HelloWorld 모듈의 경로를 [대시보드]-[네비게이션]에서 메인 메뉴로 등록해서 사용 가능합니다.

image

 

마무리

ASP.NET MVC를 사용하는 개발자라면 현재 강좌의 내용이 어렵지 않으리라 봅니다. 하지만, 본 강좌 시리즈는 HTML과 CSS만을 알면 사용 가능하도록 설명하기를 목표로 잡았기에 모듈(Module)을 만드는 과정은 이번 시간에 맛배기로 보여드리고자 합니다.

전문 개발자 분들은 Orchard 사이트(http://www.orchardproject.net)의 Documents를 활용하기 바랍니다.

 

끝.

 

 

참고 자료

 

 

관련글

 

 

본 강좌는 아래 경로에서 연재되고 있는 강좌입니다.

오픈소스 웹어플리케이션 사용자 Tip과 강좌 – OSSFair(http://www.sqler.com/OSS)

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 25. 추가 모듈 다운 및 적용 : FollowMe 모듈 - Administrator 2011-06-13 4239
현재글 24. 초간단 모듈 제작 : HelloWorld 모듈 만들기 - Administrator 2011-06-13 4328
다음글 23. 사용자(Users)와 역할(Roles) 관리 - Administrator 2011-06-13 4542
관련 페이지 리스트
numtitlenamedateview
388 C 언어에서 값 전달과 참조 전달(Call By Value and Call By Re... Administrator 2023-03-09 1681
387 병합 알고리즘 순서도 2022-10-22 2454
386 C 언어 강의: scanf를 엔터키를 기준으로 여러 행으로 값을 입력 받기 Administrator 2022-01-09 3577
385 C 언어: scanf 사용해서 표준 입력인 콘솔로부터 나이를 정수로 입력 받아 출력 Administrator 2022-01-07 2579
384 Java 코드 샘플 - Function 인터페이스로 람다 식 만들기 Administrator 2022-01-04 2491
383 C# 코드 샘플 - 널 조건부 연산자 사용하기 Administrator 2022-01-02 2529
382 C# 코드 샘플 - 널 병합 연산자와 default 키워드 Administrator 2022-01-02 2460
381 C# 코드 샘플 - 널 병합 연산자로 문자열 변수의 NULL 값 확인하기 Administrator 2022-01-02 2373
380 C# 강의 - 14세 미만 체크 메서드 구현 Administrator 2022-01-01 2409
379 C 언어 천 단위 콤마 찍기 thousands_separator.c Administrator 2021-12-30 3247
378 for 문 순서도 - for 문(for loop) 순서도(flowchart) Administrator 2021-12-28 5211
377 C 언어 코드 샘플 - 전처리기 - 조건부 컴파일 Administrator 2021-12-27 2412
376 C 언어 코드 샘플 - 전처리기 - 매크로 함수 Administrator 2021-12-27 2413
375 http-server 설치하기 - 로컬 루프백 주소로 웹페이지 실행 2021-12-27 2428
374 C 언어 코드 샘플 - N명의 학생의 점수를 입력받아 1차원 배열에 저장 후 총점 구... Administrator 2021-12-27 2441
373 Java 코드 샘플 - 두 수의 합을 구하는 함수 Administrator 2021-12-26 2355
372 C 언어 코드 샘플 - 두 수의 합을 구하는 함수 Administrator 2021-12-26 2382
371 C# 교과서 강좌 - LINQ - Select 확장 메서드에 익명 형식 사용하기 Administrator 2021-12-26 2453
370 C# 교과서 강의 - LINQ - Select 확장 메서드를 사용하여 새로운 형태로 ... Administrator 2021-12-26 2399
369 C 언어 코드 샘플 - static-shared - 정적(공유) 변수 사용하기 Administrator 2021-12-26 2419
 
 
 
손님 사용자 Anonymous (손님)
로그인 Home