.Net 3.5
Durante la realizzazione del layer di accesso ai dati di una semplice demo app, per il quale avevo scelto di utilizzare LINQ to Sql, sono incorso in un noioso bug nel recupero dei valori delle PrimaryKey, nel caso in cui questi siano autogenerati dal server di database. Supponiamo di avere una tabella del tipo seguente, in cui la PK sia di tipo uniqueidentifier, automaticamente inizializzata per le nuove righe tramite la funzione di sistema newid(): Creiamo un nuovo DataContext di LINQ to Sql e importiamo al tabella creata; il designer crea una nuova entity con...
Premessa: ciò che scriverò è una banalità, ma secondo me in tanti non ne sono al corrente o non ci pensano. Di cosa parlo? Di cose del genere: public const int MyConst = 10;
Il danno potenziale che le costanti pubbliche possono creare alla stabilità delle nostre applicazioni è enorme.
Why? Perché le costanti non sono altro che placeholder risolti in fase di compilazione. Questo vuol dire che, finché non si ricompila, il valore non viene aggiornato.
Implicazioni?
Assembly A che definisce una costante MyConst = 10
Assembly B che referenzia Assembly A e ne utilizza MyConst
Assembly A cambia MyConst a 15
Finché non ricompilo...
Ho da poco iniziato a studiare ADO.NET Entity Framework e vorrei pubblicare impressioni, tip, ecc.ecc. man mano che imparo qualcosa. Il primo passo per iniziare a lavorare con questo ORM di Microsoft è quello di fare qualche download, per cui oggi mi limiterò a fornire qualche link utile per utilizzare la beta 3 (in attesa della definitiva) su VS2008. La lista della spesa è più o meno questa, in ordine di installazione: ADO.NET Entity Framework Beta 3: qui Patch per installazione su VS2008 RTM: qui ADO.NET E.F. Tools (CTP di dicembre 2007): qui SQL Server 2005, c'è la Express Edition scaricabile...
When I first decided to have a blog, I didn't have a clear idea of what I was going to talk about. It was supposed to be focused on .Net and programming topics, indeed, but figuring out a list of categories having only this in mind was extremely hard. I think that a lot of bloggers had (and keep having) the same experience and, sudden or later, almost everyone comes to the need to re-arrange post categories. Things get much more complicated when you decide to start Technorati-tagging your post: doing it post per post is pretty easy, just a matter...
Quando scriviamo interrogazioni con LINQ, non dobbiamo mai perdere di vista ciò che in realtà esse sono, ossia alberi di funzioni e Lambda expression. Per questa ragione, un qualcosa come 1 var customers = db.Customers
2 .Where(c => c.CompanyName.StartsWith("A"))
3 .Join(db.Orders,
4 (c => c.CustomerID),
5 ...
Ieri ne ho parlato tessendone le lodi, perchè tutto sommato reputo LINQ un buon ORM, che forse però soffre di qualche peccato di gioventù. Visto che per natura sono un po' rompiballe e non mi accontento mai, infatti, vi vengo a raccontare un paio di aspetti (anzi tre) che mi sono subito saltati all'occhio e che non mi sconfinferano granché. Punto 1 Le entity (generate da un'ottimo designer, poco da dire) non sono serializzabili a causa delle dipendenze da EntitySet e EntityRef. Si tratta di una brutta limitazione, che non mi permette di esporle direttamente MBV con Remoting, tanto per fare un...
In questi giorni sto spulciando un pochino questo ORM e fino ad ora le mie impressioni sono senz'altro positive; LINQ to SQL, a mio modo di vedere, è un prodotto che ha dalla sua un'estrema produttività, almeno per un paio di ragioni: Intanto l'ottima integrazione con il designer di Visual Studio, che si interfaccia con la base dati e ci consente di modellare il dominio applicativo veramente in brevissimo tempo: la comodità del designer del DataSet applicata ad un Domain Model + ORM, praticamente il mio sogno La semplicità e la naturalezza di LINQ come linguaggio di...
Ne avevo parlato un paio di giorni fa. Vorrei riorganizzare le categorie sul mio blog, eliminando quelle poco usate ed assegnando i relativi post ad altre (nuove e non), ma sono sempre stato frenato dal fatto che farlo il manager web può essere veramente noioso ed estenuante. Domenica scorsa allora, con un po' di tempo libero, mi sono messo a realizzare una semplice applicazione Windows Forms che, facendo uso delle MetaWeblog API, semplificasse di molto il lavoro; fatto sta che ho prodotto questa cosina qui: 1) Dopo aver configurato le impostazioni di accesso dal menu opzioni... 2) è...
Il più grande punto di forza di Microsoft LINQ è senza dubbio quel syntactic sugar che ci permette di scrivere query simil-SQL, strong typed e direttamente all'interno del codice C# (o VB.NET che sia). Supponiamo di voler recuperare, dagli assembly in memoria, l'elenco delle classi che iniziano per una data lettera. In C# 3.0 posso scrivere qualcosa tipo 1: var types = 2: from assembly in AppDomain.CurrentDomain.GetAssemblies() 3: from type in assembly.GetTypes() 4: ...