Frage

In unserem System den meisten Code in einer asp.net ist (2.0) Website, entdeckte ich Castle Einschienen vor ein paar Monaten und ich denke, es ist wirklich einfacher zu benutzen als asp.net / Webforms.

Hier ist, was wir brauchen: - Verwenden Sie Castle Einschienen - Unser Code muss auf der Website sein (mein Chef ist eine Art der alten Schule Web-Entwickler, so dass er es vorziehen, einige „.cs“ Dateien als eine „.dll“ zu haben). - Wir haben die vorhandenen webforms Code halten

Also vielleicht, wenn Sie ein Tutorial oder so ähnlich haben (ich fand eine Menge Tutorial über asp.net MVC und Schloss Einschienenbahn aber ich habe jede mit asp.net 2.0 finden) /

Merci les collegues

War es hilfreich?

Lösung

So ist es ziemlich einfach (15 min oben) war:

1 / Holen Sie sich das Element, dass Sie von web.config benötigen: - Konfigurationsabschnittshandler

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

-Konfiguration selbst

  <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" ist der Name der Website Montage.

-http Handler

<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 Module

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

2 / Nehmen Sie die DLL, die Sie benötigen, in meinem Fall (ich verwende Active nicht wichtig):

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 / Fügen Sie eine Klasse in Ihrem Ordner App_Code (zum Beispiel TestMonorailController):

mit Castle.MonoRail.Framework;

public class TestMonorailController : SmartDispatcherController
{
    public TestMonorailController()
    {

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

4 / A Views Ordner in der Wurzel Ihrer Website hinzufügen 5 / einen TestMonorail Ordner in dem Ordner hinzufügen Sie gerade erstellt 6 / Fügen Sie einen Dateinamen "OnePage.vm" in diesem Ordner:

$toto

7 / Test Ihrer Website:

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

und Sie sollten sehen

"TEST"

Et voila :) Ich kann meinen Produktionscode bearbeiten. Thx Ken

Andere Tipps

Ich denke, dass Sie die Controller-Klassen in App_Code setzen konnten und mit ihm getan werden. Sie benötigen eine spezielle Erweiterung für Einschienen Urls abzubilden. Wenn Sie SOAP-Webservices (.asmx) nicht verwenden Sie dann die Landkarte Erweiterung Einschienen der HttpHandlerFactory.

Ein interessanter Täter könnte sein, dass die tatsächliche App_Code Dateien Baugruppe enthält keinen schönen Namen (glaube ich) und Monorail braucht die Montage zu wissen, von dem Controller-Klassen zu finden.

Ich würde vorschlagen, dass Sie mit den Hinweisen spiele ich aufgelistet habe oben und sehen, wo es Sie bekommt. Teilen Sie die Ausnahmen, die Sie sehen und hoffentlich werden wir auf den Grund gehen bald

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top