Я только что получил проект, в котором есть несколько базовых классов, использующих статические методы.
Это проект C # с интерфейсом, который отражает некоторые методы javascript.
В этом интерфейсе есть много обращений к статическим методам, которые используют HttpContext и получают данные из базы данных (фактически только одна база данных доступа), например так (некоторые методы имеют некоторую логику внутри):
public static string UsrId {
get{
try {
return HttpContext.Current.Session["usrid"].ToString();
} catch(NullReferenceException) {
return ServiceVars.GuestId;
}
}
}
Итак, мой вопрос:
Это плохая практика? Каковы минусы (и плюсы?) В этом?
Я где-то читал, что статические методы, которые используют соединения с базой данных, плохи для сайтов с высоким трафиком, потому что это поставило бы в очередь запросы. Это правда? Или я не должен беспокоиться о подключении к базе данных в статических методах?
А как насчет HttpContext внутри статических методов, это плохо и почему?