Cheatsheets

Alcune utili cheatsheets!

JQuery:
http://chris4403.blogspot.com/2008/01/jquery-cheatsheet-wallpaper.html

Regular Expressions

Shell Programming

Altri (css, html, javascript, php, ...)

Trovare celle collegate in Microsoft Excel

Può capitare di dover gestire fogli excel con collegamenti ad altri file, e spesso, può capitare che rimangano dei collegamenti non voluti, causati magari da un taglia & incolla. Per trovare tutte le celle che contengono un collegamento ad un'altro file, scegliere "Trova" e inserire ":\" questo evidenzierà tutte le celle che contengono un collegamento ad un file.

Per verificare poi l'esistenza di errori di riferimenti non validi risulta utile lo strumento "controllo errori" che evidenzia eventuali errori / incoerenze nelle formule.
Fate attenzione perchè questo strumento identifica come errore anche una formula corretta nella sintassi ma non coerente con le altre a fianco.

Asp.net MVC development

Ecco a voi una raccolta di tools utili nello sviluppo di applicazioni web con la piattaforma asp.net mvc.


Microsoft Express Downloads
Qui troverete le versioni express di Visual Studio e molti altri prodotti Microsoft.


Asp.Net MVC
http://www.asp.net/MVC/ e il link al download della Web Platform Installer.


MVC Routing debug
http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx
Permette di visualizzare quali regole di routing vengono applicate all'url inserito. Nel caso di regole di routing particolarmente complicate può rivelarsi estremamente utile, anzi fondamentale!


.Net Reflector
http://www.red-gate.com/products/reflector/
Immancabile per qualunque programmatore .net!


Firefox
Firefox, non tanto per il browser in se ma per il plugin FireBug che permette di analizzare in dettaglio una pagina web, sia nell'html, sia negli script sia nelle comunicazioni con il server.


Fiddler
Analogamente al precedente, Fiddler (uno sniffer http), vi permetterà di analizzare le comunicazioni con il server, tuttavia ad un livello più basso e con qualsiasi browser.


YSlow
Un altro tool da affiancare a Firefox e Firubug è YSlow, tool molto utile per avere un indice delle performance del sito/applicazione web che state realizzando.


Inoltre..

La mia tesi di laurea, pubblicata con un pò di ritardo..



ShopTheory


REpresentational State Transfers (aka REST)

Una bella introduzione sui REpresentational State Transfers (aka REST) presentata da Stefan Tilkov e una presentazione sulla riusabilità.

Per quanto riguarda asp.net, è possibile implementare queste architetture a diversi livelli, implementando un IHttpHandler (the hard way, e forse nemmeno troppo vantaggiosa), utilizzando una determinata organizzazione dei metodi in un'applicazione Asp.Net MVC, oppure utilizzando WCF.

Per WCF è stato realizzato uno Starter Kit che dovrebbe semplificare la vita (e posso garantire che la cosa più frustrante di wcf è proprio la complessità nel raggiungere la configurazione funzionante) e una bella guida introduttiva pubblicata da Microsoft. Una volta giunti a quel punto però wcf permette di tralasciare il livello di trasporto e di focalizzarsi sull'implementazione della logica di business.

Asp.Net MVC export to excel

Questo post vuole essere un riassunto di quanto utilizzato per effettuare l'esportazione di dati su excel da un'applicatione Asp.Net MVC.

Step 1 - Librerie

  1. Open XML Format SDK 2.0 - Libreria microsoft con il necessario per creare e gestire file excel.
  2. ExcelPackage: Office Open XML Format file creation - Sostanzialmente un façade sulla precedente libreria (senza è veramente complesso).

Step 2 - Bug fixies

Sono presenti due problemi principali nella librearia ExcelPackage:
  1. Non è possibile creare documenti su uno stream di dati ma solo su file. Per questo è necessario applicare il seguente fix (che consiste nel ricompilare la libreria e applicare alcune modifiche): Using the ExcelPackage class on a web page
  2. E' presente un errore nella gestione delle query xpath, non viene fatto l'escape della stringa di ricerca. Grazie a questo post C-Sharp function to escape single-quote on XPath expression ho modificato la funzione
    private int SetSharedString(string Value)
    ...

    // Check to see if the string already exists. If so, retrieve its index.
    // This search is case-sensitive, but Excel stores differently cased
    // strings separately within the string file.
    //MODIFIED TO USE ParseXpathString
    XmlNode stringNode = _xlWorksheet.xlPackage.Workbook.
    SharedStringsXml
    .SelectSingleNode(string.Format("//d:si[d:t={0}]",
    ParseXpathString(Value)),
    _xlWorksheet.NameSpaceManager);

Step 3. Asp.Net MVC Code

Ho infine creato un extension method che restituisce un ExcelResult che si occupa di trasformare l'object che riceve in input (che può essere IEnumerable, DataSet, DataTable) e trasformarlo in un foglio excel e fare lo streaming sulla risposta.

Step 4. Further works

Sicuramente aggiungere alcune opzioni all'esportazione, come titolo per il report, descrizione etc., il supporto di template, una sintassi per il template.