gennaio 2009 Blog Posts

Entity Framework e l'attributo ProviderManifestToken

Per una mia applicazione ho creato un EDM a partire da un DB presente su una istanza Sql Server 2005. Per testare l'applicazione, per ragioni che non mi è dato sapere, mi è stato fornito un accesso ad una istanza di Sql Server 2000. Apparentemente l'applicazione funzionava ancora, sennonché, in alcuni casi, veniva sollevata una eccezione con questo messaggio: line 43: Incorrect syntax near '('. Girovagando per il web ho scoperto l'esistenza di un attributo del file SSDL, il ProviderManifestToken. Impostando questo attributo a 2000 anzichè 2005, il problema non veniva più sollevato a...

WCF, Proxy ed errore 407

Ho installato una serie di servizi in un ambiente di test, all'interno di una LAN che fa uso di un proxy per l'accesso ad internet. Dopo aver configurato il tutto, ho eseguito il client per verificare che l'applicazione funzionasse correttamente; il risultato è stato questo: "The remote server returned an unexpected response: (407) Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied.  )." Un po' stranito da questo errore, visto che consideravo che le chiamate ad indirizzi locali bypassassero (oddio che termine)...

Linq ti cambia la vita! - Part II

Volevo fare un altro post (dopo questo) su come l'introduzione di Linq ti permetta di fare operazioni complesse su collezioni (insiemi) di dati, in modo, a mio parere, più facile ed intuitivo. In questo esempio devo aggregare un insieme di oggetti, denominati transazioni. Questi oggetti hanno un codice e una serie di abilitazioni rappresentate da variabili booleane. Le regole di aggregazione sono queste: devo estrarre transazioni distinte per codice, e fare l'unione delle abilitazioni di tutte le transazioni con lo stesso codice. Il tutto si traduce nella seguente query: ...

Program to an Interface, sempre!

Proprio ieri ho avuto una grande conferma di come utilizzare interfacce anzichè classi concrete come dipendenze, paghi e molto! Se poi il tutto è gestito con un framework IoC ancora meglio. Perchè paga? Beh vi racconto una situazione, sicuramente non proprio comune, in cui mi sono trovato. Ultimamente sto seguendo un progetto distribuito su vari stabilimenti dello stesso cliente e per questo motivo è basato su servizi. Oggi il progetto andava in demo presso uno stabilimento, in modo che gli utenti cominciassero a prendere dimistichezza con la UI e validassero i requisiti; purtroppo le macchine virtuali di test...

Deploy del Framework .NET 3.5 SP1 - Part II

Mi rifaccio al post precedente per una importante aggiunta Se dopo aver pubblicato l'applicazione, eseguendo l'installer da remoto, il download dei file dovesse interrompersi col seguente errore: Downloading failed with HRESULT=-2146697210 dovete controllare che il vostro application server (il server su cui l'applicazione è pubblicata) abbia i seguenti MIME impostati .msp --> application/microsoftpatch .msu --> application/microsoftupdate Il mio non li aveva e, aggiungendoli e riavviando il sito web che ospita l'applicazione, il download ha ripreso dal punto in cui si era fermato ;) !   Matteo ...

Deploy del Framework .NET 3.5 SP1

Chi volesse includere nelle applicazioni pubblicate tramite ClickOnce il Framework .NET 3.5 SP1, per renderlo scaricabile direttamente dal sito dell'applicazione, trova a questo link informazioni utili.   Matteo     Technorati Tag: .Net Framework 3.5 SP1,ClickOnce,Deploy

Sql Server Compact, Identity ed Entity Framework

Correggo il tiro sul mio precedente post e sottolineo un'altra volta l'importanza di documentarsi bene prima di buttarsi in una "nuova" avventura. Se utilizziamo Sql Compact con Entity Framework dobbiamo dire addio ai campi Identity, anzi dobbiamo rinunciare a qualsiasi campo auto generato dal db. Quindi le chiavi delle nostre tabelle dovranno essere sempre e comunque dei valori calcolati dall'applicazione.   Matteo Fontana   Technorati Tag: Sql Server CE,Entity Frameowork

WPF Binding

La prima cosa del Binding di WPF che mi ha piacevolmente colpito è la possibilità di gestire le 'dipendenze' tra due controlli: ovvero di poter rendere il contenuto di un controllo dipendente dallo stato di un altro controllo. Faccio un piccolo esempio. Supponiamo di volere creare una lista di elementi al quale abbiamo associato una nota, che vogliamo visualizzare all'interno di una TextBox. Per fare ciò basta poco codice Xaml: <DataGrid Name="ElementsList"...> ... </DataGrid> <TextBox Name="txtNote" Text="{Binding Path=SelectedItem.Value, ElementName=ElementsList}" /> In questo modo non dobbiamo preoccuparci di gestire eventi particolari per popolare la nostra TextBox. Ogni volta che selezioniamo...

DataGrid e Binding OneWay

Come detto nel post precedente sto cominciando, finalmente, a provare WPF, con un progettino semplice semplice. Quale posto migliore del blog per prendere appunti? Cominciamo dalla Datagrid del WPF Control Toolkit. Ho la necessità di visualizzare una lista di Entity all'iterno della DataGrid. Alcune proprietà di queste Entity sono in sola lettura; ho pensato quini di impostare il Binding sulla colonna come 'OneWay': <my:DataGridTextColumn Binding="{Binding Path=GrossTotal, Mode=OneWay}" Header="Totale" /> Questo non è sufficiente; anzi genera pure una eccezione in fase di bind. Il motivo è che la DataGrid imposta di default il Binding Mode a 'TwoWay'...

Entity Framework e Sql Server Compact

Nel tempo libero sto facendo un progettino, per provare finalmente WPF. Ho deciso di usare Entity Framework e come base di dati un database SqlCompact; la versione del Sql Compact è la 3.5 sp1. Nel gestire anagrafiche di comuni, province e regioni ho usato come chiave primaria i codici istat salvati come varchar. A causa di questa scelta mi è capitato di imbattermi in un errore singolare: ogni volta che provavo a caricare le i comuni di una provincia (o le province di una regione) con Deferred Load veniva sollevata una eccezione con questo messaggio ...

Entity SQL e campi DateTime

Mi è capitato di dover scrivere una query ESQL con un campo DateTime nella clausola where. Se per qualsiasi motivo non si possono (o non si vogliono) usare i parametri vi è un modo semplice per poter rendere compatibile una stringa contenente una data con ESQL: il seguente esempio (che estrae tutte le persone più giovani di me :) ) vale più di mille parole: "select value p from Persone AS p where p.DataNascita > DATETIME'1984-05-28 00:00'" In sostanza si deve usare la Keyword DATETIME seguita da una data nel formato 'yyyy-MM-dd hh:mm'. Per quanto ho capito...

Linq e il metodo Distinct

Ultimamente ho avuto la necessità di estrarre tutti gli elementi distinti di una query Linq. La query in questione interroga un EntitySet e restituisce come risultato una proiezione dei dati di una Entity all'interno di una classe; si presenta all'incirca così: var result = (from c in dataContext.CaratteristicheChimicheSet where codition orderby order descending select new Chemical() { ...