Ответ 1
В итоге я использовал JayRock. Его фантастическая технология, просто работает. Вы не получаете никаких NullReferenceExceptions, как из этого crap WCF, если вы не настроите его правильно.
Каков наилучший способ создания веб-сервиса JSON? У нас есть еще одна команда, которая использует Java, и они настаивают на том, чтобы все коммуникации выполнялись с использованием JSON. Я предпочел бы использовать WCF, а не любую стороннюю структуру.
Я нашел этот блог: http://www.west-wind.com/weblog/posts/164419.aspx, и это говорит о том, что реализация Microsoft ошибочна с мешкой M $.
В итоге я использовал JayRock. Его фантастическая технология, просто работает. Вы не получаете никаких NullReferenceExceptions, как из этого crap WCF, если вы не настроите его правильно.
Если вы используете WCF и 3.5 Framework, это не может быть проще. Когда вы помечаете свой OperationContracts с помощью атрибута WebGet, просто установите параметр ResponseFormat в WebMessageFormat.Json. Когда доступ к службе выполняется RESTfully, он будет возвращать данные с помощью DataContractJsonSerializer.
Очень полезно отметить POCOs, которые вы хотите преобразовать в JSON в качестве [DataContract], и пометить каждый член сериализации как [DataMember]. В противном случае вы попадаете в фанки JSON, как заметил Рик в своем блоге.
Я поддерживаю зрелую альтернативу Open Source для WCF в ServiceStack, современную замену WCF, основанную на коде, с моделированием инфраструктура веб-сервисов поощрение кода и удаленных лучших практик для создания кратких, сухих, высокопроизводительные масштабируемые веб-службы REST.
Он включает .NET самый быстрый JSON Serializer и имеет автоматическую поддержку JSON, JSONP, CORS, а также формы-urlencoded/multipart-formdata. Онлайн-демонстрации - хорошее начало, потому что все они используют Ajax.
Кроме того, нет никакой конфигурации XML или кода-гене, а ваш веб-сервис "один раз" С# предоставляет все JSON, XML, SOAP, JSV, CSV, HTML, которые могут быть включены из коробки, автоматически с помощью крючков, чтобы подключить собственный Типы контента, если необходимо.
Он также включает в себя общие клиенты службы синхронизации/асинхронного обслуживания, обеспечивающие быстрый, типизированный, клиент-серверный шлюз связи от конца до конца.
Это полный пример всего кода, необходимого для создания простой веб-службы, которая автоматически без какой-либо конфигурации, зарегистрированной и сделанной на всех форматы веб-данных на заранее определенных и настраиваемых маршрутах REST-ful:
public class Hello {
public string Name { get; set; }
}
public class HelloResponse {
public string Result { get; set; }
}
public class HelloService : IService<Hello> {
public object Execute(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
Выше службы можно вызвать (без каких-либо шагов сборки/кода) в С# с приведенной ниже строкой:
var client = new JsonServiceClient(baseUrl);
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World
И в jQuery с:
$.getJSON('hello/World!', function(r){
alert(r.Result);
});
Каков наилучший способ создания веб-сервиса JSON? У нас есть еще один команда, которая использует Java, и они настаивают на том, чтобы все общение сделано с использованием JSON. Я предпочел бы использовать WCF, а не любую третью сторону рамки.
Здесь вы найдете простую пошаговую инструкцию, которая проведет вас через процесс настройки вашей первой службы WCF, а затем привяжет ее к базе данных SQL Server.
http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm
Он использует Microsoft, любимую базу данных Northwind SQL Server, и показывает, как написать простой веб-сервис JSON WCF для чтения и записи данных.
О, а затем показывает, как использовать данные JSON с помощью JavaScript или приложения iOS.
Удачи!