1 / 15

Introduzione ad ASP

Introduzione ad ASP.net. Cos’è ASP .net. Evoluzione di ASP Indipendente dal browser. Architettura dei file di ASP .net. Interoperabilità dei linguaggi (VB .net, C#, …) Stesso ambiente di sviluppo Stesse classi e namespaces ASP .net Codice delle pagine compilato

laken
Download Presentation

Introduzione ad ASP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduzione ad ASP.net

  2. Cos’è ASP .net • Evoluzione di ASP • Indipendente dal browser

  3. Architettura dei file di ASP .net • Interoperabilità dei linguaggi (VB .net, C#, …) • Stesso ambiente di sviluppo • Stesse classi e namespaces • ASP .net • Codice delle pagine compilato • Uso di linguaggio non di scripting ma VB.net,C#, Jscript .net • Separazione fra HTML e codice

  4. Vantaggi di .net • ADO .net • Accesso ai dati anche in modalità disconnessa • Installazione rapida • Assembly e file auto descrittivi • Assembly pubblici e privati • Sicurezza • Assembly contiene informazioni per la sicurezza e check di codice modificato (algoritmi hash) • Web services

  5. Message Queuing COM+ (Transactions, Partitions, Object Pooling) IIS WMI The .NET Framework VB C++ C# Perl Python … Web Services User Interface ASP.NET ADO.NET: Data and XML .NET Framework Class Library Common Language Runtime Win32

  6. Caratteristiche di C# • Completamente OO, a ereditarietà singola,compreso interfacce, funzioni virtuali e sovraccarico degli operatori • Insieme di tipi standard (Common Type System) • Supporto per la generazione automatica di documentazione • Accesso alla libreria .net e anche a chiamate API • Orientato alla programmazione senza uso di puntatori • Utilizzabile per le pagine asp. net

  7. Namespaces System Collections IO Security Runtime Configuration Net ServiceProcess Diagnostics Reflection Text Globalization Resources Threading

  8. Cosa serve per C# e ASP.net • Necessario il net. Framework, scaricabile dal sito della Microsoft • Ambiente di sviluppo: visual studio .net oppure versioni mirate (Visual Studio Web Developer) • Ciclo di vita di una pagina aspx

  9. ASP .Net • Una pagina ASP.NET è detta "web form" ed il modello di programmazione è un modello basato sui moduli. Si è cercato di giungere ad un modello per far si che, un'applicazione web somigliasse il più possibile ad un'applicazione desktop a finestre. • Un'applicazione ASP.NET quindi consiste in un insieme di web form, ognuno dei quali contiene oggetti.Sono oggetti ospitati ad esempio i pezzi di codice lato client (HTML), i controlli server ed altri oggetti ereditati ad esempio tramite la direttiva Import. • La classe compilata (assembly) viene scritta su disco e sopravvive in caso di reboot della macchina server, cioè non serve ricompilarla.

  10. Asp .NET • Quando un client richiede una pagina con estensione .aspx, sul server, i componenti che appartengono a quella pagina vengono compilati in un'unica unità. Questa unità è una classe che eredita dalla classe Object.Control.TemplateControl.Page. • Per questa classe Page può essere creata un'istanza ogni volta che viene richiesta la pagina aspx. L'oggetto risultante viene utilizzato per elaborare le richieste in arrivo e restituisce i dati al client richiedente. • La classe Page fa poi da contenitore per tutti i componenti appartenenti ad una pagina che sono essi stessi oggetti. • Non è lo scopo di questa guida esaminare dettagliatamente le classi del Framework .NET ma evidenzieremo alcuni aspetti della classe Page

  11. ASP .net • La pagina asp.net extende una classe di base Object.Control.TemplateControl.Page • Viene creata un'istanza ogni volta che viene richiesta la pagina aspx. L'oggetto viene utilizzato per elaborare le richieste in arrivo e restituisce i dati al client richiedente. • La classe Page fa poi da contenitore per tutti i componenti appartenenti ad una pagina che sono essi stessi oggetti. • In visual Web Developer 2010 oltre alla pagina .asp che contiene l’HTML e i controlli per la parte di front-end viene creato anche (come nei window form): • Un file .cs che contiene il codice legato agli eventi • Un file designer.cs che contiene i controlli inseriti nella pagina aspx

  12. Classe Page • Alcune delle proprietà della classe Page: • Application Per ogni applicazione web, vi è un'istanza di questo oggetto che è condivisa da tutti i client che accedono all'applicazione. • Cache Serve per archiviare dei dati che possono rimanere inalterati tra una richiesta di pagina el'altra. • EnableViewState Valore booleano che indica se i comandi server debbano o no mantenere il proprio ViewState • IsPostBack Indica se la pagina è caricata per la prima volta • Request Consente di accedere alle informazioni sulla richiesta HTTP • Response Consente di accedere e modificare la risposta HTTP • Session Riferimento all'oggetto Session che gestisce la sessione corrente • Alcuni metodi della classe Page • DataBind Associa i dati • FindControl Consente di trovare un comando nella pagina • MapPath Recupera il percorso fisico di uno specifico percorso virtuale

  13. Post Back • Prima dell'arrivo di ASP.NET, era usuale l'elaborazione degli input degli utenti, mediante 2 pagine. La prima pagina, era statica e conteneva un tag <form> che inviava (tramite l'attributo action) una serie di campi ad seconda pagina, dinamica, la quale si occupava di elaborare i valori inviati. • Una seconda tecnica era quella di avere il form in una pagina dinamica che inviava informazioni a se stessa. Nel form venivano usati dei campi nascosti (hidden) per passare alcune informazioni relative allo stato della pagina. Grazie a questo meccanismo si poteva capire se la pagina fosse stata richiesta per la prima volta o se avesse effettuato un post su se stessa, per poi agire di conseguenza. Questa tecnica è chiamata post back. Il post back è implementato in ASP.NET in modo invisibile al programmatore attraverso il controllo server etichettato <form runat="server">. <form runat="server"> .... vari controlli ... </form> • Questo equivale a • <form method=post action="nostra_pagina.aspx" runat="server">.... vari controlli ...<input type="hidden" name="isPostBack" value="true"></form> • Il form server side è indispensabile per gestire i controlli server (dall'area di testo alla GridView) si può omettere solo se non si prevede una interazione con la pagina. • L'attributo method predefinito è post e non get come in HTML, ed i valori sono disponibili ogni volta nella collezione Request.Form come in ASP.

  14. Postback • Con la stessa tecnica viene mantenuto lo stato di alcuni controlli grazie alla variabile ViewState. • Il ViewState è una variabile stringa, il cui valore, come si può notare nell'esempio, è codificato e serve per ricostruire lo stato della pagina, in quanto le comunicazioni HTTP client-server sono prive di stato. • Se leggiamo il sorgente di una pagina generata da un web form, notiamo la presenza del ViewState: • ...<body><form name="ctl00" method="post" action="orizzontale_b.aspx" id="ctl00"><div><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTc0MDEwNTM2MWRkrh4HGxooxoD8swfeDRec5C+Aedw=" /></div>... • La postback architecture ci da la possibilità di realizzare pagine HTML contenenti controlli con cui l'utente può interagire. I controlli scatenano eventi ed è compito dello sviluppatore realizzare gli opportuni gestori di eventi per gestire l'interazione.

  15. Eventi principali di una pagina aspx • Quando effettuiamo la richiesta di una web form, vengono sollevati alcuni eventi, fra cui i principali sono: • Page_Init generato quando la pagina viene inizializzata • Page_Load generato quando la pagina viene caricata • Page_Unload generato quando la pagina viene scaricata dalla memoria • La differenza tra il Page_Init ed il Page_Load è che nel Page_Init il ViewState non è stato ancora caricato, per cui i comandi mantengono i valori predefiniti anziché i valori impostati durante il postback. • Per gestire l'evento Page_Load, si ricorre di frequente alla proprietà IsPostBack della classe Page. Se IsPostBack è vera, ci troviamo in un contesto di postback, vale a dire che la pagina è stata caricata una prima volta ed è stata poi inviata al server in seguito al verificarsi di un evento sul client. Se IsPostBack è falsa, la pagina è stata caricata per la prima volta.

More Related