PDC - Engenharia - Plataforma Microsoft .NET

39
Plataforma .Net

Transcript of PDC - Engenharia - Plataforma Microsoft .NET

Page 1: PDC - Engenharia - Plataforma Microsoft .NET

Plataforma .Net

Page 2: PDC - Engenharia - Plataforma Microsoft .NET

Plataforma .Net

☑É uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações.

☑A plataforma .NET é executada sobre uma Common Language Runtime - CLR interagindo com um Conjunto de Bibliotecas Unificadas (framework)

Page 3: PDC - Engenharia - Plataforma Microsoft .NET

Plataforma .Net

☑O código fonte é compilado pela linguagem escolhida gerando um código intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language).

☑O novo código fonte gera um arquivo em linguagem de baixo nível, de acordo com o tipo de projeto.

Page 4: PDC - Engenharia - Plataforma Microsoft .NET

Compilados .Net

☑EXE - Arquivos Executáveis, Programas

☑DLL - Biblioteca de Funções

☑ASPX - Página Web

☑ASMX - Web Service

Page 5: PDC - Engenharia - Plataforma Microsoft .NET

Tipos de Dados

☑Value types: Armazenam seu conteúdo ao invés de armazenar a referência para um dado .(Ex: System.Int32 )

☑Reference Types: armazenam endereços ao invés de dados (Ex: System.String, System.Array,System.Object)

Page 6: PDC - Engenharia - Plataforma Microsoft .NET

Tipos de Value Types

☑Built-in type: são tipos bases fornecidos pelo próprio .Net

☑User-defined types: são conhecidos como Structures ou simplesmente Structs

☑Enumerators: é um símbolo relacionado a um valor fixo

Page 7: PDC - Engenharia - Plataforma Microsoft .NET

Exemplo Struct C#

struct Pair{ int _value1; int _value2; //construtorpublic Pair(int value1, int value2){

_value1 = value1; _value2 = value2;

}

public string ToString() {

return "The value1 is " + _value1+ " and the value2 is" + _value2;

}}

Page 8: PDC - Engenharia - Plataforma Microsoft .NET

Bibliotecas de Classe Básica

☑ADO.NET é a tecnologia dentro da plataforma .NET para acesso a diversas fontes de dados.

☑ASP.NET é um framework de programação construído sobre o CLR que permite a construção de aplicações Web.

☑XML Web Services são componentes Web que podem ser compartilhados por aplicações dentro de uma Intranet ou através da Internet

Page 9: PDC - Engenharia - Plataforma Microsoft .NET

Garbage collector

☑Inicialmente todos objetos são considerados lixos

☑As raízes (Ex. Referencias Estáticas, Referencias para objetos passados como parâmetros num método) são localizadas

☑Um grafo é construído.

☑Objetos que não estão no grafo são considerados lixo.

☑Reorganização da memória (Gerações).

Page 10: PDC - Engenharia - Plataforma Microsoft .NET

Gerações

☑O GC considera que objetos recém criados possuem uma maior probabilidade de serem removidos.

☑GC Heap é divido em três gerações, Gen 0, Gen 1, Gen2.

☑A geração 0 armazena objetos recém criados.

☑A gereação 1 armazena objetos sobreviventes a limpeza do GC na Gen 1

☑A geração 2 armazena objetos sobreviventes a limpeza do GC na Gen 2.

Page 11: PDC - Engenharia - Plataforma Microsoft .NET

C#

Page 12: PDC - Engenharia - Plataforma Microsoft .NET

Nome

C♯ é C Sharp

Brincadeira com C++

++ adição

♯ musical sobe o tom

♯ não é caractere padrão

# sinal de numeração utilizado

Page 13: PDC - Engenharia - Plataforma Microsoft .NET

Características

Orientada a Objetos

Tipagem estática...

DataTable table = new DataTable();

E Dinâmica

var otherTable = new DataTable();

Fortemente Tipada

otherTable = “teste”; //ERRO

if(1) {... //ERRO

Page 14: PDC - Engenharia - Plataforma Microsoft .NET

Feijão com arroz

using System; //import

namespace App.Teste { //package

public class TesteFinal : TestAbstrato, ITeste

{

private static readonly char sep = ‘&’; //static final

private string name;

public TesteFinal(string name)

{

this.name = name;

}

Page 15: PDC - Engenharia - Plataforma Microsoft .NET

Properties

public class Pessoa {

public string Nome { get; set; }

private int idade;

public int Idade {

get { return idade; }

set {

if (value < 0) { throw new Exception(); }

else { idade = value; }

}

}

Page 16: PDC - Engenharia - Plataforma Microsoft .NET

Partial Class

//arquivo a

public partial class Aluno : System.Web.UI.Page {...

//arquivo b

public partial class Aluno : IPessoa {...

//seria o mesmo que

public class Aluno : System.Web.UI.Page, IPessoa {...

Page 17: PDC - Engenharia - Plataforma Microsoft .NET

Using Resources

using(BinaryWriter writer = new BinaryWriter(file))

{

for(int i = 0; i < array.Length; i++)

{

writer.Write(array[i]);

}

}

//writer.Close() chamado automaticamente

Page 18: PDC - Engenharia - Plataforma Microsoft .NET

Named Arguments

//IMCUtils declaracao

public static float Calcula (int peso, int altura) {...

//utilização

IMCUtils.Calcula(70, 175);

IMCUtils.Calcula(peso: 70, altura: 175);

IMCUtils.Calcula(altura: 175, peso: 70);

//IMC = 22,86. Parabens, peso ideal =)

Page 19: PDC - Engenharia - Plataforma Microsoft .NET

Optional Arguments

public void setBorder(int size = 1, string color = “#000”) {...

setBorder(1, “#ff0000”); //normal

setBorder();

setBorder(1);

setBorder(“#ff0000”); //erro

setBorder(color: “#ff0000”); //ok

Page 20: PDC - Engenharia - Plataforma Microsoft .NET

Lambda Expressions

public class Aluno {

public string Nome { get; set; }

public int Nota { get; set; }

}

IList<Aluno> alunos;

var aprovados = alunos.Where(a => a.Nota >= 6);

//aprovados é uma coleção de alunos

Page 21: PDC - Engenharia - Plataforma Microsoft .NET

Delegate (parte 1)

public class Aluno

{

public delegate bool Selector(Aluno aluno);

public int Nota { get; set; }

public bool Esta(Selector selector)

{

return selector(this);

}

}

Page 22: PDC - Engenharia - Plataforma Microsoft .NET

Delegate (parte 2)

public class Regras

{

public static Aluno.Selector aprovado = a => a.Nota >= 6;

//utilizacao

aluno.Esta(aprovado) ? “Parabens” : “Loser”);

Page 23: PDC - Engenharia - Plataforma Microsoft .NET

ASP .Net

Page 24: PDC - Engenharia - Plataforma Microsoft .NET

☑ Tecnologia para Desenvolvimento de Aplicações Web

☑ Lançado em 2002 (.NET 1.0) (ASP+)

☑Atualmente se encontra na Versão 4.5

☑Sucessor do ASP 3.0 (Clássico)

☑Construído sobre a Plataforma .NET

ASP .NET

Page 25: PDC - Engenharia - Plataforma Microsoft .NET

Principais Diferenças (ASP x ASP .NET)

☑ ASP☑ Código Interpretado;

☑ Código Misturado;

☑ VbScript ;

☑ Benefícios da Tecnologia☑ Performance

☑ Segurança

☑ Código Gerenciado (CLR, GC, BCL)

☑ ASP .NET☑ Código Compilado

☑ Código Separado

☑ Multi Linguagem

Page 26: PDC - Engenharia - Plataforma Microsoft .NET

ViewState

☑Esta propriedade cria um campo oculto no formuláriocom os dados preenchidos nos controles, evitando quetenhamos a necessidade de realimenta-los manualmen-te;

☑A propriedade enableviewstate é utilizada pois caso umcontrole não possa retornar preenchido, como senha,este valor é desabilitado, impedindo que ao ser enviadoao servidor e retornar venha com o valor anterior.

Page 27: PDC - Engenharia - Plataforma Microsoft .NET

PostBack

☑O processo de postback é quando o servidor recebe osdados que o cliente digitou em uma caixa de texto ouqualquer outro controle, faz o processo interno e retornaao cliente a mesma página já com processo completo edevidamente alterada.

☑O autopostback é muito utilizado em combo para quequando o usuário escolher um valor na lista, porexemplo o estado, este valor é enviado ao servidor quepopula a lista de Cidades e retorna ao cliente.

Page 28: PDC - Engenharia - Plataforma Microsoft .NET

Ciclo de Vida do ASP .NET

Page 29: PDC - Engenharia - Plataforma Microsoft .NET

Ciclo de Vida do ASP .NET

Estágio Descrição

Solicitação de página A solicitação de página ocorre antes que o ciclo de vida da página comece.Quando a página é solicitada por um usuário, ASP.NET determina se a página precisa ser analisada e compilada (portanto, começando a vida de uma página) ou se uma versão em cache da página pode ser enviada em resposta sem executar a página.

Iniciar Na etapa inicial, as propriedades da página, como Request e Response são definidas.Nesse estágio, a página também determina se o request é um postback ou um novo request e define a propriedade IsPostBack.Além disso, durante a etapa inicial, a propriedade UICulture da página é definida.

Inicialização da página Durante a inicialização de página, os controles da mesma estão disponíveis e é definida a propriedade UniqueID de cada um deles.Os temas também são aplicados para a página.Se a solicitação atual for um postback, os dados PostBack ainda não foram carregados e valores da propriedade do controle não foram restaurados com os valores do ViewState.

Carga Durante o carregamento, se a solicitação atual é um postback, as propriedades de controle serão carregadas com informações recuperadas do ViewState e do ControlState.

Validação Durante a validação, o método Validate de todos os controles de validação são chamados, este define a propriedade IsValid de cada um dos controles validadores da página.

Tratamento de evento PostBack

Se a solicitação for uma postback, quaisquer manipuladores de eventos são chamados.

Renderização Antes da renderização, o viewstate é salvo para a página e todos os controles.Durante a fase de renderização, a página chamará o método Render para cada controle, fornecendo um escritor de texto que grava a saída para o OutputStream() da propriedade Response da página.

Descarregar Unload é chamado quando a página tiver sido processada, enviada para o cliente e está pronta para ser descartada.Neste ponto, as propriedades da página, como Response e Request são descarregados e toda limpeza será executada.

Page 30: PDC - Engenharia - Plataforma Microsoft .NET

Propriedades do Projeto

Ao utilizar este tipo de projeto automaticamente o visual Studio irá abrir uma página de nome Default.aspx que é a página padrão do projeto.

Page 31: PDC - Engenharia - Plataforma Microsoft .NET

Principais Componentes ASP .NET

☑Page (ASPX) – Armazena a interface de usuário (HTML)

☑Code Behind (CS) – Armazena o código (.NET) da página(ASPX)

☑Web.Config – Armazena as configurações da aplicaçãoWEB

☑Master Page – Define um layout padrão para as páginas

Page 32: PDC - Engenharia - Plataforma Microsoft .NET

Componentes do projeto

Projeto

Configuração da aplicação em XML

Ferramentas web

Permite eventos de inicialização e finalização de sessão

Page 33: PDC - Engenharia - Plataforma Microsoft .NET

Criação e Configuração de Páginas

Default.aspx

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content><asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

<h2>Welcome to ASP.NET!

</h2><p>

To learn more about ASP.NET visit <a href="http://www.asp.net" title="ASP.NET Website">www.asp.net</a>.</p><p>

You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.

</p></asp:Content>

Page 34: PDC - Engenharia - Plataforma Microsoft .NET

Criação e Configuração de Páginas

Site.master

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head runat="server">

<title></title><link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /><asp:ContentPlaceHolder ID="HeadContent" runat="server"></asp:ContentPlaceHolder>

</head><body>

<div class="main"><asp:ContentPlaceHolder ID="MainContent" runat="server"/>

</div></body></html>

Page 35: PDC - Engenharia - Plataforma Microsoft .NET

Informações importantes

☑Todo formulário asp deve estar em uma tag form com o atributo runat=“server” setado, do contrário uma excessão é lançada.

Ex.:<form id="form1" runat="server">

<div><asp:Button ID="Button1" runat="server" Text="Button" />

</div></form>

☑Pode haver apenas uma tag form runat=“server” por arquivo aspx.

Page 36: PDC - Engenharia - Plataforma Microsoft .NET

Informações importantes

☑Cada elemento asp pode ser referenciado code behindatravés de seu id.

Ex.: Default.aspx

<form id="form1" runat="server"><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button OnClick="Button1_Click“ />

</form>

public partial class _Default : System.Web.UI.Page{

protected void Page_Load(object sender, EventArgs e) { }protected void Button1_Click(object sender, EventArgs e){

string value = TextBox1.Text;}

}

Default.aspx.cs

Page 37: PDC - Engenharia - Plataforma Microsoft .NET

Web User Controls

☑A classe UserControl está associado a arquivos com extensões .ascx.

☑Permite criar controles customizados;

☑Permite aninhar controles;

Page 38: PDC - Engenharia - Plataforma Microsoft .NET

Dúvidas

Page 39: PDC - Engenharia - Plataforma Microsoft .NET

Av. Cesário Alvim, 3521Bairro Brasil – CEP38400-696Uberlândia – MG

(34) 3222-9571http://[email protected]