Вопрос

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

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

Так что, может быть, если у вас есть учебник или что-то в этом роде (я нашел много уроков по поводу монорельса ASP.NET MVC и Castle, но я нашел любой с ASP.NET 2.0) /

Merci Les Collegues.

Это было полезно?

Решение

Так что было довольно простым (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, которые вам нужны, в моем случае (я не использую ActiveSerecord):

Castle.components.binder.dll.dll.dll

Castle.components.common.emailsender.dll.dll.dll

Castle.components.common.templateengine.dll.

Castle.components.common.templateengine.nvelocitytemplateEngine.dll.dll.dll.dll.

Castle.components.validator.dll.dll.

Castle.Core.dll.dll

Castle.MonoRoil.framework.dll.dll.

Castle.MonoRoil.framework.views.nvelocity.dll.dll.dll.

Castle.MonoRail.ViewComponents.dll.dll.

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

используя Castle.MonoRoil.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 / testmonoirail / onepage.reails

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

"ТЕСТОВОЕ ЗАДАНИЕ"

ET VOILA :) Я могу редактировать мой код производства. Thx Ken.

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top