Question

Dans notre système la plupart du code est dans un asp.net (2.0) site web, je découvre le château Monorail il y a quelques mois et je pense qu'il est vraiment plus facile à utiliser que asp.net / webforms.

Voici ce que nous avons besoin: - Utilisation Château Monorail - Notre code doit être dans le site (mon chef est une sorte de vieux développeur web de l'école afin qu'il préfère avoir des fichiers « .cs » que l'un « .dll »). - Nous devons garder le code existant webforms

Alors peut-être si vous avez un tutoriel ou quelque chose comme ça (je l'ai trouvé beaucoup de tutoriel sur asp.net MVC et monorail du château mais je ne trouve pas avec asp.net 2.0) /

Merci les collegues

Était-ce utile?

La solution

Il était donc assez simple (15 min en haut):

1 / Désigne l'élément que vous avez besoin de web.config: - gestionnaire de section de configuration

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

-Configuration lui-même

  <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" est le nom du site Web de l'Assemblée.

Chariot -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 modules

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

2 / Prendre la dll que vous avez besoin, dans mon cas (je n'utilise 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 / Ajouter une classe dans votre dossier App_Code (par exemple TestMonorailController):

en utilisant Castle.MonoRail.Framework;

public class TestMonorailController : SmartDispatcherController
{
    public TestMonorailController()
    {

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

4 / Ajouter un dossier Vues à la racine de votre site Web 5 / Ajouter un dossier TestMonorail dans le dossier que vous venez de créer 6 / Ajouter un nom de fichier "OnePage.vm" dans ce dossier:

$toto

7 / Test de votre site:

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

et vous devriez voir

"TEST"

Et le tour est joué :) Je modifier mon code de production. Thx Ken

Autres conseils

Je suppose que vous pourriez mettre les classes de contrôleur dans App_Code et faire avec elle. vous devrez mapper une extension spéciale pour urls monorail. Si vous n'utilisez pas webservices SOAP (de .asmx) carte alors cette extension HttpHandlerFactory de monorail.

Un coupable intéressant pourrait être que le contenant assemblage proprement dit les fichiers App_Code ne dispose pas d'un nom de Nice (je pense), et monorail a besoin de savoir l'assemblage à partir de laquelle pour localiser les classes contrôleur.

Je vous suggère de jouer avec les conseils que j'ai énumérés ci-dessus et voir où cela vous arrive. Partagez les exceptions que vous voyez et nous espérons que nous allons aller au fond de bientôt

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top