A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e.

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e."— Transcrição da apresentação:

1 Desenvolvimento ASP.net

2 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e estruturas ASP.net Paradigma ASP.net Visual Studio.NET Web Forms, Server Controls e User Controls Gestão do estado ADO.Net

3 Framework.net

4 3 Visão.net

5 4 Framework.net Conjunto de tecnologias para o desenvolvimento e utilização de componentes para a criação de: Web Forms Web Services Aplicações Windows Suporta todos as fases da produção de Software Desenvolvimento Debugging Distribuição Manutenção

6 5 Common Language Runtime - CLR Ambiente que permite a execução em tempo real de aplicações. Fornece um conjunto de serviços, ao nível das fases de desenvolvimento, de distribuição e de execução, que melhoram o desempenho da aplicação.

7 6 CLR - Serviços Fase de Desenvolvimento Diversas linguagens de programação Aumento de produtividade Fase de Instalação Processo de instalação resume-se a uma cópia de ficheiros (XCOPY) A gestão de versões de componentes é feita no processo de compilação Fase de Execução Performance Escalabilidade Disponibilidade

8 7 CLR - Arquitectura Class Loader MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Security EngineDebug Engine Type CheckerException Manager Thread SupportCOM Marshaler Base Class Library (.NET Framework) Support Gere a metadata e o carregamento das classes necessárias. Converte código MSIL para código nativo optimizado Controla a execução do código Gestão de memória Procedimentos de segurança baseados na identificação do utilizador e na localização do código Permite fazer debug da aplicação Impede conversões inadequadas e gere o acesso às variáveis Tratamento de erros Fornece classes e interfaces para utilização de threads Sequencia a distribuição dos componentes Faz a integração com a.NET Framework class library.

9 8 CLR - Características Sistema Comum de Tipos Conversão directa dos tipos de informação da Linguagem de programação para os da Framework Compilador Just-in-time (JIT) O JIT converte o código intermédio (MSIL) em código nativo optimizado Gestão de memória – Garbage Collection Evita problemas de falta de memória disponível Tratamento de Excepções Permite um tratamento de erros mais elegante Gestão de Threads

10 9 Compilação e Execução Class Loader JIT Compiler with optional verification Execution Security Checks EXE/DLL (MSIL and metadata) Class Libraries (MSIL and metadata) Trusted, pre-JITed code only Call to an uncompiled method Runtime Engine Managed Native Code Compiler Source Code

11 10 Assembly Contêm código e metadata para o CLR Constitui-se como unidade básica de distribuição Podem ser do tipo EXE e DLL

12 11 DEMO 01: ildasm.exe Desenvolver uma pequena aplicação em VB.NET e em C# Utilizar a aplicação ildasm para verificar o código MSIL gerado

13 12 DEMO 01 Ficheiro Demo1.cs csc /t:exe /out:Demo1CS.exe Demo1.cs ildasm Demo1CS.exe using System; namespace Ades { public class Demo { public static void Main() { Console.WriteLine("Ola Mundo"); Console.ReadLine(); } } }

14 13 DEMO 01 Ficheiro Demo1.vb vbc /t:exe /out:Demo1VB.exe Demo1.vb ildasm Demo1VB.exe Imports System namespace Ades public class Demo public Shared Sub Main() Console.WriteLine("Ola Mundo") Console.ReadLine() end Sub end class end namespace

15 14 Algoritmo Garbage Collection Espera que todas as threads terminem Verifica quais os objectos que estão referenciados. A memória ocupada pelos objectos não referenciados é libertada. Desloca os objectos válidos para acompact heap Actualiza as suas referências

16 15 Garbage Collection

17 Conceitos de C#

18 17 Introdução ao C# Linguagem baseada no C/C++ com inspiração no Java preserva investimentos e conhecimentos adquiridos permite um código mais limpo possui construções sintácticas especiais para retirar partido da framework Tudo são objectos Ficheiros têm extensão.cs

19 18 Tipos de dados object string sbyte, short, int, long byte, ushort, uint, ulong char float, double, decimal bool Estes tipos são alias para os tipos definidos na framework Por exemplo, int == System.Int32

20 19 Classes e namespaces Organização do código dentro de classes Classes organizadas dentro de namespaces namespace Demo { public class MyClass {... }

21 20 Métodos Sintaxe semelhante ao C/C++ Podem ser públicos ou privados Suporta overloading public class MyHelloWorld {... public void SayHello() {... } private void SetTitle(String Title) {... } }

22 21 Passagem de parâmetros Por valor Por referência out – parâmetro de saída ref – parâmetro de entrada e saída public void func1(int x) {... } public void func2(out int x) {... } public void func2(ref int x) {... }

23 22 Herança Apenas existe herança simples public class MyClassBase {... public void Func() {... } } public class MyClassDeriv : MyClassBase {... public new void Func() { base.Func();... } }

24 23 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(); } }... }

25 24 Operadores Atribuição = Relacionais >= == != Lógicos && || ! Aritméticos + - * / % += -= *= /= ++ --

26 25 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();

27 26 Construtores Seguem as regras do C/C++ Mesmo nome da classe Sem tipo de retorno Podem ter ou não argumentos public class MyClass {... public MyClass() {... } public MyClass(String Title) {... } }

28 27 Ciclos // repetição n vezes for (int x = 0; i < vec.Length; i++) Console.WriteLine(vec[i]); // repetição condicional int i = 0; while (i < vec.Length) { Console.WriteLine(vec[i]); i++; } // enumeração (colecções) foreach (String x in vec) Console.WriteLine(x);

29 28 Estruturas Condicionais // teste de decisão if (i < vec.Length) Console.WriteLine(vec[i]); else Console.WriteLine(Erro!!!); // teste múltiplo switch (x) { case 1:...; break; case 2:...; goto case 3; case 3:...; break; default:...; break; }

30 ASP.net

31 30 O que é o ASP.net? Sucessor da tecnologia Active Server Pages Independente da linguagem utilizada Independente do browser cliente Informação inserida no cliente é directamente processada no servidor (conceito de Web Form) Criação de aplicações Web distribuídas por meio de Web Services

32 31 IIS – Internet Information Server Servidor Web produzido pela Microsoft Incluído no Windows 2000, Windows XP Professional, Windows 2003 Suporte para ASP e ASP.Net Servidor IIS do DEI – w2ks.dei.isep.ipp.pt Referencia local ao IIS - localhost

33 32 Colocação de conteúdos ASP.net no IIS Num servidor IIS local Aceder a c:\inetpub\wwwroot Criar uma directoria para colocar as páginas do site Classificar essa directoria como sendo uma Directoria Virtual (recorrendo a Computer Management no painel de controlo) O acesso web é feito pela URL

34 33 Colocação de conteúdos ASP.Net no IIS No w2ks Os alunos de ADES têm uma directoria com o nome de xxxxxxw$ (onde xxxxxx representam os 6 dígitos da direita do numero do aluno) Essa directoria está classificada como directoria virtual (com nome xxxxxx). Para colocar conteúdos nessa directoria devem aceder a \\w2ks\xxxxxxw$ O acesso web é feito pela URL

35 34 Aplicação ASP.net XML Data Database Internet Page1. aspx Page2. aspx Web Services Components Web Forms Code- behind pages global. asax Web. config machine. config ASP.NET Web Server Output Cache Clients

36 35 Modelo de Execução ASP.net

37 36 Visual Studio.NET Um só IDE ( Integrated Development Environment ) para múltiplas linguagens e múltiplos tipos de projectos Múltiplas linguagens num só projecto Múltiplos projectos numa só solução Integra browser Permite efectuar debbug Gera código.net

38 37 Templates de Projectos A lista dos templates de projectos baseia-se no perfil do utilizador e na escolha do tipo de projecto

39 38 IDE VS.net Toolbox Task List Solution Explorer Dynamic Help Editor/Browser Properties Server Explorer Object Browser

40 39 Processo de Desenvolvimento Fase de análise e especificação Fase de análise e especificação Compilar Fase de testes Fase de testes Produzir a interface e escrever código Produzir a interface e escrever código Criar um projecto Criar um projecto Visual Studio.NET Disponibilizar

41 40 Ficheiros da aplicação Web Solution files (.sln,.suo) Project files (.vbproj,.csproj) Web application files Web forms (.aspx) User Controls (.ascx) Web services (.asmx) Classes, code-behind pages (.cs,.vb) Global application classes (.asax) Web.config file Project assembly (.dll)

42 41 Estrutura de Ficheiros da Aplicação Web wwwroot Bin Inetpub ProjectA My Documents Development Files Assembly Files WebForm1.aspx WebForm1.aspx.cs (Code-behind page ) Visual Studio Projects Solution Solution.sln ProjectA.csproj ProjectA.dll Build

43 42 DEMO 02: Visual Studio.NET Apresentação do IDE VS.NET Criar um Projecto de Aplicação Web em C#

44 43 O que são Web Forms? Ficheiros com extensão aspx Constituídos essencialmente por: Atributo Page ( ) Atributo Body Atributo Form Page language="c# Codebehind="WebForm1.aspx.cs Inherits=nomeAplicacao.WebForm1%> Page language="c# Codebehind="WebForm1.aspx.cs Inherits=nomeAplicacao.WebForm1%>

45 44 Web Forms – Modelo de Objectos As Web Forms possuem um modelo de objectos interno constituído por: Objecto Server Representa o Servidor Web Objecto Page Representa a página Web Objecto Request Representa o pedido efectuado pelo browser cliente Objecto Response Represente a resposta a enviar ao cliente pelo servidor

46 45 Web Forms – Atributo FORM Dentro do atributo FORM colocam-se controlos denominados Server Controls Web Server Controls Intrinsic controls ( asp:TextBox ) Validation controls ( asp:RequiredFieldValidator ) Rich controls ( asp:Calendar ) List-bound controls ( asp:DataGrid ) Internet Explorer Web Controls ( ) HTML Server Controls Controlos HTML básicos (DIV, IMG, HR,...)

47 46 Server Controls Runat=server São executados no Servidor Web Armazenam informação de estado (viewstate) Têm funcionalidades intrínsecas Modelo de programação comum Todos têm os atributos Id e Text Geram código HTML específico para o browser cliente

48 47 HTML server controls Baseados nos elementos HTML Runat=server Existem no namespace System.Web.UI.HtmlControls

49 48 Web server controls Existem no namespace System.Web.UI.WebControls Sintaxe ASP.net HTML gerado Text_to_Display Text_to_Display

50 49 Escolher o Controlo Adequado Necessitar de funcionalidades especificas tais como um calendar O controlo irá interagir com scripts no cliente e no servidor Pretender desenvolver páginas que serão visualizadas por diversos tipos de browsers Pretender fornecer rapidamente funcionalidades ASP.NET a páginas HTML já existentes Preferir trabalhar com um modelo de programação orientado a objectos Preferir trabalhar com a estrutura de objectos HTML Optar por Web Server Controls se: Optar por HTML Server Controls se: A largura de banda disponível não constituir um problema A largura de banda for limitada

51 50 DEMO 03: Server Controls Criar um Web Form Utilizar Server Controls ( Label, Button e calendar )

52 51 Como programar em ASP.NET Três métodos de implementar código: Colocar o código no mesmo ficheiro que contem os Server Controls misturado com as definições dos mesmos (mixed) Colocar o código no mesmo ficheiro que contem os Server Controls, mas numa zona separada das definições dos controlos (inline code) Colocar o código num ficheiro separado (code- behind pages) Por defeito o VS.NET utiliza ficheiros separados de código (code-behind)

53 52 Programação Inline Definição dos controlos e código no mesmo ficheiro Secções separadas para o código e para o HTML private void btn_Click(object sender, System.EventArgs e) {... } private void btn_Click(object sender, System.EventArgs e) {... }

54 53 Programação Code-Behind Código e HTML em ficheiros separados Programadores e Web Designers podem trabalhar de forma independente Form1.aspxForm1.aspx Form1.aspx.cs Form1.aspx.cs código código Ficheiros separadosUm só ficheiro

55 54 Como funcionam as página com Code-Behind? Ficheiros separados para interface e para o código A ligação dos ficheiros é feita pela Page no processo de pré-compilação (JIT-compile) Page1.aspx Page1.aspx.cs public class WebForm1 { private void cmd1_Click() { … }

56 55 O que são Event Procedures? Acções em resposta à interacção do utilizador com os controlos numa página

57 56 Scripts no cliente Só utilizados com controlos HTML Interpretado pelo browser e executado no cliente Não acede a recursos do servidor Internet.HTM Pages

58 57 Scripts no servidor Utilizado em qualquer tipo de Server Control Compilado e executado no servidor Tem acesso aos recursos do servidor Internet.ASPX Pages

59 58 Tratamento de eventos no Cliente e no Servidor

60 59 DEMO 04: Eventos Criar procedimentos que permitam responder a eventos capturados pelos controlos da web form

61 60 Tratamento do evento Postback - uso de Page.IsPostBack O evento Page_Load ocorre em cada pedido á página. A propriedade IsPostBack do objecto Page permite verificar se se trata do primeiro pedido ou não. private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { //Código executado somente no primeiro pedido } //este código será executado em todos os pedidos } private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { //Código executado somente no primeiro pedido } //este código será executado em todos os pedidos }

62 61 Como se processa o Postback?

63 62 DEMO 05: Page_Load Definir procedimento Page_load Utilizar a propriedade Page.IsPostBack

64 63 Análise daMaquina de Calcular

65 64 O que é validação da informação inserida pelo utilizador? Verifica se o valor inserido num controlo está minimamente coerente com a informação pretendida Bloqueia o processamento da página até que todos os valores sejam validos.

66 65 Validação no Cliente e no Servidor ASP.NET cria processos de validação no cliente e no servidor Validação no Cliente Dependente do browser Resposta imediata Reduz número de pedidos ao servidor Validação no servidor Repete todas as validações efectuadas no cliente Permite utilizar recursos externos (p.e. bases de dados) Valid? User Enters Data No Yes Error Message Client Server Web Application Processed

67 66 Controlos de Validação O ASP.NET fornece controlos de validação para: Comparar valores Comparar com uma fórmula pré-definida Verificar se um valor pertence a um intervalo Confrontar com expressões regulares Exigir preenchimento de informação Sumariar as validações inseridas numa página

68 67 Controlos de Validação Como utilizar? 1.Colocar o controlo na web form 2.Seleccionar o controlo que se pretende validar 3.Configurar as propriedades de validação

69 68 Controlos de validação Combinação Pode haver vários controlos de validação afectos a um mesmo objecto Somente o RequiredFieldValidator verifica se a informação está preenchida

70 69 Controlos de Validação RequiredFieldValidator InitialValue CompareValidator ValueToCompare or ControlToCompare Type Operator RangeValidator MinimumValue MaximumValue Type

71 70 Controlos de Validação RegularExpressionValidator Permite confrontar valores com expressões regulares O VS.NET já inclui algumas expressões regulares (p.e: s) *

72 71 Controlos de Validação CustomValidator Permite validar no cliente, no servidor, ou em ambos ClientValidationFunction OnServerValidate

73 72 Controlos de Validação ValidationSummary Apresenta as mensagens de erro de todos os controlos de validação da página

74 73 Propriedade Page.IsValid Verifica o estado de todos os controlos de validação inseridos na página private void cmdSubmit_Click(object s, System.EventArgs e) {if (Page.IsValid) {Message.Text = "Page is Valid!"; // Actualização de uma base de dados ou //outra tarefa sensivel } private void cmdSubmit_Click(object s, System.EventArgs e) {if (Page.IsValid) {Message.Text = "Page is Valid!"; // Actualização de uma base de dados ou //outra tarefa sensivel }

75 74 DEMO 06: Validações Usar controlos de validação Utilizar a propriedade Page.IsValid

76 75 O que é um User Control? Um User Control é um Web Server Control definido pelo programador Tem extensão.ascx Simplifica a reutilização de componentes de interface dentro de uma aplicação web Não contem as etiquetas, e Possui Contem o código para tratar os seus próprios eventos

77 76 Porquê utilizar User Controls? Reutilização de componentes de interface e de código Page2.aspx Control1.ascx Page1.aspx Page3.aspx Aplicação AAplicação B

78 77 Criação de um User Control Dois métodos: Utilizando o Visual Studio.NET Converter uma página ASP.NET para user control A interacção é feita alterando as propriedades As páginas utilizadoras do controlo deverão estar em flow layout public int pNum { get { return Convert.ToInt32(txtNum.Text); } set { txtNum.Text = Convert.ToString(value); } public int pNum { get { return Convert.ToInt32(txtNum.Text); } set { txtNum.Text = Convert.ToString(value); }

79 78 DEMO 07: User Control Criação de User Controls Utilização de User Controls

80 79 Gestão do estado First Name Last Name Please enter your logon information: John Submit Chen Web Server Login.aspx Web Server Hello John Chen Greetings.aspx Please enter your logon information: John Submit Chen Hello Greetings.aspx I forget who you are!! First Name Last Name Sem gestão de estadoCom gestão de estado

81 80 Tipos de Gestão de Estado No Servidor No Cliente Objecto Application Informação fica disponível para todos os utilizadores da aplicação Cookies Ficheiro de texto com informação do estado Objecto Session Só o utilizador da sessão terá acesso á informação Propriedade ViewState Permite guardar valores entre pedidos á página Base de Dados Poderá ser utilizada uma BD para manter informação do estado Query strings Informação inserida no final da URL

82 81 Gestão de Estado no Servidor O objecto Application permite armazenar informação de toda a aplicação web O uso de Session está condicionado á sessão do browser cliente A sessão ASP.NET é identificada pela propriedade SessionID do objecto session Servidor Web Cliente Variáveis de Sessão e de Aplicação SessionID

83 82 Gestão de Estado no Cliente Utilização de cookies ( persistentes / temporárias ) Menos fiável que a gestão no servidor O utilizador pode apagar as cookies Limite ao tamanho da informação Restrições no cliente ao tamanho de ficheiros Servidor Cliente Cookies

84 83 Global.asax Só um ficheiro Global.asax por aplicação Web Colocado na raiz da directoria virtual Utilizado para tratar os eventos dos objectos Application e Session

85 84 Global.asax Eventos tratados Application_Start Executado imediatamente antes da aplicação ser criada. Session_Start Executado imediatamente antes da sessão ser criada Application_BeginRequest Executado por cada pedido ao servidor Application_EndRequest Executado no final de cada pedido ao servidor Application_AuthenticateRequest Executado antes da autenticação de um utilizador Application_Error Executado por cada erro não previsto na aplicação Session_End Executado imediatamente antes do final da instância da sessão Application_End Executado imediatamente antes do final da instância da aplicação

86 85 Métodos de Autenticação do ASP.NET Windows Assenta no SO e no IIS Utilizador faz um pedido seguro que é transferido ao IIS Após as credencias serem verificadas, o pedido é satisfeito Forms É feito um acesso não autenticado a um Form HTML onde serão fornecidas as credenciais Após verificação é atribuída uma cookie de autenticação Microsoft Passport Serviço de autenticação centralizado XML Web Service

87 86 Métodos de Autenticação

88 87 Comparação entre os Métodos de Autenticação MétodoVantagensDesvantagens Windows Utiliza infra-estrutura Windows Controla acesso a informação sensível Não se adequa à maioria das aplicações web Forms Adequado à maioria das aplicações web Suporta todos os tipos de clientes Baseia-se em cookies Microsoft Passport Uma só assinatura para diversos sites web Não necessita de armazenar informação do utilizador Baseia-se em cookies Serviço pago

89 88 Acesso a Bases de Dados ADO.NET Namespace System.Data Modos de aceder à informação OLE DB – namespace System.Data.OleDb SQL - namespace System.Data.SqlClient Aplicativo.Net Informação SQL Server Objectos OLE DB Objectos OLE DB TDS

90 89 Objecto Connection SqlConnection / OleDbConnection Parâmetros da string de conexão Connection timeout Data source Initial catalog Integrated security Password Persist security info Provider User ID string strConn = "data source=localhost; " + "initial catalog=northwind; " + "integrated security=true"; SqlConnection conn = new SqlConnection(strConn); string strConn = "data source=localhost; " + "initial catalog=northwind; " + "integrated security=true"; SqlConnection conn = new SqlConnection(strConn);

91 90 Objecto Command SqlCommand / OleDbCommand Executar comandos SQL ExecuteReader – executa comandos que devolvam linhas de informação (ex: SELECT) ExecuteNonQuery – executa comandos que retornam dados (ex: INSERT, UPDATE, DELETE) ExecuteScalar - retorna um valor único como resultado de uma função agregada (ex: COUNT) SqlCommand com = new SqlCommand(); com.Connection = conn; com.CommandText="Select * From Tabela;"; SqlDataReader Info = com.ExecuteReader(); SqlCommand com = new SqlCommand(); com.Connection = conn; com.CommandText="Select * From Tabela;"; SqlDataReader Info = com.ExecuteReader();

92 91 Objecto DataReader SqlDataReader / OleDbDataReader Percurso forward-only em modo read-only Propriedades e métodos mais usais FieldCount IsClosed Close GetString GetInt32 SqlDataReader Info = com.ExecuteReader(); DataGrid1.DataSource=Info; SqlDataReader Info = com.ExecuteReader(); DataGrid1.DataSource=Info;

93 92 Acesso a Bases de Dados

94 93 DEMO 08: ADO.NET Objectos Connection, Command e DataReader

95 Perguntas & Respostas

96 95 Mais Informação... MSDN Library framework center C# ASP.net Laboratório.net do ISEP/IPP

97 96 Tutoriais

98 Desenvolvimento ASP.net


Carregar ppt "Desenvolvimento ASP.net. 1 Framework.net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e."

Apresentações semelhantes


Anúncios Google