VSX http://blogs.ugidotnet.org/adrian/category/VSX.aspx VSX it-IT Adrian Florea Subtext Version 2.6.0.0 3rd Italian MDA Forum http://blogs.ugidotnet.org/adrian/archive/2008/11/21/3rd-italian-mda-forum.aspx <p>Salire sul <a href="http://mdaforum.soluta.net/agenda.aspx">palco</a> a parlare di DSL Tools subito dopo <a href="http://www.omg.org/~soley/">Richard Mark Soley</a>, <a href="http://www.stephenmellor.com/">Stephen J. Mellor</a> e <a href="http://www.cutter.com/meet-our-experts/rosenm.html">Michael Rosen</a>, giuro che non e' stato facile :) Ottima l'organizzazione dell'evento, nel cinquecentesco <a href="http://www.hotelpalazzostelline.it/">Palazzo delle Stelline</a>, tante discussioni interessantissime sull'MDA, modellizzazione e generazione di codice. Giornata davvero speciale!</p><img src="http://blogs.ugidotnet.org/adrian/aggbug/94728.aspx" width="1" height="1" /> Adrian Florea http://blogs.ugidotnet.org/adrian/archive/2008/11/21/3rd-italian-mda-forum.aspx Fri, 21 Nov 2008 11:15:24 GMT http://blogs.ugidotnet.org/adrian/archive/2008/11/21/3rd-italian-mda-forum.aspx#feedback 411 http://blogs.ugidotnet.org/adrian/comments/commentRss/94728.aspx http://blogs.ugidotnet.org/adrian/services/trackbacks/94728.aspx Axioms for software architects by software architects http://blogs.ugidotnet.org/adrian/archive/2008/09/08/axioms-for-software-architects-by-software-architects.aspx <p>Via <a href="http://memeagora.blogspot.com/2008/08/97-things-every-software-architect.html">questo post</a> di Neal Ford sono arrivato a questo saggissimo wiki: <a href="http://97-things.near-time.net/">97 Things Every Software Architect Should Know</a>. Assolutamente da non perdere! Tre dei principi li ho gia' aggiunti alla mia <a href="http://blogs.ugidotnet.org/adrian/archive/2006/03/03/36066.aspx">collezione sulla semplicita'</a>.</p> <p>[OT]: Venerdi' organizziamo il <a href="http://ronua.ro/CS/forums/thread/206385.aspx">secondo workshop</a> dello user group locale, RONUA Galati, con due presentazioni sullo stesso difficile tema: un'introduzione a DSL Tools e un'altra a VSX. <a href="http://ronua.ro/CS/photos/23_mai_2008_--_galati_ronua_roadshow_2008/default.aspx">Guardate</a> quanta gente e' venuta al primo workshop, tenuto a maggio! Incredibile... Poi sono stato invitato a partecipare questo weekend insieme a tutti gli MVP e Microsoft Influencer rumeni alla quinta edizione di Microsoft Community Bootcamp, organizzata da Microsoft Romania in montagna, ottima opportunita' di conoscerci tutti insieme! Presto mettero' da qualche parte le slide e il codice del workshop e vi aggiornero' su come e' andata al bootcamp - scusate la parte off-topic del post...</p><img src="http://blogs.ugidotnet.org/adrian/aggbug/93965.aspx" width="1" height="1" /> Adrian Florea http://blogs.ugidotnet.org/adrian/archive/2008/09/08/axioms-for-software-architects-by-software-architects.aspx Mon, 08 Sep 2008 05:05:17 GMT http://blogs.ugidotnet.org/adrian/archive/2008/09/08/axioms-for-software-architects-by-software-architects.aspx#feedback 27 http://blogs.ugidotnet.org/adrian/comments/commentRss/93965.aspx http://blogs.ugidotnet.org/adrian/services/trackbacks/93965.aspx Un'API generico a provider per i metadata dei vari ORM http://blogs.ugidotnet.org/adrian/archive/2008/05/03/unapi-generico-a-provider-per-i-metadata-dei-vari-orm.aspx <p>Via <a href="http://weblogs.asp.net/fbouma/archive/2008/05/01/dynamic-data-and-3rd-party-o-r-mappers-is-a-fact.aspx">questo post</a> di <a href="http://weblogs.asp.net/fbouma/">Frans Bouma</a> ho scoperto sotto il namespace <strong>System.Web.DynamicData.ModelProviders</strong> dell'assembly <strong>System.Web.DynamicData.dll</strong> che arriva con l'ultima release della preview di <a href="http://code.msdn.microsoft.com/dynamicdata">ASP.NET Dynamic Data</a>, un'API generico composto da 4 provider per i metadata dei vari ORM (non solo Microsoft): <strong>DataModelProvider</strong>, <strong>TableProvider</strong>, <strong>ColumnProvider</strong> ed <strong>AssociationProvider</strong>. Questo unifica in buona misura le varie API che espongono i metadata degli ORM, per esempio <strong>MetaTable</strong>, <strong>MetaDataMember</strong>, <strong>MetaAssociation</strong> nel caso di LINQ to SQL, oppure quella piu' complessa dell'Entity Framework: <strong>EntitySet</strong>, <strong>EdmMember</strong>, <strong>NavigationProperty</strong>, etc. Frans ha gia' scritto un <em>model provider</em> per il suo <a href="http://www.llblgen.com/">LLBLGen Pro</a>, sarebbe bellissimo averne uno anche per <a href="http://www.nhibernate.org/">NHibernate</a>. E poi mi piacerebbe in futuro vedere questa API staccata dal ASP.NET Dynamics Data con cui non dovrebbe avere tanto in comune.</p><img src="http://blogs.ugidotnet.org/adrian/aggbug/92497.aspx" width="1" height="1" /> Adrian Florea http://blogs.ugidotnet.org/adrian/archive/2008/05/03/unapi-generico-a-provider-per-i-metadata-dei-vari-orm.aspx Sat, 03 May 2008 02:53:11 GMT http://blogs.ugidotnet.org/adrian/archive/2008/05/03/unapi-generico-a-provider-per-i-metadata-dei-vari-orm.aspx#feedback 104 http://blogs.ugidotnet.org/adrian/comments/commentRss/92497.aspx http://blogs.ugidotnet.org/adrian/services/trackbacks/92497.aspx Un DSL per i mapping O/R? http://blogs.ugidotnet.org/adrian/archive/2008/03/04/91491.aspx Guardando in questi giorni <a href="http://tools.hibernate.org/">Hibernate Tools</a>, mi e' piaciuta molto l'idea che sta alla base della la sua architettura: il mapping viene rappresentato da un'istanza del <em>metamodello</em> di Hibernate (classe <strong>org.hibernate.cfg.Configuration</strong> o derivate, equivalente di <strong>NHibernate.Cfg.Configuration</strong>) e da questo <em>modello</em> vengono generati i vari artefatti tramite cosiddetti <em>exporter</em> (per esempio <strong>hbm2java</strong>, <strong>hbm2ddl</strong>, <strong>hbm2hbmxml</strong>, etc), che non sono altro che classi che derivano da <strong>org.hibernate.tool.hbm2x.GenericExporter</strong> e che, insieme a dei template FreeMarker, definiscono in modo straordinariamente flessibile la parte di generazione codice/artefatti. Quindi, al posto della <strong>PO<font color="#ff0000">J</font>OExporter</strong> potremmo avere, perche' no, anche una <strong>PO<font color="#ff0000">C</font>OExporter</strong> per il domain model C#. Sarebbe interessante replicare in NHibernate un'infrastruttura simile, soprattutto adesso quando <a href="http://blogs.msdn.com/garethj/archive/2008/01/31/fun-use-of-t4-to-generate-strongly-typed-web-navigation.aspx">la parte di generazione codice via template T4 si trova gia' inclusa in VS2008</a>. E poi, se tutto questo viene generato da un'istanza di <strong>Configuration</strong>, ci vuole solo un passo per creare un DSL grafico (con l'immenso aiuto di <a href="http://msdn2.microsoft.com/en-us/library/bb126235.aspx">DSL Tools</a>) che rappresenti il mapping (N)Hibernate. E un po' quello che hanno fatto in Java con, per esempio, <a href="http://www.exadel.com/exadelstudio/help/#orm2">Exadel Studio Pro</a>, diventato adesso parte di <a href="http://www.jboss.com/products/devstudio">Jboss Developer Studio</a>. Ma poi, i concetti di mapping sono quasi independenti dagli engine e quindi, perche' non pensare a un tool visuale capace di risolvere la parte mapping per piu' ORM?<img src="http://blogs.ugidotnet.org/adrian/aggbug/91491.aspx" width="1" height="1" /> Adrian Florea http://blogs.ugidotnet.org/adrian/archive/2008/03/04/91491.aspx Tue, 04 Mar 2008 00:50:22 GMT http://blogs.ugidotnet.org/adrian/archive/2008/03/04/91491.aspx#feedback 111 http://blogs.ugidotnet.org/adrian/comments/commentRss/91491.aspx http://blogs.ugidotnet.org/adrian/services/trackbacks/91491.aspx L'OR Designer e' stato scritto con DSL Tools http://blogs.ugidotnet.org/adrian/archive/2008/01/21/90790.aspx Lo sapevate che l'Object Relational Designer e la parte di generazione di codice per le classi LINQ to SQL in VS2008 sono state scritte utilizzando <a href="http://www.microsoft.com/vstudio/dsltools">Microsoft DSL Tools</a> che fa parte di <a href="http://www.microsoft.com/downloads/details.aspx?familyid=51A5C65B-C020-4E08-8AC0-3EB9C06996F4&amp;displaylang=en">VS SDK</a>? - l'ho scoperto tramite il Reflector mentre <a href="http://www.domainspecificdevelopment.com/">studiavo</a> l'API di questo potentissimo framework che e' DSL Tools: tra le classi che derivano da <strong>Microsoft.VisualStudio.Modeling.ModelElement</strong>, classe fondamentale per la rappresentazione degli elementi di un domain model, si trovano anche le classi internal dell'OR Designer. Questo dovrebbe dare piu' fiduccia a chi inizia o valuta di <a href="http://msdn.com/vsx">estendere Visual Studio</a> per un certo DSL utilizzando DSL Tools! - parti complesse del VS stesso iniziano ad essere sviluppate con questo framework.<img src="http://blogs.ugidotnet.org/adrian/aggbug/90790.aspx" width="1" height="1" /> Adrian Florea http://blogs.ugidotnet.org/adrian/archive/2008/01/21/90790.aspx Mon, 21 Jan 2008 03:29:06 GMT http://blogs.ugidotnet.org/adrian/archive/2008/01/21/90790.aspx#feedback 225 http://blogs.ugidotnet.org/adrian/comments/commentRss/90790.aspx http://blogs.ugidotnet.org/adrian/services/trackbacks/90790.aspx