2013-03-12 15 views
5

Güncel ASAX kodu (basitleştirilmiş):oluşturma yolları

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"))); 
} 

Soru

bu noktada DB'den güzergahları çekmek için güvenli mi? Bu soru bilgisi ile ilgili yönlendirme eksikliği gibi global.asax ile genel bir yabancılık doğar

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); 
    } 
} 

Ek Bilgi: Örneğin. Geçmişte, son derece basit görevler için sadece global.asax kullanıyorum; DB , başka bir seviyeye taşıdığım gibi hissediyor.

+1

Neden güvensiz olur? Başka bir deyişle, bu soruyu düşündüğünüzü sordu ve bu soruyu sordu? – Yuck

+0

+1 Ben de bilmek isterim! Ama öte yandan: Başka nereye rota kaydetmelisiniz? Elbette bir 'try..catch' iyi bir fikir olurdu. –

+1

@Yuck, harika bir soru. Ek bilgilere bakın. Son zamanlardaki bu pozisyon değişikliğinin beni kurumdaki tek geliştiriciye dönüştürdüğünü ekleyebilirim. Zaman zaman, fikirlerini geri çekecek birinin olmaması zor olabilir. –

cevap

1

o

Ne "güvenli" olduğunu ve neden bu olmaz güvenli mi?

Yönlendirme dizeleri kullanılarak oluşturulmuştur, kod, bu dizelerin nereden kaynaklandığı önemli değil, kodlanmış, kaynak dosyaları, web hizmetleri, metin dosyası veya veritabanı.

Veritabanı kullanılamıyorken hata sayfalarını göstermek için bazı varsayılan yollara sahip olduğunuza emin olduğunuz sürece, (ilk vuruştaki performans cezası dışında) neden göremiyorum bu şekilde yap.