View
109
Download
0
Category
Preview:
Citation preview
.Net Para Web
Plataforma .Net
2º Semestre 2009 > PUCPR > Tecnologia de Programação II
Bruno C. de PaulaBruno C. de Paula
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.
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”.
311/04/23
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.
411/04/23
Versões principais(compatíveis entre si): –2003: 1.1–2005: 2.0
511/04/23
–2008: 3.5–2010: 4.0
611/04/23
Common Language RuntimeCLR
CLRAmbiente de execução;Padronizado pela ECMA;Fornece suporte às linguagens de
programação do .Net:–VB.Net;–C#;–C++;– J#;–F#–Etc??????
711/04/23
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).
811/04/23
911/04/23
C# VB.Net F# ...
Compilador
MSIL
Compilador JITdo CLR
Código nativo
Biblioteca de classes:.Net Framework Class Library
1011/04/23
ASP.NET VB.NET C#
CLR
...
.NET Framework Class Library
System.Data
System.Net
System.Security
Microsoft.CSharp
System.Io
...
Common Type System (CTS)
1111/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
Olá, Mundo – C#
1211/04/23
using System;class olaMundo {
public static void Main() {
String msg = "Ola Mundo!";Console.WriteLine (msg);
}}
COMPILAR COM:csc olamundo.cs
1311/04/23
Código fonte
C++, C#, Visual Basic ou qualquer outra linguagem .NET
Csc.exe, Vbc.exe,…
Compilador
Assembly
DLL ou EXE
Principais plataformas de desenvolvimento
1411/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
Qual é a motivação para esta arquitetura?
Por que tantos tipos de front-ends (clientes) diferentes?
1511/04/23
1611/04/23
1711/04/23
HTMLCSS
JavaScriptFlash
Java Applet
Linguagens “lentas”,limitadas (sem acesso
a BD),Linguagens + simples,precisa da rede para
funcionar, multiplataforma
1811/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
1911/04/23
Requisição Cliente X Servidor
2011/04/23
Resposta do Servidor ao Cliente
2111/04/23
O processamento
principal vai ficar com o servidor:
Algoritmos complexos,Regras de Negócio,
Acesso ao BD
2211/04/23
Processamento!
2311/04/23
Interface com o usuário
2411/04/23
!
A situação anterior é péssima situação!
Necessidade de criação de N respostas diferentes,
dependendo do número de tipos de cliente!
2611/04/23
!
2711/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
2811/04/23
Plataforma .Net:Linguagem C#,
Geração de programas para
Windows e Linux Mono
2911/04/23
Windows Forms,
WPF: Windows Presentation Foundation
3011/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;
3111/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.
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#.
3211/04/23
Web FormsAcoplamento forte entre camadas!
Web FormsAcoplamento forte entre camadas
ASP.NET MVC
3511/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.
Silverlight (WPF/e)Web em .Net
3711/04/23
Compete com o Adobe Flash;Crossbrowser;Mais voltado para design;RIA: Rich Internet Applications;Cases: olimpíadas, nba;Abordagem declarativa (XAML);
3811/04/23
Precisamos agora ver na prática a diferença entre algumas das abordagens citadas!
Recommended