SlideShare uma empresa Scribd logo
Desenvolvimento em .NET




Boas práticas de desenvolvimento
Objectivos
●   Mantras
●   Convenções
●   Localização
●   Strings
●   Expressões Regulares
Mantras
●   Option Explicit On
    –   declarar TODAS as variáveis
●   Option Strict On
    –   indicar o tipo de dados de TODAS as variáveis
●   Código Modular
    –   usar e abusar de subs e funções
●   Zero variáveis globais
    –   usar e abusar de parâmetros nos procedimentos
Convenções
●   Abreviaturas
    –   “Do not use abbreviations or contractions as parts
        of identifier names. For example, use GetWindow
        instead of GetWin.“
    –   Nunca usar.
         ●   excepções admissíveis
              –   acrónimos. ex: html
              –   variáveis de armazenamento “temporário”. ex: For i=1 To ...
Convenções
●   Variáveis, Parâmetros
    –   nomes significativos. ex: numeroEmpregados
    –   camelCase
●   Variáveis Globais
    –   prefixo '_'. ex: _euNaoExisto
●   Constantes
    –   UpperCase. ex: VALOR_MAXIMO
Convenções
●   Variáveis
    –   não usar o underscore excepto como prefixo ou
        como separador de palavras nas constantes
Convenções
●   Procedimentos (Sub / Function)
    –   Nomes significativos. ex: CalcularSaldo()
         ●   deve indicar claramente o que é feito nesse
             procedimento.
              –   Dica: se dessa forma o nome ficasse muito grande – ex:
                  CalcularSaldoEfectuarTransferenciaEnviarConfirmacao então
                  provavelmente o procedimento deve ser dividido em outros
                  procedimentos mais curtos.
         ●   como indica uma acção, normalmente usam-se verbos
    –   PascalCase
Convenções - Exemplo
Localização
●   Como tornar o nosso código internacionalizável
    sem ter que programar muito.
    –   implica normalmente mudar formato numeros,
        datas, ...
Localização
●   Class CultureInfo
    –   permite o acesso a todas as definições especificas
        de uma determinada cultura
         ●   cultura = lingua + país - pt-PT; pt-BR; ...
    –   definições especificas
         ●   Datas: separador datas, nome dos dias da semana
             (normais e abreviados), nome dos meses, formato
             (dd/mm/aa, ...)
         ●   Números: separador de milhares, separador decimal,
             formato números negativos, ...
         ●   Calendário: Gregoriano, Juliano, Japonês, Hebreu, ...
Localização
–   CurrentCulture
     ●   Indica a cultura usada pela aplicação que está a ser
         executada
          –   nota: um mesmo computador pode estar a correr diferentes
              aplicações com diferentes culturas
Localização
●   Criar Projecto
    Visual Studio
    –   nome projecto
         ●   0301_current
             Culture
    –   testar
        currentCulture
Localização
–   NumberFormat
     ●   Procurar no Index do Visual Studio “NumberFormatInfo
         class”
–   DateTimeFormat
     ●   Procurar no Index do Visual Studio “NumberFormatInfo
         class”
–   Calendar
     ●   Procurar no Index do Visual Studio “Calendar class
         (System.Globalization)”
Dados vs Texto
Formatação de Dados
●   Uma variavel pode ter muitas representações
    textuais!
Formatação de Dados
●   Exemplos
    –   mudar data para formato especifico
         ●   d.toString(“dd:MM:yy”)
    –   por número com 4 casas decimais
         ●   i.toString(“#.0000”)
Exercicio 2
●   Criar novo
    módulo
    –   Formatação
        de dados
Trabalhar com Strings
String vs Stringbuilder
●   Problema
    –   concatenar strings é um processo demorado
         ●   texto = texto + novotexto
              –   o resultado da concatenação é um novo objecto
String vs Stringbuilder
●   Criar Projecto
    Visual Studio
    –   nome projecto
         ●   0302_stringbui
             lder
    –   testar
        stringbuilder
Expressões Regulares
●   Linguagem de Padrões para strings
    –   Verificar se a string X é do tipo Y
         ●   padrão Código Postal
              –   4 algarismo ou 4 algarismo + separador '-' + 3 algarismos
                    ● padrão (d{4}){1}(-d{3})?
Expressões Regulares
●   padrão email
     –   um ou mais caracteres antes do @
     –   um quot;[quot; opcional, porque utilizador@[255.255.255.0] é um email
         válido
     –   uma sequencia de letras, numeros e pontos finais, que são
         todos dominios válidos ou entao caracteres para um endereço ip
     –   um ponto final separado por um sufixo
     –   um ultimo quot;]quot; opcional
           ● ^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$
Expressões Regulares
–   Substituir padrão X por Y
     ●   eliminar caracteres inválidos excepto '.', '@', '-'
          –   padrão: [^w.@-]
Expressões Regulares
●   Criar Projecto Visual Studio
    –   nome projecto
         ●   0303_regularExpression
    –   testar regular expressions
Exercicio
Avaliação de Conhecimentos!
Mantras
Mantras
●   Option Explicit On
    –   declarar TODAS as variáveis
●   Option Strict On
    –   indicar o tipo de dados de TODAS as variáveis
●   Código Modular
    –   usar e abusar de subs e funções
●   Zero variáveis globais
    –   usar e abusar de parâmetros nos procedimentos
Convenções
Conveções
●   Sempre nomes significativos
●   Zero Abreviaturas
●   Variáveis => camelCase
●   Procedimentos => PascalCase
Objectivos
●   Mantras
●   Convenções
●   Localização
●   Strings
●   Expressões Regulares

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
thomasdacosta
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
thomasdacosta
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03
thomasdacosta
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDK
Leonardo Dalmina
 
Grails - Destaques (para quem já sabe Java)
Grails - Destaques (para quem já sabe Java)Grails - Destaques (para quem já sabe Java)
Grails - Destaques (para quem já sabe Java)
Douglas Mendes
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
thomasdacosta
 
Conceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados MysqlConceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados Mysql
binhoetec
 
Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06
thomasdacosta
 
Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1
fabriciodenis
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
Gregorio Kusowski
 
(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript
Carlos Santos
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
thomasdacosta
 
Introdução ao JavaScript
Introdução ao JavaScriptIntrodução ao JavaScript
Introdução ao JavaScript
Carlos Roberto Gomes Junior
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08
thomasdacosta
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
Rodrigo Branas
 
Padrões de refatoração
Padrões de refatoraçãoPadrões de refatoração
Padrões de refatoração
Thiago Pereira
 
Psi m14
Psi m14Psi m14
Psi m14
Luis Ferreira
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de Dados
Natanael Simões
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
Luis Ferreira
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
Marcos Thomaz
 

Mais procurados (20)

Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDK
 
Grails - Destaques (para quem já sabe Java)
Grails - Destaques (para quem já sabe Java)Grails - Destaques (para quem já sabe Java)
Grails - Destaques (para quem já sabe Java)
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Conceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados MysqlConceitos inicias de banco de dados Mysql
Conceitos inicias de banco de dados Mysql
 
Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06Estrutura de Dados - Aula 06
Estrutura de Dados - Aula 06
 
Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1Aplicativos II - MySQL_part1
Aplicativos II - MySQL_part1
 
Ruby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanosRuby - Criando código para máquinas e humanos
Ruby - Criando código para máquinas e humanos
 
(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 
Introdução ao JavaScript
Introdução ao JavaScriptIntrodução ao JavaScript
Introdução ao JavaScript
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Padrões de refatoração
Padrões de refatoraçãoPadrões de refatoração
Padrões de refatoração
 
Psi m14
Psi m14Psi m14
Psi m14
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de Dados
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 

Destaque

Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
Vitor Silva
 
Wow
WowWow
Teachers Of Government
Teachers Of GovernmentTeachers Of Government
Teachers Of Government
Gary Purinton
 
Kuliah dengan Kuliax (AMIKOM)
Kuliah dengan Kuliax (AMIKOM)Kuliah dengan Kuliax (AMIKOM)
Kuliah dengan Kuliax (AMIKOM)
Iwan stwn
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
Vitor Silva
 
Rosa de Venus by Rubido9
Rosa de Venus by Rubido9Rosa de Venus by Rubido9
Rosa de Venus by Rubido9
MoonShadow13
 
Simplemente Venus by Rubido9
Simplemente Venus by Rubido9Simplemente Venus by Rubido9
Simplemente Venus by Rubido9
MoonShadow13
 
Abofetadadoano Comsom
Abofetadadoano ComsomAbofetadadoano Comsom
Abofetadadoano Comsom
alex reges
 
Casamentosestranhos
CasamentosestranhosCasamentosestranhos
Casamentosestranhos
alex reges
 
O canteiro dos livros
O canteiro dos livrosO canteiro dos livros
O canteiro dos livros
naliniram
 
Clase del lunes 12 de mayo de 2014
Clase del lunes 12 de mayo de 2014Clase del lunes 12 de mayo de 2014
Clase del lunes 12 de mayo de 2014
Gonzalo Jiménez
 
Computadora
ComputadoraComputadora
Computadora
Guillermo Giraldo
 
As Misses
As MissesAs Misses
As Misses
Cleildson Alves
 
Presentación
PresentaciónPresentación
Presentación
migama88
 
Job analysis and Writing Effective Job Description
Job analysis and Writing Effective Job DescriptionJob analysis and Writing Effective Job Description
Job analysis and Writing Effective Job DescriptionVugar Guliyev
 
Influencia Del Aprendisaje En El Marketing
Influencia Del Aprendisaje En El  MarketingInfluencia Del Aprendisaje En El  Marketing
Influencia Del Aprendisaje En El Marketing
Jorge lainfiesta
 
Riego%20 Artesanal%20por%20 Goteo2
Riego%20 Artesanal%20por%20 Goteo2Riego%20 Artesanal%20por%20 Goteo2
Riego%20 Artesanal%20por%20 Goteo2
bisaelgil582
 

Destaque (20)

Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
 
Wow
WowWow
Wow
 
Teachers Of Government
Teachers Of GovernmentTeachers Of Government
Teachers Of Government
 
HauptstäDte
HauptstäDteHauptstäDte
HauptstäDte
 
Kuliah dengan Kuliax (AMIKOM)
Kuliah dengan Kuliax (AMIKOM)Kuliah dengan Kuliax (AMIKOM)
Kuliah dengan Kuliax (AMIKOM)
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
 
Rosa de Venus by Rubido9
Rosa de Venus by Rubido9Rosa de Venus by Rubido9
Rosa de Venus by Rubido9
 
30826
3082630826
30826
 
Simplemente Venus by Rubido9
Simplemente Venus by Rubido9Simplemente Venus by Rubido9
Simplemente Venus by Rubido9
 
Abofetadadoano Comsom
Abofetadadoano ComsomAbofetadadoano Comsom
Abofetadadoano Comsom
 
Casamentosestranhos
CasamentosestranhosCasamentosestranhos
Casamentosestranhos
 
O canteiro dos livros
O canteiro dos livrosO canteiro dos livros
O canteiro dos livros
 
Clase del lunes 12 de mayo de 2014
Clase del lunes 12 de mayo de 2014Clase del lunes 12 de mayo de 2014
Clase del lunes 12 de mayo de 2014
 
Computadora
ComputadoraComputadora
Computadora
 
As Misses
As MissesAs Misses
As Misses
 
Presentación
PresentaciónPresentación
Presentación
 
Job analysis and Writing Effective Job Description
Job analysis and Writing Effective Job DescriptionJob analysis and Writing Effective Job Description
Job analysis and Writing Effective Job Description
 
11759
1175911759
11759
 
Influencia Del Aprendisaje En El Marketing
Influencia Del Aprendisaje En El  MarketingInfluencia Del Aprendisaje En El  Marketing
Influencia Del Aprendisaje En El Marketing
 
Riego%20 Artesanal%20por%20 Goteo2
Riego%20 Artesanal%20por%20 Goteo2Riego%20 Artesanal%20por%20 Goteo2
Riego%20 Artesanal%20por%20 Goteo2
 

Semelhante a Desenvolvimento em .Net - Boas Praticas De Desenvolvimento

MongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaMongoDB outras alternativas de persistência
MongoDB outras alternativas de persistência
Eder Magalhães
 
Apostila aed
Apostila aedApostila aed
Apostila aed
Ivre Marjorie
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
JogosUnisinos
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
Francis Wagner
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails Dextra
Dextra
 
Minicurso Ruby on Rails
Minicurso Ruby on RailsMinicurso Ruby on Rails
Minicurso Ruby on Rails
Maurício Eduardo
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
Bruno Catão
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
Rildo Pragana
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
JoberthSilva
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
Sérgio Souza Costa
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
Cássio Marques
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-pt
Pedro Sousa
 
Boas práticas de programação em C# .NET
Boas práticas de programação em C# .NETBoas práticas de programação em C# .NET
Boas práticas de programação em C# .NET
Fabiano Roman Beraldi
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogos
elliando dias
 
Scala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) IntroduçãoScala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) Introdução
paulosuzart
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
Eduardo Jorge
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
Elaine Cecília Gatto
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Julio Monteiro
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
Giovanni Bassi
 

Semelhante a Desenvolvimento em .Net - Boas Praticas De Desenvolvimento (20)

MongoDB outras alternativas de persistência
MongoDB outras alternativas de persistênciaMongoDB outras alternativas de persistência
MongoDB outras alternativas de persistência
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
Ruby on rails gds 2011
Ruby on rails   gds 2011Ruby on rails   gds 2011
Ruby on rails gds 2011
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails Dextra
 
Minicurso Ruby on Rails
Minicurso Ruby on RailsMinicurso Ruby on Rails
Minicurso Ruby on Rails
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
JavaScript - A Linguagem
JavaScript - A LinguagemJavaScript - A Linguagem
JavaScript - A Linguagem
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-pt
 
Boas práticas de programação em C# .NET
Boas práticas de programação em C# .NETBoas práticas de programação em C# .NET
Boas práticas de programação em C# .NET
 
A Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em JogosA Linguagem Lua e suas Aplicações em Jogos
A Linguagem Lua e suas Aplicações em Jogos
 
Scala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) IntroduçãoScala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) Introdução
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 

Mais de Vitor Silva

Cidadania20
Cidadania20Cidadania20
Cidadania20
Vitor Silva
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
Vitor Silva
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
Vitor Silva
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
Vitor Silva
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Vitor Silva
 
Desenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosDesenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs Objectos
Vitor Silva
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
Vitor Silva
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
Vitor Silva
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
Vitor Silva
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
Vitor Silva
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
Vitor Silva
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Vitor Silva
 
Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
Vitor Silva
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
Vitor Silva
 

Mais de Vitor Silva (15)

Cidadania20
Cidadania20Cidadania20
Cidadania20
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 
Desenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosDesenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs Objectos
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a Objectos
 
Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
 

Desenvolvimento em .Net - Boas Praticas De Desenvolvimento

  • 1. Desenvolvimento em .NET Boas práticas de desenvolvimento
  • 2. Objectivos ● Mantras ● Convenções ● Localização ● Strings ● Expressões Regulares
  • 3. Mantras ● Option Explicit On – declarar TODAS as variáveis ● Option Strict On – indicar o tipo de dados de TODAS as variáveis ● Código Modular – usar e abusar de subs e funções ● Zero variáveis globais – usar e abusar de parâmetros nos procedimentos
  • 4. Convenções ● Abreviaturas – “Do not use abbreviations or contractions as parts of identifier names. For example, use GetWindow instead of GetWin.“ – Nunca usar. ● excepções admissíveis – acrónimos. ex: html – variáveis de armazenamento “temporário”. ex: For i=1 To ...
  • 5. Convenções ● Variáveis, Parâmetros – nomes significativos. ex: numeroEmpregados – camelCase ● Variáveis Globais – prefixo '_'. ex: _euNaoExisto ● Constantes – UpperCase. ex: VALOR_MAXIMO
  • 6. Convenções ● Variáveis – não usar o underscore excepto como prefixo ou como separador de palavras nas constantes
  • 7. Convenções ● Procedimentos (Sub / Function) – Nomes significativos. ex: CalcularSaldo() ● deve indicar claramente o que é feito nesse procedimento. – Dica: se dessa forma o nome ficasse muito grande – ex: CalcularSaldoEfectuarTransferenciaEnviarConfirmacao então provavelmente o procedimento deve ser dividido em outros procedimentos mais curtos. ● como indica uma acção, normalmente usam-se verbos – PascalCase
  • 9. Localização ● Como tornar o nosso código internacionalizável sem ter que programar muito. – implica normalmente mudar formato numeros, datas, ...
  • 10. Localização ● Class CultureInfo – permite o acesso a todas as definições especificas de uma determinada cultura ● cultura = lingua + país - pt-PT; pt-BR; ... – definições especificas ● Datas: separador datas, nome dos dias da semana (normais e abreviados), nome dos meses, formato (dd/mm/aa, ...) ● Números: separador de milhares, separador decimal, formato números negativos, ... ● Calendário: Gregoriano, Juliano, Japonês, Hebreu, ...
  • 11. Localização – CurrentCulture ● Indica a cultura usada pela aplicação que está a ser executada – nota: um mesmo computador pode estar a correr diferentes aplicações com diferentes culturas
  • 12. Localização ● Criar Projecto Visual Studio – nome projecto ● 0301_current Culture – testar currentCulture
  • 13. Localização – NumberFormat ● Procurar no Index do Visual Studio “NumberFormatInfo class” – DateTimeFormat ● Procurar no Index do Visual Studio “NumberFormatInfo class” – Calendar ● Procurar no Index do Visual Studio “Calendar class (System.Globalization)”
  • 15. Formatação de Dados ● Uma variavel pode ter muitas representações textuais!
  • 16. Formatação de Dados ● Exemplos – mudar data para formato especifico ● d.toString(“dd:MM:yy”) – por número com 4 casas decimais ● i.toString(“#.0000”)
  • 17. Exercicio 2 ● Criar novo módulo – Formatação de dados
  • 19. String vs Stringbuilder ● Problema – concatenar strings é um processo demorado ● texto = texto + novotexto – o resultado da concatenação é um novo objecto
  • 20. String vs Stringbuilder ● Criar Projecto Visual Studio – nome projecto ● 0302_stringbui lder – testar stringbuilder
  • 21. Expressões Regulares ● Linguagem de Padrões para strings – Verificar se a string X é do tipo Y ● padrão Código Postal – 4 algarismo ou 4 algarismo + separador '-' + 3 algarismos ● padrão (d{4}){1}(-d{3})?
  • 22. Expressões Regulares ● padrão email – um ou mais caracteres antes do @ – um quot;[quot; opcional, porque utilizador@[255.255.255.0] é um email válido – uma sequencia de letras, numeros e pontos finais, que são todos dominios válidos ou entao caracteres para um endereço ip – um ponto final separado por um sufixo – um ultimo quot;]quot; opcional ● ^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$
  • 23. Expressões Regulares – Substituir padrão X por Y ● eliminar caracteres inválidos excepto '.', '@', '-' – padrão: [^w.@-]
  • 24. Expressões Regulares ● Criar Projecto Visual Studio – nome projecto ● 0303_regularExpression – testar regular expressions
  • 28. Mantras ● Option Explicit On – declarar TODAS as variáveis ● Option Strict On – indicar o tipo de dados de TODAS as variáveis ● Código Modular – usar e abusar de subs e funções ● Zero variáveis globais – usar e abusar de parâmetros nos procedimentos
  • 30. Conveções ● Sempre nomes significativos ● Zero Abreviaturas ● Variáveis => camelCase ● Procedimentos => PascalCase
  • 31. Objectivos ● Mantras ● Convenções ● Localização ● Strings ● Expressões Regulares