Нужна помощь начинающему программисту. У меня есть приложение, которое я создал> активкат.приложение
Я углубляюсь в сети и хочу перестроить приложение, используя систему хоста/клиента.
Я строил основу для этого с помощью WCF. Но это была борьба с препятствиями на каждом прорыве, я ожидал получить простую среду хоста/клиента с настройкой аутентификации без проблем. Но у меня были проблемы с сетевым доступом на разных IP-адресах, проблемами с сертификатами и даже просто с поиском информации в MSDN, которая показывает пример, который не использует app.config. Поскольку мне нужно делать большинство вещей динамически для переносимости.
Я уверен, что если я продолжу работать с WCF, у меня все получится, но я начинаю задаваться вопросом, есть ли что-то более простое. Кажется, что WCF больше подходит для какой-то внутренней разработки, если компания приложения также запускает сервер.
Чего я хочу добиться: -Пользователь устанавливает и управляет собственным экземпляром серверного программного обеспечения. -Они создают учетные записи, на которые может указать любой, кто скачает клиент.
Итак, Боб хочет сделать игру и работает в команде, Боб устанавливает серверное приложение и настраивает входы для некоторых пользователей. Товарищи по команде Боба устанавливают клиентское приложение, устанавливают указатель на IP-адрес его серверного приложения и входят в систему. Все в его команде имеют доступ к контенту, управляемому серверным приложением.
В этой ситуации следует ли продолжать работу с WCF? Меня также беспокоят сертификаты, из того, что я собрал, я могу просто предоставить сертификат разработки для всех. Каждый человек, который устанавливает серверное программное обеспечение, также должен будет создать или купить сертификат? Это похоже на ерунду, которую никто делать не собирается.





WCF существует уже давно и до того, как обычно выглядят сегодняшние API. WCF, как и SOAP/WSDL, допускал строго типизированные контракты и вообще (до появления JSON) совместное использование сообщений через XML-документы. Многие предприятия по-прежнему используют службы WCF для точек интеграции.
Сегодня современная тенденция заключается в том, чтобы иметь менее строго типизированные контракты и обмениваться сообщениями через полезные данные JSON. Вместо конечных точек SOAP/WSDL у вас есть базовые прослушиватели HTTP, которые могут принимать запросы (обычно POST) и анализировать JSON для бизнес-объектов. Многие люди предпочитают создавать без сохранения состояния и Restful (или Rest API), поскольку это способствует масштабируемости и отказоустойчивости.
WCF может показаться неправильным подходом к разработке игр. Restful API по-прежнему могут использовать транспорт и шифрование сообщений, но они намного легче, чем WCF, что добавляет много накладных расходов и сложностей (контракты и т. д.), которые вам, вероятно, не нужны.
Что касается шифрования, вы можете добавить SSL/HTTPS, используя сертификаты Let's Encrypt. Их можно получить бесплатно.
Привет, Харли. Вы все еще можете передавать данные с помощью SignalR или чего-то более общего: веб-сокетов. Вы можете загрузить 50 МБ ресурсов. Я бы стремился сделать их кэшируемыми клиентами, поскольку вы не хотите, чтобы потребители постоянно загружали столько данных. Если возможно, разбейте эти 50 МБ на более мелкие фрагменты, которые можно будет обслуживать параллельно. Я бы также посмотрел на ядро dotnet - сервер kestrel позволяет размещать самостоятельно без IIS.
Я предположил, что ваш клиент - это приложение javascript в браузере? Если это настольный толстый клиент, вы все равно можете получать данные из API, но я никогда не передавал данные с помощью SignalR или веб-сокетов в настольное приложение. SignalR определенно нацелен на JS-приложения в браузере.
Эй, спасибо за отзыв. Сможет ли предложенный вами метод обрабатывать большие объемы данных? Намерение состоит в том, что серверное приложение будет содержать активы видеоигры, загрузка / выгрузка может быть от 1 МБ до 50 мг +. Вот почему я начал с WCF из-за возможности потоковой передачи данных. Если вам нужно создать API, знаете ли вы какие-нибудь шаблоны проектов, которые были бы полезны в Visual Studio? Кроме asp.net ничего не видел. Я отказался от asp.net, потому что он работает на IIS, мне понравилось, как WCF можно разместить самостоятельно. Кроме того, клиент будет построен на Unity, чтобы лучше обрабатывать 3D-файлы.