2013-03-12 18 views
5

codice attuale ASAX (semplificato):Creazione di rotte da record DB

void Application_Start(object sender, EventArgs e) 
{   
    // Enable routing 
    RegisterRoutes(RouteTable.Routes); 
} 

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add("ContactUsRoute", 
       new Route("contact-us", 
       new PageRouteHandler("~/contactus.aspx"))); 
} 

Domanda

E 'sicuro per tirare rotte da DB a questo punto? Per esempio:

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add("ContactUsRoute", 
       new Route("contact-us", 
       new PageRouteHandler("~/contactus.aspx"))); 

    // BusinessLogic.GetPageRoutes() returns a List<Route> 
    var dbRoutes = BusinessLogic.GetPageRoutes(); 

    foreach (Route route in dbRoutes) 
    { 
     routes.Add(route); 
    } 
} 

Informazioni aggiuntive

Questa domanda nasce da una mancanza di conoscenza per quanto riguarda il routing, nonché una scarsa familiarità generale con global.asax. In passato, ho usato solo global.asax per attività estremamente semplici; DB si sente come se lo stessi portando ad un altro livello.

+1

Perché non è sicuro? In altre parole, cosa ti ha spinto a pensare che potrebbe essere e fare questa domanda? – Yuck

+0

+1 Vorrei saperlo anche io! Ma d'altra parte: dove altro dovresti registrare i percorsi? Un 'try..catch', ovviamente, sarebbe una buona idea. –

+1

@Yuck, ottima domanda. Vedi ulteriori informazioni. Vorrei aggiungere che un recente cambio di posizione mi rende l'unico sviluppatore dell'organizzazione. A volte, può essere difficile non avere qualcuno con cui rimbalzare idee. –

risposta

1

È sicuro

Che cosa è "sicuro" e perché non dovrebbe essere?

Il routing viene creato utilizzando stringhe, il codice non importa da dove provengono tali stringhe, indipendentemente dal fatto che sia codificato, file di risorse, servizi Web, un file di testo o un database.

Finché ci si assicura di avere alcune route predefinite per mostrare le pagine di errore quando il database non è disponibile, non riesco a vedere (a parte forse la penalizzazione delle prestazioni sul primo hit) perché non si fallo in questo modo.