Usuário com melhor resposta
Arquitetura de sistemas em .Net

Pergunta
-
Prezados,
Estou começando a aprender .Net e gostaria de esclarecer algumas dúvidas em relação a arquitetura de sistemas no desenvolvimento utilizando .Net, mais especificamente aplicações Web Asp.net com C#.
Não me levem a mal se eu fizer uma comparação com Java, nao sou do tipo que acha uma linguagem melhor que a outra. Nesta fase de aprendizado esse tipo de comparação é inevitável.
Primeiro assunto: Desenvolvimento MVC com .Net.
O livro que estou utilizando (C# Use a cabeça) e a maioria dos artigos que encontrei na internet ensina a desenvolver mas não no modelo MVC, que é uma coisa que desde o início se aprende com Java.
Pesquisei e achei um material sobre o ASP.NET MVC Framework que parece ser um lançamento recente. Estou, juntamente com o aprendizado de WebForms, dando uma "olhada" neste framework.
Minhas dúvidas são: Antes deste framework o desenvolvimento MVC não era uma prática comum nos sistemas .Net? Se havia desenvolvimento MVC, ele era feito "na mão"? O ASP.NET MVC está para .Net como o Struts está pra Java? A única forma de desenvolvimento MVC é através do ASP.NET MVC?
Segundo assunto: Organização de Classes em pacotes (namespaces).
Até agora também não vi no livro, dei uma vasculhada até o final e também não achei, mas pode ser que tenha passado desapercebido.
Achei alguma coisa na internet à respeito, mas nunca vi nada implementado.
Minhas dúvidas são: É prática comum no desenvolvimento .Net a separação de classes de forma lógica para reaproveitamento de código. Ex.: A classe Funcionario e tudo que for relativo ser agrupado no namespace "br.com.empresa.rh"? E isso ser utilizado em várias aplicações?
Terceito assunto: Padrão de nomenclatura.
Existe alguma coisa desse tipo em .Net? Ex.: As classes devem sempre começar com a primeira letra em maiúscula. Métodos devem usar camelCase. As propriedades devem ter métodos de acesso get e set, etc...
Nesse último percebi que o C# tem uma delcaração automática pra isso mas quando se utiliza a classe não se usa o get ou set e sim somente o nome da propriedade para acessa-la. Isso é comum?
Bom, desculpem o texto longo, sei que muitas dessas dúvidas não são de responsabilidade do .Net em si, e sim da arquitetura/modelagem do sistema o que independe da linguagem ou plataforma. Mas minha intenção é justamente saber como a comunidade .Net costuma desenvolver aplicações e quais são suas boas-práticas.
Obrigado.- Movido AndreAlvesLima segunda-feira, 27 de julho de 2009 23:47 de .Net Dvlp Geral (De:.NET Development - Geral)
Respostas
-
Oi André,
Não, o padrão MVC não era comum para o desenvolvimento web com .Net antes do ASP.Net MVC. Em Windows Forms até era mais comum, mas pouco.
Para web existe o Monorail, do projeto Castle, que também implementa o MVC. Muitas empresas adotaram ele antes da Microsoft lançar o ASP.Net MVC, e acho que algumas ainda o adotam. É um bom framework.
É comum o uso de namespaces para separar as classes sim. Se isso é feito corretamente é outra história.
E o padrão é diferente de Java. O mais comum é: NomeDaEmpresa.NomeDoProduto.AiDependeDaEmpresa
No "AiDependeDaEmpresa" às vezes vai nome do projeto do VS, que geralmente é o nome da DLL, às vezes vai o nome do módulo, ou outro. Varia.
Padrão de nomeação de objetos não tem nada a ver com .Net. Vai da empresa, ou do desenvolvedor. Você pode ter ou não. Já vi a Microsoft recomendar lower camel casing, mas não é algo obrigatório. Algumas ferramentas, como o Resharper, que se integram no VS, ajudam nisso.
Propriedades automáticas são assim:
public int Id {get; set;}
Quando você compila isso, o compilador gera código para você. O que ele faz é mais ou menos isso:
private int id {get; set;}
public int Id {
get {return this.id; }
set { id = value; }
}
As duas construções dão na mesma. É uma questão de estilo. Na prática, praticamente ninguém usa mais o método com o backing field (segundo caso), se não houver um bom motivo para isso. E na maioria dos casos não há.
Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com- Sugerido como Resposta AndreAlvesLima quinta-feira, 13 de maio de 2010 19:06
- Marcado como Resposta Leandro Bianchini quinta-feira, 13 de maio de 2010 19:57
Todas as Respostas
-
-
Oi André,
Não, o padrão MVC não era comum para o desenvolvimento web com .Net antes do ASP.Net MVC. Em Windows Forms até era mais comum, mas pouco.
Para web existe o Monorail, do projeto Castle, que também implementa o MVC. Muitas empresas adotaram ele antes da Microsoft lançar o ASP.Net MVC, e acho que algumas ainda o adotam. É um bom framework.
É comum o uso de namespaces para separar as classes sim. Se isso é feito corretamente é outra história.
E o padrão é diferente de Java. O mais comum é: NomeDaEmpresa.NomeDoProduto.AiDependeDaEmpresa
No "AiDependeDaEmpresa" às vezes vai nome do projeto do VS, que geralmente é o nome da DLL, às vezes vai o nome do módulo, ou outro. Varia.
Padrão de nomeação de objetos não tem nada a ver com .Net. Vai da empresa, ou do desenvolvedor. Você pode ter ou não. Já vi a Microsoft recomendar lower camel casing, mas não é algo obrigatório. Algumas ferramentas, como o Resharper, que se integram no VS, ajudam nisso.
Propriedades automáticas são assim:
public int Id {get; set;}
Quando você compila isso, o compilador gera código para você. O que ele faz é mais ou menos isso:
private int id {get; set;}
public int Id {
get {return this.id; }
set { id = value; }
}
As duas construções dão na mesma. É uma questão de estilo. Na prática, praticamente ninguém usa mais o método com o backing field (segundo caso), se não houver um bom motivo para isso. E na maioria dos casos não há.
Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com- Sugerido como Resposta AndreAlvesLima quinta-feira, 13 de maio de 2010 19:06
- Marcado como Resposta Leandro Bianchini quinta-feira, 13 de maio de 2010 19:57