轉:建立MonoRail項目結構

來源:互聯網
上載者:User
在翻譯過程中,發現官網給出的不少代碼都是錯誤的。我在文章中都會給予注釋或者直接修改為正確的,因此內容與原文會有出入,希望大家能夠理解。

我們建議大家使用下列項目結構做為常規約定:

檔案夾

解決方案

下面的章節將告訴您怎樣手工或使用MonoRail Project Wizard 建立這種結構

使用MonoRail project wizard

如果你已經使用MSI安裝程式安裝了Castle Project,那你可能連Visval StudioIntegration Environment也安裝好了。如果是這樣的話,請使用嚮導建立一個新的MonoRail項目。

注意

Visual Studio 2005 使用者必須下載安裝 Web Project support for Visual Studio,否則嚮導將無法工作。

 

  1. 開啟Visual Studio並執行建立項目,選擇Castle MonoRail Project:

  2. 輸入 GettingStartedSample 做為項目名稱

  3. 嚮導開始,選擇NVelocity視圖引擎並單擊Next

  4. 檢查建立測試專案的各個選項並單擊 Finish。該嚮導將為你建立解決方案和專案檔並配置好所有資訊。這可能需要花上一些時間。

 

此時你應該有一個項目準備運行

繼續 你的第一個控制器和視圖。

在Visual Studio裏手工建立項目

如果你沒有安裝VSIntegration Environment或者不想使用工程嚮導,你可以手工建立項目結構。

 

  1. 在Visual Studio裡建立一個ASP.Net 項目 ( 如果你的Visual Studio沒有安裝ASP.Net項目支援程式,那麼你可以選擇建立一個類庫項目).

  2. 添加引用下列程式集:

    • Castle.MonoRail.Framework.dll: The MonoRail framework
    • Castle.MonoRail.Framework.Views.NVelocity.dll: The view engine we are going to use
    • Castle.Components.Validator.dll: Our lightweight validation infrastructure
    • Castle.Components.Binder.dll: The binder implementation
    • Castle.Components.Common.EmailSender.dll: The email service contracts
    • Castle.Components.Common.EmailSender.SmtpEmailSender.dll: The email service implementation
    • Castle.Core.dll: Core functionalities shared by projects
    • NVelocity.dll: The template engine

     

  3. 在項目裡建立下列檔案夾。再次說明一下,這隻是一項常規約定,我們建議你照著做。但在你熟悉使用架構以後,你可以構想一個更適合你項目的結構。

  4. 最後配置web.config檔案。你必須註冊http handler,http module以及MonoRail配置節點:

    1. 添加 MonoRail 配置節點:

      <configuration>
          <configSections>
              <section 
                  name="monorail" 
                  type="Castle.MonoRail.Framework.Configuration.MonoRailSectionHandler,
                      Castle.MonoRail.Framework" />
          </configSections>

          <monorail>
              <controllers>
                  <assembly>GettingStartedSample</assembly>
              </controllers>
             
              <viewEngine viewPathRoot="Views">
                  <add type="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine,
                               Castle.MonoRail.Framework.Views.NVelocity" />
              </viewEngine>
          </monorail>
          
          

      注意:以上是官網的配置,實際上這樣是無法正常工作的,需要給viewEngine增加一個屬性改成這樣.

      <viewEngine 
              viewPathRoot="Views"
              customEngine="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine,
                               Castle.MonoRail.Framework.Views.NVelocity" />
    2. 為了能夠使用像castle或rails這樣的副檔名,還需要註冊一下http handler:

          
          
          <system.web>
              <httpHandlers>
                  <add 
                      verb="*" 
                      path="*.castle" 
                      type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory,
                          Castle.MonoRail.Framework" />
              </httpHandlers>
          </system.web>
          
      </configuration>
    3. 最後註冊http module:

       
          
          <system.web>
              <httpHandlers>
                  <add 
                      verb="*" 
                      path="*.castle" 
                      type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory,
                          Castle.MonoRail.Framework" />
              </httpHandlers>
              <httpModules>
                  <add 
                      name="monorail" 
                      type="Castle.MonoRail.Framework.EngineContextModule,
                          Castle.MonoRail.Framework" />
              </httpModules>
          </system.web>
          
      </configuration>

繼續 你的第一個控制器和視圖。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.