В настоящее время у меня есть две с половиной недели для моего первого приложения ASP.Net MVC, и до сих пор я люблю его.
Этот текущий проект является портом проекта ASP.Net WebForms, и я пытаюсь сохранить его работоспособность. Все идет хорошо.
Однако я повторяю ... себя.
Например, в моем классе BaseController, в моем BaseViewPage, в моем BaseViewUserControl и в моем BaseViewMasterPage у меня есть следующий код:
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;
}
}
Теперь, это не красивый код. Я хотел бы исправить это немного, но на данный момент я исправляю это в четырех местах. Фактически, это было источником нескольких ошибок, которые означали, что они снова будут исправлены во всех четырех местах.
Как бы вы посоветовали оставить эту систему СУХОЙ? Обратите внимание, что оба этих объекта должны храниться в сеансе по нескольким причинам.