PADRÃO PARA DESENVOLVIMENTO EM C#

PAULOOLIVEIRA 06/07/2015 09:58:08
#448493
Caros amigos, bom dia!

Gostaria de receber a opinião e vocês quanto ao melhor método de programação em c#.

Seria MVC ? as instruções no banco de dados seriam melho via string sql, e execute, ou via parameters?

Uma luz, por favor! qual melhor forma?

grato
TUNUSAT 06/07/2015 10:23:26
#448494
PAULOOLIVEIRA,

Mas você vai programar C# + Asp.Net (Web Forms) ou C# (Windows Forms)?

Para WebForms usa-se atualmente o MVC (Pode colocar 3 camadas dentro dele também).

Windows Forms, pode-se usar 3 camadas, fica bem interessante o resultado ... veja este exemplo:
=====================================================
SISTEMA EXEMPLO CLIENTE / PRODUTO DE LOJA
http://www.vbmania.com.br/index.php?modulo=detalhe&id=9259
=====================================================

Seria isso?

[][ô]s,
Tunusat.
PAULOOLIVEIRA 06/07/2015 11:40:53
#448501
Tunusat, bom dia!

Já fiz alguma coisa no metodo 3 camadas... duvidas:

3 camadas é o melhor ? qual outras opcoes?

Para trabalhar com dados, o insert no bd, a melhor forma seria esta:


cmd.Connection = cn;
cmd.CommandText = [Ô]insert into Produtos (nome, preco, estoque) values (@nome, @preco, @estoque)[Ô];

cmd.Parameters.AddWithValue([Ô]@nome[Ô], produto.Nome);
cmd.Parameters.AddWithValue([Ô]@preco[Ô], produto.Preco);
cmd.Parameters.AddWithValue([Ô]@estoque[Ô], produto.Estoque);
cn.Open();
produto.Codigo = Convert.ToInt32(cmd.ExecuteScalar());

ou esta mais parecido com o vb...
MySqlCommand cmd = new MySqlCommand([Ô]INSERT INTO temp_ates(numero, nome, empresa, proximo_exame) [Ô]
+[Ô] SELECT numero, nome, empresa, proximo_exame FROM ficha [Ô]
+ [Ô]WHERE ficha.proximo_exame >= [ô][Ô] + global.data1 + [Ô][ô] [Ô]
+[Ô] AND ficha.proximo_exame <= [ô][Ô] + global.data2 + [Ô][ô]; [Ô]
+[Ô]COMMIT;[Ô], conexao);
cmd.ExecuteNonQuery();



Grato


TUNUSAT 06/07/2015 13:16:37
#448508
PAULOOLIVEIRA,

Pelo código acima você está trabalhando com Stored procedures.

A primeira forma trabalha com Stored Procedures ... é legal, mas não pode, de forma alguma, colocar as regras de negócio dentro do Banco de Dados (dentro da Stored procedure) ... motivo: Você que quebra o conceito de 3 camadas, pois existe uma camada somente para tratar as regras de negócio - BLL (Business Logic Layer).

A segunda forma você coloca somente dentro da DAL (Data Access Layer) ... bom ... a primeira também, mas no caso da primeira você só coloca os nomes das Storeds procedures e na segunda você coloca as querys completas.

Eu gosto mais da segunda forma, mas diz a lenda que a primeira forma é mais rápida (porém gera mais manutenção).

Em três camadas é importante você separar bem cada camada e jamais quebrar as regras.

Acho que depende muito do que você quer fazer... De qualquer forma você pode misturar técnicas e aproveitar o melhor de cada uma. Por exemplo: Você pode criar para determinadas situações que poderão ocorrer no seu sistema [Ô]designer patterns[Ô], por exemplo.

[][ô]s,
Tunusat.
F001E 06/07/2015 13:57:16
#448512
Estou no ASP.NET mas não em MVC e sim em 3 camadas com NHibernate. A produtividade é imensa, só o fato de não escrever SELECT, INSERT, UPDATE E DELETE, ajuda demais. De vez em quando uso HQL para fazer alguns Selects mas é raro.

JABA 06/07/2015 15:28:50
#448517
Citação:

cmd.Parameters.AddWithValue([Ô]@nome[Ô], produto.Nome);
cmd.Parameters.AddWithValue([Ô]@preco[Ô], produto.Preco);
cmd.Parameters.AddWithValue([Ô]@estoque[Ô], produto.Estoque);



PAULOOLIVEIRA, sem sombra de dúvidas a melhor forma é usando os Parameters. Se você não fizer isso, algum malfeitor poderá usar a injeção sql contra a sua base de dados e você ficará completamente indefeso. Jamais deixe de usá-los, pois isso, hoje em dia, é praticamente obrigatório.

http://www.macoratti.net/sql_inj.htm
JABA 06/07/2015 15:48:28
#448520
Citação:

Gostaria de receber a opinião e vocês quanto ao melhor método de programação em c#. Seria MVC ?



Muitas pessoas trocam as bolas achando que o MVC é a mesma coisa que o projeto em camadas. Se o seu caso é esse, fique sabendo que MVC é apenas um padrão de projeto (ou arquitetural, como preferem alguns) para WEB.

Citação:

3 camadas é o melhor ? qual outras opcoes?



O desenvolvimento em camadas é uma evolução que ocorreu de forma lenta e gradativa ao longo dos tempos, devido a necessidade de cada época. Com o advento da internet e do mundo mobile, tornou-se praticamente obrigatório sua aplicação, pois é uma maneira de organizarmos nossa estrutura para eventuais mudanças.

Objetivo da arquitetura em camadas:

– Modularidade: dividir a aplicação em módulos tão independentes quanto possível;

– Manutenibilidade: reduzir o custo de manutenção da aplicação;

– Extensibilidade: permitir que novas funcionalidades sejam adicionadas sem grande impacto nas já existentes;

– Reusabilidade: permitir que classes e componentes sejam reusados em outros módulos da mesma aplicação ou em outras aplicações.
PAULOOLIVEIRA 08/07/2015 10:16:06
#448581
Muito Grato a todos companheiros , suas colocações foram muito esclarecedoras.
Tópico encerrado , respostas não são mais permitidas