Запутан пространствами имен Microsoft WebSockets - PullRequest
46 голосов
/ 24 октября 2011

Пока что в учебниках, блогах и официальной документации я видел:

  • Microsoft.Web.WebSockets
    • Получено от NuGet
    • Сборка - Microsoft.WebSockets, но пространство имен - Microsoft.Web.WebSockets
    • Последнее обновление 14 сентября 2011
    • Содержит WebSocketHandler, WebSocketCollections, WebSocketExtensions
  • System.Web.WebSockets
    • Часть .NET 4.5 и доступна в Visual Studio 11 Developer Preview
    • Содержит классы AspNetWebSocket, AspNetWebSocketContext, AspNetWebSocketOptions
    • Документация по MSDN
  • System.Net.WebSockets
    • Спасибо, Ладислав Мрнка, за то, что указал на это
    • Часть .NET 4.5 и доступна в Visual Studio 11 Developer Preview
    • Содержит WebSocket, HttpListenerWebSocketContext и другие
    • Документация по MSDN
  • System.ServiceModel.WebSockets
    • Должно быть, я думал, что видел это где-то, сейчас не могу его найти
  • Microsoft.ServiceModel.WebSockets
    • Получено с html5labs.interoperabilitybridges.com /....
    • Установлено в [Program Files] \ Microsoft SDKs \ WCF WebSockets \ 11.06.22 \ bin
    • Содержит классы WebSocketHost, WebSocketService, WebSocketsService, а также интерфейсы и коллекции
    • Последнее обновление: 22 июня 2011 г.

это как-то отличается? Есть старые версии?

Я всегда предполагал, что пространство имен «Microsoft.Web» использовалось для предварительного выпуска кода, но даже демонстрации на конференции Build используют это пространство имен, несмотря на то, что .NET 4.5 включает пространство имен System.Web.WebSockets встроенный.

System.Web.WebSockets, похоже, имеет тот же API, что и Microsoft.Web.WebSockets, но с классами и методами с префиксом AspNet.

System.ServiceModel.WebSockets является частью пространства имен WCF, которое также кажется разумным местом для размещения этого материала.

Помощь - я в замешательстве. Что я должен использовать?

Ответы [ 5 ]

24 голосов
/ 24 октября 2011

Я добавлю немного больше к вашей путанице.Microsoft.* Префиксные сборки / пространства имен обычно либо очень специфичны для какого-либо языка, либо не являются частью .NET Framework (поставляется вне диапазона (или прототипов)).

Сборки / пространства имен, поставляемые с .NET Framework, обычно начинаются с System.*.В .NET 4.5 есть два пространства имен, содержащих функции, связанные с WebSockets:

  • System.Net.WebSockets - реализация WebSockets
  • System.Web.WebSockets - интеграция WebSockets с ASP.NET

Я не видел System.ServiceModel.WebSockets, но я думаю, что был какой-то прототип с именем Microsoft.ServiceModel.WebSockets

4 голосов
/ 07 февраля 2012

html5labs.interoperabilitybridges.com

... мы не планируем никаких будущих обновлений этого прототипа.

System.Web.WebSockets

... пространство имен содержит классы, которые поддерживают добавление функциональности WebSocket в приложения ASP.NET Web Forms .

Microsoft.Web.WebSockets:

... предоставляет функциональность для написания серверных приложений с поддержкой WebSocket в Windows 8 с использованием ASP.NET и WCF


Мой вывод:

  • System.Net.WebSockets кажется чем-то низкоуровневым.
  • System.Web.WebSockets необходимо при использовании ASP.NET веб-форм
  • Microsoft.Web.WebSockets от NuGet выглядит наилучшим выбором при использовании ASP.NET MVC
1 голос
/ 29 мая 2014

Это мое мнение о том, почему именование Microsoft.Web.WebSockets :

"Этот пакет предварительного просмотра предоставляет функциональные возможности для написания серверных приложений с поддержкой WebSocket в Windows 8 с использованием ASP.NET иWCF. Требуется .NET 4.5 RC и Windows 8 RC. "

Вероятно, это библиотека, названная Microsoft. *, Потому что она была разработана для Windows 8 RC.Что не является надежной зависимостью, поэтому оно не может быть частью официальной платформы .net.

Конечно, когда выйдет Windows 8, они могут зависеть от нее и начать выпускать библиотеки веб-сокетов как часть официальной структуры,Таким образом, Microsoft.Web.WebSockets можно эффективно удалить, не выходя из состояния предварительного выпуска.

Как насчет System.Web.WebSockets против System.Net.WebSockets ?

System.Web.WebSockets: "классы, которые поддерживают добавление функциональности WebSocket в приложения ASP.NET Web Forms."

Хм ... Кажется простым.Эти классы предназначены для использования в веб-формах ASP.NET.Требуется ли им Windows 8?Не уверен.

System.Net.WebSockets: это что-то еще, что не связано с веб-формами.Но это работает, только если у вас Windows 8.

Microsoft.ServiceModel.WebSockets

Еще один старый предварительный пакет.Этот работает на Windows 7!

Примечание: вместо того, чтобы беспокоиться о том, что работает на какой платформе + фреймворк, чтобы использовать своего рода WebSockets, вы можете просто использовать SignalR вместо этого, который выберет транспорт и попытается сделатьчто-то вроде веб-сокетов для вас.

1 голос
/ 06 мая 2014

Что касается Microsoft.Web.WebSockets против System.Web.WebSockets ...

Я думаю, что:

System.Web.WebSockets - дает ниже API для работы с веб-сокетами

, в то время как ...

Microsoft.Web.WebSockets - это тип выше API, который значительно облегчает работу, а также пытается отразить события / функции, которые находятся вспецификация html5 / javascript (например, onerror, onopen, onmessage, onclose, send и т.д ...)

1 голос
/ 30 июля 2012

@ Greg Woods re System.ServiceModel.WebSockets: вы не представляли это.

http://html5labs.interoperabilitybridges.com/media/1165/readme.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...