Pergunta
O que é a melhor maneira de criar um serviço web JSON? Nós temos uma outra equipe que está usando Java e eles insistem em ter toda a comunicação feita usando JSON. Eu preferiria usar WCF em vez de qualquer estrutura 3rd party.
Eu encontrei este blog: http://www.west-wind.com /weblog/posts/164419.aspx , e sugere que a implementação da Microsoft é falho com M $ porcaria específico.
Solução 4
Acabei usando JayRock . Sua fantástica peça de tecnologia, simplesmente funciona. Você não obter qualquer NullReferenceExceptions como a partir desta porcaria WCF se você não configurá-lo corretamente.
Outras dicas
Se você usar WCF eo 3.5 Framework, não poderia ser mais fácil. Quando você marcar seus OperationContracts com o atributo WebGet, apenas definir o parâmetro ResponseFormat para WebMessageFormat.Json. Quando o serviço é acessado tranqüilamente, ele irá retornar os dados usando o DataContractJsonSerializer.
É realmente útil para marcar as POCOs que deseja JSON serialize como [DataContract] e para marcar cada membro serializável como [DataMember]. Caso contrário, você acaba com funk JSON, como Rick apontou em seu blog.
I manter um amadurecer alternativa Open Source para WCF em ServiceStack , um moderno, Code-First, Modelo- impulsionado, WCF estrutura de serviços web de substituição código de incentivar e remota melhores práticas para criação concisa, SECO, de alta perfomance, REST escalável serviços web .
Ele inclui do .NET JSON Serializer mais rápido e tem suporte automático JSON, JSONP , CORS cabeçalhos, bem como forma-urlencoded / concatenada-FormData. As demonstrações online são um bom começo para olhar uma vez que todos eles usam Ajax.
Além disso, não há nenhuma configuração XML, ou o código-gen e seu 'write-once' C serviço # web fornece todas JSON, XML, SOAP, JSV, CSV, HTML endpoints habilitados out-of-the-box, automaticamente com ganchos para ligar o seu próprio tipos de conteúdo se necessário.
Ele também inclui sincronização genérico / clientes de serviços assíncronos proporcionando um rápido, digitado , porta de entrada / comunicação servidor do cliente end-to-end.
Este é o exemplo completo de todo o código necessário para criar um serviço web simples, ou seja automaticamente, sem qualquer configuração, registrado e disponibilizado no todo o formatos de dados web em rotas pré-definidas e personalizado 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 };
}
}
serviço acima pode ser chamado (sem qualquer build-passos / code-gen) em C # com a linha abaixo:
var client = new JsonServiceClient(baseUrl);
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World
E em jQuery com:
$.getJSON('hello/World!', function(r){
alert(r.Result);
});
O que é a melhor maneira de criar um serviço web JSON? Temos outra equipe que está usando Java e eles insistem em ter toda a comunicação feito usando JSON. Eu preferiria usar WCF em vez de qualquer parte 3 quadro.
Aqui está um
fácil de seguir passo a passo, o que leva você através do processo de criação de seu primeiro Serviço WCF, em seguida, ligando-o a um banco de dados SQL Server.http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm
Ele usa o Microsoft amado Adamastor do banco de dados SQL Server, e mostra como escrever um JSON WCF Web Service simples de ler e escrevê-lo de dados.
Oh, e, em seguida, mostra como consumir os dados JSON usando JavaScript ou um aplicativo iOS.
Boa sorte!