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.
REpresentational State Transfers (aka REST)
Pubblicato da
Andrea Inglese
on venerdì 4 settembre 2009
/
Etichette:
Asp.Net MVC,
REST,
SOA
/
Comments: (0)
Asp.Net MVC export to excel
Pubblicato da
Andrea Inglese
on giovedì 3 settembre 2009
/
Etichette:
Asp.Net MVC,
Excel,
ExcelPackage,
OpenXml
/
Comments: (1)
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
- Open XML Format SDK 2.0 - Libreria microsoft con il necessario per creare e gestire file excel.
- 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:- 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
- 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);