Использовать Session или CustomCatch? - PullRequest
0 голосов
/ 20 октября 2011

все. В настоящее время я работаю в команде проекта .net mvc3. Сегодня руководитель моей команды сказал мне использовать пользовательский улов (реализованный им) вместо сессии. Я видел, что использование обоих почти одинаково. (Я не вижу его исходного кода :)

Session["somekey"] = somevalue, somevar = Session["somekey"] 

&

CustomCatch["somekey"] = somevalue, somevar = CustomCatch["somekey"]. 

Я хочу спросить, в чем преимущество моего лидера команды, чтобы я использовал его пользовательский улов вместо сессии? Или он просто хочет, чтобы я выполнил «лишнюю» работу?

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Я не знаю, что такое CustomCatch.Но если вы хотите сделать вещи проще и более тестируемыми, создайте интерфейс IStorageService и его реализацию, используя Session и так называемый CustomCatch.Служба хранения заменит вызовы в вашем примере.

public interface IStorageService 
{ 
  void SetValue(string key, object value);
  object GetValue(string key);
}

Для Session

public class SessionStorageService :  IStorageService 
{ 
  public void SetValue(string key, object value) 
  {
    HttpContext.Current.Session[key] = value; 
  }

  public object GetValue(string key) 
  {
    return HttpContext.Current.Session[key]; 
  }

}

Использование Session или CustomCatch будет ограничено этими реализациямитолько и не будет течь в другом коде.

2 голосов
/ 20 октября 2011

Я должен сказать правду.Я считаю объект Session одним из самых больших зол (с double / float, Regex, которые не учитывают интернационализацию и диакритические знаки (например, например), Regex, в общем, блокикода, который не учитывает интернационализацию (формат даты, числовой формат) и некоторые другие).

Вы можете использовать его для сохранения профиля текущего пользователя.Вы можете использовать его для сохранения настроек текущего пользователя.Полная остановка.Все остальное плохо плохо, плохо плохо.

Это потому, что если ваш пользователь нажимает ctrl-n на странице, в новом открывшемся окне используется тот же Session.Теперь подумайте, что может произойти.

Возможно, что ваш руководитель группы решил эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...