Одна из проблем, с которыми вы столкнетесь, заключается в том, что сборки в .Net не загружаются до тех пор, пока они не потребуются.
Например, создайте новую сборку с классом «Hello World», свяжите ее с любым исполняемым файлом, затем удалите новую сборку из рабочего каталога, и вы никогда не заметите, что она загружена.
Затем, при событии нажатия кнопки, инициализируйте класс «Hello World», оставьте сборку удаленной из рабочего каталога, и вы получите сообщение об ошибке, что сборка не может быть найдена при нажатии кнопки.
Это основная причина того, что первый доступ к базе данных обычно медленен в .Net, и у него возникает ощущение «ускорения» (чем больше вы его используете, тем быстрее это происходит), потому что объекты, которые вы используете в своем слой данных не загружается в среду выполнения до тех пор, пока к ним не будет получен доступ.