Versão WCF, nomeação e URL do terminal


8

Eu tenho um serviço WCF e uma lib1 principal.

Digamos, eu tenho um serviço Salvar perfil. O WCF obtém dados (com contrato de dados predefinido) do cliente e passa o mesmo para a Classe Principal Lib1, gera resposta e os envia de volta ao cliente.

Método WCF: SaveProfile (perfil ProfileDTO)

A versão atual 1.0 ProfileDTO possui o seguinte nome de usuário Senha Nome DOB (na sequência aaaa-mm-dd) CreatedDate (Na sequência aaaa-mm-dd)

A próxima versão (V2.0) ProfileDTO tem o seguinte nome de usuário Senha Nome DOB (no UnixTimeStamp) CreatedDate (no UnixTimeStamp)

O ProfileDTO da versão 3.0 possui o seguinte (com alteração na validação do comprimento do nome de usuário e da senha) Nome do usuário Senha Nome do primeiro DOB ​​(no UnixTimeStamp) CreatedDate (no UnixTimeStamp)

Em termos simples, temos a alteração DataContract e Workflow entre cada versão 1. Como nomeio os métodos no Serviço WCF e na Classe Principal Lib1? 2. Preciso seguir algum padrão específico para facilitar o desenvolvimento e a manutenção? 3. Preciso ter terminais diferentes para uma versão diferente?

No exemplo acima, eu tenho um método chamado "SaveProfile". Preciso nomear os métodos como “SaveProfile1.0”, “SaveProfile2.0”, etc. Se for esse o caso quando não houver alteração entre as versões “3.0” e “4.0”, haverá dificuldades na manutenção. Estou procurando uma abordagem que ajude a facilitar a manutenção



Outra coisa que você deve considerar é elevar a noção de configuração do sol da versão para definir uma expectativa clara de quanto tempo uma versão estará disponível.
Kevin

Respostas:


1

Existem duas maneiras de ter versões diferentes do mesmo contato. O primeiro é usar espaços para nome e o segundo para usar nomes de serviço diferentes . Pessoalmente, prefiro a abordagem de namespace diferente, simplesmente porque ela encapsula a "versão" com um título de namespace e permite que os chamadores sejam específicos sobre seus requisitos de contrato.

No entanto, a criação de novas versões de contrato corre o risco de quebrar a compatibilidade com os chamadores existentes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.