![Page 1: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/1.jpg)
Introdução ao Desenvolvimento
ASP.NET
Paulo SousaInstituto Superior de Engenharia do Porto
Instituto Politécnico do Porto
![Page 2: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/2.jpg)
Índice
Plataforma .netC#ASP.netVisual Studio.netWeb forms ASP.netValidação de formuláriosManutenção de estado
![Page 3: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/3.jpg)
Plataforma .net
Introdução ao desenvolvimentoASP.net
![Page 4: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/4.jpg)
Visão .net
![Page 5: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/5.jpg)
.net framework
Plataforma de desenvolvimento
Máquina virtual para execução CLR (Common Language Runtime)
Biblioteca de classes.net framework Class LibraryConjunto de classes base sobre a qual se desenvolve
![Page 6: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/6.jpg)
.net framework (2/2)
Win32Win32
MessageMessageQueuingQueuing
COM+COM+(Transactions, Partitions, (Transactions, Partitions,
Object Pooling)Object Pooling)IISIIS WMIWMI
Common Language RuntimeCommon Language Runtime
.NET Framework Class Library.NET Framework Class Library
ADO.NET: Data and XMLADO.NET: Data and XML
Web ServicesWeb Services User InterfaceUser Interface
VB C++ C#
ASP.NETASP.NET
Perl Python …
![Page 7: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/7.jpg)
.net framework (namespaces)
![Page 8: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/8.jpg)
CLR
.NET Framework Class Library Support.NET Framework Class Library Support
Thread SupportThread Support COM MarshalerCOM Marshaler
Type CheckerType Checker Exception ManagerException Manager
MSIL to NativeMSIL to NativeCompilersCompilers
CodeCodeManagerManager
GarbageGarbageCollectionCollection
Security EngineSecurity Engine DebuggerDebugger
Class LoaderClass Loader
![Page 9: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/9.jpg)
Características CLR
Gestão de memória Garbage collectionEvita “perdas” de memória
ExcepçõesTratamento de erros mais elegante
Type safetyValidações de compile e run time para casts e inicializações
VersioningGestão de processos e threadsSistema comum de tiposTudo são objectosOrientada aos “componentes”
![Page 10: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/10.jpg)
“Máquina virtual”
Instanciação de Common LanguageInfrastructure (CLI)
Standard ECMA
Um mesmo formato de ficheiro binárioUm sistema de tipos comumMeta dadosLinguagem intermédia (MSIL)
Permite várias linguagens de programação
Conjunto de classes base
![Page 11: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/11.jpg)
Implementações CLI
Microsoft CLR
Shared Source CLIMono (Linux)Rotor (FreeBSD)
![Page 12: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/12.jpg)
Compilação e Execução
Class LoaderClass LoaderClass Loader
JIT Compilerwith optionalverification
JIT CompilerJIT Compilerwith optionalwith optionalverificationverification
ExecutionExecution
Security ChecksSecurity Checks
EXE/DLL(MSIL and metadata)
EXE/DLL(MSIL and metadata)
ClassLibraries
(MSIL and metadata)
ClassLibraries
(MSIL and metadata)
Trusted,pre-JITedcode only
Call to anuncompiled
method
Runtime Engine
ManagedNative Code
CompilerCompiler SourceCode
SourceCode
![Page 13: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/13.jpg)
Assembly
Blocos de construção de aplicaçõesUnidade fundamental de deployment, versioning, reutilização e segurançaColecção de tipos e recursosFornece meta-informação ao CLR para execuçãoTodos os tipos existem no contexto de um assemblyTipos de assembly: DLL, EXE
![Page 14: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/14.jpg)
Aplicação .net
(Vídeo)
![Page 15: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/15.jpg)
CTS
Common Type SystemInfra-estrutura para inter-operabilidadeentre linguagens de programaçãoOrientado a objectosSuporta tipos de referência e tipos de valorCompatível com linguagens procedimentais
![Page 16: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/16.jpg)
CTS (2/2)
![Page 17: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/17.jpg)
Value-types & Reference-types
Value typesContém directamente os dadosNão pode ser null
Reference typesContém referência para objectoPode ser null
20int sp
String cp olá
![Page 18: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/18.jpg)
Garbage Collection
(Vídeo)
![Page 19: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/19.jpg)
C#
Introdução ao desenvolvimento .net
![Page 20: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/20.jpg)
Introdução
Nova linguagem tendo por base o C/C++Também vai buscar inspiração ao Java ;-)Mantém o investimento e know-how existenteCódigo mais “limpo”Construções sintáticas especiais para tirar partido do framework
Tudo são objectosFicheiros com extensão .csDeclaração e definição de métodos no mesmo ficheiro
![Page 21: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/21.jpg)
Tipos de dados
objectstringsbyte, short, int, longbyte, ushort, uint, ulongcharfloat, double, decimalbool
Estes tipos são alias para os tipos definidos na framework
Ex., int == System.Int32
![Page 22: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/22.jpg)
Classes e namespaces
Organização do código dentro de classesClasses organizadas dentro de namespaces
namespace Demo {
public class MyClass {
...
}
}
![Page 23: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/23.jpg)
Métodos
Sintaxe semelhante ao C/C++Podem ser públicos ou privadosSuporta overloading
public class MyHelloWorld {...public void SayHello(){ ... }
private void SetTitle(String Title){ ... }
}
![Page 24: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/24.jpg)
Passagem de parâmetros
Por valorPor referência
out – parâmetro de saídaref – parâmetro de entrada e saída
public void func1(int x){ ... }
public void func2(out int x){ ... }
public void func2(ref int x){ ... }
![Page 25: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/25.jpg)
Herança
Apenas existe herança simples
public class MyClassBase {
...
public void Func() { ... }
}
public class MyClassDeriv : MyClassBase {
...
public new void Func() { base.Func(); ... }
}
![Page 26: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/26.jpg)
Herança (2/2)
Métodos não são virtuais por defeito
public class MyClassBase {
...
public virtual void Func() { ... }
}
public class MyClassDeriv : MyClassBase {
...
public override void Func() { base.Func(); ... }
}
![Page 27: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/27.jpg)
Propriedades
Sintaxe alternativa para acesso a membros de dados da classe mas com as vantagens dos métodos
public class Button : Control
{
private string m_caption;
public string Caption {
get { return m_caption; }
set { m_caption = value; Repaint(); }
}
...
}
![Page 28: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/28.jpg)
Operadores
Atribuição=
Relacionais< <= > >= == !=
Lógicos&& || !
Aritméticos+ - * / %+= -= *= /= ++ --
![Page 29: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/29.jpg)
Constantes
Pré-definidasnulltrue false
De utilizadorconst string Ver = “1.0b”;
![Page 30: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/30.jpg)
Criação de objectos
// definição da classe
public class MyClass { ... }
// definição da variável
MyClass obj;
// criação do objecto
obj = new MyClass();
![Page 31: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/31.jpg)
Construtores
Seguem as regras do C/C++Mesmo nome da classeSem tipo de retornoPodem ter ou não argumentos
public class MyClass {
...
public MyClass() { ... }
public MyClass(String Title) { ... }
}
![Page 32: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/32.jpg)
Arrays
Suportados ao nível da biblioteca base de classes em System.Array
// declaração do vector
String[] vec;
// criação do vector
vec = new String[10];
// número de elementos pode ser dinâmico
vec = new String[n];
![Page 33: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/33.jpg)
Ciclos// repetição n vezesfor (int x = 0; i < vec.Length; i++)
Console.WriteLine(vec[i]);
// repetição condicionalint i = 0;while (i < vec.Length){
Console.WriteLine(vec[i]); i++;
}
// enumeração (colecções)foreach (String x in vec)
Console.WriteLine(x);
![Page 34: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/34.jpg)
Condicionais// teste de decisão
if (i < vec.Length)
Console.WriteLine(vec[i]);
elseConsole.WriteLine(“Erro!!!”);
// teste múltiplo
switch (x)
{
case 1: ...; break;
case 2: ...; goto case 3;
case 3: ...; break;
default: ...; break;
}
![Page 35: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/35.jpg)
Interfaces
Semelhantes a classes mas não têm implementação dos métodosApenas definem as assinaturasTodos os métodos são públicos
public interface IMovimentavel{void MoverEsquerda();void MoverDireita();...
}
![Page 36: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/36.jpg)
Implementação de Interfaces
Qualquer classe pode implementar uma ou mais interfaces
public class Pessoa : IMovimentavel
{
void MoverEsquerda() { ... }
void MoverDireita() { ... }
...
}
![Page 37: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/37.jpg)
Enumerados
Fortemente “tipados”Sem conversão automática para intSuportam operadores +, -, ++, --, &, |, ^, ~
Pode-se definir tipo de dados baseByte, short, int, long
enum Color : byte { Red = 1, Green = 2, Blue = 4, Black = 0, White = Red | Green | Blue
}
![Page 38: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/38.jpg)
structs
Semelhantes a classes, exceptoAlocação na stack e não no heapNão suporta herançaCópia (atribuição) de contéudo e não de referênciaIdeal para conceitos pequenos (ex., Complex)Utilizada nos tipos primitvos da framework (ex. int)
BenefíciosComo não são alocadas no heap não colocam carga sobre o mecanismo de garbage collection
![Page 39: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/39.jpg)
Classes e estruturasclass CPoint { int x, y; ... }
struct SPoint { int x, y; ... }
SPoint sp = new SPoint(10, 20);
CPoint cp = new CPoint(10, 20);
10
20
10
10
CPoint
sp
cp
![Page 40: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/40.jpg)
delegates
Ponteiros (orientados a objectos) para métodosPermite múltiplos receptores
Cada delegate tem uma lista de invocaçãoPublish/subscribe
Base para o mecanismo de eventos
delegate void MouseEvent(int x, int y);
delegate double Func(double x);
Func fn = new Func(Math.Sin);
double x = fn(1.0);
![Page 41: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/41.jpg)
Comentários XMLclass XmlElement{
/// <summary>/// Returns the attribute with the given name and/// namespace</summary> /// <param name="name">/// The name of the attribute </param>/// <param name="ns">/// The namespace of the attribute, or null if /// the attribute has no namespace</param>/// <return>/// The attribute value, or null if the attribute /// does not exist</return>/// <seealso cref=" ="GetAttr(string)"/>public string GetAttr(string name, string ns) {
... ...}
}
![Page 42: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/42.jpg)
ASP.net
Introdução ao desenvolvimentoASP.net
![Page 43: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/43.jpg)
O que é ASP.NET?
Sucessor do ASPPáginas dinâmicas com processamentono servidor
Baseado no conceito de «web form»
Independente da linguagem de programçãoIndependente do browserIntegrado na framework .net
![Page 44: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/44.jpg)
ASP.net execution model
(Animação)
![Page 45: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/45.jpg)
ASP.net application
XML Data Database
InternetInternet
Page1.aspx
Page2.aspx
WebServices
WebServices ComponentsComponents
Web Forms
Code-behind pages
global.asax
Web.config
machine.config
ASP.NET Web Server
Out
put C
ache
Clients
![Page 46: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/46.jpg)
O que são web forms?.aspx extensionPage attributes
@ Page directive Atributos BodyAtributos FormControlos com atributo id
<%@ Page Language="vb" Codebehind="WebForm1.aspx.cs" SmartNavigation="true"%>
<html><body ms_positioning="GridLayout"><form id="Form1" method="post" runat="server">
<asp:Text id=“Text1” /></form>
</body></html>
<%@ Page Language="vb" Codebehind="WebForm1.aspx.cs" SmartNavigation="true"%>
<html><body ms_positioning="GridLayout"><form id="Form1" method="post" runat="server">
<asp:Text id=“Text1” /></form>
</body></html>
![Page 47: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/47.jpg)
O que é o “Code-Behind“ ?
Separação do código e do conteúdoProgramadores e designers UI podem trabalhar emseparadoControlos são objectos/variáveis acessíveis pelo ID
Form1.aspxForm1.aspx Form1.aspxForm1.aspx
<tags><tags> codecode
codecode
Separate filesSingle file
Form1.aspx.csForm1.aspx.cs
![Page 48: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/48.jpg)
Como funciona o code behind
Criar ficheiros separadosUsar directiva @ Page para associar osdois ficheiros
Page1.aspx
<% @ Page Language="c#"Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %>
Page1.aspx.cs
public class WebForm1{
private void cmd1_Click(){
…}
}
![Page 49: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/49.jpg)
Mudança de Paradigma
JSP/ASP/PHPScripts servidor (páginas dinâmicas) que geram resultado HTML
ASP.NETFormulários com modelo de programação próprio (semelhante aos ambientes visuais para desktop, ex., Visual Basic)Esconde a geração de HTML do programador
![Page 50: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/50.jpg)
Demo – Hello World
![Page 51: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/51.jpg)
Visual Studio .net
Introdução ao desenvolvimentoASP.net
![Page 52: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/52.jpg)
IDE
Visual Studio .net 2003Solução multi-projectoMulti-linguagemMultiplos tipos de projectoDebuggerGeração de código .netGeração de código nativo
Evolução do VC++ 6.0
![Page 53: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/53.jpg)
VS.net
Toolbox
Task List
SolutionExplorer
Dynamic Help
Editor/Browser
PropertiesServer
Explorer
Object Browser
![Page 54: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/54.jpg)
The Development Process
Create a DesignSpecification
Create a DesignSpecification
BuildBuild
Test andDebug
Test andDebug
Create the Interface and Write Code
Create the Interface and Write Code
Create a New ProjectCreate a
New Project
Visual Studio .NET
DeployDeploy
![Page 55: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/55.jpg)
Ficheiros
Solution files (.sln, .suo)Project files (.vbproj, .csproj)Web application files
ASP.NET Web Forms (.aspx)ASP.NET Web services (.asmx)Classes, code-behind pages (.vb or .cs)Global application classes (.asax)Web.config file
Project assembly (.dll)
![Page 56: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/56.jpg)
Estrutura de ficheiros de uma aplicação Web
wwwrootwwwroot
BinBin
InetpubInetpub
ProjectAProjectA
My DocumentsMy Documents
Development FilesDevelopment Files
Assembly FilesAssembly Files
WebForm1.aspxWebForm1.aspx.vb(Code-behind page)
Visual StudioProjects
Visual StudioProjects
SolutionSolution
Solution.sln ProjectA.vbproj
ProjectA.dllBuild
![Page 57: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/57.jpg)
Web forms ASP.net
Introdução ao desenvolvimentoASP.net
![Page 58: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/58.jpg)
O que são web forms?
Páginas dinâmicas com extensão aspxPreferencialmente com “code behind”
Têm um modelo de objectos para programção próprioNo formulário colocam-se controlos “server control”
Web controlHTML control
Esses controlos são do tipoTextboxRadio ButtonList...
![Page 59: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/59.jpg)
Modelo de Objectos
ServerRepresenta o servidor web (ex, IIS)
PageRepresenta a própria página web
RequestRepresenta o pedido efectuado pelo browser
ResponseRepresenta a resposta a enviar ao browser
![Page 60: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/60.jpg)
Objecto Server
MachineNameCreateObject()Execute()Transfer()MapPath()...
![Page 61: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/61.jpg)
Classe Page
ControlsUserFindControl()...
![Page 62: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/62.jpg)
Objecto Request
BrowserFilesFormServerVariables...
![Page 63: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/63.jpg)
Objecto Response
ContentTypeExpiresIsClientConnectedBinaryWrite()Clear()Redirect()...
![Page 64: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/64.jpg)
O que são “server controls”
Runat="server"Eventos são tratados no servidorPermite guardar estado (View state)
Funcionalidade intrínsecaModelo de programação comum
Todos possuem atributo Id e Text
Geram HTML de acordo com o browser do cliente
<asp:Button id="Button1" runat="server" Text="Submit"/><asp:Button id="Button1" runat="server" Text="Submit"/>
![Page 65: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/65.jpg)
HTML server controls
Baseados nos elementosHTMLRunat=serverExistem no namespace System.Web.UI.HtmlControls
<input type="text" id="txtName"runat="server" />
<input type="text" id="txtName"runat="server" />
![Page 66: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/66.jpg)
Web server controlsExistem no namespace System.Web.UI.WebControlsSintaxe asp.net
HTML gerado
<asp:TextBox id="TextBox1"runat="server">Text_to_Display</asp:TextBox>
<asp:TextBox id="TextBox1"runat="server">Text_to_Display</asp:TextBox>
<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>
<input name="TextBox1" type="text" value="Text_to_Display"Id="TextBox1"/>
![Page 67: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/67.jpg)
Que tipo de server controluser?
You need specific functionality such as a calendar or ad rotator
The control will interact with client and server script
You are writing a page that might be used by a variety of browsers
You are working with existing HTML pages and want to quickly add ASP.NET Web page functionality
You prefer a Visual Basic-like programming model
You prefer an HTML-like object model
Use Web Server Use Web Server Controls if:Controls if:
Use HTML Server Use HTML Server Controls if:Controls if:
Bandwidth is not a problemBandwidth is limited
![Page 68: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/68.jpg)
Demo – HTML gerado for um web form
![Page 69: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/69.jpg)
Ciclo de vida de uma página
Page_LoadPage_Load
Page_UnloadPage_Unload
Textbox1_ChangedTextbox1_Changed
Button1_ClickButton1_Click
Page is disposed
Page_InitPage_Init
Control eventsControl events
Change EventsChange Events
Action EventsAction Events
![Page 70: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/70.jpg)
O que são procediemntos de evento?
Acções em resposta à interacção com entre o utilizador e os controlos numa página
![Page 71: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/71.jpg)
Script no cliente
Interpretado pelo browserNão tem acesso ao servidor
<SCRIPT language="language">
Internet .HTMPages
![Page 72: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/72.jpg)
Script no servidor
compilado e executado no servidorTem acesso aos recursos do servidor
<SCRIPT language="language“ runat="server">
Internet .ASPXPages
![Page 73: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/73.jpg)
Client-Side and Server-Side Events
(Vídeo)
![Page 74: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/74.jpg)
Tratamento de eventos
Visual Studio .NET declares variables and creates an event procedure template
protected System.Web.UI.WebControls.Button cmd1;
private void InitializeComponent(){this.cmd1.Click += new System.EventHandler(this.cmd1_Click);this.Load += new System.EventHandler(this.Page_Load);
}
private void cmd1_Click(object s, System.EventArgs e) { … }
protected System.Web.UI.WebControls.Button cmd1;
private void InitializeComponent(){this.cmd1.Click += new System.EventHandler(this.cmd1_Click);this.Load += new System.EventHandler(this.Page_Load);
}
private void cmd1_Click(object s, System.EventArgs e) { … }
![Page 75: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/75.jpg)
Postback
(Vídeo)
![Page 76: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/76.jpg)
Page.IsPostback
Evento Page_Load é executado em cadapedidoUsar Page.IsPostBack para verificar se é 1º pedido ou não
private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack)
{// executes only on initial page load
}//this code executes on every request
}
private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack)
{// executes only on initial page load
}//this code executes on every request
}
![Page 77: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/77.jpg)
View state
Hidden ViewState control of name-value pairs stored in the Web Form
On by default, adjustable at Web Form and control level
<%@ Page EnableViewState="False" %>
<asp:ListBox id="ListName" EnableViewState="true" runat="server">
</asp:ListBox>
<%@ Page EnableViewState="False" %>
<asp:ListBox id="ListName" EnableViewState="true" runat="server">
</asp:ListBox>
<input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" />
<input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" />
![Page 78: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/78.jpg)
Demo – tratamento de dados num formulário
![Page 79: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/79.jpg)
Tratamento de dados
Obter dados de um web formUsar as variáveis criadas automaticamente para os controlos servidorRequest.Form[nome-do-input]
Transferir execução para outra páginaServer.Transfer()Response.Redirect()
![Page 80: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/80.jpg)
Demo – validators
![Page 81: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/81.jpg)
Perguntas & Respostas
Introdução ao desenvolvimentoASP.net
![Page 82: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/82.jpg)
Mais Informação...
MSDN Libraryhttp://msdn.microsoft.com/library
.net framework centerhttp://msdn.microsoft.com/netframework/
C#http://msdn.microsoft.com/vcsharp/
ASP.nethttp://www.asp.net
Laboratório .net do ISEP/IPPhttp://www.dei.isep.ipp.pt/labdotnet/
![Page 83: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/83.jpg)
Mais Informação...
Open CLIhttp://sourceforge.net/projects/ocl
Mono (.net @ Unix)http://www.go-mono.com/
ECMAhttp://www.ecma-international.org/
![Page 84: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/84.jpg)
Mais Informação...
Introduction to C# @ ECMAhttp://www.ecma-international.org/activities/Languages/Introduction%20to%20Csharp.pdf
Common Language Infrastructure @ ECMA
http://www.ecma-international.org/activities/Languages/ECMA%20CLI%20Presentation.pdf
![Page 85: Instituto Superior de Engenharia do Porto Instituto Politécnico do …psousa/aulas/ADES/... · 2003. 11. 13. · ASP.NET Paulo Sousa Instituto Superior de Engenharia do Porto](https://reader036.vdocuments.net/reader036/viewer/2022062509/61107772d4854f5ed0688ab3/html5/thumbnails/85.jpg)
Introdução ao Desenvolvimento
ASP.NET
Paulo SousaInstituto Superior de Engenharia do Porto
Instituto Politécnico do Porto