Замок Монорельс на веб-сайте Asp.NET? - PullRequest
2 голосов
/ 17 июня 2010

В нашей системе большая часть кода находится на веб-сайте asp.net (2.0), я обнаружил Castle Monorail несколько месяцев назад, и я думаю, что его действительно проще использовать, чем asp.net / webforms.

Вот что нам нужно: - Используйте Castle Monorail - Наш код должен быть на веб-сайте (мой руководитель - своего рода веб-разработчик старой школы, поэтому он предпочитает иметь несколько файлов ".cs", чем один ".dll").- Мы должны сохранить существующий код веб-форм

Так что, может быть, если у вас есть учебник или что-то в этом роде (я нашел много учебников по asp.net MVC и монорельсу Castle, но я нашел их с asp.net2.0) /

Merci les collegues

Ответы [ 2 ]

2 голосов
/ 18 июня 2010

Так что все было довольно просто (15 минут сверху):

1 / Получите нужный элемент из web.config: - обработчик раздела конфигурации

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

- сама конфигурация

  <monorail>
    <controllers>
      <assembly>App_Code</assembly>
      <assembly>Castle.Monorail.ViewComponents</assembly>

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

"App_Code" - это имя сборки веб-сайта.

-http-обработчики

<add verb="*" path="*.rails" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
      <!--block direct user access to template files-->
      <add verb="*" path="*.vm" type="System.Web.HttpForbiddenHandler" />
      <add verb="*" path="*.boo" type="System.Web.HttpForbiddenHandler" />
      <add verb="*" path="*.st" type="System.Web.HttpForbiddenHandler" />

-http-модули

<add name="monorail" type="Castle.MonoRail.Framework.EngineContextModule, Castle.MonoRail.Framework" />

2 / Возьмите dll, который вам нужен, в моем случае (я не использую activerecord):

Castle.Components.Binder.dll

Castle.Components.Common.EmailSender.dll

Castle.Components.Common.TemplateEngine.dll

Castle.Components.Common.TemplateEngine.NVelocityTemplateEngine.dll

Castle.Components.Validator.dll

Castle.Core.dll

Castle.MonoRail.Framework.dll

Castle.MonoRail.Framework.Views.NVelocity.dll

Castle.MonoRail.ViewComponents.dll

3 / Добавить класс в папку App_Code (например, TestMonorailController):

с использованием Castle.MonoRail.Framework;

public class TestMonorailController : SmartDispatcherController
{
    public TestMonorailController()
    {

    }
    public void OnePage()
    {
        PropertyBag["toto"] = "TEST";
    }
}

4 /Добавьте папку Views в корень вашего веб-сайта 5 / Добавьте папку TestMonorail в папку, которую вы только что создали 6 / Добавьте имя файла "OnePage.vm" в эту папку:

$toto

7 / Проверьте своивеб-сайт:

http://localhost:XX/YourWebSite/TestMonorail/OnePage.rails

и вы должны увидеть

"ТЕСТ"

Et voila :) Я могу отредактировать свой производственный код.Спасибо Кен

1 голос
/ 18 июня 2010

Полагаю, вы могли бы поместить классы контроллера в App_Code и покончить с этим.вам нужно будет отобразить специальное расширение для монорельсовых URL.Если вы не используете веб-сервисы SOAP (.asmx), сопоставьте это расширение с HttpHandlerFactory в Monorail.

Интересным виновником может быть то, что фактическая сборка, содержащая файлы App_code, не имеет хорошего имени (я думаю), иMonoRail должен знать сборку, из которой можно найти классы контроллеров.

Я бы посоветовал вам поиграть с советами, которые я перечислил выше, и посмотреть, куда он вас приведет.Поделитесь исключениями, которые вы видите, и мы надеемся, что скоро мы доберемся до сути дела

...