Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
951
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
941
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1726
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4398
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Хранение данных из приложения C#
Недавно я занялся изучением некоторых C# и написал клон Yahtzee. Мой следующий шаг (Теперь, когда логика игры установлена и функционирует правильно) - это интеграция некоторого метода хранения статистики по всем сыгранным играм.
Мой вопрос заключается в следующем: как я должен хранить эту информацию? Моей первой мыслью было бы использовать базу данных, и я чувствую, что это ответ, который я получу... если это так, Можете ли вы указать мне хороший ресурс для создания и доступа к базе данных из приложения C#?
Хранение в файле XML на самом деле имеет больше смысла для меня, но я подумал, что если я предложу это, то меня разорвут на части ;). Я привык к созданию веб-приложений, и для них текстовые файлы обычно хмурятся.
Итак, идя с файлом XML, какие классы я должен смотреть, чтобы обеспечить легкую манипуляцию?
Вот одна идея: используйте сериализацию Xml. Создайте свою структуру данных GameStats и при необходимости используйте атрибуты Xml, чтобы влиять на схему по своему усмотрению. Мне нравится использовать этот метод для небольших наборов данных, потому что он быстрый и простой, и все, что мне нужно сделать, это спроектировать и управлять структурой данных.
using (FileStream fs = new FileStream(....))
{
// Read in stats
XmlSerializer xs = new XmlSerializer(typeof(GameStats));
GameStats stats = (GameStats)xs.Deserialize(fs);
// Manipulate stats here ...
// Write out game stats
XmlSerializer xs = new XmlSerializer(typeof(GameStats));
xs.Serialize(fs, stats);
fs.Close();
}
База данных, вероятно, была бы излишней для чего - то подобного-начните с хранения вашей информации в XML doc (или серии XML docs, если есть много данных). Вы получаете все эти изящные XCopy deployment вещи, вы все еще можете использовать LINQ, и это был бы плавный переход к базе данных, если бы вы позже решили, что вам действительно нужна эффективная логика реляционных запросов.
База данных может быть излишней - вы думали о том, чтобы просто хранить результаты в файле?
Если вы решите использовать базу данных, вы можете рассмотреть SQLite, который вы можете распространять точно так же, как файл. Существует поставщик с открытым исходным кодом .NET-System.Data.SQLite, который включает в себя все, что вам нужно для начала работы.
Доступ и чтение из базы данных в .NET довольно легко - посмотрите на этот вопрос для примера кода.
SQL Express from MS - это отличная бесплатная, облегченная версия их базы данных SQL Server. Вы можете попробовать это сделать, если пойдете по маршруту DB.
Кроме того, вы можете просто создать наборы данных в приложении и сериализовать их до xml, или вы можете использовать что-то вроде недавно отчеканенной Entity Framework , поставляемой с .NET 3.5 SP1
Я не знаю, обязательно ли вам нужна база данных. Это может быть излишним для хранения статистики для такой простой игры, как эта. Базы данных хороши, но вы не должны автоматически использовать их в каждой ситуации (я предполагаю, что это клиентское приложение, а не онлайн-игра).
Лично для игры, которая существует только на компьютере пользователя, я бы просто сохранил статистику в файле (XML или двоичный - выбор зависит от того, хотите ли вы, чтобы он был удобочитаемым или нет).
Я бы рекомендовал сохранить ваши данные в simple POCOs и либо сериализовать их в xml, либо в двоичный файл, как это сделал Брайан выше.
Если вам нужна база данных, я бы предложил Sql Server Compact Edition или VistaDB . Оба они размещены inproc в вашем приложении.
Я бы рекомендовал просто использовать базу данных. Я бы рекомендовал использовать инструмент LINQ или ORM для взаимодействия с базой данных. Чтобы узнать LINQ, я бы взглянул на сообщения Скотта Гатри. Я думаю, что их всего 9 вместе взятых. Я связал часть 1 ниже. Если вы хотите пойти с инструментом ORM, скажем nhibernate, то я бы рекомендовал проверить лето nHibernate скринкастов. Они действительно являются хорошим учебным ресурсом для nhibernate.
Я не согласен с использованием XML. С отчетной статистикой на большом количестве данных вы не можете превзойти использование реляционной базы данных. Да, XML является легким, но есть много вариантов для легких реляционных баз данных также, кроме того, чтобы идти с полномасштабной реализацией на основе сервиса. (например, SQL Server Compact, SQLite и т. д...)