Pergunta

Eu trabalho para uma grande agência de governo do estado que é um pouco para trás os tempos. Nossos conjuntos de habilidades estão desatualizados e congelamentos orçamentais evitar qualquer treinamento ou contratação de novos funcionários / consultores (demissão de pessoas também é impossível). Projetando objetos de negócios, implementação de padrões de projeto, estabelecendo bibliotecas de código e serviços, testes unitários, controle de origem, etc, são todas as coisas que você não vai encontrar sendo feito aqui. Estamos tanto de um 0 no Teste Joel, como você pode, possivelmente, obter. A boa notícia é que só podemos subir a partir daqui!

Desenvolvemos aplicações CRUD de desktop (em C ++, C # ou Java) que atingiu o banco de dados Oracle diretamente através de uma conexão ODBC. Nós temos basicamente GUI do repleta de instruções SQL e código de retalhos. Foi-nos dito para mover em direção a uma arquitetura n-tier orientada a serviços para prevenir o acesso directo à base de dados e eliminar a necessidade Oracle Client em máquinas de usuários.

é WCF o caminho que deve ser dirigido para baixo? Nós fizemos um pouco da aplicação n-tier walkthroughs (como este ) e eles parecem fáceis de implementar, mas nós simplesmente não sabemos o suficiente para entender se estamos mesmo considerando as tecnologias corretas. Utilizando os .NET digitado DataSets gerados parece ser um substituto bom para nos salvar mês / anos de trabalho (em vez de criar novos objetos de negócios a partir do zero para inúmeros projetos). esta abordagem enlatado é viável para um primeiro passo?

Foi útil?

Solução

Eu recentemente começou a utilizar serviços WCF para minha camada de dados em algumas aplicações web e devo dizer, é frustrante no início (a primeira semana ou assim), mas é totalmente vale a pena uma vez que o código é implantado.

Você deve primeiro experimentá-lo com um pequeno aplicativo existente, ou talvez uma prova de conceito para se certificar de que irá atender às suas necessidades.

A partir da descrição do ambiente em que está, eu tenho certeza que você vai perceber o benefício quase imediatamente.

Outras dicas

A última empresa que eu trabalhava escolheu WCF para quase a razão exata que você descreve acima. Há muita boa documentação e livros para WCF, a sua relativamente fácil para começar a trabalhar, e WCF suporta um monte de opções de configuração.

Pode haver algumas dores de cabeça quando você começar a tentar dobrar WCF ao trabalho de uma forma não especificamente projetado para fora da caixa. Estes são geralmente problemas de configuração. Mas sites como este ou IDesign pode ajudá-lo através daqueles.

Em primeiro lugar, eu definitivamente não (desculpem a ênfase) se preocupar com o tempo que você vai economizar usando DataSet digitado é contra a criação de seus próprios objetos de negócios. Isso geralmente não é onde você vai passar a maior parte do seu tempo de desenvolvimento. Eu prefiro usar objetos de negócios mesmo.

Em que você está situação que eu gostaria de implementar uma prova de conceito em primeiro lugar. Um que aborda todos os problemas que podem ocorrer. Esta prova de conceito-deve implementar um caso de uso inteira, começando no cliente, recuperando dados do banco de dados e devolvê-lo para o cliente. Você deve se sentir confiante sobre sua aplicação antes de continuar.

Em seguida, sobre a escolha da tecnologia. WCF é definitivamente uma boa escolha para a comunicação entre os aplicativos cliente e a camada de serviço. Suponho que ambos os seus clientes, bem como a sua camada de serviço se tornará aplicações C #? Isso torna as coisas muito mais fácil desde que a interoperabilidade entre diferentes plataformas (Java / C #, por exemplo) ainda não é trivial, embora ele deve funcionar na maioria dos casos.

Dê uma olhada em Entity Framework (como há provedores par de Oracle disponíveis para já) em conjunto com .NET 3.5 SP1 que permite a built-in WCF serialização de suas classes EF gerado.

Aqui está um bom blog para começar: http://blogs.msdn.com/dsimmons

CSLA pode ser um bom ajuste para seus aplicativos de desktop n-tier. Ele suporta WCF, tem uma grande comunidade dev, e está bem documentado. É muito orientada a objeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top