Crad's .NET Blog

L'UGIblog di Marco De Sanctis
posts - 190, comments - 457, trackbacks - 70

.Net 3.5

LINQ to Sql e Guid autogenerati

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...

posted @ martedì 6 maggio 2008 14:09 | Feedback (7) | Filed Under [ .Net 3.5 ]

Costanti pubbliche? AHIAHIAHI

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...

posted @ giovedì 31 gennaio 2008 16:15 | Feedback (6) | Filed Under [ .Net 2.0 Architettura .Net 3.0 .Net 3.5 ]

[ADO.NET Entity Framework #0] Per iniziare

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...

posted @ martedì 22 gennaio 2008 10:58 | Feedback (5) | Filed Under [ .Net 3.5 ]

A tool to manage your blog categories and Technorati Tags

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...

posted @ sabato 29 settembre 2007 19:17 | Feedback (15) | Filed Under [ .Net 3.5 ]

LINQ = Expression Trees

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 ...

posted @ lunedì 24 settembre 2007 02:17 | Feedback (0) | Filed Under [ .Net 3.5 ]

Tre cosine che mi sono piaciute poco di LINQ to SQL

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...

posted @ venerdì 21 settembre 2007 02:32 | Feedback (0) | Filed Under [ .Net 3.5 ]

Pensierini della sera su LINQ to SQL

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...

posted @ giovedì 20 settembre 2007 01:40 | Feedback (1) | Filed Under [ .Net 3.5 ]

Un semplice tool per gestire le categorie sul blog

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) è...

posted @ giovedì 13 settembre 2007 01:48 | Feedback (4) | Filed Under [ Misc .Net 3.5 ]

Linq e Reflector

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: ...

posted @ domenica 9 settembre 2007 14:20 | Feedback (0) | Filed Under [ .Net 3.5 ]

Powered by:
Powered By Subtext Powered By ASP.NET