980 likes | 1.11k Views
Desenvolvimento ASP.net. Desenvolvimento ASP.net. 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
E N D
Desenvolvimento ASP.net • 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
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 Framework .net
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.
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
CLR - Arquitectura Faz a integração com a .NET Framework class library. Base Class Library (.NET Framework) Support Sequencia a distribuição dos componentes Tratamento de erros Procedimentos de segurança baseados na identificação do utilizador e na localização do código Thread Support COM Marshaler Fornece classes e interfaces para utilização de threads Type Checker Exception Manager Converte código MSIL para código nativo optimizado Security Engine Debug Engine Impede conversões inadequadas e gere o acesso às variáveis MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Permite fazer debug da aplicação Gestão de memória Class Loader Controla a execução do código Gere a metadata e o carregamento das classes necessárias.
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
Compilação e Execução EXE/DLL(MSIL and metadata) SourceCode Compiler ClassLibraries(MSIL and metadata) Class Loader JIT Compilerwith optionalverification Call to anuncompiledmethod Trusted,pre-JITedcode only ManagedNative Code Execution Security Checks Runtime Engine
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
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
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(); } } }
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
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 a “compact heap” • Actualiza as suas referências
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
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
Classes e namespaces • Organização do código dentro de classes • Classes organizadas dentro de namespaces namespace Demo { public class MyClass { ... } }
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) { ... } }
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) { ... }
Herança • Apenas existe herança simples public class MyClassBase { ... public void Func() { ... } } public class MyClassDeriv : MyClassBase { ... public new void Func() { base.Func(); ... } }
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(); } } ... }
Operadores • Atribuição • = • Relacionais • < <= > >= == != • Lógicos • && || ! • Aritméticos • + - * / % • += -= *= /= ++ --
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();
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) { ... } }
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);
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; }
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”
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
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 http://localhost/nomeDirectoriaVirtual
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 http://w2ks.dei.isep.ipp.pt/xxxxxx
Aplicação ASP.net ASP.NET Web Server Clients Web Forms Web.config Page1.aspx Code-behind pages OutputCache Internet Page2.aspx machine. config global.asax WebServices Database Components XML Data
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
Templates de Projectos • A lista dos templates de projectos baseia-se no perfil do utilizador e na escolha do tipo de projecto
IDE VS.net Editor/Browser Object Browser Toolbox SolutionExplorer Properties Server Explorer Task List Dynamic Help
Processo de Desenvolvimento Fase de análise e especificação Criar um projecto Produzir a interface e escrever código Fase de testes Compilar Visual Studio .NET Disponibilizar
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)
Estrutura de Ficheiros da Aplicação Web Inetpub My Documents wwwroot Visual StudioProjects Solution ProjectA Solution.sln ProjectA.csproj WebForm1.aspx WebForm1.aspx.cs(Code-behind page) Development Files Assembly Files Bin Build ProjectA.dll
DEMO 02: Visual Studio .NET • Apresentação do IDE VS.NET • Criar um Projecto de Aplicação Web em C#
O que são Web Forms? • Ficheiros com extensão aspx • Constituídos essencialmente por: • Atributo Page (directiva @Page) • Atributo Body • Atributo Form <%@ Page language="c#“ Codebehind="WebForm1.aspx.cs” Inherits=“nomeAplicacao.WebForm1”%> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server">
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
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 (http://www.asp.net/IEWebControls/Download.aspx) • HTML Server Controls • Controlos HTML básicos (DIV, IMG, HR ,...)
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 <asp:Button id=“Button1” runat=“server” Text=“Submit”/>
HTML server controls • Baseados nos elementos HTML • Runat=“server” • Existem no namespace System.Web.UI.HtmlControls <input type="text" id="txtName"runat="server" />
Web server controls • Existem no namespace System.Web.UI.WebControls Sintaxe ASP.net HTML gerado <asp:TextBox id="TextBox1" runat="server">Text_to_Display </asp:TextBox> <input name="TextBox1" type="text" value="Text_to_Display" Id="TextBox1"/>
Escolher o Controlo Adequado Optar por HTML Server Controls se: Optar por Web Server Controls se: Preferir trabalhar com a estrutura de objectos HTML Preferir trabalhar com um modelo de programação orientado a objectos Pretender fornecer rapidamente funcionalidades ASP.NET a páginas HTML já existentes Pretender desenvolver páginas que serão visualizadas por diversos tipos de browsers O controlo irá interagir com scripts no cliente e no servidor Necessitar de funcionalidades especificas tais como um “calendar” A largura de banda for limitada A largura de banda disponível não constituir um problema