2009-10-27 4 views
2

Я разрабатываю приложение Windows на C#, которое при запуске в первый раз создает локальную базу данных (SQLite), а данные (около 200 МБ или даже больше) на это подаются как поток данных с удаленного сервера на основе критерии, заданные пользователем.Приложение Windows в C#?

В настоящее время я планировал получить доступ к серверу базы данных непосредственно из приложения.

Вопросы:

  1. Это хорошая идея, чтобы использовать сервер базы данных непосредственно из приложения, как сервер управляет соединениями автоматически, и я сэкономить время при разработке TCP/IP интерфейс.
  2. Какой может быть второй вариант? Предоставление сервера TCP/IP или интерфейса (не стоит ли его записывать?).
  3. Насколько я могу использовать сжатие данных?
+0

Если вы планируете напрямую обращаться к удаленной базе данных, то когда/как используется локальная база данных? Вы подключаетесь к удаленной базе данных только для того, чтобы вытащить подмножество своих данных и использовать это для создания локальной базы данных, а затем отключиться от удаленного с этой точки вперед? –

+0

Во-первых, данные после загрузки не будут изменены, а просто обновлены. Использование данных будет очень частым, поэтому удаленный вызов не будет удален, если он будет загружен локально. – Vishal

+0

Ваше название вопроса довольно расплывчато. Попытайтесь найти что-то, что описывает вашу проблему. – OregonGhost

ответ

1

Не вдаваясь в подробности, могу сказать, что вы можете использовать ASP.NET C# (вы можете выбрать любой язык .NET), и вы можете отправлять и получать данные с помощью POST.

Зачем вам нужно сжатие? Вы отправляете только результаты? Если он большой, вы можете использовать существующую библиотеку. Я использовал sevenzipsharp в прошлом без особых проблем.

Редактировать: на сервере может быть указан выходной сигнал gzip, поэтому вам может не понадобиться ничего использовать.

+0

Его потоковые данные и прием 99%. – Vishal

0

Как правило, лучше использовать ADO.NET или LINQ to SQL (Entity Framework) для непосредственного подключения к вашей базе данных, если только пользователь не будет отключен при использовании приложения.

Если вы собираетесь отключить пользователя, продолжайте использовать SQLite или вы можете использовать ADO.NET, который может сохранять XML-файл данных и получать к нему доступ как таблицу с пользовательского компьютера без дополнительной зависимости SQLite.

Я бы не использовал сжатие, потому что C# не имеет встроенной библиотеки для него и потребует дополнительной зависимости.

Попробуйте использовать только .NET Framework без дополнительных библиотек DLL, и у вас будет более гибкое приложение, которое будет проще устанавливать и обслуживать.

ADO/Entity Framework - http://msdn.microsoft.com/en-us/library/h43ks021.aspx

+0

FYI .Net имеет встроенную поддержку GZip - http://msdn.microsoft.com/en-us/library/system.io.compression.aspx – JonoW

+0

Но только J # имеет библиотеку для создания ZIP-файла. GZip не создает ZIP-файл. –

3

С WCF вы можете избежать затрат на написание TCP/IP код и иметь отдельный сервер или веб-сервиса, размещенного на IIS. Более того, сжатие может быть добавлено без изменения кода.

Вы должны попробовать и без сжатия. Скорость сжатия сильно зависит от данных, и время сжатия также может быть проблемой.

0

Предполагая, что ваше намерение состоит в том, чтобы вытащить подмножество данных на сервере в зависимости от клиентских запросов для локального хранилища, то по соображениям безопасности и управления вы, вероятно, должны смотреть на использование веб-служб, а не на то, чтобы напрямую подвергать вашу базу данных в Интернет.

Существует множество возможностей для создания сервисов - WCF является основным методом для новых.NET и просто реализовать на обоих серверах и клиентах - в этом случае я также, вероятно, взглянул бы на ADO.NET Data Services как на ярлык на богатый набор сервисов.

Смежные вопросы