.Net Para Web Plataforma .Net

38
.Net Para Web Plataforma .Net 2º Semestre 2009 > PUCPR > Tecnologia de Programação II Bruno C. de Paula

description

Bruno C. de Paula. .Net Para Web Plataforma .Net. 2º Semestre 2009 > PUCPR > Tecnologia de Programação II. Resumo da aula. Vamos revisar o que é a plataforma .Net e a linguagem C# . Revisar, principalmente , quais são as opções de desenvolvimento que temos para trabalhar com .Net; - PowerPoint PPT Presentation

Transcript of .Net Para Web Plataforma .Net

Page 1: .Net Para Web  Plataforma .Net

.Net Para Web

Plataforma .Net

2º Semestre 2009 > PUCPR > Tecnologia de Programação II

Bruno C. de PaulaBruno C. de Paula

Page 2: .Net Para Web  Plataforma .Net

Resumo da aulaVamos revisar o que é a plataforma .Net e a linguagem C#.

Revisar, principalmente, quais são as opções de desenvolvimento que temos para trabalhar com .Net;

Nosso objetivo principal hoje é entender porque apenas HTML/CSS/JavaScript não são suficientes para resolver todos os problemas e porquê a plataforma .Net pode nos ajudar.

Page 3: .Net Para Web  Plataforma .Net

O que é a plataforma .Net?

Microsoft;

Mudança radical no modelo de desenvolvimento e utilização de software;

“É uma mudança tão grande quanto a mudança do DOS para Windows”.

321/04/23

Page 4: .Net Para Web  Plataforma .Net

Motivação de uso da plataformaProjetado já tendo como objetivo:

–Internet;–Banco de Dados.

Enquanto isso em outras plataformas:–adaptadas para a Internet;–acesso a bd complexo.

421/04/23

Page 5: .Net Para Web  Plataforma .Net

Versões principais(compatíveis entre si): –2003: 1.1–2005: 2.0

521/04/23

–2008: 3.5–2010: 4.0

Page 6: .Net Para Web  Plataforma .Net

621/04/23

Common Language RuntimeCLR

Page 7: .Net Para Web  Plataforma .Net

CLRAmbiente de execução;Padronizado pela ECMA;Fornece suporte às linguagens de

programação do .Net:–VB.Net;–C#;–C++;– J#;–F#–Etc??????

721/04/23

Page 8: .Net Para Web  Plataforma .Net

CLR - ResponsabilidadesExecução do código MSIL:

– Microsoft Intermediate Language;– Corresponde ao bytecode do Java, mas

otimizado para a máquina alvo;–Código gerenciado.

Gerenciamento de memória;Criação de objetos;Usa biblioteca de classes comum (.Net) e

sistema de tipos comum (CTS).

821/04/23

Page 9: .Net Para Web  Plataforma .Net

921/04/23

C# VB.Net F# ...

Compilador

MSIL

Compilador JITdo CLR

Código nativo

Page 10: .Net Para Web  Plataforma .Net

Biblioteca de classes:.Net Framework Class Library

1021/04/23

ASP.NET VB.NET C#

CLR

...

.NET Framework Class Library

System.Data

System.Net

System.Security

Microsoft.CSharp

System.Io

...

Page 11: .Net Para Web  Plataforma .Net

Common Type System (CTS)

1121/04/23

TipoTipo

Por Valor(“Value Types”)

Por Referência(“Reference Types”)

Por Referência(“Reference Types”)

Pré-definidosPré-definidos Definidos pelo Usuário

Definidos pelo Usuário

Enumerações (“Enums”)

Enumerações (“Enums”)InteirosInteiros

Ponto FlutuantePonto Flutuante

Auto-descritosAuto-descritos

Equivalentes por Nome

Equivalentes por Nome

DelegatesDelegates

“Boxed Value Types”

“Boxed Value Types”

“Boxed Enums”“Boxed Enums”

Equivalentes Estruturais

Equivalentes Estruturais

ArraysArrays

EstruturasEstruturas

Interface Ponteiro Pré-definidos

String

Object

Page 12: .Net Para Web  Plataforma .Net

Olá, Mundo – C#

1221/04/23

using System;class olaMundo {

public static void Main() {

String msg = "Ola Mundo!";Console.WriteLine (msg);

}}

COMPILAR COM:csc olamundo.cs

Page 13: .Net Para Web  Plataforma .Net

1321/04/23

Código fonte

C++, C#, Visual Basic ou qualquer outra linguagem .NET

Csc.exe, Vbc.exe,…

Compilador

Assembly

DLL ou EXE

Page 14: .Net Para Web  Plataforma .Net

Principais plataformas de desenvolvimento

1421/04/23

Common Language Runtime

Biblioteca de Classes Básicas

ADO .NET – Dados e XML

ASP .NET ASP .NET

MVC

Web

Services

Web Forms

WPF e

Silverlight

Windows

Forms

Page 15: .Net Para Web  Plataforma .Net

Qual é a motivação para esta arquitetura?

Por que tantos tipos de front-ends (clientes) diferentes?

1521/04/23

Page 16: .Net Para Web  Plataforma .Net

1621/04/23

Page 17: .Net Para Web  Plataforma .Net

1721/04/23

HTMLCSS

JavaScriptFlash

Java Applet

Linguagens “lentas”,limitadas (sem acesso

a BD),Linguagens + simples,precisa da rede para

funcionar, multiplataforma

Page 18: .Net Para Web  Plataforma .Net

1821/04/23

PHPASPJSP

Java ServletRuby

...ASP.NET

Linguagens “rápidas”, poderosas, com acesso a BD, mais complexas, precisa

da rede para funcionar, pode não ser multiplataforma

Page 19: .Net Para Web  Plataforma .Net

1921/04/23

Requisição Cliente X Servidor

Page 20: .Net Para Web  Plataforma .Net

2021/04/23

Resposta do Servidor ao Cliente

Page 21: .Net Para Web  Plataforma .Net

2121/04/23

O processamento

principal vai ficar com o servidor:

Algoritmos complexos,Regras de Negócio,

Acesso ao BD

Page 22: .Net Para Web  Plataforma .Net

2221/04/23

Processamento!

Page 23: .Net Para Web  Plataforma .Net

2321/04/23

Interface com o usuário

Page 24: .Net Para Web  Plataforma .Net

2421/04/23

!

Page 25: .Net Para Web  Plataforma .Net

A situação anterior é péssima situação!

Necessidade de criação de N respostas diferentes,

dependendo do número de tipos de cliente!

Page 26: .Net Para Web  Plataforma .Net

2621/04/23

!

Page 27: .Net Para Web  Plataforma .Net

2721/04/23

Processamento!

C#Java

CC++

Visual BasicEtc...

+ poderoso que HTML/CSS/JS,

acessa BD, pode não depender de

rede, pode não ser multiplataforma

Page 28: .Net Para Web  Plataforma .Net

2821/04/23

Plataforma .Net:Linguagem C#,

Geração de programas para

Windows e Linux Mono

Page 29: .Net Para Web  Plataforma .Net

2921/04/23

Windows Forms,

WPF: Windows Presentation Foundation

Page 30: .Net Para Web  Plataforma .Net

3021/04/23

Windows FormsDesktop em .NetAbordagem imperativa (código C#):

–Descreve o programa como um conjunto de ordens (ações);

–Diz como fazer;–Poderosas, mas difíceis para "pessoas

normais";Exemplos:

–Swing, Windows Forms, etc;

Page 31: .Net Para Web  Plataforma .Net

3121/04/23

WPFDesktop em .NetUsa DirectX;Abordagem declarativa (XAML);

– Descreve o que deve ser feito, mas não se preocupa com como os procedimentos funcionam;

– Mais simples de serem entendido, mas menos poderoso;

Facilidade de usar editor visual;Exemplos:

– WPF, HTML, JavaFx.

Page 32: .Net Para Web  Plataforma .Net

Web FormsWeb em .Net – nossa disciplina!“Drag & Drop” de componentes;Geração de código HTML/ CSS/ JS;Abordagem híbrida formada por 2

componentes principais:–Modelo (páginas ASPX):

• Declarativo;• Semelhante a HTML;

–Seção de código (páginas ASPX.CS):• Imperativo;• Código em C#.

3221/04/23

Page 33: .Net Para Web  Plataforma .Net

Web FormsAcoplamento forte entre camadas!

Page 34: .Net Para Web  Plataforma .Net

Web FormsAcoplamento forte entre camadas

Page 35: .Net Para Web  Plataforma .Net

ASP.NET MVC

3521/04/23

Implementação da Microsoft para o paradigma MVC: Model View Controller;

Visual Studio 2010 ou http://www.asp.net/mvc

Alternativa a Web Forms;Separação entre camadas.

Page 36: .Net Para Web  Plataforma .Net
Page 37: .Net Para Web  Plataforma .Net

Silverlight (WPF/e)Web em .Net

3721/04/23

Compete com o Adobe Flash;Crossbrowser;Mais voltado para design;RIA: Rich Internet Applications;Cases: olimpíadas, nba;Abordagem declarativa (XAML);

Page 38: .Net Para Web  Plataforma .Net

3821/04/23

Precisamos agora ver na prática a diferença entre algumas das abordagens citadas!