Npgsql con Entity Framework


Dall'ultima versione, Npgsql2 , il .NET Data Provider per PostgreSQL , offre il supporto per Entity Framework.

Purtroppo non è ancora integrato con Visual Studio, quindi per utilizzarlo occorre eseguire direttamente edmgen.exe da linea di comando.

Ma partiamo dal principio, perchè prima di poter ottenere il nostro bel file .edmx, è necessario effettuare alcune operazioni.

  • scaricare l'ultima versione di Npgsql2, la 2.0.1 (non la 2.0.0 che aveva un piccolo problema nel reverse engineering degli schemi) per il framework 3.5 SP1, da qui;
  • estrarre i due assembly Mono.Security.dll e Npgsql.dll dove desiderate;
  • aprire il Visual Studio Command Prompt (run as Administrator se usate Vista!), posizionarsi nella cartella dove avete estratto i files, e registrarli nella GAC ( gacutil /i Mono.Security.dll | gacutil /i Npgsql.dll );
  • sempre dal Visual Studio Command Prompt (non più necessariamente come Administrator se usate Vista!) eseguire edmgen.exe per creare i files .csdl|.ssdl|.msl
    ( edmgen /provider:Npgsql /mode:fullgeneration /c:"Port=5432;Encoding=UNICODE;Server=pgsrv;
    Database=mydb;UserId=dbuser;Password=dbuser!8" /project:MyProject );
  • a questo punto vi troverete i 3 files nella cartella, per concludere l'opera, o meglio per semplificare il tutto, perchè così già si potrebbe procedere, utilizziamo l'utility edmgen2.exe (la trovate qui) per "condensare" i nostri 3 files in un unico .edmx ( edmgen2 /ToEdmx MyProject.csdl MyProject.msl MyProject.ssdl );
  • non ci resta che aggiungere il risultato dei nostri sforzi (il file .edmx) al nostro progetto Visual Studio ( che provvederà ad aggiungere i riferimenti necessari), aggiungere un file di configurazione con la connection string (o specificarla direttamente nel costruttore del context) ed il gioco è fatto;

Attenzione a specificare correttamente il path dei metadati nella stringa di connessione, altrimenti a runtime non li troverà e vi richiederà il path dei file .csdl|.ssdl|.msl; nel mio esempio dovrebbe essere circa così:

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <configuration>
   3:   <connectionStrings>
   4:     <add name="ASTRIMSWContext"
   5:          connectionString="metadata=res://*/MyProject.csdl|res://*/MyProject.ssdl|res://*/MyProject.msl;
   6:          provider=Npgsql;provider connection string='Server=localhost;
   7:          Database=mydb;Integrated Security=False;User ID=mydbuser;Password=mydbuser!8;'" 
   8:          providerName="System.Data.EntityClient" />
   9:   </connectionStrings>
  10: </configuration>

 

author: Luca Beretta | posted @ mercoledì 5 novembre 2008 16.52 | Feedback (0)

Voi cosa avreste risposto ?


Non vorrei scatenare un flame inutile, ma oggi in relazione ad un problema con il CASE che utilizziamo per lo sviluppo, ho ricevuto una risposta che mi ha letteralmente fatto salire la pressione alle stelle.

Il problema, riguardava la migrazione di un'applicazione generata in JAVA con interfaccia SWT,che funzionava perfettamente, nella stessa applicazione generata in Microsoft .NET (C#) , che invece dà numerosi problemi specialmente nell'interfaccia.

Ecco cosa mi risponde il responsabile del supporto del CASE :

"E' perfettamente cosciente che questo passaggio da Java Win a .NET Win sta richiedendo più tempo di quanto ci si sarebbe aspettati e che si sono incontrati problemi, le cui cause in generale sono di tipo tecnico e per sintetizzarle si può dire che la infrastruttura di Java (SWT) è più moderna di quella usata in .NET (WFC) e questo causa differenze."

SWT più moderna di .NET ?! E soprattutto, .NET WFC ?!?

Un problema che avevo segnalato da tempo (anni) è che le applicazioni generate dal CASE in .NET, utilizzano la stessa libreria di classi scritta per JAVA e che utilizza WFC per l'interfaccia su Windows, introducendo una dipendenza da J# e diversi malfunzionamenti.

Sotto trovate la mia risposta, epurata dalle parolacce per le quali sono stato richiamato, ma voi cosa avreste risposto ?

"Lo Standard Widget Toolkit (SWT) è una creazione di IBM che in origine era stata ideata per SmallTalk (!!!), stiamo parlando degli anni ’90! (Fonte : http://en.wikipedia.org/wiki/Standard_Widget_Toolkit )
Microsoft .NET framework NON utilizza WFC, bensì è "il CASE" che per non riscrivere le gxclasses, utilizza Microsoft J# per utilizzare WFC con applicazioni .NET. Questo, oltre a non creare applicazioni .NET “vere”, provoca la dipendenza da Visual J# (il vjredist che ci tocca installare su tutti i client dei clienti!!!) e tutta la serie di problemi ‘grafici’ che caratterizzano le applicazioni .NET di "il CASE"!
WFC è una vecchia libreria grafica per JAVA su piattaforma Microsoft Windows!
Microsoft .NET Framework, fin dalla sua nascita nell’anno 2001, utilizza Microsoft.Windows.Forms per l’interfaccia, e non WFC!
Nel Maggio del 2003 su MSDN (Microsoft Developer Network) è stato pubblicato un articolo dal titolo più che eloquente : “Moving from WFC to the .NET Framework” (fonte : http://msdn.microsoft.com/en-us/library/aa290075(VS.71).aspx ), nel 2003!!!!!! Oggi siamo nel 2008, quasi 2009!"

 

Technorati Tag: ,,,,

author: Luca Beretta | posted @ giovedì 30 ottobre 2008 12.52 | Feedback (2)

MIX, bello...però...


Mi unisco a Omar nel fare i complimenti a tutti gli artefici dell'evento di ieri.

Molto interessante la sessione plenaria con Steve Ballmer, ottimi gli interventi tecnici della sessione Developer del pomeriggio.

In effetti il pubblico in sala era un po' freddino, forse fiaccato dai 3 case history, che per dei developer erano davvero poco interessanti.

Complimenti davvero a tutti!

Prima di chiudere però vorrei segnalare anche un paio di cose che non mi sono molto piaciute, anzi...

1) anche io, come Omar, sono arrivato con largo anticipo la mattina, ed il fatto di dover aspettare quasi 1 ora in piedi nell'area espositiva che via via si riempiva sempre di più, senza poter accedere alla sala, mi è sembrata una follia! La sala è stata aperta alle 10 e 5 minuti e l'inizio dei lavori era schedulato alle 10 e 15...perchè?

Secondo me era meglio lasciarla aperta, uno entrava, posava la sua roba, usciva e si beveva il caffè più tranquillo; l'area espositiva sarebbe stata più vivibile anche per gli sponsor che vi lavoravano, invece di avere gente in piedi che aspettava di entrare, gente che girava cercando un angolo per bersi il caffè, gente che cercava di visitare gli stand, ecc...

2) entrando tra i primi sono rimasto molto negativamente impressionato dall'abnorme quantità di posti riservati : le prime dieci (dico 10!!!) file, per 25 colonne, totale 250 posti, più un blocco di 10x10 posti sulla destra, ed altri 10x10 sulla sinistra: totale 450 posti riservati in una sala che approssimativamente poteva accogliere un migliaio di persone sedute! Decisamente troppi!!!

In più come se non bastasse, subito dietro alla zona off-limits, hanno piazzato il cameraman ed i fotografi che continuavano ad andare avanti ed indietro!

Di solito i posti riservati sono per eventuali autorità, VIP o parenti/familiari/amici, anche in eventi mondani o concerti importanti si riservano 2,3 massimo 5 file. Ieri, posti riservati anche per giornalisti e addirittura per i blogger, che avevano anche buffet separati...

Perchè ?!

Questa cosa mi ha molto più che infastidito, è come se andassi a S.Siro al concerto di Ligabue ed una volta arrivato scopro che il prato ed il primo anello sono completamente riservati, ed io che mi sono alzato alle 7 per essere lì in anticipo devo accontentarmi di ciò che resta.

In conclusione : contenuti e relatori voto 10, organizzazione voto 2.

Technorati Tag: ,,

author: Luca Beretta | posted @ giovedì 24 aprile 2008 13.10 | Feedback (2)

Post futuri


Non so da cosa dipenda, ma grazie a Raffaele ho scoperto che Omea Reader gestisce anche i post dal futuro...;-)

 

 

Technorati Tag: ,

author: Luca Beretta | posted @ martedì 4 marzo 2008 19.19 | Feedback (4)

Entity Framework Toolkits & Extensions


Notizia interessante

http://blogs.msdn.com/diego/archive/2008/01/25/welcome-to-the-entity-framework-toolkits-extensions.aspx

 

author: Luca Beretta | posted @ venerdì 25 gennaio 2008 12.52 | Feedback (0)

[OT] Schiuma in mare


Comincio l'anno con un OT, ma la cosa mi ha talmente fatto incazzare che non ho saputo trattenermi.

Ho passato il capodanno (e qualche altro giorno) a Milano Marittima, ed il pomeriggio del 2 Gennaio ho pensato bene di andare a fare due passi sulla spiaggia con la mia famiglia.

Dopo un po' ho notato che c’era qualcosa che galleggiava vicino a riva.

Beh non vi dico la "sorpresa" quando avvicinatomi ho scoperto che si trattava di schiuma



non meglio identificata, ma sicuramente ‘velenosa’ data la presenza di pesci morti.

Il fenomeno, come si può vedere dalle foto , interessava un centinaio di metri di spiaggia.

Per dare un’idea della dimensione degli ‘ammassi’, vi basti sapere che il piede che ho fotografato insieme ad essi in questa foto è un numero 48.



E' una cosa davvero schifosa, e pensare che Cervia, il comune cui appartiene Milano Marittima e che dista dalla schiuma circa 200 metri (!!!) , nel 2007 era bandiera blu!!

VERGOGNA!

author: Luca Beretta | posted @ giovedì 10 gennaio 2008 18.55 | Feedback (4)

[OT] ENEL


Solita storia di disservizi e disorganizzazione di aziende statali/ex-statali/para-statali.

Un mese e mezzo fa (circa) ho disdetto una carta di credito sulla quale avevo domiciliato la bolletta per la fornitura di energia elettrica, subito dopo, neanche 5 minuti dopo, ho chiamato il call center ENEL per spostare la domiciliazione sul mio conto corrente bancario.

Soliti minuti in attesa, poi un operatore mi ha chiesto le mie coordinate bancarie e mi ha detto che era tutto a posto, dalla prossima bolletta la domiciliazione sarebbe stata spostata.

Dopo un paio di settimane tramite home banking ho visto effettivamente l'attivazione della domiciliazione.

Ieri, trovo nella cassetta della posta la bolletta cartacea (che avevo disdetto oltre 1 anno fa in favore di quella in PDF via email!!!) con il bollettino postale ed un addebito di 15,49 € come deposito cauzionale perchè è stata revocata la domiciliazione!!!!!!!!

INCREDIBILE!

Stamattina chiamo il call center, incazzato nero ma non scortese, e mi risponde un cafone che mi tratta come uno scemo e non mi lascia parlare, dicendo che è giusto così perchè ci vogliono 60 giorni per attivare la domicialiazione, che comunque nei loro archivi non risulta. Ma allora le mie coordinate bancarie dove sono state inserite ?

Quando ho cominciato a scaldarmi, mi ha attaccato il telefono in faccia!!!

Ho subito richiamato chiedendo di parlare con il responsabile del servizio :

Operatrice : NO
IO : come NO?
Operatrice : adesso NO
IO : allora quando ?
Operatrice : oggi no, neanche domani, forse mercoledì
IO : ho capito, mi può dare il recapito dell'ufficio reclami ?
Operatrice : perchè ?
IO : perchè devo fare un reclamo...
Operatrice : mi deve prima dire nome e cognome
IO : Beretta Luca
Operatrice : deve fare un fax a questo numero 800 900 150
IO : grazie

Semplicemente ASSURDO! Un simile dialogo credo che starebbe bene in un film di Mel Brooks

Stavo per mettermi a scrivere un fax di 'fuoco', quando ho pensato : ma perchè perdere altro tempo per questi @#£$%%& ? E così ho fatto la cosa più semplice e che gli reca maggiore danno : sono passato immediatamente a ENI Power.

Così risparmio pure.
Speriamo che anche il servizio sia migliore...

 

author: Luca Beretta | posted @ sabato 29 dicembre 2007 12.26 | Feedback (0)

Entity Framework non solo per SQL Server


Finalmente cominciano ad apparire i primi ADO.NET provider, con il supporto per Entity Framework, anche per altri DBMS oltre a Microsoft SQL Server.

Qui l'annuncio:
http://blogs.msdn.com/adonet/archive/2007/12/17/the-ado-net-entity-framework-not-just-for-sql-server.aspx


Si nota, IMHO, la rumorosa assenza di Oracle, che non sviluppa ancora il proprio .NET Data provider nativo per aggiunger il supporto ad EF.
Fortunatamente ci sono altre società che lo stanno facendo, però...

 

author: Luca Beretta | posted @ martedì 18 dicembre 2007 10.38 | Feedback (1)

Le vecchie abitudini...


sono proprio dure a morire!

Anche adesso che ho a disposizione "mille" mezzi digitali per prendere appunti, come ai tempi della scuola, mi ritrovo con un pezzo di carta (rigorosamente 'di riciclo') ed una matita.

Dato che ho un po' di tempo libero, mi sono messo a fare delle prove con la Beta 3 di ADO.NET Entity Framework e la CTP2 di Entity Designer; per meglio fissarmi i concetti base in mente, sono solito 'buttare giù' qualche appunto, e, IMHO, niente è meglio del caro vecchio lapis (o almeno non ho ancora trovato di meglio).

 

author: Luca Beretta | posted @ giovedì 13 dicembre 2007 16.18 | Feedback (0)

COmeaHelper Object vs. IE7


Non so se è dovuto all'installazione del SP1 RC di Vista, però da ieri sera in alcuni casi che non sono riuscito ad isolare, eseguendo Internet Explorer mi compariva l'errore :

Microsoft Visual C++ Runtime Library
Runtime error!


Dopo una breve 'googlata' ho scoperto che poteva dipendere da qualche Add-on di IE7; molti dei post che ho trovato riguardanti questo errore attribuivano la colpa alla Google toolbar, ma non avendola io installata, sono passato al secondo indiziato : un fantomatico Browser Helper Object.

L'unico nella mia lista di add-on era COmeaHelper Object, disabilitato quello e riavviato IE7 tutto funziona.

 

Technorati Tag: ,,

author: Luca Beretta | posted @ martedì 11 dicembre 2007 12.11 | Feedback (3)