LINQ я предполагаю, что Вы значите LINQ для SQL, потому что LINQ, отдельно, не имеет никакой базы данных "продолжения" связанного с ним. Это - просто язык запросов, который имеет полную лодку syntac сахар, чтобы заставить его посмотреть выход SQL.
В очень простых из основных примеров, NHibernate и LINQ к SQL кажутся обоим решить ту же проблему. Как только Вы получаете передачу, что Вы скоро понимаете, что NHibernate имеет поддержку большого количества функций, которые позволяют Вам создавать действительно богатые модели предметной области. Существует также LINQ к проекту NHibernate, который позволяет Вам использовать LINQ для запросов NHibernate почти таким же способом, поскольку Вы использовали бы LINQ для SQL.
Вы действительно смотрите на множество устаревших причин, все они превратились в то, что стало стандартной практикой в мире Windows.
Во-первых, немного контраста, потому что это не всегда так . «Приложение» в Mac OS X - это просто каталог с определенной структурой внутри, названный с расширением .app
. Установить приложение так же просто, как перетащить его (просто значок приложения) в папку «Приложения», а для удаления необходимо перетащить его в корзину. Вот и все, никакой необычный установщик (обычно) не требуется.
В Windows приложения обычно создаются из независимых компонентов, которые необходимо «зарегистрировать». При этом программа-установщик записывает некоторые фрагменты в реестр Windows, чтобы сообщить Windows, где найти компоненты. Да, приложение, вероятно, должно знать, где их найти (поскольку все они установлены в одном месте), но годы наследия и различные способы подключения компонентов привели нас к тому, где мы находимся сегодня.
Как правило, программа установки на Windows:
Причины использования "необычного" процесса установки
«Стандартным» вариантом для большинства установок будет «все биты, которые обычно требуются, в стандартном месте , например Program Files "установить без настройки, возможно, без включения некоторых функций экспертного уровня.
Здесь ваш друг org.springframework.web.context.request.RequestContextHolder
// example usage
public static HttpSession session() {
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
return attr.getRequest().getSession(true); // true == allow create
}
Он будет заполнен стандартным сервлетом диспетчеризации Spring mvc, но если вы используете другой веб-фреймворк, вы добавили org.springframework.web.filter.RequestContextFilter
в качестве фильтра в свой web.xml
для управления держателем.
EDIT : как и побочный вопрос, что вы на самом деле пытаетесь сделать, я не уверен, что вам нужен доступ к HttpSession
в методе retieveUser
из UserDetailsService
. Безопасность Spring поместит объект UserDetails в сеанс любым способом. Его можно получить, обратившись к SecurityContextHolder
:
Зависит от устанавливаемой программы. «Установка» может варьироваться от простого копирования (относительно небольшого) исполняемого файла в каталог до настройки общих библиотек, выполнения проверок на уровне исправлений (я предназначен для работы на SP2 или выше - у меня есть SP2 или выше?) И изменения конфигурация системы либо для текущего пользователя, либо для всех пользователей. Большинство из них также регистрируют установку с помощью диспетчера пакетов, чтобы вы могли легко удалить установку позже.
Программа пытается модифицировать компьютер таким образом, чтобы он работал, а все конкурирующие продукты выходили из строя. В Windows это означает:
Важной задачей является выполнение выполнить установку и вывести сообщение об ошибке: «Установка не удалась. Это может быть связано с установленным антивирусным ПО. Деактивируйте его и повторите попытку». Это гарантирует, что пользователи начнут не доверять своему антивирусу (особенно, если установка завершится успешно во время второго запуска, поскольку неясные ошибки в установщике не были запущены), и многие из них забудут снова включить антивирусный сканер или даже удалите эту чертову штуку.
Авторы вирусов во всем мире тоже люди! Спам составляет большую часть трафика в Интернете, что должно означать, что это важно, и кто бы не хотел быть частью самого большого сообщества на земле? Кроме того, таким образом можно заработать большие деньги. Все, что вам нужно, это слабая совесть и / или какая-то криминальная энергия.
Очень важной частью вашего установщика является увеличение ключа реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-7-9-23-64738-1349283462-3754093625-4491 \ IsYourWindowWideEnough \ NotGivenUpYetHuh \ GoAway \ ImportantSystemInformation \ Посмотрим, как можно обрабатывать пробелы \ DamnIGottaStopSincePathsCanHaveOnl \ ReinstalCtr
Этот важный системный счетчик поможет создать иллюзию нестабильности для пользователя, пока он не почувствует сильное желание переустановить всю систему. Это поможет профессиональным ИТ-специалистам продавать часы поддержки, продавать новые компьютеры, больше оперативной памяти, жесткие диски большего размера или новые версии Windows (они должны быть лучше, не так ли?).
Примечание. отнеситесь к этому тексту серьезно, обратитесь за профессиональной помощью.