Я пишу небольшую программу для нашей локальной (бесплатной) средней школы. Программа имеет интерфейс, позволяет пользователю вводить школьные каникулы. Это - простое одинокое Приложение Windows.
Какой формат я должен использовать, чтобы хранить данные? Большие реляционные данные являются, очевидно, излишеством.
Мой первоначальный план состоял в том, чтобы хранить данные в XML-файле. Коллеги предлагали, чтобы я использовал файлы JSON, базы данных Access, Облегченный SQL, и SQL Server Express. Было даже предложение старых школьных файлов INI.
Подобные проекты имеют обыкновение быстро увеличиваться в размерах, и если они это сделают, ваш XML-файл станет сложным и станет бременем для управления.
Я бы не рекомендовал хранить данные в файлах xml или json - это просто текстовые файлы с разными именами, страдающие от одной и той же проблемы - у вас нет никакого контроля над тем, кто их редактирует.
Используйте какую-нибудь базу данных, начиная с самых маленьких (Access, SQLLite)
Редактировать
На основании ваших последних комментариев, сделайте откат до точки, когда пользователи использовали приложение в течение двух лет.
И более того , прямо сейчас
Все эти вопросы / проблемы разрешены. намного проще / эффективнее обрабатывать с SQL. К тому же ваша результирующая кодовая база будет иметь гораздо больше смысла. Обход XML - не самое приятное занятие.
Кроме того, если ваша пользовательская база уже знакома с Excel, связать Excel с базой данных SQL (и получить настраиваемые результаты) намного проще, чем сделать то же самое с XML.
Рассматривали ли вы возможность использования SQLite? В результате получится небольшой файл .s3db. SQLite используется всеми видами настольных приложений для локального хранения.
Есть библиотека SQLite .NET , которая позволит вам использовать ADO.NET для CRUD ваших данных.
Прочтите статью Майка Дункана о том, как начать работу с SQLite в .NET .
Мне нужно было бы подкрепить ответ Json и SQL Lite.
Другой вариант - использовать встроенную базу данных, которая включена во все окна ( начиная с Windows 2000 ), ESENT. Есть проект codeplex, упрощающий работу с http://managedesent.codeplex.com/
Хм, очевидно, что SQL Express полноценная база данных - otohj это может иметь смысл. Почему НЕ использовать базы данных, если они уже есть?;)
В противном случае я, возможно, выбрал бы файл XML.
Из «простого автономного приложения для Windows» мне кажется, что это не критично. Я бы выбрал то, что проще или удобнее всего. XML удобен для чтения человеком, но разумно отформатированный плоский файл может быть не менее разумным.
xml-файлами, кажется, хорошим вариантом. используя Linq to xml, должно быть довольно легко читать / записывать файлы из объектов / в объекты. ознакомьтесь с классами XDocument и XElement Доступ к базам данных, SQL Lite и SQL Server Express кажется излишеством. вам действительно нужна база данных для хранения простых данных календаря? ваше приложение будет расти?
Я бы выбрал
Я бы порекомендовал XML-файл и типизированный набор данных.
Вам нужно будет выяснить, куда поместить XML-файл.
Обратите внимание, что если вы когда-нибудь захотите разрешить нескольким пользователям использовать его, вам потребуется для использования базы данных, такой как Access или SQL Server.