Организация взаимодействия бизнесс-объектов в ASP.NET
От: Alex Getman  
Дата: 20.06.06 11:56
Оценка:
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 по ключу уникальному для каждой сессии пользователя?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.