Domanda

Nel nostro sistema la maggior parte del codice è in asp.net (2.0) sito web, ho scoperto Castello di monorotaia qualche mese fa e penso che sia veramente facile da usare rispetto asp.net / webforms.

Ecco quello che ci serve: - Utilizzare Castello di monorotaia - Il nostro codice deve essere nel sito web (il mio capo è una specie di vecchia sviluppatore web della scuola in modo che preferiscono avere alcuni "cs" file di un modo ".dll"). - Dobbiamo mantenere il codice webforms esistente

Quindi, forse, se si dispone di un tutorial o qualcosa di simile (ho trovato un sacco di tutorial su asp.net MVC e il castello monorotaia, ma ho trovato alcun con asp.net 2.0) /

Merci les colleghi

È stato utile?

Soluzione

Così è stato abbastanza semplice (15 min in alto):

1 / Prendi l'elemento che è necessario da web.config: - sezione config handler

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

-Configurazione stessa

  <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" è il nome del sito web di montaggio.

gestori -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 moduli

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

2 / Prendere la dll che è necessario, nel mio caso (Non faccio uso di 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 / aggiungere una classe nella cartella App_Code (per esempio TestMonorailController):

utilizzando Castle.MonoRail.Framework;

public class TestMonorailController : SmartDispatcherController
{
    public TestMonorailController()
    {

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

4 / Aggiungi Visualizzazioni cartella nella directory principale del tuo sito web 5 / Aggiungi una cartella TestMonorail nella cartella appena creata 6 / Aggiungi un nome file "OnePage.vm" in questa cartella:

$toto

7 / Test tuo sito web:

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

e si dovrebbe vedere

"TEST"

Et voilà :) posso modificare il mio codice di produzione. Thx Ken

Altri suggerimenti

Credo che si potrebbe mettere le classi controller in App_Code e da fare con esso. è necessario mappare l'estensione speciale per gli URL monorotaia. Se non si utilizza webservices SOAP (.asmx) quindi mappare questa estensione per di monorotaia HttpHandlerFactory.

Un colpevole interessante potrebbe essere che l'attuale assembly contenente i file App_Code non ha un bel nome (credo), e monorotaia ha bisogno di conoscere il gruppo da cui partire per individuare classi controller.

Io suggerirei di giocare con i suggerimenti che ho elencato sopra e vedere dove si arriva. Condividere le eccezioni che si vede e speriamo di andare a fondo di esso presto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top