Я надеюсь реализовывать интерфейс чат-комнаты для страницы ASP.NET. Я нахожусь в процессе изучения WCF, и кажется, что это подходит для приложения чата. Прежде чем я также приму участие в WCF, я хочу быть уверенным, что это - правильный выбор сделать для разработки приложения чата в ASP.NET. Кто-либо может обеспечить какую-либо обратную связь?
Я нашел несколько примеров приложений, которые, прежде всего, используют Silverlight с WCF для приложений чата. Есть ли какие-либо ограничения, если я выбираю not to use Silverlight?
Кроме того, любые альтернативы WCF, что я имел бы полный контроль, будут очень полезны. Я знаю, что могу использовать опрос Ajax, обратная связь на способствует/ставит в невыгодное положение, все ценятся.Спасибо.
Вы можете использовать либо Native ASP.Net подход, либо Silverlight подход для разработки красивого чат-приложения.
Единственная проблема заключается в том, как ваше приложение реагирует на конечного пользователя. Здесь отзывчивый означает, как система позволяет пользователю чувствовать присутствие других пользователей и опыт чата в реальном времени. Это исправляется иногда как в реальном времени . (Как gmail и facebook веб-чат позволяет пользователю видеть присутствие пользователя, говоря "пользователь печатает или простаивает").
Вы можете достичь такого уровня внешнего вида в реальном времени, используя обе эти технологии. Но реализация мало чем отличается.
Чтобы добиться этого, вы должны реализовать дуплексное взаимодействие между браузером и сервером. Тогда сервер будет уведомлять клиента, если есть ответ от другого пользователя или его присутствия.
В ASP.Net способом:
In SilverLight way:
Дуплексный контракт на предоставление услуг - это сообщение. модель обмена, при которой и то, и другое конечные точки могут отправлять сообщения другое независимо. Дуплексный сервис, поэтому может отправлять сообщения обратно клиентская конечная точка, предоставляющая event-like behavior
Надеюсь, это поможет
.Silverlight - естественный выбор для приложения чата WCF, поскольку вы можете создать более богатый пользовательский интерфейс и, что наиболее важно, напрямую взаимодействовать со службами WCF. Если вы выберете Ajax, тогда все клиентское программирование должно выполняться на Javascript. Вы можете создать службу WCF с поддержкой Ajax , но на самом деле вам нужно общаться с ней через прокси. Это похоже на службу, подобную JSON Rest, и не предлагает весь потенциал технологии WCF (например, объединение обратных вызовов).
Альтернативой WCF является реализация простых служб HTTP (например, с использованием ASP.NET MVC) и подключитесь к ним с помощью библиотеки javascript, например jQuery. Конечно, опрос необходим, но это то, что делает большинство веб-сайтов в подобных случаях. Преимущество решения в том, что оно кроссплатформенное,
Я не знаю о Silverlight, но для обычного AJAX я обнаружил, что справляться с вещами самостоятельно с помощью контроллера ASP.NET MVC намного проще.
Просмотрите ссылку ниже - это должна быть хорошая статья для начала создания приложения для чата. с использованием WCF и WPF. Очень просто и легко изучить базовые вещи.
http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx
Вы можете найти Прикрепленное демонстрационное приложение вместе с исходным кодом в статье выше.
] Изменить:
Для чат-приложения TCP Binding является лучшим вариантом, чем HTTP Binding.
пожалуйста, обратитесь к этому -> http://www.codeproject.com/KB/WCF/HttpBinding.aspx
Silverlight имеет ряд преимуществ, включая гибкость пользовательского интерфейса, больший контроль WCF и возможность использования одного и того же языка программирования/инструментов на клиенте и сервере. Если вы выберете Silverlight, у вас будет больше гибкости по сравнению с тем, как данные передаются на сервер и с сервера, например, какой протокол использовать (TCP, HTML) и как передавать данные. Опции пользовательского интерфейса с Silverlight позволяют вам создавать очень богатый и захватывающий опыт с полной поддержкой дизайнеров и анимации.
Простой HTML-клиент может создаваться быстрее, так как вам не нужно будет учиться использовать Silverlight для создания эквивалентной функциональности. Даже при использовании только HTML, css и javascript, вы все равно можете иметь очень хороший пользовательский опыт, просто посмотрите на gtalk в качестве примера. Использование современных javascript-библиотек, таких как jQuery, еще больше упрощает создание сложного приложения, которое все еще легко понять и поддерживать.
Если вы хотите поиграть, развлекайтесь и узнайте что-то новое, возможно, рассмотрите возможность использования ASP.NET-клиента с базовым WCF RESTful-интерфейсом. Вы все еще будете иметь много контроля и гибкости как на клиенте, так и на сервере в отношении того, какие сообщения посылать, как клиент делает запросы, кэширование на сервере и т.д. Для того, чтобы легко переварить сообщение относительно RESTful WCF, посмотрите это сообщение Рика Страла.
Я написал похожий тип приложения для выполнения уведомлений в ASP.NET приложении, и был в состоянии вафлирования между выполнением push и опросом из клиента (см. этот вопрос о переполнении стека). Я был вдохновлён примером чата this, который использовал очень простой интерфейс и push-уведомление для клиента.
.