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”. 05/11/2015 3 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. 05/11/2015 4 Versões principais(compatíveis entre si): – 2003: 1.1 – 2008: 3.5 – 2005: 2.0 – 2010: 4.0 05/11/2015 5 Common Language Runtime CLR 05/11/2015 6 CLR Ambiente de execução; Padronizado pela ECMA; Fornece suporte às linguagens de programação do .Net: – VB.Net; – C#; – C++; – J#; – F# – Etc?????? 05/11/2015 7 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). 05/11/2015 8 C# VB.Net F# Compilador ... Código nativo MSIL Compilador JIT do CLR 05/11/2015 9 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 05/11/2015 10 Common Type System (CTS) Tipo Por Valor (“Value Types”) Por Referência (“Reference Types”) Definidos pelo Usuário Pré-definidos Auto-descritos Inteiros Enumerações (“Enums”) Ponto Flutuante Estruturas Interface Ponteiro Equivalentes por Nome Pré-definidos String Delegates Object “Boxed Value Types” “Boxed Enums” Equivalentes Estruturais Arrays 05/11/2015 11 Olá, Mundo – C# using System; class olaMundo { public static void Main() { String msg = "Ola Mundo!"; Console.WriteLine (msg); } } COMPILAR COM: csc olamundo.cs 05/11/2015 12 Assembly Código fonte Compilador Csc.exe, Vbc.exe,… C++, C#, Visual Basic ou qualquer outra linguagem .NET 05/11/2015 DLL ou EXE 13 Principais plataformas de desenvolvimento ASP .NET ASP .NET Web MVC Services Web Forms WPF e Windows Silverlight Forms ADO .NET – Dados e XML Biblioteca de Classes Básicas Common Language Runtime 05/11/2015 14 Qual é a motivação para esta arquitetura? Por que tantos tipos de frontends (clientes) diferentes? 05/11/2015 15 05/11/2015 16 HTML CSS JavaScript Flash Java Applet Linguagens “lentas”, limitadas (sem acesso a BD), Linguagens + simples, precisa da rede para funcionar, multiplataforma 05/11/2015 17 PHP ASP JSP Java Servlet Ruby ... ASP.NET Linguagens “rápidas”, poderosas, com acesso a BD, mais complexas, precisa da rede para funcionar, pode não ser multiplataforma 05/11/2015 18 Requisição Cliente X Servidor 05/11/2015 19 Resposta do Servidor ao Cliente 05/11/2015 20 O processamento principal vai ficar com o servidor: Algoritmos complexos, Regras de Negócio, Acesso ao BD 05/11/2015 21 Processamento! 05/11/2015 22 Interface com o usuário 05/11/2015 23 ! 05/11/2015 24 A situação anterior é péssima situação! Necessidade de criação de N respostas diferentes, dependendo do número de tipos de cliente! ! 05/11/2015 26 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 05/11/2015 27 Plataforma .Net: Linguagem C#, Geração de programas para Windows e Linux Mono 05/11/2015 28 Windows Forms, WPF: Windows Presentation Foundation 05/11/2015 29 Windows Forms Desktop 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; 05/11/2015 30 WPF Desktop 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. 05/11/2015 31 Web Forms Web 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): 05/11/2015 • Imperativo; • Código em C#. 32 Web Forms Acoplamento forte entre camadas! Web Forms Acoplamento forte entre camadas 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. 05/11/2015 35 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); 05/11/2015 37 Precisamos agora ver na prática a diferença entre algumas das abordagens citadas! 05/11/2015 38