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: (2)
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);
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.Backup Sql Server
script per l'esecuzione di un backup su Ms Sql Server:
BACKUP DATABASE [dbname]
TO DISK = N'c:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\dbfile.bak'
WITH NOFORMAT, NOINIT, NAME = N'kvalue-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
script per determinare i files fisici su cui risiede il database:
select * from sysfiles
BACKUP DATABASE [dbname]
TO DISK = N'c:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\dbfile.bak'
WITH NOFORMAT, NOINIT, NAME = N'kvalue-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
script per determinare i files fisici su cui risiede il database:
select * from sysfiles
SCRUM
Pubblicato da
Andrea Inglese
on giovedì 16 aprile 2009
/
Etichette:
project management,
SCRUM
/
Comments: (0)
Interessantissimo webcast su SCRUM, e metodologie di project management
http://www.microsoft.com/italy/beit/Msdn.aspx?video=f8f4a4d5-0978-425f-a548-5b137c70e09c
http://www.microsoft.com/italy/beit/Msdn.aspx?video=f8f4a4d5-0978-425f-a548-5b137c70e09c
Ecco perchè io consiglio Avira! (BIS)
Pubblicato da
Andrea Inglese
on martedì 18 novembre 2008
/
Etichette:
antivirus,
AVG,
Avira AntiVir
/
Comments: (0)
Incredibilmente, AVG commette lo stesso errore a pochi giorni di distanza:
http://attivissimo.blogspot.com/2008/11/avg-si-scusa-ci-ricasca.html
Che dire, nonostante la società offra adeguate indennità in licenze gratuite del prodotto, a mio giudizio la credibilità dell'antivirus sta crollando...
Per maggiori informazioni:
http://www.oneitsecurity.it/13/11/2008/avg-scambia-due-dll-di-windows-per-dei-trojan/
http://attivissimo.blogspot.com/2008/11/avg-si-scusa-ci-ricasca.html
Che dire, nonostante la società offra adeguate indennità in licenze gratuite del prodotto, a mio giudizio la credibilità dell'antivirus sta crollando...
Per maggiori informazioni:
http://www.oneitsecurity.it/13/11/2008/avg-scambia-due-dll-di-windows-per-dei-trojan/
Ecco perchè io consiglio Avira!
Pubblicato da
Andrea Inglese
on mercoledì 12 novembre 2008
/
Etichette:
AVG,
Avira AntiVir,
netBIOS,
sicurezza
/
Comments: (0)
Approfittando impunemente degli eventi, ecco perchè io consiglio Avira AntiVir come antivirus gratuito!
Come riportato qui,il suo pur sempre validissimo concorrente AVG ha qualche problema di "invasività".
Premettendo che entrambi sono ottimi antivirus gratuiti, e che poca differenza corre tra i due, io ritengo che la caratteristica più importante di un antivirus (dopo l'efficacia,intesa come capacità di riconoscere le minacce e la frequenza degli aggiornamenti da parte della casa madre, ovviamente) sia senza dubbio la non invasività. Falsi positivi, popup che si aprono ad ogni minimo avviso, mille messaggi di protezione all'utente danno solo l'illusione della sicurezza. Perchè inevitabilmente questi messaggi lasciano l'ultima parola all'utente, che deve analizzare attivamente ogni volta il messaggio, finendo così, alla lunga, per cliccare con leggerezza su messaggi di avviso o errore. Ed ecco che la sicurezza svanisce. Un buon antivirus a mio giudizio deve essere in grado di prendere il più possibile da solo le sue decisioni, lasciando all'utente solo la notifica di un'effettiva avvenuta infezione (e proporre il da farsi).
Basti pensare ai firewall e al protocollo netBios. AVG, provato sulla pelle di un mio amico, tende a bloccare il traffico di questo protocollo, perchè, vero, obsoleto e fonte di potenziale traffico maligno. Peccato che la stragrande maggioranza dei programmi che funzionano in lan (dalle cartelle condivise di windows a Starcraft :-) ) sfruttino questo protocollo per identificare i computer in rete (si, si può dire che sono a loro volta obsoleti..). Questo risulta in una serie di falsi positivi per lo più , che spesso risultano in messaggi pomposi (quanto inesatti) del tipo "XX ha bloccato 200 attacchi al tuo pc", e soprattutto in fastidiosi e la maggior parte delle volte ingiustificati disservizi.
Come riportato qui,il suo pur sempre validissimo concorrente AVG ha qualche problema di "invasività".
Premettendo che entrambi sono ottimi antivirus gratuiti, e che poca differenza corre tra i due, io ritengo che la caratteristica più importante di un antivirus (dopo l'efficacia,intesa come capacità di riconoscere le minacce e la frequenza degli aggiornamenti da parte della casa madre, ovviamente) sia senza dubbio la non invasività. Falsi positivi, popup che si aprono ad ogni minimo avviso, mille messaggi di protezione all'utente danno solo l'illusione della sicurezza. Perchè inevitabilmente questi messaggi lasciano l'ultima parola all'utente, che deve analizzare attivamente ogni volta il messaggio, finendo così, alla lunga, per cliccare con leggerezza su messaggi di avviso o errore. Ed ecco che la sicurezza svanisce. Un buon antivirus a mio giudizio deve essere in grado di prendere il più possibile da solo le sue decisioni, lasciando all'utente solo la notifica di un'effettiva avvenuta infezione (e proporre il da farsi).
Basti pensare ai firewall e al protocollo netBios. AVG, provato sulla pelle di un mio amico, tende a bloccare il traffico di questo protocollo, perchè, vero, obsoleto e fonte di potenziale traffico maligno. Peccato che la stragrande maggioranza dei programmi che funzionano in lan (dalle cartelle condivise di windows a Starcraft :-) ) sfruttino questo protocollo per identificare i computer in rete (si, si può dire che sono a loro volta obsoleti..). Questo risulta in una serie di falsi positivi per lo più , che spesso risultano in messaggi pomposi (quanto inesatti) del tipo "XX ha bloccato 200 attacchi al tuo pc", e soprattutto in fastidiosi e la maggior parte delle volte ingiustificati disservizi.