На моей работе мы разрабатываем различные приложения, используя .net framework 4. Все приложения используют общие сборки, которые мы разработали, например слой данных в data.dll. Эти приложения находятся на сетевом диске и запускаются прямо оттуда.
Большинству крупных приложений требуется некоторое время, например, 4-5 секунд, чтобы запустить первый раз (холодный запуск). Последующие запуски происходят намного быстрее, почти мгновенно. Я не думаю, что это связано с сетью, поскольку самая большая сборка составляет около 900 КБ, а мы используем гигабитную сеть.
Я хотел бы создать службу, которая запускается при запуске компьютера и загружает все сборки .net в определенный каталог. Я надеюсь, что когда пользователь запустит программу, все необходимые сборки будут уже загружены и 'JITed', поэтому запуск должен быть быстрее.
Я знаю, как создать службу, но я хотел бы знать, может ли это работать, потому что мое понимание CLR довольно ограничено ... Кроме того, было бы работать что-то вроде Assembly.LoadFrom (fileName), чтобы предварительно загрузить сборки ? Если я какое-то время не запускаю программы, остаются ли они загруженными или через некоторое время сами разгружаются? Что произойдет, если я изменю уже загруженную сборку?
По сути, я хотел бы сделать что-то вроде OpenOffice Quick Starter , но для нашей собственной прикладной среды.
Спасибо всем !!!
--- EDIT ---
Это интересно ... , кажется, идет по правильному пути, но не уверен, что я все понимаю ...