Я пользовался бы простой, легкой библиотекой обмена сообщениями под названием ZeroMQ ( http://www.zeromq.org/ ). Это - библиотека с открытым исходным кодом (LGPL). Это - очень небольшая библиотека; на моем сервере целый проект компилирует приблизительно за 60 секунд.
ZeroMQ чрезвычайно упростит Ваш событийно-ориентированный код, И это - также наиболее эффективное решение с точки зрения производительности. При передаче между использованием потоков ZeroMQ намного быстрее (с точки зрения скорости), чем использование семафоров или локальных сокетов UNIX. ZeroMQ также быть 100%-м портативным решением, тогда как все другие решения привязали бы Ваш код к определенной операционной системе.
Сохранение в XML в .NET очень просто, особенно если вы действительно просто сохраняете URL и временную метку. Вы можете создать собственный класс для хранения данных ... во время выполнения манипулировать экземплярами этого класса в вашем приложении.
Когда пришло время сохранять, сериализовать объект (ы) в XML ... когда приложению нужно восстановить данные позже, просто десериализуйте. В MSDN есть простое пошаговое руководство .
Стоит отметить, как это сделал Квинтин, что использование SQL Server Compact или другой облегченной базы данных также может быть хорошей идеей. XML - это быстро и легко, но если вам нужны люди для обмена данными или вам нужно что-то более гибкое, чем простая сериализация, вам лучше использовать базу данных.
Взгляните на Настройки вашего проекта (щелкните правой кнопкой мыши проект в Обозревателе решений> Свойства> вкладка Настройки), вы можете определить количество сохраняемых переменных на протяжении всего использования программы для каждого пользователя, например, имя пользователя, время последнего обновления, прокси-сервер и т. д. Сами настройки сериализуются в XML и хранятся в папке Application Settings для каждого пользователя, но вы также можете указать настройки по умолчанию или настройки для конкретного приложения.
Затем вы можете использовать настройки следующим образом:
MyNamespace.Properties.Settings.Default.MySetting
Дополнительная информация о настройках файлы можно найти @ MSDN или Code Project
. Это замечательно, если вам нужно сохранить только несколько переменных между сеансами. Если вам нужно сохранить больший объем данных, изучите любой из вариантов базы данных, предложенных в других ответах,
Если вам действительно нужна высокая настойчивость и нехватка хранилища приложений, вы можете использовать sqlite или sql server compact (оба автономные), однако в вашем случае я думаю, что чтение / запись в файл xml в общем приложении папка с данными идеально подойдет для ваших нужд, и ее очень легко сделать.
Отредактировано, потому что мой первый пост был чистым, как грязь
Лично мне нравится хранить данные в базе данных, если пользователи обмениваются данными.
Для однопользовательских данных, не являющихся общими, все следующие параметры довольно просты.
Если ваши данные хранятся в DataSet внутри, я бы предложил использовать DataSet.WriteXml и DataSet.ReadXml для локального хранения.
В противном случае простой текстовый файл был бы самым простым для такой простой вещи, как вы предложили. Однако, если данные будут более сложными, то лучше всего будет написать XML-документ.
Вы также можете изучить Serialization:
http://msdn.microsoft.com/en-us/library /7ay27kt9(VS.85).aspx[12175 impression
Вы должны проверить db4o . Эта облегченная объектная база данных с открытым исходным кодом для объектов .NET и Java очень полезна, когда вам просто нужна простая сохраняемость. Он более удобен для запросов, чем текстовый файл, и не такой тяжелый, как СУБД. Он включен как библиотека и сохраняется в файле, поэтому нет никаких внепроцессных вызовов.
Его можно добавить в ваш проект, обратившись к библиотеке db4o (загрузите здесь ). Вы указываете ему путь к файлу, в котором хотите сохранить объекты, а он обрабатывает все остальное. Затем вы можете создавать классы для инкапсуляции вашей информации и просто сохранять их экземпляры в файле через db4o. Вы можете запросить их позже через очень простой интерфейс запросов.