Как следование на на от этого вопроса я создаю пользовательское управление сервером, которое будет помещено в Sharepoint основная страница 2010 года.
Идея позади этого состоит в том, что это отобразит меню, которое динамично заполняется от базы данных.
Поскольку это - управление сервером, я создаю его в dll, но я столкнулся с маленьким препятствием. Поскольку это должно соединиться с базой данных, я должен сохранить строку подключения где-нибудь (и иметь ее способный быть настроенным на основе целевой конфигурации (dev/test/prod).
Я предназначал пользователю Платформу Объекта как свой ORM, но я смущен как, туда, где строка подключения должна быть сохранена. В нормальном веб-приложении ASP.NET это входит в web.config, но это - управление сервером во внешнем DLL.
Где я храню строку подключения так, чтобы я мог просто создать и развернуть блок, содержащий управление сервером.
Править:
Прежде чем я отправлю щедрость, я попытался использовать встроенный XML-файл ресурса для содержания строки подключения и в то время как это работает, мне любопытно относительно того, если это - лучшая практика/a лучший путь?
Я бы не рекомендовал подключать элемент управления в базу данных. Вместо этого пользователь элемента управления должен подключиться к базе данных, а затем привязать данные к элементу управления.
Строка подключения должна быть помещена в любое приложение, которое DLL использует для своего файла конфигурации. Поскольку это ASP.NET, подойдет файл web.config
. Когда вы вызываете какие-либо методы из DLL, вы должны передать ему строку подключения как объект:
MyConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
}
}
Использование :
using(SqlConnection conn = new SqlConnection(MyConnectionString))
{
//other stuff here. Like making your command object, or passing it.. etc.)
}