Introdução ao .Net - Bruno Campagnolo de Paula weblog

Propaganda
Bruno C. de Paula
.Net Para Web
Plataforma .Net
1º Semestre 2009 > PUCPR >
Pós Desenvolvimento Web
Resumo da aula
Vamos começar a conhecer a
plataforma .Net e a linguagem C#.
Conhecer, 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”.
31/05/2017
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.
31/05/2017
4
Versões principais(compatíveis entre si):
– 2003: 1.1
– 2008: 3.5
– 2005: 2.0
– 2010: 4.0
31/05/2017
5
Common Language
Runtime
CLR
31/05/2017
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??????
31/05/2017
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).
31/05/2017
8
C#
VB.Net
F#
Compilador
...
Código nativo
MSIL
Compilador JIT
do CLR
31/05/2017
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
31/05/2017
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
31/05/2017
11
Olá, Mundo – C#
using System;
class olaMundo
{
public static void Main()
{
String msg = "Ola Mundo!";
Console.WriteLine (msg);
}
}
COMPILAR COM:
csc olamundo.cs
31/05/2017
12
Assembly
Código fonte
Compilador
Csc.exe, Vbc.exe,…
C++, C#,
Visual Basic
ou qualquer
outra
linguagem
.NET
31/05/2017
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
31/05/2017
14
Qual é a motivação para esta
arquitetura?
Por que tantos tipos de frontends (clientes) diferentes?
31/05/2017
15
31/05/2017
16
HTML
CSS
JavaScript
Flash
Java Applet
Linguagens “lentas”,
limitadas (sem acesso
a BD),
Linguagens + simples,
precisa da rede para
funcionar,
multiplataforma
31/05/2017
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
31/05/2017
18
Requisição Cliente X Servidor
31/05/2017
19
Resposta do Servidor ao Cliente
31/05/2017
20
O
processamento
principal vai
ficar com o
servidor:
Algoritmos
complexos,
Regras de
Negócio,
Acesso ao BD
31/05/2017
21
Processamento!
31/05/2017
22
Interface com
o usuário
31/05/2017
23
!
31/05/2017
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!
!
31/05/2017
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
31/05/2017
27
Plataforma .Net:
Linguagem C#,
Geração de
programas para
Windows e Linux
Mono
31/05/2017
28
Windows Forms,
WPF: Windows
Presentation
Foundation
31/05/2017
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;
31/05/2017
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.
31/05/2017
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):
31/05/2017
• 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.
31/05/2017
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);
31/05/2017
37
Precisamos agora ver na prática a
diferença entre algumas das
abordagens citadas!
31/05/2017
38
Download