380 likes | 534 Views
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;
E N D
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; 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”.
Motivação de uso da plataforma • Projetado já tendo como objetivo: • Internet; • Banco de Dados. • Enquanto isso em outras plataformas: • adaptadas para a Internet; • acesso a bd complexo.
Versões principais(compatíveis entre si): • 2003: 1.1 • 2005: 2.0 • 2008: 3.5 • 2010: 4.0
CLR • Ambiente de execução; • Padronizado pela ECMA; • Fornece suporte às linguagens de programação do .Net: • VB.Net; • C#; • C++; • J#; • F# • Etc??????
CLR - Responsabilidades • Execuçã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).
C# VB.Net F# ... Compilador Código nativo Linguagem intermediária MSIL Compilador JIT do CLR
Biblioteca de classes:.Net Framework Class Library ASP.NET VB.NET C# ... .NET Framework Class Library System.Data System.Security System.Io System.Net Microsoft.CSharp ... CLR
Olá, Mundo – C# using System; class olaMundo { public static void Main() { String msg = "Ola Mundo!"; Console.WriteLine (msg); } } COMPILAR COM: csc olamundo.cs
Assembly Código fonte Compilador Csc.exe, Vbc.exe,… C++, C#, Visual Basic ou qualquer outra linguagem .NET DLL ou EXE
Principais plataformas de desenvolvimento ASP .NET MVC Web Services Web Forms ASP .NET WPF e Silverlight Windows Forms ADO .NET – Dados e XML Biblioteca de Classes Básicas Common Language Runtime
Qual é a motivação para esta arquitetura?Por que tantos tipos de front-ends (clientes) diferentes?
cliente web programa desktop servidor web
HTML CSS JavaScript Flash Java Applet Linguagens “lentas”, limitadas (sem acesso a BD), Linguagens + simples, precisa da rede para funcionar, multiplataforma cliente web
PHP ASP JSP Java Servlet Ruby ... ASP.NET servidor web Linguagens “rápidas”, poderosas, com acesso a BD, mais complexas, precisa da rede para funcionar, pode não ser multiplataforma
Requisição Cliente X Servidor métodos GET e POST servidor web cliente web
Resposta do Servidor ao Cliente servidor web cliente web HTML/CSS/JS Fragmentos de HTML JSON Formatos XML etc...
O processamento principal vai ficar com o servidor: Algoritmos complexos, Regras de Negócio, Acesso ao BD servidor web = plataforma estável
Processamento! servidor web
Interface com o usuário cliente web = plataforma variável
! cliente web 1 (HTML) servidor web html cliente web 2 (Flash) ... flash
A situação anterior é péssima situação! Necessidade de criação de N respostas diferentes, dependendo do número de tipos de cliente!
! cliente web 1 (HTML) web service soap/xml/json cliente web 2 (Flash) ... soap/xml/json
Processamento! C# Java C C++ Visual Basic Etc... + poderoso que HTML/CSS/JS, acessa BD, pode não depender de rede, pode não ser multiplataforma Programa Desktop
Plataforma .Net: Linguagem C#, Geração de programas para Windows e Linux Mono Programa Desktop
Windows Forms, WPF: Windows Presentation Foundation Programa Desktop em C#
Windows FormsDesktop em .Net • Abordagem 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;
WPFDesktop em .Net • Usa 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#.
ASP.NET MVC • 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 • Compete com o Adobe Flash; • Crossbrowser; • Mais voltado para design; • RIA: Rich Internet Applications; • Cases: olimpíadas, nba; • Abordagem declarativa (XAML);
Precisamos agora ver na prática a diferença entre algumas das abordagens citadas!