Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

maggio 2008 Blog Posts

Lazy loading in una riga

Carino questo modo proposto da Frank Quednau di implementare il lazy loading utilizzando l'operatore di null coalescing (ECMA-334, 14.12) e il fatto che il risultato di un'assegnazione e' il valore assegnato all'operando sinistro (ECMA-334, 14.14.1): internal sealed class PersonProxy : Person {     public override AddressCollection Addresses     {         get         {             return base.Addresses ?? (base.Addresses = new PersonDataMapper().GetAddressesByCode(this.Code));         }         set         {             base.Addresses = value;         }     } } A me sembra molto espressivo.

posted @ mercoledì 28 maggio 2008 23:04 | Feedback (108) | Filed Under [ Pattern Dappertutto ]

Quiz Sharp #70

Senza utilizzare stringhe, caratteri, numeri (literals) o file esterni, si chiede di scrivere un programma in C# 3.0 che stampi a console la definizione compilabile di un tipo non vuoto.

posted @ domenica 18 maggio 2008 07:22 | Feedback (105) | Filed Under [ Quiz Sharp Test Sharp ]

Best practice Path.Combine

Se vogliamo che il nostro codice giri anche su Mono, dobbiamo utilizzare: Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "aaa.bbb") al posto di: AppDomain.CurrentDomain.BaseDirectory + "aaa.bbb" perche' su Mono, BaseDirectory ritorna una stringa che non finisce in Path.DirectorySeparatorChar, mentre su CLR si'. E questo va anche in generale, quando costruiamo il path da piu' pezzi, non solo nel caso della BaseDirectory. Per esempio, chi utilizza fyiReporting RDL Project su Mono, dovrebbe modificare la riga 81 nel file Runtime/RdlEngineConfig.cs nei sorgenti del progetto e ricompilare, da: file = dir + "RdlEngineConfig.xml"; a: file = Path.Combine(dir, "RdlEngineConfig.xml"); perche' la stringa dir, per come e' stata costruita, su CLR finisce in Path.DirectorySeparatorChar, mentre su Mono no. In...

posted @ domenica 4 maggio 2008 22:44 | Feedback (95) | Filed Under [ Carillon .NET Pattern Dappertutto Bugs? ]

Un'API generico a provider per i metadata dei vari ORM

Via questo post di Frans Bouma ho scoperto sotto il namespace System.Web.DynamicData.ModelProviders dell'assembly System.Web.DynamicData.dll che arriva con l'ultima release della preview di ASP.NET Dynamic Data, un'API generico composto da 4 provider per i metadata dei vari ORM (non solo Microsoft): DataModelProvider, TableProvider, ColumnProvider ed AssociationProvider. Questo unifica in buona misura le varie API che espongono i metadata degli ORM, per esempio MetaTable, MetaDataMember, MetaAssociation nel caso di LINQ to SQL, oppure quella piu' complessa dell'Entity Framework: EntitySet, EdmMember, NavigationProperty, etc. Frans ha gia' scritto un model provider per il suo LLBLGen Pro, sarebbe bellissimo averne uno anche per NHibernate. E...

posted @ sabato 3 maggio 2008 02:53 | Feedback (104) | Filed Under [ Carillon .NET Pattern Dappertutto VSX ]

Powered by:
Powered By Subtext Powered By ASP.NET