Клиент-серверное приложение C #

1

Мне нужно написать клиент-серверное приложение. Прежде всего, я собираюсь написать сервер приложений. Также мой сервер приложений должен подключиться к базе данных (MS Sql Server) и предоставить данные из него в клиентское приложение. Итак, как я знаю, я должен использовать WCF. Это хорошая идея? Может, мне нужно взглянуть на что-то еще?

Теги:
wcf
client-server

2 ответа

1
Лучший ответ

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

Давайте посмотрим здесь варианты:

сервер
1. Какой тип хостинга вы собираетесь использовать?
2. Какой тип и сколько нагрузки требуется вашему серверу?

клиент
1. Тип потребителя вашей услуги
2. Необходимо ли развертывание клиента на локальном компьютере или он должен быть основан на сети?

Очевидно, есть больше проблем, чем выше. Первоначальный дизайн должен быть максимально гибким.

Итак, теперь давайте рассмотрим некоторые решения, касающиеся архитектуры.
Сервер:
1. Application Hosted WCF server: каждый раз, когда вам нужно управлять жизненным циклом сервера. Кроме того, это не масштабируется. Поэтому, если вы ищете масштабируемую архитектуру, вам нужно посмотреть больше.
2. Сервер IIS с поддержкой IIS: это может быть хорошей идеей наряду с некоторыми проблемами архитектуры в соответствии с вашими потребностями.
3. Веб-метод. Очевидно, что это произошло после WCF, но WCF все еще на своем месте. Таким образом, основное отличие заключается в том, в чем разница между веб-методом asp.net и службой wcf?

Теперь Клиент:
1. ASP.NET: это позволит использовать одно клиентское приложение для каждой платформы, очевидно, из-за HTML
2. WPF/WinForms: это будет сложно использовать в качестве клиента, поскольку вам нужно развернуть клиентское приложение на компьютере пользователя, и здесь возникает проблема безопасности данных. В прошлом вы можете напрямую использовать SSL или какой-либо другой способ отправки данных в браузер. Хотя в этом случае, если вы не используете WCF с HTTPS, и некоторые проприетарные данные переходят по проводам, это может быть проблемой.

Если вы ищете кросс-платформенное использование своего сервера, вы можете использовать HTML.

Вывод:
Вы можете использовать сервер как хостинг-службу WCF (либо в IIS, либо в автономном приложении), либо в качестве клиента ASP.NET.
-----------------------------
Если этого недостаточно, вы можете использовать ASP.NET как сервер, а затем браузер как клиент (нет необходимости создавать клиент).
----------------------------
Вы можете создать сервер как WCF как веб-методы и развернуть клиент на пользовательском компьютере.
----------------------------
WCF достаточно хорош, и он также может обрабатывать ваши собственные типы данных.

  • 0
    Клиент будет приложением WinForm. На самом деле я тоже хочу сделать веб-клиент. Поэтому я постараюсь использовать WCF. Спасибо за совет.
1

WCF - хорошая вещь, но я бы использовал ASP.Net Self-Hosted Web-API. Это более современно. И у вас есть полноценный интерфейс для отдыха, который гораздо более популярен.

Вот сравнение: WCF и ASP.NET Web API

Вот хорошая отправная точка: Self-Host ASP.NET Web API 1 (С#)

  • 1
    WCF довольно современен, он в основном ориентирован на SOAP (и замену удаленного взаимодействия .NET). WebAPI является более новым , не более современным и более популярным для сценариев http- транспорта (особенно среди мобильных платформ).
  • 0
    Вы правы, оба современны. Но я думаю, что проще получить доступ к WebAPI с разных устройств.

Ещё вопросы

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