Windows-приложение в C #?

2

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

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

Вопросы:

  • Хорошо ли использовать сервер базы данных непосредственно из приложения, поскольку сервер управляет подключениями автоматически, и я экономлю время при разработке интерфейса TCP/IP.
  • Какой может быть второй вариант? Предоставление сервера или интерфейса TCP/IP (не стоит ли его записывать?).
  • Насколько я могу использовать сжатие данных?
  • 0
    Если вы планируете получить доступ к удаленной базе данных напрямую, то когда и как будет использоваться локальная база данных? Вы подключаетесь к удаленной базе данных только для того, чтобы снять часть ее данных и использовать ее для создания локальной базы данных, а затем отсоединиться от удаленной базы данных с этого момента?
  • 0
    Во-первых, загруженные данные не будут изменены, а будут просто обновлены. Использование данных будет очень частым, поэтому нет необходимости удаленного вызова, если он загружен локально.
Показать ещё 1 комментарий
Теги:
streaming

4 ответа

3

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

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

1

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

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

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

  • 0
    Это потоковые данные и 99% приема.
0

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

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

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

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

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

  • 0
    К вашему сведению, .Net имеет встроенную поддержку GZip - msdn.microsoft.com/en-us/library/system.io.compression.aspx
  • 0
    Но только J # имеет библиотеку для создания ZIP-файла. GZip не создает файл .zip.
0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню