2010-06-17 7 views
2

Dans notre système, la plupart du code est dans un site web asp.net (2.0), j'ai découvert Castle Monorail il y a quelques mois et je pense que c'est vraiment plus facile à utiliser que asp.net/webforms.Monorail de château dans le site Web d'Asp.NET?

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 » d'un ». dll "). - Nous devons garder le code webforms existant

Donc peut-être si vous avez un tutoriel ou quelque chose comme ça (j'ai trouvé beaucoup de tutoriel sur asp.net MVC et monorail château mais j'ai trouvé tout avec asp.net 2.0 avec elle)/

Merci les collegues

+0

Est-ce que vous faites référence à "site web" par opposition à "application web"? –

+0

exactement, celui où votre code est dans le dossier App_Code et vous mettez fichier par fichier en ligne. –

Répondre

2

Il était donc assez simple (top 15 min):

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

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

-Configuration se

<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 de l'ensemble de site Web.

gestionnaires -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" /> 

modules -http

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

2/Prendre la dll que vous avez besoin, dans mon cas (je ne l'utilise pas activerecord):

Château .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):

utilisant Castle.MonoRail.Framework;

public class TestMonorailController : SmartDispatcherController 
{ 
    public TestMonorailController() 
    { 

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

4/Ajouter un dossier Vues dans la racine de votre site 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/Testez votre site web:

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

et vous devriez voir

"TEST"

Et voila :) Je peux éditer mon code de production. Thx Ken

1

Je suppose que vous pourriez mettre les classes de contrôleur dans App_Code et être fait. vous aurez besoin de mapper une extension spéciale pour les urls Monorail. Si vous n'utilisez pas les services Web SOAP (.asmx), mappez cette extension à HttpHandlerFactory de Monorail. Un coupable intéressant pourrait être que l'assemblage actuel contenant les fichiers App_code n'a pas de bon nom (je pense), et MonoRail a besoin de connaître l'assembly à partir duquel localiser les classes de contrôleur.

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