Ответ 1
На самом деле у вас есть три варианта. Опция, которую вы не описали, - это та, где вы создаете базу данных с SSMS, а затем настраиваете соединение с файлом и выбираете файл MDB, который был создан SSMS (вам, вероятно, потребуется сначала демонтировать базу данных с помощью SSMS, чтобы получить SQL Express для выпуска своих файловых замков). Когда вы создадите это соединение с файлом, вам будет предложено указать, хотите ли вы подключиться к нему, где он находится, или добавить его в свой проект.
Локальная база данных может принимать две формы, в зависимости от того, как вы ее создаете. Для получения подробной информации обратитесь к Как управлять локальными файлами данных в вашем проекте.
Клиент-сервер, SQL Express
Если вы настроили базу данных с SSMS и подключились к ней через SQL Express, то у вас нет локальной базы данных, входящей в ваш проект, у вас есть база данных, для которой сервер оказывается локальным для вашей рабочей станции.
Локальная база данных, SQL Express
Если вы настроили базу данных с SSMS, отключите базу данных и добавьте файл в свой проект, тогда у вас есть локальная база данных, которая использует закрытый экземпляр SQL Express.
Локальная база данных, компактная версия
Если вы создаете новую базу данных с помощью меню Visual Studio, у вас есть локальная база данных Compact Edition.
SQL Express
Когда Visual Studio запускает отладку, запускается закрытый именованный экземпляр SQL Server Express, и приложение связывается с ним с использованием общей памяти, а не сетевого протокола.
Однако абсолютно ничего не мешает вам установить экземпляр SQL Express, который работает как служба. Вы можете подключить тот же файл базы данных (или его копию) и сделать его доступным для сети. Вы даже можете подключить его к экземпляру SQL Standard или даже SQL Enterprise.
Зачем же вам гадать с локальным экземпляром? Он имеет преимущества для групп разработчиков, поскольку разработчики могут изменять свою схему, не нарушая других. Это позволяет разрабатывать программное обеспечение для настольных компьютеров (в отличие от сети), хотя в наши дни спрос на эту способность снижается.
В зависимости от того, сколько оборудования у вас есть в вашей среде разработки, лично я бы не использовал локальную базу данных. SQL Server - это свинья в памяти, и я бы предпочел, чтобы он работал на совершенно отдельной коробке.
Некоторые примечания
- TSQL абсолютно идентичен для всех выпусков MSSQL, за исключением Compact и Micro.
- В среднесрочной перспективе SQL Express ограничивает размер базы данных до 4G, хотя я считаю, что это увеличилось до 8G для R2. Это вряд ли будет значительным для развития, но может повлиять на тестеров.
- Некоторые функции служб Reporting Services SQL Server недоступны в более дешевых версиях.
SQL Server Compact Edition
Информация об этом довольно тонкая. Сравнение версий Microsoft не рассматривает компактные или микровыборы. Некоторые рекламные ролики на веб-странице компактного издания требуют полной совместимости с TSQL. SDF является файлом "все-в-одном"; нет отдельного файла журнала. Путь от SDF к клиент-серверу, конечно, менее прямой, чем для SQL Express, но он, похоже, поддерживается как опция, поскольку в этой теме есть статьи в msdn.
Инструменты тиражирования доступны для компактной версии, поэтому ее можно использовать в качестве кэша локальной базы данных в случайно подключенной системе (например, в портфельной модели). Модель портфеля требует более тщательного общего проектирования системы, но в ней много всего для этого: вся производительность и простота автономной системы с одним пользователем с большинством преимуществ системы клиент-сервер.
Заключение
Для ваших целей я бы выбрал вариант Compact Edition. Накладные расходы и сложность других решений решаются при решении проблем, которых у вас нет, и их не будет. Они предназначены для решения проблем развития команды в сетевой, крупномасштабной среде с формальным циклом выпуска.
Вы находитесь в удачном положении, что можете сохранить его простым. Инструменты в Visual Studio все равно приятны.