Ответ 1
Я бы порекомендовал Sqlite. Он полностью автономный и общедоступный, поэтому никаких проблем с лицензией вообще нет.
Мне нужно создать простую однопользовательскую базу данных для Windows. Основными требованиями являются независимость от версии Windows и установленного программного обеспечения. Какие технологии (язык/рамки) вы бы порекомендовали? Моим предпочтением для языка является Visual Basic.
EDIT: как насчет VB.Net и SQL Server Compact Edition?
Я бы порекомендовал Sqlite. Он полностью автономный и общедоступный, поэтому никаких проблем с лицензией вообще нет.
Один пользователь или несколько пользователей?
Для одного пользователя ответ будет SQLite
Для нескольких пользователей (или многопоточных) попробуйте MySQL или PostgreSQL.
Поскольку ваше требование - это приложение на базе Windows, я бы предположил, что вы идете с экспресс-выпуском SQL Server 2005, который является бесплатным инструментом, но с некоторыми небольшими ограничениями. вы можете перейти на более крупную версию, когда вы идете с платной версией.
Существуют и другие механизмы БД, такие как SQL Lite или FireBird, выбирайте их, если поддерживаемые варианты поддержки и роста, которые они предоставляют, достаточно хороши для вас.
Кроме того, Visual Basic имеет длительный срок службы. В настоящее время VB.NET может быть лучшей платформой на базе Windows. Это даст лучшую платформу/функции для начала и когда вы хотите расширить талант, который у вас работает над проектом, я предполагаю, что талант .NET может быть более доступным, чем программисты, которые хотят работать с мертвым языком.
дубликат Какие существуют опции для быстрой встроенной базы данных в .NET?
Я повторю свой ответ оттуда:
"Или theres Esent, встроенная база данных, которая существует в каждой копии окон. Читайте об этом здесь: http://ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx" и http://www.codeplex.com/ManagedEsent
SQLite будет работать для локального настольного приложения. Если вам нужны несколько пользователей, несколько гигабайт данных и несколько соединений, я бы использовал mysql или Firebird.
Сервер FireBird SQL станет выбором. Он может использоваться как в встроенном, так и в многопользовательском режиме, например, в традиционных базах данных. Он реализует многие стандарты SQL и имеет сильную базу сообщества. Он доступен для Windows, Linux, Solaris, OS X, HP-UX
Как уже упоминалось, SQLite - отличная однопользовательская база данных. Эта страница содержит примеры VB/SQLite. Когда проблема связана с тем, что SQLite анализирует ограничения внешнего ключа, но не применяет их. Вы можете использовать этот код для генерации "внешних ключей триггеров" для SQLite, тем самым получая удобную базу данных с ограничениями FK.
В зависимости от того, насколько требовательны ваши потребности в базе данных, вы можете рассмотреть возможность доступа к MS Access.
Я использовал SQL Server Compact Edition. Это похоже на sqllite. Один SDF файл, доступ к которому осуществляется с помощью ADO.NET. Вы можете разработать приложение с помощью Visual Basic.NET и управлять своей базой данных (добавлять таблицы, столбцы, ограничения и т.д.) С помощью Visual Studio.
SQLite может быть тем, что вы ищете. http://www.sqlite.org/
В зависимости от ваших потребностей в приложении.
Вы можете использовать SQLLite, который является очень хорошей базой данных без необходимости установки.
Вы также можете использовать Microsoft SQL Server: SQL Server Compact 3.5.
Оба бесплатны!
Хорошо, если у вас нет предыдущего опыта...
Вам нужно какое-то хранилище постоянного хранения (например, база данных) и клиент. Для хранения вы можете использовать почти все. Например, вы можете создать свою БД в MS Access и просто отправить ее в виде файла, используя ADO для доступа к ней. Другие варианты - версия MS SQL Express (поставляется с предустановленной на некоторых машинах или может быть установлена бесплатно) и множество баз данных с открытым исходным кодом, например SQLite
Для клиентской стороны вы не ошибетесь с VBScript и ADO (используя драйверы OLE DB). Они поставляются с каждой установкой Windows со времен Dark Ages, у вас будет много ссылок/учебников/ответов в Интернете. Недостаток: нет пользовательского интерфейса, поэтому вам придется создать интерфейс командной строки (который был для "простого" приложения).
Если вы хотите создать пользовательский интерфейс, я бы предложил использовать .NET WinForms. Накладные расходы будут значительно больше, но .NET теперь устанавливается на всех компьютерах с процессорами XP/Vista, и даже если вы не можете всегда устанавливать фреймворк с вашим приложением.
От вашего сообщения не совсем ясно, хотите ли вы веб-приложение или нет.
Для веб-приложения MySQL эффективно работает на платформе Windows. У вас также есть почти неограниченные возможности для среды разработки, включая PHP, Ruby on Rails, Django и .Net.
Если вы смотрите на настольное приложение, MS Access может быть подходящим... невероятно простым для простых приложений.
Если вы хотите создать приложение, которое может легко перейти на другой компьютер, я предпочитаю Microsoft Access, это небольшая база данных, простая в использовании и не требующая установки. Это набор для приложения, например Addressbook, mini crud system.
Но если вы хотите разработать систему корпоративных баз данных, вы должны использовать MySQL.
Я не понимаю, что вы подразумеваете под "формой независимости [...] установленного программного обеспечения". Вам когда-либо понадобится, по крайней мере, установленная СУБД, а также один клиентский или пользовательский интерфейс.
Я рекомендую использовать MS Access. Это легко и недорого для простых, однопользовательских задач и быстрого создания прототипов. Для создания БД необходимо приобрести только версию разработки ( "обычный" доступ). Версия Runtime Access 2007 можно скачать бесплатно на главной странице Microsoft - для использования только созданной вами базы данных.
Также он объединяет интерфейс СУБД и GUI в одном и том же инструменте.
Отмечу, что MS Access...?
Если вы ищете небольшой размер (до нескольких МБ) и простое развертывание (конечный пользователь должен установить приложение только для его работы), то ваши варианты включают SQLite и Firebird.
Из этих двух я бы выбрал Firebird в любое время, из-за его полной поддержки SQL (вы не можете, например, удалить столбец в SQLite), соответствие ACID и возможность запускать клиент/сервер без каких-либо (просто измените строку подключения из встроенного на сервер) в код, если вы когда-нибудь решите позволить нескольким пользователям работать в одной и той же базе данных.
Не говоря уже о том, что вы можете использовать полный сервер для разработки (что означает, что приложение для администрирования приложений и баз данных может одновременно подключаться к базе данных).
Я успешно использую Turbo Delphi (бесплатно для коммерческого и коммерческого использования) + ZeosLib (zeos.firmos.at).
Единственное, что вам нужно распространять с вашим .exe, это DLL-клиент базы данных (нет необходимости устанавливать клиент, просто поместите DLL в тот же каталог).
Будет Kexi работать?
Я могу порекомендовать из личного опыта "Моя визуальная база данных", бесплатно, без кода, без sql, просто перетаскивайте.
Лучший вариант - создать собственное приложение Win32 с помощью Delphi и использовать SQLLite в качестве базы данных.
Причина, по которой Delphi может создавать собственные приложения win32 без какого-либо другого продукта, установленного на машине.