Come accedere all'head via codice in asp.net

Giorgio Borelli

Una esigenza sentita per chi programma in asp.net è quella di poter controllare gli elementi dell'head di una pagina aspx in maniera programmatica, ovvero via codice di programmazione. Tramite codice C# o VB è possibile gestire: aggiungere, modificare o rimuovere gli elementi presenti nell'head quali title, meta tag e risorse, il tutto in maniera semplice ed elegante. Manipolare l'head in asp.net è semplice, andiamo a scoprire come fare. Prosegue...

Categorie: ASP.NET

Tags: , ,

VS.PHP un Add-in per creare progetti PHP con Visual Studio

Giorgio Borelli

Scrivere codice e progetti PHP con Visual Studio tramite l'addin VS.PHP

Il PHP è sicuramente uno dei linguaggi lato server più diffusi ed usato per lo sviluppo web, sostenuto da una vasta ed attiva community, possiamo tranquillamente affermare che la maggior parte dei siti web vengono realizzati in PHP. A contrapporsi al PHP abbiamo ASP.NET, il potente ed anch'esso diffuso linguaggio per il web facente parte del .NET Framework di casa Microsoft. In rete e tra gli sviluppatori è sempre acceso il dibattito tra quale dei due linguaggi sia il migliore, diversi articoli e thread in forum di settore hanno affrontato l'argomento PHP vs ASP.NET, quasi sempre senza giungere ad una conclusione definitiva.

PHP ed ASP.NET, due scuole di pensiero diverso, due community agli antipodiAdesso io non voglio entrare nel merito della questione su quale tra questi due linguaggi, entrambi OOP (Object Oriented Programming), sia migliore, piuttosto vorrei soffermarmi sulla questione sviluppo o megllio editor di sviluppo. Per chi sviluppa applicazioni web basate su ASP.NET, è indubbio che lo strumento principe, l'IDE (Integrated Development Environment)  per eccellenza è Visual Studio, e per quanto se ne dica bene degli altri: NetBeans, Eclipse, JBuilder, etc. Visual Studio a mio avviso rimane il miglior editor per la creazione di applicazioni web e non solo che ci sia sul mercato, e se non siete d'accordo con me, quanto meno per gli sviluppatori .NET rimane l'ambiente più conosciuto ed apprezzato, pertanto dovendosi, magari per sopravvenute esigenze lavorative confrontarsi con il PHP, a malincuore pensano di dover abbandonare il loro editor preferito.

Probabilmente questo è solo un brutto ricordo, esiste infatti un addin per Visual Studio, VS.PHP, che una volta installato ci consente di realizzare e gestire applicazioni PHP all'interno di Visual Studio alla stessa identica maniera di ASP.NET. Non ci credete? Allora continuate a leggere questo articolo.

Prosegue...

Categorie: ASP.NET | PHP | Visual Studio

Tags: , ,

Come specificare un HttpHandler nel web.config per applicazioni ASP.NET

Giorgio Borelli

Aggiungere gli httphandler alla propria applicazione web in asp.netGli HttpHandlers di ASP.NET consentono di elaborare una risposta a fronte di una qualsivoglia richiesta al web server (IIS). Usare gli HttpHandlers permette di personalizzare la risposta da inviare al client (il browser) non solo per una classica pagina, ma per qualsivoglia risorsa sia stata richiesta, sia questa una immagine un file pdf o un file di risorse .resx ed altro ancora.

Implementarli nella propria applicazione web offre potenzialità enormi, ed il loro uso è relativamente semplice, questi non sono altro che una implementazione dell'interfaccia IHttpHandler, in grado di prendere in carico il processo della richiesta (HttpContext) ed elaborarne una risposta, per questo a fronte di richieste diverse (pagine, risorse, immagini, etc...) è possibile implementare Handlers diversi così da fornire risposte diverse.

Lo scopo di questo articolo non è quello però di descrivere il funzionamento degli HttpHandler, ma tanto quello di vedere come aggiungerli alla nostra applicazione web tramite il web.config, andiamo a scoprire come fare.

Prosegue...

Categorie: ASP.NET

Tags: , , , , , , ,

URL Routing in ASP.NET 4.0

Giorgio Borelli

Tecnica di riscrittura degli url tramite il routing di asp.net 4.0L'url di un indirizzo web deve essere il più semplice e comprensibile possibile, ed al suo interno deve contenere possibilmente quelle parole che già ne fanno non soltanto capire il contenuto della pagina di destinazione, ma anche consentire una memorizzazione più semplice.

Questo è vero non soltanto in un'ottica SEO (Search Engine Optimization), dove url privi dell'estensione della pagina e di codici e identificativi in querystring per pagine dinamiche consente una miglioria in termini dei risultati di ricerca da parte dei motori, ma anche per gli utenti navigatori che più facilmente ricordano ed identificano il contenuto dell'indirizzo web.

Per far ciò il .NET framework giunto alla sua versione 4.0 ha migliorato e semplificato la tecnica dell'URL Routing (introdotta con il .NET 3.5 SP1), che consente con grande semplicità la scrittura di url molto più user friendly. Implementarla costa davvero poca fatica, andiamo a scoprire come fare.

Prosegue...

Categorie: ASP.NET | Seo | Web

Tags: , , ,

How to fix: Impossibile trovare i file di risorse per questa pagina. Verificare che il file di risorse esista e riprovare

Giorgio Borelli

Pagina con l'eccezione Impossibile trovare la classe di risorse per questa pagina

Se vi si è sollevata questa eccezione, e ricevete il messaggio d'errore "Impossibile trovare la classe di risorse per questa pagina" il problema risiede in una errata gestione dei file di risorse di ASP.NET. Risolvere l'eccezione è molto semplice, vediamo come funzionano i file di risorse con estensione .resx e prevenire così il generarsi di questa eccezione a run-time.

Prosegue...

Categorie: ASP.NET | fix

Tags: , , ,

Formattare un numero in euro con C# e ASP.NET

Giorgio Borelli

simbolo euro e valuta corrente (currency) in ASP.NET e C#La formattazione di un numero, sia esso intero o in virgola nella valuta corrente ed in particolar modo in euro è un'esigenza con la quale presto o tardi qualsiasi sviluppatore asp.net deve confrontarsi, niente di chè intendiamoci, però basta davvero poco per avere una formattazione corretta e fare le cose fatte bene anzichè ricorrere a metodi e simboli ascii che non soddisfano appieno il nostro obbiettivo.

Per scrivere il simbolo dell'euro in ASP.NET e C# ricorreremo al metodo Format della classe String, andiamo a vedere come fare.

Prosegue...

Categorie: ASP.NET | C#

Tags: ,

Scatenare l'evento SelectedIndexChanged del controllo RadioButtonList di ASP.NET

Giorgio Borelli

Il Web Server Control RadioButtonList di ASP.NET con selezione di un elemento radioIl controllo RadioButtoList di ASP.NET rientra nella famiglia dei WebServer Control List, ossia di quei controlli che forniscono informazioni a forma di lista. I list control sono tutti accomunati dal fatto che posseggono una proprietà Items per la gestione dei singoli elementi della lista, che nel caso del RadioButtoList si traduce in una lista di pulsanti Radio che consentono di specificare una sola scelta tra quelle possibili.

L'uso del RadioButtoList con l'attributo runat="server" quindi gestito lato server dal .NET Framework facilita l'uso di questo controllo, che in HTML classico deve essere implementato da più button Radio gestiti poi via Javascript, inoltre il RadioButtonList così come tutti i list control si adattano molto bene a gestire automaticamente la rappresentazione di dati derivanti da una qualsiasi sorgente dati (database, xml, ecc...) con un semplice databinding.

L'uso dei RadioButtonList è frequente nelle pagine web, per sondaggi, moduli e scelte di selezione in genere, spesso a questo controllo è necessario associare un'azione al cambio della selezione di un radio button. Questo comportamento viene implementato a mezzo dell'evento SelectIndexChanged del RadioButtonList. Semplicemente all'interno dell'evento SelectIndexChanged andiamo ad inserire il codice lato server per il comportamento che vogliamo generare allo scatenarsi di tale evento; eppure, sebbene possa sembrar un'azione banale l'evento SelectIndexChanged del RadioButtonList una volta implementato non sembra funzionare correttamente, e quasi come se non ci fosse, cosa succede? Come possiamo risolvere?

Prosegue...

Categorie: .NET framework | ASP.NET

Tags: ,

Settare il DefaultButton in presenza del Login Control

Giorgio Borelli

Effettuare il submit del controllo login direttamente alla pressione del tasto invio in ASP.NETCome visto nell'articolo precedente, a partire da ASP.NET 2.0 è possibile impostare il DefaultButton ed il DefaultFocus di una pagina aspx, anche in presenza di MasterPage.

Il concetto e le problematiche di questo argomento si estendono anche in presenza di controlli genitori, primo fra tutti il controllo Login di ASP.NET, essendo infatti il bottone di Login interno al controllo (più precisamente nell'AnonymousTemplate), la stringa identificativa dell'ID del bottone "Accedi" viene modificata dal parser di ASP.NET al momento del rendering della pagina, creando di fatto un'eccezione durante la compilazione, poichè la proprietà DefaultButton si aspetta un ID di un controllo che erediti direttamente da IButtonControl, e non riconoscendolo genera l'eccezione.

Così come spiegato in presenza di MasterPage, anche per il controllo Login è possibile implementare più di una soluzione per far sì che il submit del login avvenga direttamente alla pressione del tasto Invio (Enter), andiamo a scoprire come fare.

Prosegue...

Categorie: ASP.NET

Tags:

Settare il DefaultButton sulle pagine ASP.NET in presenza di MasterPage

Giorgio Borelli

Impostare il focus ed il bottone (submit) di default all'interno di una pagina aspx, per scatenare l'evento OnClick direttamente premendo il tasto invioIn ASP.NET le pagine aspx sono basate su un unico form (con l'attributo runat="server"), all'interno della pagina il defaultfocus ed il defaultbutton vengono impostati sui primi controlli letti nel codice della pagina, si può variare questo comportamento di default specificando diversamente grazie alle proprietà "defaultfocus" e "defaultbutton" del main form, a dette proprietà assegniamo l'ID di un controllo TextBox e di un Button, in modo che la prima Text attiva sulla quale scrivere ed il primo bottone attivo al quale corrisponderà un click (causando un PostBack) alla pressione del tasto invio (Enter) saranno quelle da noi specificate. Identico risultato si può ottenere nel codebehind specificando sempre l'ID del controllo in questo modo Page.Form.DefaultFocus = "ClientIdControl"; e Page.Form.DefaultButton = "ClientIdControl";.

Fin qui davvero tutto molto semplice, le cose si complicano un pò in presenza di una MasterPage o di un controllo Login, peggio ancora se abbiamo la combinazione delle due cose. Con una MasterPage il problema si pone in quanto specificando la proprietà defaultbutton nella sua form, l'ID del controllo client non viene riconosciuto se si trova all'interno di una pagina aspx per la quale è stata specificata la suddetta MasterPage. Nel caso di un controllo login il problema è analogo, l'ID del controllo button non viene riconosciuto in quanto annidato all'interno del controllo Login di asp.net. Come fare allora per specificare un defaultbutton che reagisca direttamente alla pressione del tasto Invio in questi casi? La soluzione esiste, e possono essere anche più di una, basterà scrivere poche righe di codice aggiuntivo o usare dei piccoli trucchetti, vediamo come fare.

Prosegue...

Categorie: ASP.NET

Tags:

Scatenare un PostBack da un evento Javascript con la funzione __doPostBack

Giorgio Borelli

Scatenare un PostBack con la funzione Javascritp __doPostBackJavascript è un linguaggio di scripting lato client che ha permesso di fare un grosso passo in avanti nell'evoluzione delle pagine web, consentendo di passare dai semplici e spartani siti statici in puro html, a siti web dinamici ed interattivi, migliorando così l'esperienza di navigazione dell'utente rendendola anche più user friendly.

Ciò nonostante, essendo per l'appunto un linguaggio lato client, ovvero viene eseguito dal browser (il client) dell'utente, non è in grado d'interagire con il server e con i linguaggi lato server quali ad esempio ASP.NET, a meno di non usare dei trucchi che consentono di "superare" la natura stateless del web, quali ad esempio i cookies. Ci sono casi in cui per uno sviluppatore web risulterebbe davvero comodo, al verificarsi di un evento client side, quale potrebbe essere un comunissimo evento onclick su un link (tag a), poter passare allo scatenarsi di detto evento un valore dal client al server e trattarlo con un linguaggio server side, senza usare i macchinosi e più lenti cookies o altre tecniche simili.

Javascript ci viene in aiuto anche in questo caso, mette infatti a disposizione una funzione in grado di scatenare un PostBack della pagina web al verificarsi dell'evento onclick o di un qualsiasi altro evento client side con Javascript. Questa funzione prende il nome di __doPostBack, andiamo a scoprire nel dettaglio come funziona e quanto può risultare utile se usata correttamente.

Prosegue...

Categorie: ASP.NET | html | Javascript

Tags: , ,