У меня довольно большой опыт программирования на VB6, VB.NET, C # и так далее, и я использовал ADO, затем SubSonic, и сейчас я изучаю nHibernate, так как большинство предполагаемых заданий я могу использовать для использования nHibernate.
Дело в том, что я программировал на основе того, чему меня учили, читали или воспринимали как лучшую практику.Недавно кто-то через гаечный ключ работал и заставил меня задуматься.До сих пор я обращался к базе данных по основному приложению и прилагаемым DLL, которые я пишу.
То, что сказал этот человек, заканчивается следующим образом, и, следовательно, мой вопрос:
Я могу сказать вам, что вы обычно не захотите этого делать - внешняя библиотека классов не должна иметь доступа к базе данных
Что я пытался сделатьдолжен был иметь общий / статический класс для сессий nHibernate, который мог бы использоваться как в глобальной области приложения, так и из любой библиотеки DLL.Этот класс должен был находиться в «основной» DLL-библиотеке, на которую ссылаются все библиотеки и приложение.Как я уже говорил, я изучаю nHibernate, так что, возможно, это не так.
Сказать, что я подвергаю сомнению мои методы доступа к базе данных, - это просто.
Может кто-нибудь прямо сказать мне об этом?
Редактировать:
Полагаю, если посмотреть на то, что уже было прокомментировано, это зависит от того, как осуществляется доступ к базе данных.Я бы никогда не стал вводить учетные данные имени пользователя / пароля и т. Д. В какие-либо библиотеки жестко закодированными для каких-либо средств.
Более конкретно, мой запрос связан с сеансами NHibernate.У меня есть статический класс, вспомогательный класс, который вызывается при запуске приложения, а затем создается новый сеанс и присоединяется к текущему контексту, в случае веб-приложений, а затем, когда мне нужен сеанс, я вызываю «GetCurrentSession».Этот статический класс находится в "core" dll и может быть доступен из любой библиотеки DLL и т. Д., На которую есть ссылки.Такое поведение предназначено.Мой единственный вопрос, это нормально?Должен ли я делать это по-другому?