<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-br">
		<id>http://wiki.mstech.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gabriel.scavassa</id>
		<title>MSTECH wiki - Contribuições do usuário [pt-br]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mstech.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gabriel.scavassa"/>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php/Especial:Contribui%C3%A7%C3%B5es/Gabriel.scavassa"/>
		<updated>2026-05-08T18:28:05Z</updated>
		<subtitle>Contribuições do usuário</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Instalacao_SonarQube&amp;diff=2141</id>
		<title>Instalacao SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Instalacao_SonarQube&amp;diff=2141"/>
				<updated>2016-08-25T17:08:52Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: Limpou toda a página&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Grupo_de_Qualidade_(GQA)&amp;diff=2140</id>
		<title>Grupo de Qualidade (GQA)</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Grupo_de_Qualidade_(GQA)&amp;diff=2140"/>
				<updated>2016-08-25T17:08:06Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Documentação das Integrações */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objetivos==&lt;br /&gt;
&lt;br /&gt;
* Promover a criação dos pilares do Desenvolvimento Ágil&lt;br /&gt;
* Criar, divulgar e zelar pelo respeito às diretrizes de Desenvolvimento de Software nas áreas de:&lt;br /&gt;
** Segurança da Informação&lt;br /&gt;
** Padronização&lt;br /&gt;
** Desempenho/Escalabilidade&lt;br /&gt;
* Identificar os possíveis gargalos e problemas nos processos de produção, propor e implementar ações corretivas&lt;br /&gt;
* Fomentar em toda a empresa a busca pela melhoria contínua da qualidade do software produzido pela MStech&lt;br /&gt;
&lt;br /&gt;
==Documentação das Integrações==&lt;br /&gt;
* [[Gitlab + Youtrack]]&lt;br /&gt;
* [[Instala%C3%A7%C3%A3o SonarQube]]&lt;br /&gt;
* [[Jenkins + SonarQube]]&lt;br /&gt;
&lt;br /&gt;
==Backlog==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''ID'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Necessidade'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Atividade'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Responsável'''&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Finalizar Build Automático no GIT/Jenkins||Acrescentar o compare de banco de dados||Daniel Alves&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Finalizar Build Automático no GIT/Jenkins||Acrescentar o uso do npm além do NuGET (já implementado)||Daniel Alves&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Code Review||Definir controles para serem usados no code review. Inicialmente alguns controles, mas que provocarão diferenças no resultado final  (por exemplo, verificar o )||Gabriel Scavassa / Daniel Alves&lt;br /&gt;
|-&lt;br /&gt;
| 04 || Migração de projetos para GIT||Construir agenda de migração para os sistemas da SME-SP||Débora Santos&lt;br /&gt;
|-&lt;br /&gt;
| 05 || Ferramenta de workflow||Pesquisar ferramenta de workflow free||Todos&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Clarificar as ferramentas de desenvolvimento||Listar ferramentas e responsabilidade de cada uma delas||Ricardo Agulhari&lt;br /&gt;
|-&lt;br /&gt;
| 07 || Ambientes não padronizados||Acertar ambientes de teste e homologação||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Participantes==&lt;br /&gt;
&lt;br /&gt;
* [mailto:daniel.alves@mstech.com.br Daniel Alves]&lt;br /&gt;
* [mailto:debora.santo@mstech.com.br Débora Santos]&lt;br /&gt;
* [mailto:gabriel.scavassa@mstech.com.br Gabriel Scavassa]&lt;br /&gt;
* [mailto:juan.falguera@mstech.com.br Juan Falguera]&lt;br /&gt;
* [mailto:lucimara.maiorali@mstech.com.br Lucimara Maiorali]&lt;br /&gt;
* [mailto:ricardo.agulhari@mstech.com.br Ricardo Agulhari]&lt;br /&gt;
* [mailto:rodrigo.edamatsu@mstech.com.br Rodrigo Edmatsu]&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Grupo_de_Qualidade_(GQA)&amp;diff=2139</id>
		<title>Grupo de Qualidade (GQA)</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Grupo_de_Qualidade_(GQA)&amp;diff=2139"/>
				<updated>2016-08-25T17:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Documentação das Integrações */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Objetivos==&lt;br /&gt;
&lt;br /&gt;
* Promover a criação dos pilares do Desenvolvimento Ágil&lt;br /&gt;
* Criar, divulgar e zelar pelo respeito às diretrizes de Desenvolvimento de Software nas áreas de:&lt;br /&gt;
** Segurança da Informação&lt;br /&gt;
** Padronização&lt;br /&gt;
** Desempenho/Escalabilidade&lt;br /&gt;
* Identificar os possíveis gargalos e problemas nos processos de produção, propor e implementar ações corretivas&lt;br /&gt;
* Fomentar em toda a empresa a busca pela melhoria contínua da qualidade do software produzido pela MStech&lt;br /&gt;
&lt;br /&gt;
==Documentação das Integrações==&lt;br /&gt;
* [[Gitlab + Youtrack]]&lt;br /&gt;
* [[Jenkins + SonarQube]]&lt;br /&gt;
* [[Instala%C3%A7%C3%A3o SonarQube]]&lt;br /&gt;
&lt;br /&gt;
==Backlog==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''ID'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Necessidade'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Atividade'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; style=&amp;quot;background:#f0f0f0;&amp;quot;|'''Responsável'''&lt;br /&gt;
|-&lt;br /&gt;
| 01 || Finalizar Build Automático no GIT/Jenkins||Acrescentar o compare de banco de dados||Daniel Alves&lt;br /&gt;
|-&lt;br /&gt;
| 02 || Finalizar Build Automático no GIT/Jenkins||Acrescentar o uso do npm além do NuGET (já implementado)||Daniel Alves&lt;br /&gt;
|-&lt;br /&gt;
| 03 || Code Review||Definir controles para serem usados no code review. Inicialmente alguns controles, mas que provocarão diferenças no resultado final  (por exemplo, verificar o )||Gabriel Scavassa / Daniel Alves&lt;br /&gt;
|-&lt;br /&gt;
| 04 || Migração de projetos para GIT||Construir agenda de migração para os sistemas da SME-SP||Débora Santos&lt;br /&gt;
|-&lt;br /&gt;
| 05 || Ferramenta de workflow||Pesquisar ferramenta de workflow free||Todos&lt;br /&gt;
|-&lt;br /&gt;
| 06 || Clarificar as ferramentas de desenvolvimento||Listar ferramentas e responsabilidade de cada uma delas||Ricardo Agulhari&lt;br /&gt;
|-&lt;br /&gt;
| 07 || Ambientes não padronizados||Acertar ambientes de teste e homologação||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Participantes==&lt;br /&gt;
&lt;br /&gt;
* [mailto:daniel.alves@mstech.com.br Daniel Alves]&lt;br /&gt;
* [mailto:debora.santo@mstech.com.br Débora Santos]&lt;br /&gt;
* [mailto:gabriel.scavassa@mstech.com.br Gabriel Scavassa]&lt;br /&gt;
* [mailto:juan.falguera@mstech.com.br Juan Falguera]&lt;br /&gt;
* [mailto:lucimara.maiorali@mstech.com.br Lucimara Maiorali]&lt;br /&gt;
* [mailto:ricardo.agulhari@mstech.com.br Ricardo Agulhari]&lt;br /&gt;
* [mailto:rodrigo.edamatsu@mstech.com.br Rodrigo Edmatsu]&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Instala%C3%A7%C3%A3o_SonarQube&amp;diff=2138</id>
		<title>Instalação SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Instala%C3%A7%C3%A3o_SonarQube&amp;diff=2138"/>
				<updated>2016-08-25T17:05:01Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: Criou página com ' === Baixar arquivos ===  === Localização dos arquivos ===   Extraia os arquivos do SonarQube para C:/SonarQube. Extraia os arquivos do SonarScanner para C:/SonarScanner.  =...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Baixar arquivos ===&lt;br /&gt;
&lt;br /&gt;
=== Localização dos arquivos ===&lt;br /&gt;
 &lt;br /&gt;
Extraia os arquivos do SonarQube para C:/SonarQube.&lt;br /&gt;
Extraia os arquivos do SonarScanner para C:/SonarScanner.&lt;br /&gt;
&lt;br /&gt;
=== Configuração do projeto ===&lt;br /&gt;
&lt;br /&gt;
Para configurarmos o nosso projeto para ser analisado pelo SonarQube precisamos adicionar um arquivo de configuração na raiz da solução (Mesmo nível do .sln).&lt;br /&gt;
&lt;br /&gt;
O arquivo deverá se chamar: '''sonar-project.properties'''. Atenção, este arquivo deverá ser .properties e não .txt.&lt;br /&gt;
Este arquivo deverá ter o seguinte conteúdo:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;nowiki&amp;gt;# Required metadata&lt;br /&gt;
	sonar.projectKey=IdentificadorUnicoDoProjeto&lt;br /&gt;
	sonar.projectName=Nome do Meu Projeto&lt;br /&gt;
	sonar.projectVersion=1.0.0&lt;br /&gt;
	# Comma-separated paths to directories with sources(required)&lt;br /&gt;
	sonar.sources=. &lt;br /&gt;
	# Languages&lt;br /&gt;
	sonar.languages=cs&lt;br /&gt;
	# Ignore&lt;br /&gt;
	sonar.exclusions=**/packages/**/*&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''sonar.projectKey''' deverá receber um identificador único para o sonar identificar o projeto. Permitido letras, números, hífen, underline, ponto e dois pontos.&lt;br /&gt;
&lt;br /&gt;
'''sonar.projectName''' é o próprio nome do projeto que irá aparecer na lista de projetos do SonarQube.&lt;br /&gt;
&lt;br /&gt;
'''sonar.projectVersion''' é a versão atual do projeto. Ele deve ser atualizado a cada scanner para que um histórico do projeto seja gerado.&lt;br /&gt;
&lt;br /&gt;
'''sonar.sources''' deverá receber o nome da pasta que o SonarQube irá ler. Quando usado ponto após o igual (=.) será feita a leitura em todas subpastas do projeto.&lt;br /&gt;
&lt;br /&gt;
'''sonar.languages''' recebe o tipo da linguagem de programação que ele analisará. Caso não coloque está configuração, será analisado todas as linguagens instaladas no sonarqube.&lt;br /&gt;
&lt;br /&gt;
'''sonar.exclusions''' recebe a lista de arquivos ou pastas que não serão analisados durante a execução. &lt;br /&gt;
&lt;br /&gt;
Exemplos:&lt;br /&gt;
  Excluir todas as pastas “vendor”, suas subpastas e arquivos:&lt;br /&gt;
      **/vendor/**/*&lt;br /&gt;
  Excluir todas as extensões javascript e css:&lt;br /&gt;
     **/*.js, **/*.css&lt;br /&gt;
  Excluir uma determinada pasta, subpasta e todos seus arquivos:&lt;br /&gt;
     src/packages/**/*&lt;br /&gt;
&lt;br /&gt;
Mais informações: &lt;br /&gt;
&lt;br /&gt;
http://docs.sonarqube.org/display/SONAR/Analysis+Parameters&lt;br /&gt;
&lt;br /&gt;
=== Instalações SonarQube ===&lt;br /&gt;
&lt;br /&gt;
==== Manualmente ====&lt;br /&gt;
&lt;br /&gt;
Execute o CMD como administrador.&lt;br /&gt;
Navegue até a pasta onde se encontra o executor do SonarQube &lt;br /&gt;
	Ex: C:\SonarQube\bin\windows-x86-64(32)&lt;br /&gt;
Execute o arquivo StartSonar.bat&lt;br /&gt;
Neste momento, o site do SonarQube ficará na porta http://localhost:9000/&lt;br /&gt;
&lt;br /&gt;
==== Serviço do Windows ====&lt;br /&gt;
&lt;br /&gt;
Execute o CMD como administrador.&lt;br /&gt;
Navegue até a pasta onde se encontra o executor do SonarQube &lt;br /&gt;
	Ex: C:\SonarQube\bin\windows-x86-64(32)&lt;br /&gt;
Para instalar a instalação execute o arquivo&lt;br /&gt;
 InstallNTService.bat&lt;br /&gt;
Para iniciar o serviço, execute o arquivo &lt;br /&gt;
 StartNTService.bat&lt;br /&gt;
Neste momento, o site do SonarQube ficará na porta http://localhost:9000/&lt;br /&gt;
&lt;br /&gt;
Caso precise alterar alguma configuração ou desinstalar execute&lt;br /&gt;
 StopNTService.bat&lt;br /&gt;
 UninstallNTService.bat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Executar Análise ===&lt;br /&gt;
&lt;br /&gt;
Execute o CMD como administrador.&lt;br /&gt;
&lt;br /&gt;
Navegue até a pasta do projeto onde está o seu .sln junto com seu arquivo de configuração.&lt;br /&gt;
	EX: cd C:\Projetos\MeuProjeto\src&lt;br /&gt;
&lt;br /&gt;
No mesmo CMD que navegou até a pasta do projeto, execute o Scanner&lt;br /&gt;
&lt;br /&gt;
Para isso dê o caminho até o arquivo sonar-scanner.bat&lt;br /&gt;
	EX.: C:\SonarScanner\bin\sonar-scanner.bat&lt;br /&gt;
&lt;br /&gt;
Também é possível configurar o sonar scanner como variável ambiente para facilitar a execução. &lt;br /&gt;
Para isso acesse Painel de Controle → Sistema e Segurança → Sistema → Configurações avançadas do sistema → Variáveis em Ambiente… → Variáveis do sistema → adicione o caminho até pah asta bin do sonar scanner (ou windows + pause break). &lt;br /&gt;
&lt;br /&gt;
Exemplo:  C:\sonarqube\sonar-scanner-2.6.1\bin. Depois de configurado, abra o CMD e execute o comando sonar-scanner.&lt;br /&gt;
&lt;br /&gt;
Após executar o scanner, seu projeto começará a ser analisado. O resultado de saída irá aparecer no site do sonar http://localhost:9000/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Possíveis Problemas === &lt;br /&gt;
&lt;br /&gt;
==== Erro ao executar SonarQube como serviço d windows ====&lt;br /&gt;
Quando instalado o SonarQube como um serviço do Windows, ao executar ele buscará por uma pasta temporária em:     &lt;br /&gt;
        C:\Windows\system32\config\systemprofile\AppData\Local\Temp\&lt;br /&gt;
Você poderá ver isto no log de erros que ele mostra no CMD ou então no arquivo:&lt;br /&gt;
	C:/SonarQube/logs/sonar.log&lt;br /&gt;
Esta pasta não existe e o Sonar muitas vezes mesmo executando como administrador não consegue/pode criar. &lt;br /&gt;
Como solução, você deverá alterar a configuração adicionando uma nova pasta temp:&lt;br /&gt;
	Pare e desinstale o serviço do SonarQube.&lt;br /&gt;
	Vá até a pasta de configuração &lt;br /&gt;
	      C:/SonarQube/Conf/wrapper.conf&lt;br /&gt;
	Comente a linha (#wrapper.java.additional.1=-Djava.awt.headless=true)&lt;br /&gt;
	Adicione a linha: wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=C:\SonarQube\temp&lt;br /&gt;
Salve e em seguida reinstale e inicie o serviço do SonarQube.&lt;br /&gt;
&lt;br /&gt;
====  Erro de memória ao executar o Sonar Scanner ====&lt;br /&gt;
&lt;br /&gt;
Dependendo das configurações da máquina ou programas em execução, pode acontecer de uma das JVMs darem problema de falta de memória. Pode acontecer durante a execução do sonar scanner ou no momento que o sonarqube está processando os dados para visualizar no site. &lt;br /&gt;
&lt;br /&gt;
Antes de configurar precisamos conhecer rapidamente as JVMs do sonarqube e sonar scanner.&lt;br /&gt;
O sonarqube possui:&lt;br /&gt;
       1 JVM para rodar o servidor web&lt;br /&gt;
       1 JVM chamada compute engine que é um serviço para processar os dados enviados pelo sonar scanner e enviar para o servidor web. 	&lt;br /&gt;
Enquanto que o sonar scanner possui:&lt;br /&gt;
       1 JVM que analisa o código baseado nas configurações e plugins existentes, enviando para o sonarqube webserver.&lt;br /&gt;
&lt;br /&gt;
'''Configurando o SonarQube'''&lt;br /&gt;
 Dentro da pasta do sonarqube acesse a pasta conf e edite o arquivo sonar.properties&lt;br /&gt;
 Para aumentar a capacidade do servidor web:&lt;br /&gt;
	remova o comentário &amp;quot;#sonar.web.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true&amp;quot; &lt;br /&gt;
 Para aumentar a capacidade do compute engine:&lt;br /&gt;
	remova o comentário &amp;quot;#sonar.ce.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true&amp;quot;&lt;br /&gt;
 Salve o arquivo e tente executar novamente.&lt;br /&gt;
&lt;br /&gt;
'''Configurando o Sonar Scanner''' &lt;br /&gt;
&lt;br /&gt;
Dentro da pasta do sonar scanner, acesse a pasta bin e edite o arquivo sonar-scanner.bat&lt;br /&gt;
&lt;br /&gt;
Na linha 76 antes do %JAVA_EXEC% copie e cole o seguinte comando &amp;quot;set SONAR_SCANNER_OPTS=-Xmx512m -XX:MaxPermSize=128m&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
Dica: Dependendo da complexidade do projeto, talvez seja necessário aumentar mais do que 512mb da JVM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
http://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes&lt;br /&gt;
http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Instalacao_SonarQube&amp;diff=2137</id>
		<title>Instalacao SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Instalacao_SonarQube&amp;diff=2137"/>
				<updated>2016-08-25T17:02:20Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: Criou página com ' === Baixar arquivos ===  === Localização dos arquivos ===   Extraia os arquivos do SonarQube para C:/SonarQube. Extraia os arquivos do SonarScanner para C:/SonarScanner.  =...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Baixar arquivos ===&lt;br /&gt;
&lt;br /&gt;
=== Localização dos arquivos ===&lt;br /&gt;
 &lt;br /&gt;
Extraia os arquivos do SonarQube para C:/SonarQube.&lt;br /&gt;
Extraia os arquivos do SonarScanner para C:/SonarScanner.&lt;br /&gt;
&lt;br /&gt;
=== Configuração do projeto ===&lt;br /&gt;
&lt;br /&gt;
Para configurarmos o nosso projeto para ser analisado pelo SonarQube precisamos adicionar um arquivo de configuração na raiz da solução (Mesmo nível do .sln).&lt;br /&gt;
&lt;br /&gt;
O arquivo deverá se chamar: '''sonar-project.properties'''. Atenção, este arquivo deverá ser .properties e não .txt.&lt;br /&gt;
Este arquivo deverá ter o seguinte conteúdo:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;nowiki&amp;gt;# Required metadata&lt;br /&gt;
	sonar.projectKey=IdentificadorUnicoDoProjeto&lt;br /&gt;
	sonar.projectName=Nome do Meu Projeto&lt;br /&gt;
	sonar.projectVersion=1.0.0&lt;br /&gt;
	# Comma-separated paths to directories with sources(required)&lt;br /&gt;
	sonar.sources=. &lt;br /&gt;
	# Languages&lt;br /&gt;
	sonar.languages=cs&lt;br /&gt;
	# Ignore&lt;br /&gt;
	sonar.exclusions=**/packages/**/*&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''sonar.projectKey''' deverá receber um identificador único para o sonar identificar o projeto. Permitido letras, números, hífen, underline, ponto e dois pontos.&lt;br /&gt;
&lt;br /&gt;
'''sonar.projectName''' é o próprio nome do projeto que irá aparecer na lista de projetos do SonarQube.&lt;br /&gt;
&lt;br /&gt;
'''sonar.projectVersion''' é a versão atual do projeto. Ele deve ser atualizado a cada scanner para que um histórico do projeto seja gerado.&lt;br /&gt;
&lt;br /&gt;
'''sonar.sources''' deverá receber o nome da pasta que o SonarQube irá ler. Quando usado ponto após o igual (=.) será feita a leitura em todas subpastas do projeto.&lt;br /&gt;
&lt;br /&gt;
'''sonar.languages''' recebe o tipo da linguagem de programação que ele analisará. Caso não coloque está configuração, será analisado todas as linguagens instaladas no sonarqube.&lt;br /&gt;
&lt;br /&gt;
'''sonar.exclusions''' recebe a lista de arquivos ou pastas que não serão analisados durante a execução. &lt;br /&gt;
&lt;br /&gt;
Exemplos:&lt;br /&gt;
  Excluir todas as pastas “vendor”, suas subpastas e arquivos:&lt;br /&gt;
      **/vendor/**/*&lt;br /&gt;
  Excluir todas as extensões javascript e css:&lt;br /&gt;
     **/*.js, **/*.css&lt;br /&gt;
  Excluir uma determinada pasta, subpasta e todos seus arquivos:&lt;br /&gt;
     src/packages/**/*&lt;br /&gt;
&lt;br /&gt;
Mais informações: &lt;br /&gt;
&lt;br /&gt;
http://docs.sonarqube.org/display/SONAR/Analysis+Parameters&lt;br /&gt;
&lt;br /&gt;
=== Instalações SonarQube ===&lt;br /&gt;
&lt;br /&gt;
==== Manualmente ====&lt;br /&gt;
&lt;br /&gt;
Execute o CMD como administrador.&lt;br /&gt;
Navegue até a pasta onde se encontra o executor do SonarQube &lt;br /&gt;
	Ex: C:\SonarQube\bin\windows-x86-64(32)&lt;br /&gt;
Execute o arquivo StartSonar.bat&lt;br /&gt;
Neste momento, o site do SonarQube ficará na porta http://localhost:9000/&lt;br /&gt;
&lt;br /&gt;
==== Serviço do Windows ====&lt;br /&gt;
&lt;br /&gt;
Execute o CMD como administrador.&lt;br /&gt;
Navegue até a pasta onde se encontra o executor do SonarQube &lt;br /&gt;
	Ex: C:\SonarQube\bin\windows-x86-64(32)&lt;br /&gt;
Para instalar a instalação execute o arquivo&lt;br /&gt;
 InstallNTService.bat&lt;br /&gt;
Para iniciar o serviço, execute o arquivo &lt;br /&gt;
 StartNTService.bat&lt;br /&gt;
Neste momento, o site do SonarQube ficará na porta http://localhost:9000/&lt;br /&gt;
&lt;br /&gt;
Caso precise alterar alguma configuração ou desinstalar execute&lt;br /&gt;
 StopNTService.bat&lt;br /&gt;
 UninstallNTService.bat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Executar Análise ===&lt;br /&gt;
&lt;br /&gt;
Execute o CMD como administrador.&lt;br /&gt;
&lt;br /&gt;
Navegue até a pasta do projeto onde está o seu .sln junto com seu arquivo de configuração.&lt;br /&gt;
	EX: cd C:\Projetos\MeuProjeto\src&lt;br /&gt;
&lt;br /&gt;
No mesmo CMD que navegou até a pasta do projeto, execute o Scanner&lt;br /&gt;
&lt;br /&gt;
Para isso dê o caminho até o arquivo sonar-scanner.bat&lt;br /&gt;
	EX.: C:\SonarScanner\bin\sonar-scanner.bat&lt;br /&gt;
&lt;br /&gt;
Também é possível configurar o sonar scanner como variável ambiente para facilitar a execução. &lt;br /&gt;
Para isso acesse Painel de Controle → Sistema e Segurança → Sistema → Configurações avançadas do sistema → Variáveis em Ambiente… → Variáveis do sistema → adicione o caminho até pah asta bin do sonar scanner (ou windows + pause break). &lt;br /&gt;
&lt;br /&gt;
Exemplo:  C:\sonarqube\sonar-scanner-2.6.1\bin. Depois de configurado, abra o CMD e execute o comando sonar-scanner.&lt;br /&gt;
&lt;br /&gt;
Após executar o scanner, seu projeto começará a ser analisado. O resultado de saída irá aparecer no site do sonar http://localhost:9000/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Possíveis Problemas === &lt;br /&gt;
&lt;br /&gt;
==== Erro ao executar SonarQube como serviço d windows ====&lt;br /&gt;
Quando instalado o SonarQube como um serviço do Windows, ao executar ele buscará por uma pasta temporária em:     &lt;br /&gt;
        C:\Windows\system32\config\systemprofile\AppData\Local\Temp\&lt;br /&gt;
Você poderá ver isto no log de erros que ele mostra no CMD ou então no arquivo:&lt;br /&gt;
	C:/SonarQube/logs/sonar.log&lt;br /&gt;
Esta pasta não existe e o Sonar muitas vezes mesmo executando como administrador não consegue/pode criar. &lt;br /&gt;
Como solução, você deverá alterar a configuração adicionando uma nova pasta temp:&lt;br /&gt;
	Pare e desinstale o serviço do SonarQube.&lt;br /&gt;
	Vá até a pasta de configuração &lt;br /&gt;
	      C:/SonarQube/Conf/wrapper.conf&lt;br /&gt;
	Comente a linha (#wrapper.java.additional.1=-Djava.awt.headless=true)&lt;br /&gt;
	Adicione a linha: wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=C:\SonarQube\temp&lt;br /&gt;
Salve e em seguida reinstale e inicie o serviço do SonarQube.&lt;br /&gt;
&lt;br /&gt;
====  Erro de memória ao executar o Sonar Scanner ====&lt;br /&gt;
&lt;br /&gt;
Dependendo das configurações da máquina ou programas em execução, pode acontecer de uma das JVMs darem problema de falta de memória. Pode acontecer durante a execução do sonar scanner ou no momento que o sonarqube está processando os dados para visualizar no site. &lt;br /&gt;
&lt;br /&gt;
Antes de configurar precisamos conhecer rapidamente as JVMs do sonarqube e sonar scanner.&lt;br /&gt;
O sonarqube possui:&lt;br /&gt;
       1 JVM para rodar o servidor web&lt;br /&gt;
       1 JVM chamada compute engine que é um serviço para processar os dados enviados pelo sonar scanner e enviar para o servidor web. 	&lt;br /&gt;
Enquanto que o sonar scanner possui:&lt;br /&gt;
       1 JVM que analisa o código baseado nas configurações e plugins existentes, enviando para o sonarqube webserver.&lt;br /&gt;
&lt;br /&gt;
'''Configurando o SonarQube'''&lt;br /&gt;
 Dentro da pasta do sonarqube acesse a pasta conf e edite o arquivo sonar.properties&lt;br /&gt;
 Para aumentar a capacidade do servidor web:&lt;br /&gt;
	remova o comentário &amp;quot;#sonar.web.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true&amp;quot; &lt;br /&gt;
 Para aumentar a capacidade do compute engine:&lt;br /&gt;
	remova o comentário &amp;quot;#sonar.ce.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true&amp;quot;&lt;br /&gt;
 Salve o arquivo e tente executar novamente.&lt;br /&gt;
&lt;br /&gt;
'''Configurando o Sonar Scanner''' &lt;br /&gt;
&lt;br /&gt;
Dentro da pasta do sonar scanner, acesse a pasta bin e edite o arquivo sonar-scanner.bat&lt;br /&gt;
&lt;br /&gt;
Na linha 76 antes do %JAVA_EXEC% copie e cole o seguinte comando &amp;quot;set SONAR_SCANNER_OPTS=-Xmx512m -XX:MaxPermSize=128m&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
Dica: Dependendo da complexidade do projeto, talvez seja necessário aumentar mais do que 512mb da JVM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referências ==&lt;br /&gt;
http://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes&lt;br /&gt;
http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1743</id>
		<title>Jenkins + SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1743"/>
				<updated>2016-08-08T10:57:58Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Ativar o SonarQube Scanner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Como configurar ==&lt;br /&gt;
=== Plugin no Jenkins ===&lt;br /&gt;
&lt;br /&gt;
Adicione o plugin do sonarqube&lt;br /&gt;
&lt;br /&gt;
SonarQube na versão 2.4.4&lt;br /&gt;
&lt;br /&gt;
=== Configurar o server do SonarQube no Jenkins ===&lt;br /&gt;
&lt;br /&gt;
No Jenkins, vá em Gerenciar Jenkins -&amp;gt; Configurar o Sistema.&lt;br /&gt;
Procure o bloco SonarQube servers e preencha os campos&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome desta instalação&lt;br /&gt;
&lt;br /&gt;
'''Server URL''': URL do SonarQube&lt;br /&gt;
&lt;br /&gt;
'''Server Version''': Default&lt;br /&gt;
&lt;br /&gt;
=== Ativar o SonarQube Scanner ===&lt;br /&gt;
&lt;br /&gt;
Acesse Gerenciar Jenkins -&amp;gt; Global Tool Configuration &lt;br /&gt;
Procure o bloco SonarQube Scanner&lt;br /&gt;
Este bloco virá desabilitado e temos que configurar duas coisas:&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome do seu scanner&lt;br /&gt;
&lt;br /&gt;
'''Intall From Maven Central''': Default.&lt;br /&gt;
&lt;br /&gt;
=== Configurando o projeto ===&lt;br /&gt;
&lt;br /&gt;
Navegue até seu projeto no Jenkins e clique em Configurar.&lt;br /&gt;
No bloco Build, clique na lista “Adicionar passo no build”.&lt;br /&gt;
Selecione o '''Execute SonarQube Scanner'''.&lt;br /&gt;
&lt;br /&gt;
Preencha os campos:&lt;br /&gt;
&lt;br /&gt;
'''Task to run''': Deixe em branco&lt;br /&gt;
'''JDK''': ''Inherit From Job''&lt;br /&gt;
'''Path to project properties''': Coloque o caminho para o arquivo de configuração do Sonar (sonar-project.properties).&lt;br /&gt;
'''Analysis properties''': Caso você preencheu o campo acima, não preencha este. Caso não, coloque aqui o conteúdo do seu arquivo de configuração do sonar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Execução ===&lt;br /&gt;
&lt;br /&gt;
Aparecerá o logo do SonarQube no seu projeto e agora você poderá executar a sua análise de projeto e ver o resultado.&lt;br /&gt;
E logo após a execução do Sonar pelo Jenquins você poderá acessar o site do Sonar e ver o resultado do seu projeto.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1742</id>
		<title>Jenkins + SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1742"/>
				<updated>2016-08-08T10:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Configurar o server do SonarQube no Jenkins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Como configurar ==&lt;br /&gt;
=== Plugin no Jenkins ===&lt;br /&gt;
&lt;br /&gt;
Adicione o plugin do sonarqube&lt;br /&gt;
&lt;br /&gt;
SonarQube na versão 2.4.4&lt;br /&gt;
&lt;br /&gt;
=== Configurar o server do SonarQube no Jenkins ===&lt;br /&gt;
&lt;br /&gt;
No Jenkins, vá em Gerenciar Jenkins -&amp;gt; Configurar o Sistema.&lt;br /&gt;
Procure o bloco SonarQube servers e preencha os campos&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome desta instalação&lt;br /&gt;
&lt;br /&gt;
'''Server URL''': URL do SonarQube&lt;br /&gt;
&lt;br /&gt;
'''Server Version''': Default&lt;br /&gt;
&lt;br /&gt;
=== Ativar o SonarQube Scanner ===&lt;br /&gt;
&lt;br /&gt;
Acesse Gerenciar Jenkins -&amp;gt; Global Tool Configuration &lt;br /&gt;
Procure o bloco SonarQube Scanner&lt;br /&gt;
Este bloco virá desabilitado e temos que configurar duas coisas:&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome do seu scanner&lt;br /&gt;
&lt;br /&gt;
'''Intall From Maven Central''': Default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configurando o projeto ===&lt;br /&gt;
&lt;br /&gt;
Navegue até seu projeto no Jenkins e clique em Configurar.&lt;br /&gt;
No bloco Build, clique na lista “Adicionar passo no build”.&lt;br /&gt;
Selecione o '''Execute SonarQube Scanner'''.&lt;br /&gt;
&lt;br /&gt;
Preencha os campos:&lt;br /&gt;
&lt;br /&gt;
'''Task to run''': Deixe em branco&lt;br /&gt;
'''JDK''': ''Inherit From Job''&lt;br /&gt;
'''Path to project properties''': Coloque o caminho para o arquivo de configuração do Sonar (sonar-project.properties).&lt;br /&gt;
'''Analysis properties''': Caso você preencheu o campo acima, não preencha este. Caso não, coloque aqui o conteúdo do seu arquivo de configuração do sonar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Execução ===&lt;br /&gt;
&lt;br /&gt;
Aparecerá o logo do SonarQube no seu projeto e agora você poderá executar a sua análise de projeto e ver o resultado.&lt;br /&gt;
E logo após a execução do Sonar pelo Jenquins você poderá acessar o site do Sonar e ver o resultado do seu projeto.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1741</id>
		<title>Jenkins + SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1741"/>
				<updated>2016-08-08T10:57:00Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Como configurar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Como configurar ==&lt;br /&gt;
=== Plugin no Jenkins ===&lt;br /&gt;
&lt;br /&gt;
Adicione o plugin do sonarqube&lt;br /&gt;
&lt;br /&gt;
SonarQube na versão 2.4.4&lt;br /&gt;
&lt;br /&gt;
=== Configurar o server do SonarQube no Jenkins ===&lt;br /&gt;
&lt;br /&gt;
No Jenkins, vá em Gerenciar Jenkins -&amp;gt; Configurar o Sistema.&lt;br /&gt;
Procure o bloco SonarQube servers e preencha os campos&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome desta instalação&lt;br /&gt;
&lt;br /&gt;
'''Server URL''': URL do seu SonarQube&lt;br /&gt;
&lt;br /&gt;
'''Server Version''': Default&lt;br /&gt;
&lt;br /&gt;
=== Ativar o SonarQube Scanner ===&lt;br /&gt;
&lt;br /&gt;
Acesse Gerenciar Jenkins -&amp;gt; Global Tool Configuration &lt;br /&gt;
Procure o bloco SonarQube Scanner&lt;br /&gt;
Este bloco virá desabilitado e temos que configurar duas coisas:&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome do seu scanner&lt;br /&gt;
&lt;br /&gt;
'''Intall From Maven Central''': Default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configurando o projeto ===&lt;br /&gt;
&lt;br /&gt;
Navegue até seu projeto no Jenkins e clique em Configurar.&lt;br /&gt;
No bloco Build, clique na lista “Adicionar passo no build”.&lt;br /&gt;
Selecione o '''Execute SonarQube Scanner'''.&lt;br /&gt;
&lt;br /&gt;
Preencha os campos:&lt;br /&gt;
&lt;br /&gt;
'''Task to run''': Deixe em branco&lt;br /&gt;
'''JDK''': ''Inherit From Job''&lt;br /&gt;
'''Path to project properties''': Coloque o caminho para o arquivo de configuração do Sonar (sonar-project.properties).&lt;br /&gt;
'''Analysis properties''': Caso você preencheu o campo acima, não preencha este. Caso não, coloque aqui o conteúdo do seu arquivo de configuração do sonar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Execução ===&lt;br /&gt;
&lt;br /&gt;
Aparecerá o logo do SonarQube no seu projeto e agora você poderá executar a sua análise de projeto e ver o resultado.&lt;br /&gt;
E logo após a execução do Sonar pelo Jenquins você poderá acessar o site do Sonar e ver o resultado do seu projeto.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1740</id>
		<title>Jenkins + SonarQube</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Jenkins_%2B_SonarQube&amp;diff=1740"/>
				<updated>2016-08-08T10:55:13Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Como configurar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Como configurar ==&lt;br /&gt;
### Plugin no Jenkins ###&lt;br /&gt;
&lt;br /&gt;
Adicione o plugin do sonarqube&lt;br /&gt;
&lt;br /&gt;
SonarQube na versão 2.4.4&lt;br /&gt;
&lt;br /&gt;
### Configurar o server do SonarQube no Jenkins ###&lt;br /&gt;
&lt;br /&gt;
No Jenkins, vá em Gerenciar Jenkins -&amp;gt; Configurar o Sistema.&lt;br /&gt;
Procure o bloco SonarQube servers e preencha os campos&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome desta instalação&lt;br /&gt;
&lt;br /&gt;
'''Server URL''': URL do seu SonarQube&lt;br /&gt;
&lt;br /&gt;
'''Server Version''': Default&lt;br /&gt;
&lt;br /&gt;
### Ativar o SonarQube Scanner ###&lt;br /&gt;
&lt;br /&gt;
Acesse Gerenciar Jenkins -&amp;gt; Global Tool Configuration &lt;br /&gt;
Procure o bloco SonarQube Scanner&lt;br /&gt;
Este bloco virá desabilitado e temos que configurar duas coisas:&lt;br /&gt;
&lt;br /&gt;
'''Name''': Nome do seu scanner&lt;br /&gt;
&lt;br /&gt;
'''Intall From Maven Central''': Default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Configurando o projeto ###&lt;br /&gt;
&lt;br /&gt;
Navegue até seu projeto no Jenkins e clique em Configurar.&lt;br /&gt;
No bloco Build, clique na lista “Adicionar passo no build”.&lt;br /&gt;
Selecione o '''Execute SonarQube Scanner'''.&lt;br /&gt;
&lt;br /&gt;
Preencha os campos:&lt;br /&gt;
&lt;br /&gt;
'''Task to run''': Deixe em branco&lt;br /&gt;
'''JDK''': ''Inherit From Job''&lt;br /&gt;
'''Path to project properties''': Coloque o caminho para o arquivo de configuração do Sonar (sonar-project.properties).&lt;br /&gt;
'''Analysis properties''': Caso você preencheu o campo acima, não preencha este. Caso não, coloque aqui o conteúdo do seu arquivo de configuração do sonar. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Execução ###&lt;br /&gt;
&lt;br /&gt;
Aparecerá o logo do SonarQube no seu projeto e agora você poderá executar a sua análise de projeto e ver o resultado.&lt;br /&gt;
E logo após a execução do Sonar pelo Jenquins você poderá acessar o site do Sonar e ver o resultado do seu projeto.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1415</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1415"/>
				<updated>2016-07-13T18:09:36Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitam para a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso&lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1414</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1414"/>
				<updated>2016-07-13T18:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso&lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1413</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1413"/>
				<updated>2016-07-13T18:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso&lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1412</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1412"/>
				<updated>2016-07-13T18:07:16Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso&lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1411</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1411"/>
				<updated>2016-07-13T18:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso&lt;br /&gt;
// Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1410</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1410"/>
				<updated>2016-07-13T18:06:49Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1409</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1409"/>
				<updated>2016-07-13T18:01:20Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso&lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1408</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1408"/>
				<updated>2016-07-13T17:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso &lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?&lt;br /&gt;
 public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1407</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1407"/>
				<updated>2016-07-13T17:41:32Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt; // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso &lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?  &lt;br /&gt;
public void EnrollUser(){...}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1406</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1406"/>
				<updated>2016-07-13T17:41:00Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt;  &lt;br /&gt;
 // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso &lt;br /&gt;
 // Os cursos que este usuário irá participar deverão estar como status 1 &lt;br /&gt;
 // As turmas dos cursos tem um tutor com o status igual a 19 &lt;br /&gt;
 // Os cursos tem que iniciar em setembro e não podem começar com a letra N&lt;br /&gt;
 // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &lt;br /&gt;
 // Todos os cursos tem que fazer parte no ano letivo atual &lt;br /&gt;
 // não podem ser semestrais, pois os alunos tem inscrição anual &lt;br /&gt;
 // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &lt;br /&gt;
 // Os cursos tem Flash: e quando não tiver suporte pra flash ?  &lt;br /&gt;
public void EnrollUser()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1405</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1405"/>
				<updated>2016-07-13T17:37:05Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt;  // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos que este usuário irá participar deverão estar como status 1 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // As turmas dos cursos tem um tutor com o status igual a 19 &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos tem que iniciar em setembro e não podem começar com a letra N &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // Todos os cursos tem que fazer parte no ano letivo atual  &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // não podem ser semestrais, pois os alunos tem inscrição anual &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos tem Flash: e quando não tiver suporte pra flash ?  &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1403</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1403"/>
				<updated>2016-07-13T17:36:40Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Explicações longas &lt;br /&gt;
&amp;lt;code&amp;gt;  // Este método irá realizar uma comparação para contas de usuário que estão aptos a realizar um curso &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos que este usuário irá participar deverão estar como status 1 &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // As turmas dos cursos tem um tutor com o status igual a 19 &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos tem que iniciar em setembro e não podem começar com a letra N &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // Parece que os usuários que vao fazer o curso não estão com notas no módulo B &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // Todos os cursos tem que fazer parte no ano letivo atual  &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // não podem ser semestrais, pois os alunos tem inscrição anual &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos tem vídeo: verificar se o usuário tem acesso a pagina de videos &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;  // Os cursos tem Flash: e quando não tiver suporte pra flash ?  &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1400</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1400"/>
				<updated>2016-07-13T17:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Sumário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;br /&gt;
&lt;br /&gt;
Adicionar Summary auxilia o desenvolvedor que irá consumir este método orientando sobre a finalidade, parâmetros e retorno. &lt;br /&gt;
&lt;br /&gt;
Para API's públicas, o sumário é muito importante, pois provê informações para a construção de helpers.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1394</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1394"/>
				<updated>2016-07-13T17:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Uma das motivações mais comuns para criar comentários é um código ruim.&amp;quot;'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1393</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1393"/>
				<updated>2016-07-13T17:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
''Uma das motivações mais comuns para criar comentários é um código ruim.'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1392</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1392"/>
				<updated>2016-07-13T17:21:42Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o.&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
''Uma das motivações mais comuns para criar comentários é um código ruim.'' Robert C. Martin.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1391</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1391"/>
				<updated>2016-07-13T17:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1389</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1389"/>
				<updated>2016-07-13T17:20:09Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1388</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1388"/>
				<updated>2016-07-13T17:19:46Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt;// Nome&lt;br /&gt;
      string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1387</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1387"/>
				<updated>2016-07-13T17:19:16Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentários no código */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; // /* não apague!!!!!! */&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt; // Nome&lt;br /&gt;
      string nome;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1386</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1386"/>
				<updated>2016-07-13T17:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Comentário */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Não insira comentários num código ruim, reescreva-o&amp;quot;'' Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
Boa prática:&lt;br /&gt;
&lt;br /&gt;
* Comentário em parâmetros retornados por programas externos (API's, por exemplo).&lt;br /&gt;
* Destacar a utilização de um método importante que pode parecer desnecessário.&lt;br /&gt;
* TODO: Existem casos onde adicionar comentários TODO facilitem a revisões de código.&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
*Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
      // /* não apague!!!!!! */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para parâmetros ou métodos auto explicativos. &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
      // Nome&lt;br /&gt;
      string nome;&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Explicações desnecessárias.&lt;br /&gt;
&amp;lt;code&amp;gt;  // Esta é melhor solução que o Fulano tentou, não sei se ele pesquisou a página XYZ.com &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1382</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=1382"/>
				<updated>2016-07-13T17:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comentário ==&lt;br /&gt;
&lt;br /&gt;
Os comentários em código devem ser mínimos. O seu próprio código deve ser auto descritivo. Quando nos deparamos com um código que precisa de muito comentário para explicar o seu funcionamento, reveja a forma como está a lógica deste código, tente separar em partes menores, com métodos que possuam nomes claros, inteligíveis e que executem ações específicas.&lt;br /&gt;
 &lt;br /&gt;
Os comentários '''devem''' sofrer manutenção assim como o código, para que eles não atrapalhem um novo membro da equipe a entender o que está ocorrendo no código. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Não insira comentários num código ruim, reescreva-o&amp;quot; Brian Kernighan e P.J. Plaugher.&lt;br /&gt;
&lt;br /&gt;
=== Comentários no código ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evite:&lt;br /&gt;
* Comentar trechos de código: Deixe que o versionamento de código faça isto por você.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt; &lt;br /&gt;
      // Nome&lt;br /&gt;
      string nome;&lt;br /&gt;
&lt;br /&gt;
      // Esta é melhor solução até agora foi a melhor que conseguimos&lt;br /&gt;
 &lt;br /&gt;
      // Não tivemos tempo de testar o método X()&lt;br /&gt;
 &lt;br /&gt;
      // /* não apague!!!!!! */&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sumário ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=987</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=987"/>
				<updated>2016-07-05T15:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public static int ToInt32(string value);  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=953</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=953"/>
				<updated>2016-07-04T17:01:51Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public calss StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Convert {public static int ToInt32(string value);&lt;br /&gt;
}  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=952</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=952"/>
				<updated>2016-07-04T17:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public calss StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Convert {public static int ToInt32(string value);&lt;br /&gt;
}  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criação de nomes ==&lt;br /&gt;
&lt;br /&gt;
O objetivo é normalizar a criação de nomes para variáveis, tipos, métodos...&lt;br /&gt;
&lt;br /&gt;
=== Regras gerais ===&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo: &amp;lt;code&amp;gt; var teste; &amp;lt;/code&amp;gt;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
* Utilize camelCasing.&lt;br /&gt;
* Recomendado o uso de plural para variáveis que armazenem coleções.&lt;br /&gt;
* Recomendado a utilização de sufixos para booleanos. Exemplo : &amp;lt;code&amp;gt; bool emEdicao = false; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Métodos, classes e interfaces ===&lt;br /&gt;
* Utilize PascalCasing.&lt;br /&gt;
* Utilize o prefixo I para Interfaces.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=951</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=951"/>
				<updated>2016-07-04T16:44:05Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespace&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; namespace System.Security { ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public calss StreamReader {...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public interface IEnumerable {...} &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Object{ public virtual Length{ get; } } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Process {public event EventHandler Exited;}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public class MessageQueue {public static readonly TimeSpan InfiniteTimeout;} public struct UInt32 { public const Min = 0; } &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| &amp;lt;code&amp;gt; public enum FileMode { Append,...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| &amp;lt;code&amp;gt; public class Convert {public static int ToInt32(string value); &amp;lt;/code&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Regras Gerais ==&lt;br /&gt;
&lt;br /&gt;
* O projeto deve ser desenvolvido utilizando uma linguagem ubiquá.&lt;br /&gt;
* Crie variáveis e métodos com nomes claros e não extensos.&lt;br /&gt;
* Não utilize nomes genéricos. Exemplo:  var teste;&lt;br /&gt;
* Não utilize acentos nos nomes.&lt;br /&gt;
* Evite criar nomes que denotem negação. Exemplo: &amp;lt;code&amp;gt; bool usuarioNaoInscrito = true; if(!usuarioNaoInscrito){...} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variáveis ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Métodos ===&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=950</id>
		<title>Boas Praticas Programacao</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Boas_Praticas_Programacao&amp;diff=950"/>
				<updated>2016-07-04T16:17:24Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: Criou página com ' Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.   == Utilizando camelCasing e P...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Esta página serve com uma referência para a convenção de código e consulta para eventuais divergências entre modelos adotados na MSTECH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utilizando camelCasing e PascalCasing ==&lt;br /&gt;
&lt;br /&gt;
Os projetos em .Net na MSTECH devem adotar o [https://msdn.microsoft.com/en-us/library/ms229043.aspx padrão de maiúsculas] criados pela equipe da Microsoft.&lt;br /&gt;
&lt;br /&gt;
=== camelCasing ===&lt;br /&gt;
 &lt;br /&gt;
O camelCasing consiste em tornar maiúscula todas as primeiras letras das palavras com exceção da primeira palavra. &lt;br /&gt;
&lt;br /&gt;
EX: camelCasing, existeTitulo, idEscola ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para variáveis e parâmetros. Quando a variável ou parâmetro possuir um acrônimo, utilizar as duas primeiras letras também minusculas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PascalCasing ===&lt;br /&gt;
&lt;br /&gt;
O PascalCasing consiste em tornar maiúscula toda primeira letra das palavras.&lt;br /&gt;
&lt;br /&gt;
Ex: SalvarUsuario() e LoginExterno ...&lt;br /&gt;
&lt;br /&gt;
Utilize este padrão para nome de métodos e propriedades de uma entidade.&lt;br /&gt;
&lt;br /&gt;
=== Exemplos ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identificador&lt;br /&gt;
! Caso&lt;br /&gt;
! Exemplo&lt;br /&gt;
|-&lt;br /&gt;
| Namespac&lt;br /&gt;
| Pascal&lt;br /&gt;
| namespace System.Security { ... }&lt;br /&gt;
|-&lt;br /&gt;
| Tipo&lt;br /&gt;
| Pascal&lt;br /&gt;
| public calss StreamReader {...}&lt;br /&gt;
|-&lt;br /&gt;
| Interface&lt;br /&gt;
| Pascal&lt;br /&gt;
| public interface IEnumerable {...}&lt;br /&gt;
|-&lt;br /&gt;
| Método&lt;br /&gt;
| Pascal&lt;br /&gt;
| public class Object{ &lt;br /&gt;
        public virtual Length{ get; }&lt;br /&gt;
}&lt;br /&gt;
|-&lt;br /&gt;
| Propriedade&lt;br /&gt;
| Pascal&lt;br /&gt;
| public class Process {&lt;br /&gt;
        public event EventHandler Exited;&lt;br /&gt;
}&lt;br /&gt;
|-&lt;br /&gt;
| Campo &lt;br /&gt;
| Pascal&lt;br /&gt;
| public class MessageQueue {&lt;br /&gt;
    public static readonly TimeSpan&lt;br /&gt;
    InfiniteTimeout;&lt;br /&gt;
}&lt;br /&gt;
public struct UInt32 {&lt;br /&gt;
    public const Min = 0;&lt;br /&gt;
}&lt;br /&gt;
|-&lt;br /&gt;
| Valor do Enum&lt;br /&gt;
| Pascal&lt;br /&gt;
| public enum FileMode { Append,...}&lt;br /&gt;
|-&lt;br /&gt;
| Parâmetro&lt;br /&gt;
| Camel&lt;br /&gt;
| public class Convert {&lt;br /&gt;
    public static int ToInt32(string value);&lt;br /&gt;
}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Cursos_de_programa%C3%A7%C3%A3o&amp;diff=940</id>
		<title>Cursos de programação</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Cursos_de_programa%C3%A7%C3%A3o&amp;diff=940"/>
				<updated>2016-06-30T14:24:34Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: /* Boas praticas para melhorar performance no navegador */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Code Academy ==&lt;br /&gt;
http://www.codecademy.com&lt;br /&gt;
Possui cursos em português&lt;br /&gt;
Cursos de javascript &lt;br /&gt;
&lt;br /&gt;
=== Curso HTML &amp;amp; CSS ===&lt;br /&gt;
Duração: 7h&lt;br /&gt;
http://www.codecademy.com/tracks/web&lt;br /&gt;
&lt;br /&gt;
=== Curso Javascript ===&lt;br /&gt;
Duração: 10h&lt;br /&gt;
http://www.codecademy.com/tracks/javascript&lt;br /&gt;
&lt;br /&gt;
=== Curso JQuery ===&lt;br /&gt;
Duração: 3h&lt;br /&gt;
http://www.codecademy.com/tracks/jquery&lt;br /&gt;
&lt;br /&gt;
=== Make a Website ===&lt;br /&gt;
Duração: 3h&lt;br /&gt;
http://www.codecademy.com/en/skills/make-a-website&lt;br /&gt;
&lt;br /&gt;
=== Make na Interactive Website ===&lt;br /&gt;
Duração: 5h&lt;br /&gt;
http://www.codecademy.com/skills/make-an-interactive-website&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code School == &lt;br /&gt;
https://www.codeschool.com/&lt;br /&gt;
Cursos interessantes para os iniciantes e para reciclagem das pessoas:&lt;br /&gt;
&lt;br /&gt;
=== Path Html/Css ===&lt;br /&gt;
https://www.codeschool.com/paths/html-css&lt;br /&gt;
	&lt;br /&gt;
=== Path Javascript ===&lt;br /&gt;
https://www.codeschool.com/paths/javascript&lt;br /&gt;
	&lt;br /&gt;
=== Path Electives ===&lt;br /&gt;
https://www.codeschool.com/paths/electives&lt;br /&gt;
	&lt;br /&gt;
=== Git ===&lt;br /&gt;
https://www.codeschool.com/paths/git&lt;br /&gt;
		&lt;br /&gt;
=== JAVASCRIPT BEST PRACTICES ===&lt;br /&gt;
https://www.codeschool.com/courses/javascript-best-practices&lt;br /&gt;
&lt;br /&gt;
=== DISCOVER DEVTOOLS ===&lt;br /&gt;
https://www.codeschool.com/courses/discover-devtools&lt;br /&gt;
&lt;br /&gt;
=== Try Git ===&lt;br /&gt;
https://www.codeschool.com/courses/try-git&lt;br /&gt;
&lt;br /&gt;
== Microsoft Virtual Academy ==&lt;br /&gt;
A maioria possui legenda em português.&lt;br /&gt;
http://www.microsoftvirtualacademy.com/&lt;br /&gt;
&lt;br /&gt;
=== Conceitos básicos do desenvolvimento de software ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/software-development-fundamentals_ptb&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/fundamentos-do-desenvolvimento-de-software&lt;br /&gt;
&lt;br /&gt;
=== Jump Start sobre construção de Web Apps com ASP.NET ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/jump-start-sobre-constru-o-de-web-apps-com-asp-net&lt;br /&gt;
&lt;br /&gt;
=== Conceitos básicos de bancos de dados ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/database-fundamentals_ptb&lt;br /&gt;
&lt;br /&gt;
=== Introdução rápida ao desenvolvimento em HTML5 com JavaScript e CSS3 ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/90f7eb67-0c78-44b5-90b6-43bca793bb14&lt;br /&gt;
&lt;br /&gt;
=== Single Page Applications with jQuery or AngularJS ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/single-page-applications-with-jquery-or-angularjs&lt;br /&gt;
&lt;br /&gt;
== Diversos ==&lt;br /&gt;
http://www.learnjavaonline.org/&lt;br /&gt;
http://www.learnpython.org/&lt;br /&gt;
http://www.learncs.org/&lt;br /&gt;
http://www.learn-js.org/&lt;br /&gt;
http://www.learnshell.org/&lt;br /&gt;
&lt;br /&gt;
== Code Combat ==&lt;br /&gt;
http://codecombat.com/&lt;br /&gt;
Curso onde você pode escolher uma das linguagens de programação (javascript, python, etc) para completar os desafios em forma de jogo.&lt;br /&gt;
Em inglês.&lt;br /&gt;
&lt;br /&gt;
== CSS Diner ==&lt;br /&gt;
http://flukeout.github.io/&lt;br /&gt;
Desafios de CSS com temática culinária&lt;br /&gt;
Em inglês&lt;br /&gt;
&lt;br /&gt;
== Boas praticas para melhorar performance no navegador ==&lt;br /&gt;
https://browserdiet.com/pt/ Guia de boas praticas que ajudam na performance do navegador melhorando a experiência do usuário.&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	<entry>
		<id>http://wiki.mstech.com.br/index.php?title=Cursos_de_programa%C3%A7%C3%A3o&amp;diff=939</id>
		<title>Cursos de programação</title>
		<link rel="alternate" type="text/html" href="http://wiki.mstech.com.br/index.php?title=Cursos_de_programa%C3%A7%C3%A3o&amp;diff=939"/>
				<updated>2016-06-30T14:23:29Z</updated>
		
		<summary type="html">&lt;p&gt;Gabriel.scavassa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Code Academy ==&lt;br /&gt;
http://www.codecademy.com&lt;br /&gt;
Possui cursos em português&lt;br /&gt;
Cursos de javascript &lt;br /&gt;
&lt;br /&gt;
=== Curso HTML &amp;amp; CSS ===&lt;br /&gt;
Duração: 7h&lt;br /&gt;
http://www.codecademy.com/tracks/web&lt;br /&gt;
&lt;br /&gt;
=== Curso Javascript ===&lt;br /&gt;
Duração: 10h&lt;br /&gt;
http://www.codecademy.com/tracks/javascript&lt;br /&gt;
&lt;br /&gt;
=== Curso JQuery ===&lt;br /&gt;
Duração: 3h&lt;br /&gt;
http://www.codecademy.com/tracks/jquery&lt;br /&gt;
&lt;br /&gt;
=== Make a Website ===&lt;br /&gt;
Duração: 3h&lt;br /&gt;
http://www.codecademy.com/en/skills/make-a-website&lt;br /&gt;
&lt;br /&gt;
=== Make na Interactive Website ===&lt;br /&gt;
Duração: 5h&lt;br /&gt;
http://www.codecademy.com/skills/make-an-interactive-website&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code School == &lt;br /&gt;
https://www.codeschool.com/&lt;br /&gt;
Cursos interessantes para os iniciantes e para reciclagem das pessoas:&lt;br /&gt;
&lt;br /&gt;
=== Path Html/Css ===&lt;br /&gt;
https://www.codeschool.com/paths/html-css&lt;br /&gt;
	&lt;br /&gt;
=== Path Javascript ===&lt;br /&gt;
https://www.codeschool.com/paths/javascript&lt;br /&gt;
	&lt;br /&gt;
=== Path Electives ===&lt;br /&gt;
https://www.codeschool.com/paths/electives&lt;br /&gt;
	&lt;br /&gt;
=== Git ===&lt;br /&gt;
https://www.codeschool.com/paths/git&lt;br /&gt;
		&lt;br /&gt;
=== JAVASCRIPT BEST PRACTICES ===&lt;br /&gt;
https://www.codeschool.com/courses/javascript-best-practices&lt;br /&gt;
&lt;br /&gt;
=== DISCOVER DEVTOOLS ===&lt;br /&gt;
https://www.codeschool.com/courses/discover-devtools&lt;br /&gt;
&lt;br /&gt;
=== Try Git ===&lt;br /&gt;
https://www.codeschool.com/courses/try-git&lt;br /&gt;
&lt;br /&gt;
== Microsoft Virtual Academy ==&lt;br /&gt;
A maioria possui legenda em português.&lt;br /&gt;
http://www.microsoftvirtualacademy.com/&lt;br /&gt;
&lt;br /&gt;
=== Conceitos básicos do desenvolvimento de software ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/software-development-fundamentals_ptb&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/fundamentos-do-desenvolvimento-de-software&lt;br /&gt;
&lt;br /&gt;
=== Jump Start sobre construção de Web Apps com ASP.NET ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/jump-start-sobre-constru-o-de-web-apps-com-asp-net&lt;br /&gt;
&lt;br /&gt;
=== Conceitos básicos de bancos de dados ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/database-fundamentals_ptb&lt;br /&gt;
&lt;br /&gt;
=== Introdução rápida ao desenvolvimento em HTML5 com JavaScript e CSS3 ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/90f7eb67-0c78-44b5-90b6-43bca793bb14&lt;br /&gt;
&lt;br /&gt;
=== Single Page Applications with jQuery or AngularJS ===&lt;br /&gt;
http://www.microsoftvirtualacademy.com/training-courses/single-page-applications-with-jquery-or-angularjs&lt;br /&gt;
&lt;br /&gt;
== Diversos ==&lt;br /&gt;
http://www.learnjavaonline.org/&lt;br /&gt;
http://www.learnpython.org/&lt;br /&gt;
http://www.learncs.org/&lt;br /&gt;
http://www.learn-js.org/&lt;br /&gt;
http://www.learnshell.org/&lt;br /&gt;
&lt;br /&gt;
== Code Combat ==&lt;br /&gt;
http://codecombat.com/&lt;br /&gt;
Curso onde você pode escolher uma das linguagens de programação (javascript, python, etc) para completar os desafios em forma de jogo.&lt;br /&gt;
Em inglês.&lt;br /&gt;
&lt;br /&gt;
== CSS Diner ==&lt;br /&gt;
http://flukeout.github.io/&lt;br /&gt;
Desafios de CSS com temática culinária&lt;br /&gt;
Em inglês&lt;br /&gt;
&lt;br /&gt;
== Boas praticas para melhorar performance no navegador ==&lt;br /&gt;
https://browserdiet.com/pt/&lt;/div&gt;</summary>
		<author><name>Gabriel.scavassa</name></author>	</entry>

	</feed>