C#
L'Entity Framework e Linq To Sql avranno i suoi (grossi) limiti, ma vedere che da: IEnumerable<CategoryView> views = from d in categories select new CategoryView() { Id = d.Id, Name = d.Name, ImageUrl = d.ImageUrl, ImageIconUrl = d.ImageIconUrl }; con un semplice CNTRL-R-R il risultato è questo: IEnumerable<CategoryView> views = from e in categories select new CategoryView() { Id...
Il solito Scott segnala un post che contiene la lista aggiornata al 28 febbraio, dei providers Linq ufficiali e non. Lo stesso Charlie pubblicherà qui i futuri aggiornamenti. Technorati Tag: Linq,Providers
il compilatore restituisse un errore nel caso in cui non gli piaccia l'ordine dei namespace dichiarati a inizio file. Oppure se... il compilatore restituisse un errore nel caso in cui non gli piaccia l'ordine delle classi/delegati/enumerazioni all'interno di un file. O ancora peggio se... il compilatore restituisse un errore nel caso in cui non gli piaccia l'ordine dei file da compilare. Ma anche se... con tanta fatica (e fortuna) riusciamo a trovare la giusta combinazione, ma un piccolo flag - fondamentale per la buona riuscita della compilazione - all'interno della configurazione del nostro progetto,...
Roy Osherove fornisce in questo post, alcuni validi motivi del perchè secondo lui non dovrebbe essere possibile permettere di fallire più assert nell'esecuzione di un singolo unit test. Il post è in contrapposizione con un'altro post di James Avery dove viene spiegato invece, il perchè questa feature potrebbe essere utile.
Un piccolo assaggio che quoto in pieno:
"Even if we assume that all the asserts are run, you're essentially running multiple tests on code that has "dirty" state. For example, asserting on the result of a method call may actually change the state of the object under test so that the next call to that method may...
Ogni tanto, leggendo l'msdn, escono cose simpatiche:)
Tratto dalla documentazione del metodo CppCodeProvider.CreateCompiler su MSDN Library:
"
.NET Framework Class Library
CppCodeProvider.CreateCompiler Method
Note: This method is new in the .NET Framework version 2.0.
NOTE: This method is now obsolete. Creates an instance of the C++ code compiler.
Namespace: Microsoft.VisualCAssembly: CppCodeProvider (in cppcodeprovider.dll)
"
Non bastasse, l'implementazione del metodo restituisce un NotImplementedException....Technorati tags: Msdn, Codedom
In c++, quando utilizziamo un template (prendiamo ad esempio il tipo std::vector), è pratica abbastanza diffusa definire un nuovo tipo del template specializzato.
Qualcosa di questo tipo per intenderci:
typedef std::vector IntVector;
Come sappiamo usare un template (o un tipo generico del framework) allunga incredibilmente il nome del tipo e risulta molto scomodo dover ripetere lo stesso nome per intero ad ogni cast, istanziazione etc etc. Esiste qualcosa di simile al tipedef anche in C#? La risposta è si, ma tenendo ben presente l'aggettivo SIMILE. In C# possiamo definire un alias utilizzando la key using. La "dichiarazione duale del tipo IntVector di c++, in c# sarebbe:
using IntList = System.Collection.Generic.List;
Leggere...
Problema: dobbiamo scrivere una serie di unit test che testano le funzionalità di un singleton pubblicato con Remoting.
Perchè è un problema? Perchè se specifico la porta usata dall'HttpChannel ed eseguo due test consecuitivi che registrano il nostro oggetto mediante l'httpchannel, il secondo test fallirà sempre. Il problema è dovuto al fatto che il socket del canale viene chiuso in maniera non determinstica (quando ne ha voglia il GC), quindi, quando viene eseguita (indirettamente dall'httpchannel) la bind per la seconda volta, viene lanciata un'eccezione che ci avverte che la porta tcp è già in uso ("only one usage of each socket address (protocol/IP address/port)...
Visto che ne ho avuto bisogno, pubblico un piccolo snippet per risolvere il problema:private static string ConvertToHex(string msg) { if (msg == null || msg == string.Empty) { return string.Empty; } System.Text.StringBuilder sb = new StringBuilder(); byte[] bmsgs = ASCIIEncoding.ASCII.GetBytes(msg); foreach (byte inByte in bmsgs) { sb.Append(String.Format("{0:X2} ",inByte).Trim()); } return sb.ToString(); }
Riprendo il post di Lorenzo riguardo l'AOP e Net fornendo uno stralcio dell'intervista a Don Box (per la quanle nn finirò mai di ringraziare il nostro caro presidente :) che esprime il suo parere proprio sull'AOP e sulle tecniche di interception.
Personally, I think there are a lot of interesting programming paradigms out there, and I think that the industry has beaten the "attributes+interception" style of AOP to death. Personally, I've been much more inspired by the ideas that sprang from functional programming and think that Whidbey brings several of those ideas to the masses. Specifically, C#'s anonymous methods (closures) and iterators are...
Il codedom si sa è una delle parti più interessanti del framework. Visto che c'è, perchè non usarlo? DavsGen è la prima versione versione di una serie di wizard integrati nel visual studio. Quando si aggiunge una classe ad un progetto di vs (sia esso in csharp che in vb) potrebbe essere utile avere una GUI per dichiarare i membri della classe e associargli automaticamente le propietà senza doversele scrivere ogni volta a mano.
Il wizard è liberamente scaricabile dal sito. DavsGen è distribuito sotto forma di file di installazione per semplificare il deploy del wizard. Ovviamente ogni feedback, idea o...
Full C# Archive