Content Management

  • Perché non s’intitola “Web Content Management“, come il sito a cui fa riferimento?
  • Perché non ci sono i link per i siti di riferimento, magari con un piccolo sommario, come prevede Alessandro Lucchini (il curatore del libro)?
  • Perché l’obiettivo è andare oltre a Jakob Nielsen, superare l’era guru, e poi nessun intervento riesce a dire qualcosa di più di quello che già si è detto?

Il proposito è di andare oltre la fase di studio del web content, per vedere nella pratica quali sono i problemi e come vengono affrontati.

Bene, allora dateci più esempi pratici, più case history, più dettagli, dati e informazioni. Qualcosa del genere si può trovare negli interventi degli esperti del settore, ma spesso hanno poco spazio a disposizione e la trattazione è superficiale.

Nella prefazione si legge che l’intento del libro è che diventi uno strumento di riflessione per la nuova generazione di content manager. Può effettivamente essere uno strumento da cui partire, poiché la panoramica sul web content è ampia, non sempre riesce a scendere nei particolari, ma certo non si può prescindere da questi concetti.

Comprendiamo i dubbi di Giovanni Porzio, l’avvocato del diavolo di questo testo, ma vogliamo essere ottimisti.

  • E’ pur vero che chi scrive i contenuti dei siti italiani il più delle volte non conosce nemmeno gli elementi basilari di una comunicazione usabile
  • E’ ancor più vero che sono poche le aziende in Italia disposte ad assumere una persona per la gestione editoriale del proprio sito, mentre le web agency, eccetto le più grandi, arrancano con il personale al minimo, i programmatori
  • È vero che dietro il free-lance ci sono migliaia di ore di lavoro non pagate e che spesso le collaborazioni sono il fanalino di coda, seppure rilevanti numericamente, dell’editoria online.

Ma vogliamo essere ottimisti e crediamo che finché ci saranno corsi e master come quello di Ateneo Multimediale e pubblicazioni come Content Management, si potrà diffondere la consapevolezza della comunicazione in Internet.

In conclusione, è dalla formazione e dalle sue emanazioni che si crea la cultura della comunicazione online e di Internet non possiamo farne a meno e dobbiamo imparare a gestirlo: cominciamo da Content Management (un consiglio rivolto a tutti gli addetti, non solo i web content manager).

Informazioni

Content Management – Progettare, produrre e gestire i contenuti per il Web ¤ a cura di Alessandro Lucchini ¤ pagine 416 ¤ prezzo 23.00 euro ¤ edito da Apogeo

ASP.NET: I file di configurazione – Codice sorgente dell’esempio

Sorgenti: config_errore.aspxweb.configerrorpage.aspxglobal.asax

Scarica i sorgenti: aspnet12.zip

Articolo a cui si riferisce il codice: ASP.NET: I file di configurazione

config_errore.aspx

  1 <%@ Page Language="VB" %>
  2 
  3 <!
  4 # nome: Config_errore.aspx #
  5 # scritto da: Antonio Volpon #
  6 # data creazione: 30 Novembre 2001 #
  7 # ultima modifica: 30 Novembre 2001 #
  8 # copyright: Antonio Volpon #
  9 >
 10 
 11 <script runat="server" language="VB">
 12 
 13 Sub Page_Load()
 14 
 15   Dim strSelect As String
 16   Dim objDataSet As New DataSet()
 17   Dim objDataReader As OleDbDataReader
 18   
 19 End Sub
 20 
 21 </script>
 22 

web.config

  1 <?xml version="1.0" encoding="utf-8" ?>
  2 <configuration>
  3  <appSettings>
  4  <add key="ConnectionString" value="Provider=SQLOLEDB.1;data source=antoniov;initial catalog=Biblioteca;uid=anon;pwd=;" />
  5  </appSettings>
  6  <system.web>
  7  <customErrors mode="On" defaultRedirect="errorpage.aspx" />
  8  <sessionState mode="Off" />
  9  </system.web>
 10 </configuration>

errorpage.aspx

  1 <%@ Page Language="VB" %>
  2 
  3 <!
  4 # nome: errorpage.aspx #
  5 # scritto da: Antonio Volpon #
  6 # data creazione: 30 Novembre 2001 #
  7 # ultima modifica: 30 Novembre 2001 #
  8 # copyright: Antonio Volpon #
  9 >
 10 
 11 <script runat="server" language="VB">
 12 </script>
 13 
 14 <html>
 15   <head>
 16     <link rel="stylesheet" href="css/aspnet.css" type="text/css">
 17     </link>
 18     <title>Errore</title>
 19   </head>
 20   <body>
 21   
 22     <div class="titolo">
 23       Errore
 24     </div>
 25     
 26     <hr noshade="true" size="1" width="100%">
 27     
 28     <div class="txtb" id="risposta">Si e’ verificato un errore durante il caricamento della pagina. Ci scusiamo per l’inconveniente</div>
 29     
 30   </body>
 31 </html>
 32 
 33 <html>
 34 <body>

global.asax

  1 <%@ Import Namespace="System.Diagnostics" %>
  2 
  3 <script language="VB" runat="server">
  4 
  5 Sub Application_Error(objSender as Object, objArgs as EventArgs)
  6 
  7   Dim strLogName As String = "Errori Web"
  8   Dim strMessage As String = "Url " & Request.Path & " Errore: " & Server.GetLastError.ToString
  9 
 10   If (Not EventLog.SourceExists(strLogName)) Then
 11     EventLog.CreateEventSource(strLogName, strLogName)
 12   End if
 13 
 14   Dim ELLog as New EventLog
 15   ELLog.Source = strLogName
 16   ELLog.WriteEntry(strMessage, EventLogEntryType.Error)
 17   
 18 End Sub
 19 
 20 </script>

ASP.NET: I file di configurazione


Corso ASP.NET: dodicesima puntata

Esempio funzionante | Sorgente | Scarica il sorgente (zip)

Chi di voi ha realizzato in passato vere e proprie applicazioni con Asp, si è certamente scontrato con la difficoltà di prendere il progetto sviluppato in locale e portarlo in produzione. Le differenze di configurazione tra i server (in particolare Iis) dà a volte risultati imprevisti, che magari si manifestano quando il sito è già stato avviato.

ASP.NET risolve questa problematica gestendo le configurazioni dei server e degli applicativi utilizzando due file in formato Xml:

  • web.config – può essere utilizzato per ogni applicazione e definisce la configurazione e le politiche di sicurezza delle pagine componenti l’applicazione
  • machine.config – è un unico file che contiene la configurazione comune a tutto il server

Con ASP.NET viene anche ridiscusso il ruolo di Global.asa (Global.asax da questa versione), che non si occupa più di contenere informazioni sulla configurazione dell’applicazione, ma contiene piuttosto parti di codice comune.

Web.config

Web.config facilita la sincronizzazione tra ambiente di prova e ambiente di produzione. Può contenere:

  • variabili comuni a tutte le applicazioni
  • configurazioni per le sessioni
  • opzioni per la gestione degli errori
  • informazioni per la sicurezza

Vediamo la configurazione in azione con un semplice esempio: il reindirizzamento ad una pagina in caso di errore.

Abbiamo creato una semplice pagina che genera un errore (è dichiarato un DataSet ma non sono importati i namespace di ADO.NET).

Il semplice file di configurazione, che ospitiamo nella stessa cartella della pagina, ha una forma del tipo:

  1 <?xml version="1.0" encoding="utf-8" ?>
  2 <configuration>
  3  <appSettings>
  4  <add key="ConnectionString" value="Provider=SQLOLEDB.1;data source=antoniov;initial catalog=Biblioteca;uid=anon;pwd=;" />
  5  </appSettings>
  6  <system.web>
  7  <customErrors mode="On" defaultRedirect="errorpage.aspx" />
  8  <sessionState mode="Off" />
  9  </system.web>
 10 </configuration>

Nell’esempio sono presenti due elementi di interesse:

  • è aggiunta una chiave che permette di centralizzare l’uso della stringa di connessione utilizzata per connettersi ad un database
  • il tag customErrors definisce la pagina da richiamare in caso di errore

Per accedere alla chiave da una pagina aspx è sufficiente utilizzare una sintassi del tipo ConfigurationSettings.AppSettings(“ConnectionString”)

Global.asax

Abbiamo detto che il file global.asax da questa versione non ospiterà più elementi di configurazione: questa eredità viene presa da web.config.

Global.asax è ora un “contenitore” di codice comune ad un’applicazione web. Viene impiegato tra l’altro per:

  • importare dei namespace a livello di applicazione per non doverli dichiarare in ogni pagina
  • eseguire operazioni all’avvio e al termine delle sessioni e dell’applicazione (come già accadeva in parte con Asp)
  • eseguire del codice al verificarsi di una condizione di errore

Nel prossimo esempio vediamo proprio come è possibile gestire una condizione di errore salvando un log nel registro degli eventi.

La struttura di global.asax è la seguente:

  1 <%@ Import Namespace="System.Diagnostics" %>
  2 
  3 <script language="VB" runat="server">
  4 
  5 Sub Application_Error(objSender as Object, objArgs as EventArgs)
  6 
  7   Dim strLogName As String = "Errori Web"
  8   Dim strMessage As String = "Url " & Request.Path & " Errore: " & Server.GetLastError.ToString
  9 
 10   If (Not EventLog.SourceExists(strLogName)) Then
 11     EventLog.CreateEventSource(strLogName, strLogName)
 12   End if
 13 
 14   Dim ELLog as New EventLog
 15   ELLog.Source = strLogName
 16   ELLog.WriteEntry(strMessage, EventLogEntryType.Error)
 17   
 18 End Sub
 19 
 20 </script>

Al verificarsi di un errore (se questo non viene già intercettato dal codice presente nella pagina), viene scatenato l’evento Application_Error. A questo punto viene verificata la presenza di un log “Errori Web” che viene eventualmente creato e popolato con la descrizione dell’errore verificatosi.

L'event viewer con gli errori scatenati