Hi all.
Интересует следующий вопрос — есть информационная система с Web интерфейсом, написанная на ASP.NET 1.1, в данный момент архитектура разеделна на слои классов/объктов которые отвечают за бизнесс-логику, доступ к данным etc.
Взаимодейтсвие объктов обеспечивается следующим образом — для текущей сессии Юзера создаются экземпляры сущностей (Orgunit, Employee, Report etc.) которые используют сессию для хранения своего состояния, тоесть каждый объект реализует что-то вроде:
public class SalaryDetailReport
{
private static readonly string sessionId = "OrganizationHierarchy.Payroll.Reports.SalaryDetailReport";
public static SalaryDetailReport Current
{
get
{
if (HttpContext.Current.Session[SalaryDetailReport.sessionId] != null)
{
SalaryDetailReport report = (SalaryDetailReport)HttpContext.Current.Session[SalaryDetailReport.sessionId];
return report;
}
else
{
SalaryDetailReport report = new SalaryDetailReport();
HttpContext.Current.Session[SalaryDetailReport.sessionId] = report;
return report;
}
}
set
{
HttpContext.Current.Session[SalaryDetailReport.sessionId] = value;
}
}
Вообщем-то сейчас работает нормально, но меня интересует насколько "правильным" можно назвать такой подход к организации взаимодействия бизнесс-объектов?
Может быть у кого-то есть опыт альтернативных решений? Имеет ли смыл особо критичные части для призводительности системы переписать для того, чтобы обеспечить сохранение объектов в Cache по ключу уникальному для каждой сессии пользователя?