SlideShare uma empresa Scribd logo
Fabiano Roman Beraldi
Email: fabiano.beraldi@outlook.com
C# .NET
Este documento descreve boas práticas de programação na plataforma .NET. Nós
iremos ver:
• Padrões C# de nomenclatura;
• Dicas para boas práticas de programação;
Qual a finalidade:
• Escrever códigos de qualidade e fácil manutenção;
Em quais situações utilizaremos estes recursos:
• No desenvolvimento de qualquer programa .NET;
Nota: apesar de existirem milhares de padrões, podemos dizer que nenhum deles
está errado. O importante é escolher e seguir um padrão de desenvolvimento.
A linguagem de programação C# é case sensitive, ou seja, é sensível a letras
maiúsculas e minúsculas.
O compilador faz distinção entre letras com “CAIXA ALTA” e “caixa normal”.
Portanto é importante nos basearmos nos padrões de nomenclatura – Naming
Guide C# .Net.

Os estilos de nomenclaturas que foram
documento, baseiam-se nos Capitalization Styles da Microsoft.

utilizados

neste

Nota: Os termos Pascal Casing e Camel Casing serão utilizados neste
documento.
 Descrição: a primeira letra do identificador e primeira letra de cada palavra
concatenada em maiúsculo. Use Pascal Case para:
• Nome de classes e propriedades:
public class Pessoa
{
public int Id {get; set;}
public string Nome {get; set;}
public string EnderecoResidencial {get; set;}
}
• Nome de métodos:
public void RealizarVenda()
{
}
 Descrição: primeira letra minúscula e cada palavra concatenada em maiúscula. Use
Camel Case para:
• Nome de variáveis:
int contagemTotal = 0;
• Parâmetros dos métodos:
private int SomarNumeros(int primeiroNumero, int segundoNumero)
{
int valorDaSoma = primeiroNumero + segundoNumero;
return valorDaSoma;
}
• Use o prefixo I com Camel Case para interfaces. Ex: IEntidade;
• Dê um nome significativo para suas variáveis e evite abreviações:
Correto:
string nomeCompleto;
DateTime dataDeNascimento;
Incorreto:
string nomComp;
DateTime datNasc;
• Não use caracteres simples para nomear suas variáveis, como por exemplo
i, n, s, etc. Ao invés disto, use uma palavra como index, número, etc. Uma
exceção, seria no uso de loops:

for (i == 0; i < 10 ; i++)
{
}
• Não use underline (“_”) para variáveis locais;
• Não utilize acentos ou espaços;
• Variáveis booleanas deverão receber nomes que impliquem em verdadeiro ou falso:
Ex.: bool existeTitulo;
• Não criar nomes que podem conflitar com palavras reservadas do .NET Framework
como where, string, etc.

• A clareza nos nomes é essencial, isto facilitará muito uma manutenção futura no
sistema;
Nomenclatura para projetos do Visual Studio
• Não criar itens dentro de uma Solution com o mesmo nome da Solution porque o
VS não saberá quando estamos nos referindo ao rootnamespaces e poderá gerar
erros;
Nomenclatura para projetos do Visual Studio (continuação)

• Os nomes de projetos devem ser criados contendo o nome da Solução mais o nome
do Projeto, exemplo:
Nome da solução:
- PontoDeVenda
Nome dos projetos:
- PontoDeVenda.DAL
- PontoDeVenda.Repositorio
- PontoDeVenda.Webform
- PontoDeVenda.TestesUnitarios
 Descrição: os comentários poderão ser utilizados para identificação das
funcionalidades dos métodos como também gerar documentação técnica de
métodos para o sistema.
• Sempre comentar os códigos gerados principalmente partes críticas ou complexas;
• Os comentários devem ser no mesmo nível do código. Use o mesmo nível da
endentação. Exemplo:

Correto
//Atribui à variável o valor da data atual
DateTime dataAtual = DateTime.Now;

Incorreto
//Atribui à variável o valor da data atual
DateTime dataAtual = DateTime.Now;
 Dicas:
• Use TAB para indentação ao invés de espaços;
• Use uma linha em branco para separar grupos lógicos. Exemplo:
Correto
string DigaOla (string nome)
{
DateTime horaAtual = DateTime.Now;
string mensagem = String.Empty;
string mensagemCompleta;
mensagem = “Olá” + nome;
mensagemCompleta = mensagem + “, a hora atual é “ + horaAtual.ToShortTimeString();
return mensagemCompleta;
}
Dicas (continuação):
Incorreto
string DigaOla (string nome)
{
DateTime horaAtual = DateTime.Now;
string mensagem = String.Empty;
mensagem = “Olá” + nome;
string mensagemCompleta;
mensagemCompleta = mensagem + “, a hora atual é “ + horaAtual.ToShortTimeString();
return mensagemCompleta;
}

• Use #region para agrupar métodos ou declarações relacionados. Deste modo o
código ficará mais organizado.
• Mantenha as variáveis na parte superior;
Ao adicionar algum objeto para alguma interface de usuário (UI) que podem
ser tanto web como desktop devemos observar as nomenclaturas das seguintes
tabelas:
• Windows Forms, WPF
• Windows Forms, WPF (continuação)
• WebPages, WebParts, WebForms
Referências
http://www.devmedia.com.br/padroes-de-desenvolvimento-seguindo-boas-praticas-de-programacao/10751
http://devluciano.wordpress.com/2011/07/04/padres-de-nomenclaturas-naming-guide-c-net/
http://pt.wikipedia.org/wiki/Case_sensitive

Mais conteúdo relacionado

Mais procurados

Slide computador
Slide   computadorSlide   computador
Slide computador
Claudinéia da Silva
 
Unidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadoresUnidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadores
mariliacherry
 
Modulo 5 Redes
Modulo 5   RedesModulo 5   Redes
Modulo 5 Redes
Walter Cunha
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Helder Lopes
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
Jorge Cardoso
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
Pacc UAB
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
Arthur Emanuel
 
Arquitetura interna do computador
Arquitetura interna do computadorArquitetura interna do computador
Arquitetura interna do computador
Andleloli
 
Tutorial edpuzzle
Tutorial   edpuzzleTutorial   edpuzzle
Tutorial edpuzzle
OPTIMUS ROBÓTICA
 
Aula sobre classificação das terras para irrigação usando o sistema do US Bur...
Aula sobre classificação das terras para irrigação usando o sistema do US Bur...Aula sobre classificação das terras para irrigação usando o sistema do US Bur...
Aula sobre classificação das terras para irrigação usando o sistema do US Bur...
Elvio Giasson
 
Regras na sala de TIC
Regras na sala de TICRegras na sala de TIC
Regras na sala de TIC
ticlourinha
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
Odair Soares
 
Aula 8 semana
Aula 8 semanaAula 8 semana
Aula 8 semana
Jorge Ávila Miranda
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
Professor Samuel Ribeiro
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
Albert Bitencourte de Lemos
 
Firewall
FirewallFirewall
Memoria cache princípio da localidade
Memoria cache   princípio da localidadeMemoria cache   princípio da localidade
Memoria cache princípio da localidade
Claudia Costa
 
Modelo de von neumann melhorado
Modelo de von neumann melhoradoModelo de von neumann melhorado
Modelo de von neumann melhorado
Elaine Cecília Gatto
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
Luciano Crecente
 
Introdução à Inteligência Artificial
Introdução à Inteligência ArtificialIntrodução à Inteligência Artificial
Introdução à Inteligência Artificial
António Oliveira
 

Mais procurados (20)

Slide computador
Slide   computadorSlide   computador
Slide computador
 
Unidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadoresUnidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadores
 
Modulo 5 Redes
Modulo 5   RedesModulo 5   Redes
Modulo 5 Redes
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Arquitetura interna do computador
Arquitetura interna do computadorArquitetura interna do computador
Arquitetura interna do computador
 
Tutorial edpuzzle
Tutorial   edpuzzleTutorial   edpuzzle
Tutorial edpuzzle
 
Aula sobre classificação das terras para irrigação usando o sistema do US Bur...
Aula sobre classificação das terras para irrigação usando o sistema do US Bur...Aula sobre classificação das terras para irrigação usando o sistema do US Bur...
Aula sobre classificação das terras para irrigação usando o sistema do US Bur...
 
Regras na sala de TIC
Regras na sala de TICRegras na sala de TIC
Regras na sala de TIC
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Aula 8 semana
Aula 8 semanaAula 8 semana
Aula 8 semana
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
Firewall
FirewallFirewall
Firewall
 
Memoria cache princípio da localidade
Memoria cache   princípio da localidadeMemoria cache   princípio da localidade
Memoria cache princípio da localidade
 
Modelo de von neumann melhorado
Modelo de von neumann melhoradoModelo de von neumann melhorado
Modelo de von neumann melhorado
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Introdução à Inteligência Artificial
Introdução à Inteligência ArtificialIntrodução à Inteligência Artificial
Introdução à Inteligência Artificial
 

Destaque

Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dados
douglasschaefler
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
Vinicius Vieira
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
André Luiz
 
Sistema Controle de Estoque ASP.NET
Sistema Controle de Estoque ASP.NETSistema Controle de Estoque ASP.NET
Sistema Controle de Estoque ASP.NET
Diágoras Mendes Alencar
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Daniel Makiyama
 
Exercicios de C#
Exercicios de C#Exercicios de C#
Exercicios de C#
Jorge Abdalla
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
Marcos Castro
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
Cleziel Franzoni da Costa
 
Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#
César Augusto Pessôa
 
.NET e C# - Introdução Geral
.NET e C# - Introdução Geral.NET e C# - Introdução Geral
.NET e C# - Introdução Geral
Gabriel Vinicios Silva Maganha
 
10 Boas Práticas de Programação
10 Boas Práticas de Programação10 Boas Práticas de Programação
10 Boas Práticas de Programação
Carlos Schults
 
Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...
Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...
Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...
Rafael Gorski Moreno Souza
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
Pedro Alves Jr.
 
LINQ - C#
LINQ - C#LINQ - C#
LINQ - C#
fpadoan
 
Web Server Controls e Banco de Dados
Web Server Controls e Banco de DadosWeb Server Controls e Banco de Dados
Web Server Controls e Banco de Dados
Orlando Junior
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
Douglas Aguiar
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
Ricardo Guerra Freitas
 
ASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto Proiete
Comunidade NetPonto
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
Vinicius Quaiato
 
Enterprise services com .net
Enterprise services com .netEnterprise services com .net
Enterprise services com .net
Fernando Palma
 

Destaque (20)

Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dados
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Sistema Controle de Estoque ASP.NET
Sistema Controle de Estoque ASP.NETSistema Controle de Estoque ASP.NET
Sistema Controle de Estoque ASP.NET
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Exercicios de C#
Exercicios de C#Exercicios de C#
Exercicios de C#
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#Como Implementar Um Menu Ribbon em C#
Como Implementar Um Menu Ribbon em C#
 
.NET e C# - Introdução Geral
.NET e C# - Introdução Geral.NET e C# - Introdução Geral
.NET e C# - Introdução Geral
 
10 Boas Práticas de Programação
10 Boas Práticas de Programação10 Boas Práticas de Programação
10 Boas Práticas de Programação
 
Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...
Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...
Apresentação: Aspectos relevantes a gerência de projetos aplicados em Lean St...
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
 
LINQ - C#
LINQ - C#LINQ - C#
LINQ - C#
 
Web Server Controls e Banco de Dados
Web Server Controls e Banco de DadosWeb Server Controls e Banco de Dados
Web Server Controls e Banco de Dados
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
ASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto Proiete
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Enterprise services com .net
Enterprise services com .netEnterprise services com .net
Enterprise services com .net
 

Semelhante a Boas práticas de programação em C# .NET

Clean code
Clean codeClean code
02 1 algoritmos
02 1 algoritmos02 1 algoritmos
02 1 algoritmos
Cristovão Duarte
 
Java2
Java2Java2
Clean Code
Clean CodeClean Code
Clean Code
Bruno Lui
 
PHP
PHPPHP
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
Maurício Linhares
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
Código limpo
Código limpoCódigo limpo
Código limpo
clauvane1708
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
Regis Magalhães
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
Osvaldo Santana Neto
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
Natanael Fonseca
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
vingue
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
marcelo00001975
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
Valdinho Pereira
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
RUI VIEIRA
 
Aula2
Aula2Aula2
Aula2
fkimura
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
Yuri Passos
 
Curso de C# - Variáveis, operadores e expressões
Curso de C# - Variáveis, operadores e expressõesCurso de C# - Variáveis, operadores e expressões
Curso de C# - Variáveis, operadores e expressões
Daniel Araújo
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
Leandro Rezende
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
Clécio Américo de Lima
 

Semelhante a Boas práticas de programação em C# .NET (20)

Clean code
Clean codeClean code
Clean code
 
02 1 algoritmos
02 1 algoritmos02 1 algoritmos
02 1 algoritmos
 
Java2
Java2Java2
Java2
 
Clean Code
Clean CodeClean Code
Clean Code
 
PHP
PHPPHP
PHP
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Aula2
Aula2Aula2
Aula2
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Curso de C# - Variáveis, operadores e expressões
Curso de C# - Variáveis, operadores e expressõesCurso de C# - Variáveis, operadores e expressões
Curso de C# - Variáveis, operadores e expressões
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 

Último

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (7)

Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Boas práticas de programação em C# .NET

  • 1. Fabiano Roman Beraldi Email: fabiano.beraldi@outlook.com
  • 2. C# .NET Este documento descreve boas práticas de programação na plataforma .NET. Nós iremos ver: • Padrões C# de nomenclatura; • Dicas para boas práticas de programação; Qual a finalidade: • Escrever códigos de qualidade e fácil manutenção; Em quais situações utilizaremos estes recursos: • No desenvolvimento de qualquer programa .NET; Nota: apesar de existirem milhares de padrões, podemos dizer que nenhum deles está errado. O importante é escolher e seguir um padrão de desenvolvimento.
  • 3. A linguagem de programação C# é case sensitive, ou seja, é sensível a letras maiúsculas e minúsculas. O compilador faz distinção entre letras com “CAIXA ALTA” e “caixa normal”. Portanto é importante nos basearmos nos padrões de nomenclatura – Naming Guide C# .Net. Os estilos de nomenclaturas que foram documento, baseiam-se nos Capitalization Styles da Microsoft. utilizados neste Nota: Os termos Pascal Casing e Camel Casing serão utilizados neste documento.
  • 4.  Descrição: a primeira letra do identificador e primeira letra de cada palavra concatenada em maiúsculo. Use Pascal Case para: • Nome de classes e propriedades: public class Pessoa { public int Id {get; set;} public string Nome {get; set;} public string EnderecoResidencial {get; set;} } • Nome de métodos: public void RealizarVenda() { }
  • 5.  Descrição: primeira letra minúscula e cada palavra concatenada em maiúscula. Use Camel Case para: • Nome de variáveis: int contagemTotal = 0; • Parâmetros dos métodos: private int SomarNumeros(int primeiroNumero, int segundoNumero) { int valorDaSoma = primeiroNumero + segundoNumero; return valorDaSoma; } • Use o prefixo I com Camel Case para interfaces. Ex: IEntidade;
  • 6. • Dê um nome significativo para suas variáveis e evite abreviações: Correto: string nomeCompleto; DateTime dataDeNascimento; Incorreto: string nomComp; DateTime datNasc; • Não use caracteres simples para nomear suas variáveis, como por exemplo i, n, s, etc. Ao invés disto, use uma palavra como index, número, etc. Uma exceção, seria no uso de loops: for (i == 0; i < 10 ; i++) { }
  • 7. • Não use underline (“_”) para variáveis locais; • Não utilize acentos ou espaços; • Variáveis booleanas deverão receber nomes que impliquem em verdadeiro ou falso: Ex.: bool existeTitulo; • Não criar nomes que podem conflitar com palavras reservadas do .NET Framework como where, string, etc. • A clareza nos nomes é essencial, isto facilitará muito uma manutenção futura no sistema; Nomenclatura para projetos do Visual Studio • Não criar itens dentro de uma Solution com o mesmo nome da Solution porque o VS não saberá quando estamos nos referindo ao rootnamespaces e poderá gerar erros;
  • 8. Nomenclatura para projetos do Visual Studio (continuação) • Os nomes de projetos devem ser criados contendo o nome da Solução mais o nome do Projeto, exemplo: Nome da solução: - PontoDeVenda Nome dos projetos: - PontoDeVenda.DAL - PontoDeVenda.Repositorio - PontoDeVenda.Webform - PontoDeVenda.TestesUnitarios
  • 9.  Descrição: os comentários poderão ser utilizados para identificação das funcionalidades dos métodos como também gerar documentação técnica de métodos para o sistema. • Sempre comentar os códigos gerados principalmente partes críticas ou complexas; • Os comentários devem ser no mesmo nível do código. Use o mesmo nível da endentação. Exemplo: Correto //Atribui à variável o valor da data atual DateTime dataAtual = DateTime.Now; Incorreto //Atribui à variável o valor da data atual DateTime dataAtual = DateTime.Now;
  • 10.  Dicas: • Use TAB para indentação ao invés de espaços; • Use uma linha em branco para separar grupos lógicos. Exemplo: Correto string DigaOla (string nome) { DateTime horaAtual = DateTime.Now; string mensagem = String.Empty; string mensagemCompleta; mensagem = “Olá” + nome; mensagemCompleta = mensagem + “, a hora atual é “ + horaAtual.ToShortTimeString(); return mensagemCompleta; }
  • 11. Dicas (continuação): Incorreto string DigaOla (string nome) { DateTime horaAtual = DateTime.Now; string mensagem = String.Empty; mensagem = “Olá” + nome; string mensagemCompleta; mensagemCompleta = mensagem + “, a hora atual é “ + horaAtual.ToShortTimeString(); return mensagemCompleta; } • Use #region para agrupar métodos ou declarações relacionados. Deste modo o código ficará mais organizado. • Mantenha as variáveis na parte superior;
  • 12. Ao adicionar algum objeto para alguma interface de usuário (UI) que podem ser tanto web como desktop devemos observar as nomenclaturas das seguintes tabelas: • Windows Forms, WPF
  • 13. • Windows Forms, WPF (continuação)