in

DotNetMarche

.NET Framework User Group delle Marche

This Blog

Syndication

ExternalBlogs

February 2009 - Posts

  • Manage trees with entity framework part II

    Manage Tree With Entity Framework - The basic One of the most obvious problem showed in previous post is the need to issue a single Select for each node to rebuild the tree, but the good thing is that there are a lot of solutions over there to solve this problem. One of the most interesting [...]
  • Da WindowsForms a WPF via MVP

    Qualche giorno fa mi sono imbattutto in una simpatica applicazione Windows Forms che permette di disegnare su una lavangna virtuale il posizionamento in campo di due squadre di calcio. Un'applicazione per allenatori insomma :D. In breve, il funzionamento...
  • 25 marzo: Osservatorio Enterprise 2.0

    Al via il 25 marzo il secondo convegno dell”Osservatorio Enterprise 2.0. Saranno presentati i risultati della Ricerca, che ha coinvolto attraverso survey ed interviste oltre 300 tra CIO, Responsabili Risorse Umane e Responsabili Marketing. La Ricerca di quest’anno cercherà di fornire una visione complessiva approfondendo, in particolare, i trend emersi rispetto a quattro filoni di iniziative: [...]
  • SharePoint Services - Setting up a Website with Forms Authentication

    The SharePoint environment is up and running, we can now create a Web Application and a site collection that will be our portal. The goal is obtain a Web Application with two ‘interfaces’ to the users: we want to expose an internal site to the intranet...
  • Manage Trees with entity framework

    Quite often you need to store in database Hierarchical structure that are logically represented by a tree. There are a lot of techniques around there, but one of the most common is using a simple foreign key that refers to the same table, as in the following example If you map this table with entity [...]
  • http://feeds2.feedburner.com/romeopruno

    Pls update your favorite feed reader with this new url http://feeds2.feedburner.com/romeopruno thks!
  • PHP odyssey

    I have a local copy of my blog in my machine, just to test if I need to do some modification to the skin or to some pages of the blog, everything is always gone ok, just installing php, mysql and the blog works great. Today I need to reinstall php and mysql because my machine [...]
  • Gabriele Del Giovine approda in it Consult

    Sono davvero incasinato in questo periodo, vorrei scrivere molti post ma non ne ho fisicamente il tempo … chi mi conosce bene può immaginare quanto io abbia da fare per non trovare 5 minuti per scrivere. Tutto questo non mi può comunque impedire di condividere assieme a voi una bellissima notizia come quella del titolo [...]
  • [WCF] IOperationBehavior e IParameterInspector

    Dal punto di vista della flessibilità, ritengo che WCF sia una delle tecnologie più potenti attualmente disponibili per lo sviluppo di applicazioni orientate ai servizi. In particolare, una delle caratteristiche che apprezzo maggiormente è la facilità...
  • Windows SharePoint Services - first setup

    I know that SharePoint 2007 and SharePoint Services 3.0 are out since some time… but I never had the occasion to work with them yet. However in a recent project I’m evaluating it can fit well some of the needs of the customer, so I need to play...
  • Sempre sul sorting di liste generiche, ma in C# 3.0

    Pochi giorni fa, ho parlato di sorting sulle liste custom create utilizzando i generics. Abbiamo visto infatti, che attraverso l'uso dei delegati risulta molto facile e veloce effettuare un sorting sulle liste di oggetti custom, senza dover creare...
  • Pong con il designer WindowsForms

    Clamoroso :D http://blogs.msdn.com/mitsu/archive/2009/02/13/coding4fun-understanding-winforms-designmode.aspx Read More...
  • EntityObject e DTO: copiare proprietà comuni via extension method

    Quando si sviluppano architetture N-tier che prevedono uno o più service layer è sempre consigliabile l’utilizzo di DTO per scambiare dati tra livelli, indipendentemente dal (fuorviante) fatto che ogni DataContract esposto da un servizio (es. WCF) possa...
  • Entity Framework e la corrispondenza con il modello ad oggetti.

    Questo post nasce da un fatto strano che ho notato sviluppando un progetto con Entity Framework, considerate il seguente spezzone di codice.

    1 using (NorthwindEntities context = new NorthwindEntities()) 2 { 3 IEnumerable<Customers> customers1 = 4 context.Customers 5 .Where(c => c.CustomerID.Contains("")); 6 Console.WriteLine(customers1.Count()); 7 8 IEnumerable<Customers> customers2 = 9 context.Customers 10 .ToList() 11 .Where(c => c.CustomerID.Contains("")); 12 Console.WriteLine(customers2.Count()); 13 }

    Il codice è veramente banale, nel primo caso si effettua una query LINQ to entities chiedendo tutti i clienti il cui id contiene stringa nulla, nel secondo caso si effettua un'operazione molto simile, si caricano in memoria tutti i clienti (perchè nella linea 10 il ToList() essendo un not-deferred operator effettua la query nel database e carica gli oggetti in memoria) e poi si effettua un filtro sugli oggetti in memoria con la stessa condizione precedente, ovvero filtrare tutti i clienti il cui id contiene stringa nulla.

    Il risultato di questo snippet è

    0
    91

    ovvero filtrando sul database si ottengono zero oggetti mentre filtrando gli oggetti in memoria otteniamo 91 oggetti. Naturalmente il secondo risultato è quello corretto, dato che ogni stringa contiene logicamente la stringa nulla e quindi mi aspetto che vengano tornati tutti i clienti che non hanno un CustomerID nullo. Questo problema deriva da una pagina asp.net che deve soddifare queste spefiche. E' necessario mostrare tutti i clienti che contengono nel CustomerId una stringa digitata dall'utente con la condizione che se l'utente non digita nulla vengano tornati tutti i clienti.

    Ora, senza entity framework basta fare una query sql con una condizione del tipo CustomerId like '%' + stringaricerca + '%' ed ottenere il comportamento previsto; EF invece traduce la query nel modo seguente

    SELECT [Extent1].[Address] AS [Address], [Extent1].[Checked] AS [Checked], ... FROM [dbo].[Customers] AS [Extent1] WHERE (CAST(CHARINDEX(N'', [Extent1].[CustomerID]) AS int)) > 0

    per il contains viene utilizzata la funzione CHARINDEX che purtroppo se si passa una stringa nulla fallisce sempre. Questo significa che con Entity Framework le query sul modello concettuale non mappano fedelmente le query fatte su oggetti in memoria. Dato che EF dovrebbe costituire un layer (repository) per il quale io "lavoro" solo su oggetti mentre EF si occupa di gestire le query da fare al database, mi attendo sempre che il comportamento di una query linq to entity produca gli stessi risultati della corrispondente linq to object fatta su oggetti in memoria. Sebbene questo possa sembrare un peccato veniale, dal punto di vista concettuale è fondamentale che questo requisito sia mantenuto.

    Alk.

  • Google inizia a stancarmi

    Allora, il mio amico Alessandro mi dice che feedburner è passato a google e quindi io debbo muovere i feed sul nuovo account, a parte che ci ho messo un po a capire come fare, sposto il primo feed ed ora vedo

    image

    Bene, è un piacere sapere di avere pigreco account da gestire, ma comunque il mio feed non è stato trasferito, è ancora listato con gli altri, sono loggato con il vecchio account...... ultimamente google non è che sia un granché.

    .....

    sono passati altri 15 minuti e ho tentato altre tre volte di trasferire l'account, mi arriva la mail, clicco sul link da trasferire e non succede nulla, sono riportato nel vecchio account con tutti i feed ancora li. Poi trovo questo link http://feedburnerstatus.blogspot.com/2009/02/account-moves-unavailable-to-some.html

    Debbo dire che la prossima volta che sarà da decidere di usare un servizio Google ci penserò bene.

    alk.

More Posts Next page »
Powered by Community Server (Commercial Edition), by Telligent Systems