ottobre 2007 Blog Posts
Ogni tanto bisogna riproporre questi link, giusto per tornare con i piedi per terra e soprattutto per diminuire la probabilità di diventare una delle vittime di Raf :) How To: Protect From Injection Attacks in ASP.NET How To: Use Regular Expressions to Constrain Input in ASP.NET How To: Prevent Cross-Site Scripting in ASP.NETQuesto ed altro su uno dei vademecum dello sviluppatore .NET più utili in assoluto: http://www.guidancelibrary.com/guidanceexplorerbeta/ (Web) http://www.codeplex.com/guidanceExplorer (Windows Application - Codeplex) Technorati tags: ASP.NET , Security
Segnalo l' interessante WalkThrough del componente Diagnostics, introdotto nelle ASP.NET Futures (July 2007), tramite cui sarà possibile automatizzare in maniera semplice la cattura degli errori generati dagli script lato client. In breve, tramite l'inserimento di un DiagnosticsControl nella nostra pagina, a quest'ultima verranno "appiccicati" a run-time degli script di diagnostica lato client che cercheranno di catturare gli errori di script generati durante l'interazione pagina-utente. Una volta che un errore viene catturato, le relative informazioni vengono inviate ad un WebService (DiagnosticsService.asmx) oggi da definire, domani built-in che permette di passarle ad un event handler da inserire ad esempio nel Global.asax: using Microsoft.Web.Preview.Diagnostics
...
void Application_Start(object sender, EventArgs e)
{
DiagnosticsService.OnClientException += new ClientExceptionHandler(DiagnosticsService_OnClientException);
}
void...
Volendo presentare dei dati in formato tabellare con uno stile grafico maggiormente accattivante, ho voluto provare ad utilizzare l' hosting di un controllo WPF in una Windows Forms già esistente. Ora, già sapevo che in realtà la rappresentazione dei dati in formato griglia in WPF viene implementata tramite una personalizzazione della proprietà View del controllo ListView. Quello che invece non mi aspettavo era che nel layout "GridView mode" di un ListView mancasse di default una feature "scontata" come il sorting tramite click sull' header delle colonne (abituale sia in Windows Forms che in ASP.NET).Ho trovato dunque questo articolo su MSDN, How to: Sort a GridView Column When a Header Is Clicked, dove si mostra...
Li trovate qui. Alcuni sono veramente forti!!! Ah, si possono anche aggiungere i propri ;)
Nel mio precedente post ho avanzato alcune mie riserve circa l'utilizzo degli Anonymous Types, sostenendo che possono generare confusione tra gli sviluppatori meno esperti (soprattutto se utilizzati al di fuori di query LINQ) e ricevendo giustamente delle critiche sul fatto che essi, in realtà, possono costituire un comodo espediente. Dico "giustamente" perché era proprio mia intenzione sollevare una riflessione su alcuni aspetti che mi tormentano ed a cui mi piacerebbe dare una risposta definitiva magari anche grazie a voi, senza considerare poi che sto per iniziare ad inserire pesantemente LINQ nei miei futuri progetti aziendali!!!Prima domanda: se l'Anonymous Type assegnato ad una variabile dichiarata come "var" viene generato in fase di compilazione tramite un'inferenza (o un "implicit...
Oggi pomeriggio stavo studiando il comportamento degli Anonymous Types nella speranza di trovare un motivo (anche vagamente) valido per cui utilizzarli ,chiaramente al di fuori di LINQ ;), e volendo analizzare cosa il compiler generasse dietro le quinte in alcuni casi particolari ho provato a eseguire codice come questo...var var1 = new { UserName = "N1", LastUpdate = DateTime.Now };var var2 = new { UserName = "N2", LastUpdate = DateTime.Now.ToShortDateString() }; Console.WriteLine(var1.GetType().ToString());Console.WriteLine(var2.GetType().ToString()); ...aspettandomi che il compiler autogenerasse dei tipi dummy diversi tra loro: "in fondo " - pensavo - " la reflection della proprietà LastUpdate dovrebbe portare il compiler a generare due Anonymous Types...
Oggi ho installato i LINQ samples for Visual Studio 2008 Beta 2 ed ho subito notato tra i file di installazione due visualizers, ExpressionTreeVisualizer e SqlServerQueryVisualizer. Chiedendomi a cosa servissero ho iniziato una breve ricerca che mi ha portato a questo post in cui si spiega come in realtà questi due visualizzatori di espressioni LINQ, utilizzabili in Debug Mode, non sono presenti nell'installazione di default di Orcas. Se devo dire la verità sono rimasto un po' interdetto: considerando la loro grande utilità, come mai non sono stati inseriti nell'installazione di VS2008 beta 2? Technorati tags: LINQ, VisualStudio
Avete mai visto un costrutto del genere?Parallel.For(0, 100, delegate(int i) {
a[i] = a[i]*a[i];
});
Ebbene è un classico esempio di utilizzo di TPL , un importante componente della libreria Parallel FX nata (dalla collaborazione tra Microsoft Research, il team CLR e il team Parallel Computing Platform) con lo scopo di supportare il parallelismo 'reale' implementabile con .NET su computer multicore.E' da poco uscito questo articolo su MSDN (estratto dal numero di Ottobre di MSDN Magazine) che vi invito a leggere: http://msdn.microsoft.com/msdnmag/issues/07/10/Futures/default.aspx?loc=it
In breve, vengono illustrati esempi su parallelismo strutturato, sovraesposizione del parallelismo, distribuzione dinamica del lavoro, aggregazione etc. utilizzando TPL. Inoltre, vengono apportate interessanti considerazioni sulla grande semplificazione...
Vi invito a leggere questo appassionante post del mio collega ed amico Andrea sull' Information Gathering di RBNNetwork (Russian Business Network), ormai considerato dalle maggiori security enterprises (come Verisign e Symantec) la maggiore fonte di cyber-crimini attualmente in circolazione su Internet.
Tutto nasce dalla necessità di ottenere la lunghezza di una variabile stringa che includa gli spazi bianchi alla fine. In T-SQL esiste la celeberrima funzione LEN che restituisce appunto il numero di caratteri di una stringa escludendo però gli spazi bianchi alla fine. La funzione DATALENGTH restituisce invece il numero di bytes usati per rappresentare l'espressione passata come argomento. Tramite il seguente esempio ci rendiamo conto di come in realtà occorra dare grande attenzione al tipo di codifica che si intende utilizzare per la rappresentazione delle variabili stringa: DECLARE @MyVAR nvarchar(4)
SET @MyVAR = 'abc '
-- UNICODE character data. (nvarchar)
SELECT LEN(@MyVAR) -- restituisce 3
SELECT DATALENGTH(@MyVAR) -- restituisce 8
SELECT...
Nonostante VS2003 non sia supportato ufficialmente su Vista, ecco delle 'issues' per lo sviluppatore da tenere sempre in considerazione qualora si scegliesse di utilizzarlo comunque:http://msdn2.microsoft.com/en-us/vstudio/bb188244.aspx
Ecco cosa è uscito fuori....Questa frase mi ha fatto morire dal ridere!!!Cavolo ho buttato giù dal letto un team di sviluppatori con una semplice ricerca!!!
Per 'Isolated storage' in Silverlight si intende un meccanismo di memorizzazione lato client (non molto trasparente nel comportamento in verità), basato sul più generale Isolated Storage del Framework .NET. Realizzato tramite una semantica cookie-like per applicazioni con trust parziale,espone delle API che permettono di accedere ad un FileSystem virtuale ed ai relativi Stream di lettura/scrittura su file. Da un punto di vist pratico, ci sono diverse limitazioni a cui dobbiamo fare attenzione quando utilizziamo il sistema di "Isolated Storage" in Silverlight dal momento che esso è stato concepito per rendere più sicuro possibile l'accesso alle risorse lato client: Ad ogni applicazione Silverlight...
E' bellissimo vedere come IE7 tenti di boicottare Google... ahahahah
E' proprio vero: le interrogazioni con LINQ sono veramente fin troppo semplici ed intuitive... Oggi ad esempio mi chiedevo come fosse possibile implementare alcune features tipiche di un motore di ricerca sfruttando LINQ to Objects e, tra le varie possibilità, mi sono soffermato sulla creazione di un esempio in cui venisse mostrato come cercare le frasi, a partire da una stringa, che contengono contemporaneamente un insieme di termini di ricerca specificato.using System.Linq;...string Testo = @"Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex...
Se ottenete un errore del tipo "product level is insufficient ..." oppure "The task ... cannot run on this edition of Integration Services. It requires a higher level edition." nell'esecuzione di un package dtsx può dipendere da due fattori: avete installato soltanto le Workstation Components di SQL Server il package utilizza dei componenti che richiedono una versione superiore di SQL Server (e.g. il componente "Data Conversion" necessita della versione Enterprise) In soldoni, per risolvere il problema o si installano i SSIS nella macchina in cui viene fatto eseguire il package oppure si sposta l'esecuzione stessa del package su una macchina in cui è installata la versione full...