Actualmente llevo aproximadamente dos semanas y media en mi primera aplicación ASP.Net MVC, y hasta ahora, me encanta.Manteniéndolo SECO en ASP.Net MVC
Este proyecto actual es un puerto de un proyecto ASP.Net WebForms, y estoy tratando de mantener la funcionalidad. Todo va bien
Sin embargo, me encuentro repitiendo ... a mí mismo.
Por ejemplo, en mi clase BaseController, en mi BaseViewPage, en mi BaseViewUserControl, y en mi BaseViewMasterPage, tengo el siguiente código:
protected LanLordzApplicationManager AppManager
{
get
{
if(Session["Application"] == null)
{
Session["Application"] = new LanLordzApplicationManager(Server.MapPath("~/"));
}
return (LanLordzApplicationManager)Session["Application"];
}
}
protected User CurrentUser
{
get
{
if (Session["UserID"] == null && this.Request.Cookies["AutoLogOnKey"] != null && !string.IsNullOrEmpty(this.Request.Cookies["AutoLogOnKey"].Value))
{
this.CurrentUser = this.AppManager.RecallUser(this.Request.Cookies["AutoLogOnKey"].Value, Request.UserHostAddress);
}
if (Session["UserID"] == null)
{
return null;
}
else
{
return this.AppManager.GetUserByUserID((long)Session["UserID"]);
}
}
set
{
Session["UserID"] = value.UserID;
}
}
Ahora bien, esto es, no código hermoso. Me gustaría arreglarlo un poco, pero a partir de ahora, lo estoy arreglando en cuatro lugares. Ha sido, de hecho, la fuente de un par de errores, lo que significaba volver a arreglarlo en los cuatro lugares.
¿Cómo sugeriría que mantuviera este sistema SECO? Tenga en cuenta que estos dos objetos deben mantenerse en la sesión por más de un par de razones.
Le sugiero que mueva sus cadenas mágicas "UserID", "Application", etc. a constantes o use un envoltorio de objetos fuertemente tipado para su objeto de sesión. – Kane