Подтвердить что ты не робот

Альтернативы WCF

В настоящее время я использую приложение Silverlight, использующее WCF для связи между клиентом и сервером. Я слышал, что с использованием WCF мы обязаны использовать некоторые технологии Microsoft на стороне клиента и не можем легко заменить это "ничего" - по крайней мере, с реализацией WPF по умолчанию SOAP.

Итак, мои вопросы:

  • Это правда?
  • Как насчет Restful WCF-сервисов? Я рисую обычную реализацию REST, и любой клиент мог связываться с этой серверной стороной через REST. Да? Нет?
  • Каковы (хорошие) альтернативы выбросу WCF? И почему я хочу это сделать?
4b9b3361

Ответ 1

Я слышал, что использование WCF связано для использования некоторых технологий Microsoft в клиентская сторона

Ну, тогда тебе солгали!

Многие поставщики и библиотеки с открытым исходным кодом поддерживают SOAP - это стандарт W3C, а не специфическая для Microsoft идея.

Одна из лучших альтернатив для службы RESTful - это ASP.NET MVC, который я нашел очень простой способ разоблачить методы напрямую в виде URL-адресов.

Ответ 2

Я отдельно от основной команды, которая поддерживает ServiceStack - зрелая альтернатива Open Source для WCF: современная, с кодовым, основанная на моделях, платформа веб-сервисов замены WCF поощрение кода и удаленных лучших практик для создания кратких, сухих, высокопроизводительные масштабируемые веб-службы REST.

Он имеет автоматическую поддержку JSON, JSONP, CORS заголовков, а также форму-urlencoded/multipart-formdata. Онлайн-демонстрации - хорошее начало, потому что все они используют Ajax.

Кроме того, нет XML-конфигурации или кода-гене, а ваш веб-сервис "один раз" С# предоставляет все JSON, XML, SOAP, JSV, CSV, HTML, которые автоматически включаются с помощью крючков, чтобы подключить собственный Типы контента, если необходимо.

Он также включает общие клиенты службы синхронизации/асинхронного обслуживания, обеспечивающие быстрый, типизированный, клиентский/серверный шлюз связи в конец.

Это полный пример всего кода, необходимого для создания простой веб-службы, которая автоматически без какой-либо конфигурации, зарегистрированной и сделанной на всех форматы веб-данных на заранее определенных и настраиваемых маршрутах REST-ful:

public class Hello : IReturn<HelloResponse> 
{
    public string Name { get; set; }
}

public class HelloResponse 
{
    public string Result { get; set; }
}

public class HelloService : Service 
{
    public object Get(Hello request)
    {
        return new HelloResponse { Result = "Hello, " + request.Name };
    }
}

Выше службы можно вызвать (без каких-либо шагов сборки/кода) в С# с приведенной ниже строкой:

HelloResponse response = client.Get(new Hello { Name = "World!" });
response.Result.Print(); // => Hello, World

И в jQuery с:

$.getJSON('hello/World!', function(r){ 
    alert(r.Result); 
});

Ответ 3

WCF основан на SOAP (по умолчанию - также поддерживает REST) ​​и может легко взаимодействовать с любым клиентом, который может понимать и говорить SOAP.

К ним относятся языки и системы, такие как Java, PHP и многие другие.

WCF - это внедрение Microsoft, но стандарты - это все международные и совместимые стандарты. Ничто из стандартов не является спецификацией Mircosoft.

Марк

Ответ 4

WCF дает вам уровень абстракции по тому, как вы/хотите общаться. Таким образом, вы можете выбрать привязку, которая является специфичной для Microsoft, но вы также можете использовать протокол SOAP, или вы используете оба варианта, поэтому клиент, не принадлежащий Microsoft, сможет общаться через fe. SOAP и другие клиенты могут использовать более надежные способы.
Что касается REST, вы можете посмотреть на разговор Гензельмана о NDC здесь. Это может не ответить на ваш вопрос напрямую, но это может указать вам что-то. Что касается альтернатив, я не вижу ничего, что могло бы работать на .NET, помимо веб-сервисов (но, поскольку WCF предоставляет вам все это и многое другое, я бы предпочел рассматривать его как более старый, чем реальный вариант).

Ответ 5

Для проверки java - wcf interobibility Sun Project Tango ссылка