lpc - aula 1 - introdução .net

30
Linguagem de Programação Comercial Prof. Charles Fortes Introdução .NET e C#

Upload: charles-fortes

Post on 11-Jun-2015

285 views

Category:

Software


1 download

DESCRIPTION

Apresentação da Plataforma, Tipos e Coleções básicos que vamos trabalhar durante o semestre.

TRANSCRIPT

Page 1: LPC  - aula 1 - Introdução .NET

Linguagem de Programação Comercial

Prof. Charles Fortes

Introdução .NET e C#

Page 2: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Sobre o Professor

Page 3: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Charles Fortes

Page 4: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Charles FortesLíder Técnico na Empresa Prime Systems. Agilista, apaixonado por desenvolvimento (Web, Desktop, Mobile, o que for), pai, amante do Paintball e do Kenjutsu. MTAC - Microsoft Technical Audience Contributor 100Loop - DotNetRaptors

Page 5: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Charles Fortes

Líder Técnico na Empresa Prime Systems. Agilista, apaixonado por desenvolvimento (Web, Desktop, Mobile, o que for), pai, amante do Paintball e do Kenjutsu. MTAC - Microsoft Technical Audience Contributor 100Loop - DotNetRaptors

SlideShare: http://pt.slideshare.net/charleswellingtonfortesLinkedin: http://br.linkedin.com/in/charlesfortes/Twitter: @CharlesFortes

Page 6: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Charles Fortes

Líder Técnico na Empresa Prime Systems. Agilista, apaixonado por desenvolvimento (Web, Desktop, Mobile, o que for), pai, amante do Paintball e do Kenjutsu. MTAC - Microsoft Technical Audience Contributor 100Loop - DotNetRaptors

Desenvolvimento Web – MVC – Angular.JS – JQuery – SQLServer – MySQL – HTML5 – NoSQL

Page 7: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Visão Geral

Page 8: LPC  - aula 1 - Introdução .NET

O que é o .NET FrameWorkO que é o .NET FrameWork

O .NET FrameworkO .NET Framework

Conjunto de bibliotecas desenvolvidas para suprir as mais diversas necessidades de desenvolvimento Desenvolvido para funcionar com uma máquina virtual que interpreta o código

Conjunto de bibliotecas desenvolvidas para suprir as mais diversas necessidades de desenvolvimento Desenvolvido para funcionar com uma máquina virtual que interpreta o código

Linguagem de Programação ComercialProf. Charles Fortes

Page 9: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Vantagens

100% Orientada a objetos;

Facilidade de desenvolvimento de aplicações;

Facilidade na instalação e na distribuição de aplicações;

Alta escalabilidade;

Interoperabilidade entre plataformas e componentes desenvolvidos em outras linguagens .NET;

Rotina automática de “coleta de lixo” que permite remoção de variáveis e objetos que não são mais utilizados;

Page 10: LPC  - aula 1 - Introdução .NET

Compatibilidade do Framework

Linguagem de Programação ComercialProf. Charles Fortes

100% Nativo no Win 8, Win 7, Windows Vista

Funciona no Windows XP (SP3)

Até sua versão 2.0 instalável no Windows 98 com emulação

Até sua versão 1.1 instalável no Windows NT 4.0SP6 com emulação

Page 11: LPC  - aula 1 - Introdução .NET

Funcionamento do Framework

Máquina Virtual

Linguagem de Programação ComercialProf. Charles Fortes

Todo código gerado é gerado em linguagem intermediária (MSIL – Microsoft Intermediate Language)

Quando compilamos o código .NET são gerados arquivos que são chamados Assembly

Todo assembly é compilado duas vezes, uma pelo compilador que o transforma no Assembly propriamente dito (MSIL) e a segunda vez pelo JIT (Just-in-Time Compiler)

Quando o JIT compila o MSIL, ele o recompila de forma a otimizar a aplicação para aquele computador, baseado em seu Hardware e Software

Page 12: LPC  - aula 1 - Introdução .NET

C#

Linguagem de máquina

MSIL

VB.NETMeuPrograma.csMeuPrograma.vbMeuPrograma.csMeuPrograma.vb

MeuPrograma.dllMeuPrograma.exeMeuPrograma.dllMeuPrograma.exe

vbccsc

JIT

CLR (Common Language Runtime)

Linguagem de Programação ComercialProf. Charles Fortes

Page 13: LPC  - aula 1 - Introdução .NET

Funcionamento do Framework

MultiPlataformas

Linguagem de Programação ComercialProf. Charles Fortes

Uma vez que todo código .NET que o compilador gera (os Assemblies) são gerados em MSIL, podemos ter diversas linguagens diferentes criando estes arquivos

Possibilidade de utilização de arquivos em VB.NET, C#, J#... Etc...

Podemos utilizar os Assemblies criados em diferentes linguagens em um único projeto sem prejuízo de desempenho ou qualquer trabalho adicional

Page 14: LPC  - aula 1 - Introdução .NET

Linguagem de Programação ComercialProf. Charles Fortes

Tipos

Page 15: LPC  - aula 1 - Introdução .NET

Value Types : Conceitos

Inicialmente todo tipo booleano e numéricos;Tem seus valores armazenados no mesmo local onde a variável está instanciada na memória (stack);São divididas em três tipos principais :

Built-in typesUser-defined typesEnumerations

Todos herdam de System.Value;Quando definimos um objeto valorado igual ao outro, uma cópia das informações contidas no primeiro objeto é feita para um novo local da memória (o mesmo local onde a variável está instanceada);

Inicialmente todo tipo booleano e numéricos;Tem seus valores armazenados no mesmo local onde a variável está instanciada na memória (stack);São divididas em três tipos principais :

Built-in typesUser-defined typesEnumerations

Todos herdam de System.Value;Quando definimos um objeto valorado igual ao outro, uma cópia das informações contidas no primeiro objeto é feita para um novo local da memória (o mesmo local onde a variável está instanceada);

Linguagem de Programação ComercialProf. Charles Fortes

Page 16: LPC  - aula 1 - Introdução .NET

Built-in Value Types

Tipos nativos do Framework

Possuem o mesmo tratamento, comportamento e estrutura independente da linguagem utilizada

Tipos Otimizados para promover melhor desempenho

Exitem aproximadamente 300 tipos valorados no .NET

Tipos nativos do Framework

Possuem o mesmo tratamento, comportamento e estrutura independente da linguagem utilizada

Tipos Otimizados para promover melhor desempenho

Exitem aproximadamente 300 tipos valorados no .NET

Linguagem de Programação ComercialProf. Charles Fortes

Page 17: LPC  - aula 1 - Introdução .NET

Tipo NameSpace / VB/ C#

Bytes

Tamanho Uso

System.Sbyte (Sbyte/sbyte) 1 -128/127 Bytes com sinal

System.Byte (Byte/byte) 1 0 a 255 Byte sem sinal

System.Int16(Short/short) 2 -32768 a 32767 Interoperações e outros usos específicos

System.Int32 (Integer/int)

4 -2147483648 a 2147483647 a 2147483648 a 2147483646

Tipo numérico (números inteiros) padrão.

System.UInt32(Uinteger/uint)

4 0 a 4294967295 Int32 positivos

System.Int64 (Long/long) 8 -9223372036854775808 a 9223372036854775807

Inteiros muito grandes

System.Single (Single/Float) 4 -3.402823E+38 a 3.402823E+38 Números de ponto flutuante

System.Double(Double/double)

8 -/+ 1.79769313486232E+308 Precisão Dupla de Ponto Flutuante

System.Decimal (Decimal/decimal)

16 -79228162514264337593543950335 a 79228162514264337593543950335

Cálculos Financeiros e Científicos que requiram grande precisão

System.Char(Char/char)

2 N/A Caracter Unicode

System.Boolean(Boolean/bool)

4 N/A True/False

System.DateTime(Date/date)

8 1/1/0001 12:00:00 AM a 12/31/9999 11:59:59 AM

Tempo

Linguagem de Programação ComercialProf. Charles Fortes

Page 18: LPC  - aula 1 - Introdução .NET

Built-in Value Types

Tipos valorados implicitam construtor

Se não iniciadas na contrução assumem os valores :

ZeroNullEmpty

Tipos valorados implicitam construtor

Se não iniciadas na contrução assumem os valores :

ZeroNullEmpty

Linguagem de Programação ComercialProf. Charles Fortes

Page 19: LPC  - aula 1 - Introdução .NET

Paralelo sobre Tipos de Dados

No DotNet tudo é derivado de System.Object

Isto facilita a interação entre os tipos e disponibiliza funções comuns como toString();

No DotNet tudo é derivado de System.Object

Isto facilita a interação entre os tipos e disponibiliza funções comuns como toString();

Linguagem de Programação ComercialProf. Charles Fortes

Page 20: LPC  - aula 1 - Introdução .NET

User-Defined Value Types

Criados a partir de Structs;

Possuem as Mesmas possibilidades das classes porém são passados por valor;

Devem ser utilizados para a criação de estruturas de armazenamento simples que não serão modificadas ou passadas por parâmetro muitas vezes.

Linguagem de Programação ComercialProf. Charles Fortes

Page 21: LPC  - aula 1 - Introdução .NET

Reference Types

Quando recebe um outro objeto, ele apenas faz um apontamento para os dados armazenados na memória e armazenas apenas esse ponteiro em sua stack.

O local onde os dados referenciados fica armazenado na memória é chamado de heap;

Toda Classe é um tipo por referencia;

Todo tipo por referência necessita construtor;

Quando recebe um outro objeto, ele apenas faz um apontamento para os dados armazenados na memória e armazenas apenas esse ponteiro em sua stack.

O local onde os dados referenciados fica armazenado na memória é chamado de heap;

Toda Classe é um tipo por referencia;

Todo tipo por referência necessita construtor;

Linguagem de Programação ComercialProf. Charles Fortes

Page 22: LPC  - aula 1 - Introdução .NET

Tipo Uso

System.Object A mãe de todas as classes dentro do .NET Framework. Dela que os filhos herdam métodos como ToString()

System.String Texto

System.Text.StringBuilder

Texto Dinâmico

System.Array Classe Mãe de todos os Array´s

System.IO.Stream Classe Abstrata responsável por Buffer.

System.Exception Classe mãe de todas as Exceções (Tratamento de Erros)

Linguagem de Programação ComercialProf. Charles Fortes

Exemplos de Tipo por referência

Page 23: LPC  - aula 1 - Introdução .NET

Reference Types X Value Types

Comparações

Quando utilizar um e o outro?

Comparações

Quando utilizar um e o outro?

Linguagem de Programação ComercialProf. Charles Fortes

Page 24: LPC  - aula 1 - Introdução .NET

String

Strings são exceções entre os Tipos por Referência Strings são tratadas como tipos valorados Sempre que concatenamos uma string ele gera uma nova instancia

de string em uma nova Stack contendo o valor da string antiga e da string adicionada:

Strings são exceções entre os Tipos por Referência Strings são tratadas como tipos valorados Sempre que concatenamos uma string ele gera uma nova instancia

de string em uma nova Stack contendo o valor da string antiga e da string adicionada:

Utilização da string || Alocalçao na Memóriastring str = “Colé” // nova(Stack[0]) : “Colé” str += “doidin” // nova(Stack[1]) : “Colé doidin”

str += “perdeu!” // nova(Stack[2]) : “Colé doidin perdeu!”

Linguagem de Programação ComercialProf. Charles Fortes

Page 25: LPC  - aula 1 - Introdução .NET

Solução

A solução é a utilização do métodos métodos Concat, Join ou Format quando estiver trabalhando com pequenas quantidades de dados

A Utilização do StringBuilder para manipular grandes manipulações de string

A solução é a utilização do métodos métodos Concat, Join ou Format quando estiver trabalhando com pequenas quantidades de dados

A Utilização do StringBuilder para manipular grandes manipulações de string

Linguagem de Programação ComercialProf. Charles Fortes

Page 26: LPC  - aula 1 - Introdução .NET

CollectionsCollections

Linguagem de Programação ComercialProf. Charles Fortes

Page 27: LPC  - aula 1 - Introdução .NET

1. Tipos de Listas• Listas• Pilhas• Filas• Dicionários de Dados

2. Listas Genéricas• List<t>

3. Dicionários Genéricos• Dictionary<t, t>

** Demonstração no Compilador **

Linguagem de Programação ComercialProf. Charles Fortes

Page 28: LPC  - aula 1 - Introdução .NET

Tratamento de ErrosTratamento de Erros

Linguagem de Programação ComercialProf. Charles Fortes

Page 29: LPC  - aula 1 - Introdução .NET

Try || Catch || Finally || Exceptions

Linguagem de Programação ComercialProf. Charles Fortes

Explicar na IDE

Page 30: LPC  - aula 1 - Introdução .NET

Linguagem de Programação Comercial

Prof. Charles Fortes

Dúvidas?