<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Metalevel &#187; Essential</title>
	<atom:link href="http://pjmolina.com/metalevel/tag/essential/feed/" rel="self" type="application/rss+xml" />
	<link>http://pjmolina.com/metalevel</link>
	<description>Abstraction based levitation</description>
	<lastBuildDate>Tue, 17 Jan 2012 20:22:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Modelling the User Interface, the video</title>
		<link>http://pjmolina.com/metalevel/2011/10/modelling-the-user-interface-the-video/</link>
		<comments>http://pjmolina.com/metalevel/2011/10/modelling-the-user-interface-the-video/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 22:24:55 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=738</guid>
		<description><![CDATA[The recording of the Code Generation 2011 session about &#8216;Modelling the User Interface&#8217; is finally available online at InfoQ. For further details take a look to the slides and Conceptual User Interface Patterns. During the video you can see a pair of demos:  Essential on action doing full UI inference and code generation and IO, the codename for a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="InfoQ" src="http://cdn2.infoq.com/styles/i/logo-infoq.gif" alt="" width="127" height="38" />The recording of the Code Generation 2011 <a title="Session details" href="http://www.codegeneration.net/cg2011/sessioninfo.php?session=14" target="_blank">session</a> about <em>&#8216;Modelling the User Interface&#8217;</em> is finally available online at <a title="Modelling the User Interface" href="http://www.infoq.com/presentations/Modeling-the-User-Interface" target="_blank">InfoQ</a>.</p>
<p>For further details take a look to the <a title="Modelling the User Interface" href="http://www.slideshare.net/pjmolina/modelling-the-user-interface" target="_blank">slides</a> and <a title="Conceptual User Interface Patterns" href="http://pjmolina.com/cuip" target="_blank">Conceptual User Interface Patterns</a>.</p>
<p>During the video you can see a pair of demos:</p>
<ul>
<li> <a title="Essential" href="http://pjmolina.com/metalevel/essential/" target="_blank">Essential</a> on action doing full UI inference and code generation</li>
<li>and IO, the codename for a new proof of concept UI specification and WYSIWYG prototyping tool.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2011/10/modelling-the-user-interface-the-video/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Essential on Alt.Net Hispano</title>
		<link>http://pjmolina.com/metalevel/2011/07/essential-on-alt-net-hispano/</link>
		<comments>http://pjmolina.com/metalevel/2011/07/essential-on-alt-net-hispano/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 08:46:15 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=723</guid>
		<description><![CDATA[The Alt.NET Hispano group has published my VAN about Code generation with Essential. The recording was done in Spanish. La comunidad Alt.NET Hispano ha publicado la VAN (desconferencia) sobre Generación de código con Essential que tuvimos el pasado dia 11 de junio. Si estás interesado en MDD, generación de código y como aplicarlo con Essential, [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="Alt.NET Hispano" href="http://altnethispano.org">Alt.NET Hispano</a> group has published my VAN about <a title="Generación de Código con Essential" href="http://altnethispano.org/wiki/van-2010-05-28-generacion-de-codigo-con-essential.ashx">Code generation with Essential</a>. The recording was done in Spanish.</p>
<p>La comunidad Alt.NET Hispano ha publicado la VAN (desconferencia) sobre <a title="Generación de código con Essential" href="http://altnethispano.org/wiki/van-2010-05-28-generacion-de-codigo-con-essential.ashx">Generación de código con Essential</a> que tuvimos el pasado dia 11 de junio. Si estás interesado en MDD, generación de código y como aplicarlo con Essential, este video grabado para la comunidad en español es un buen punto de partida.</p>
<p>Mi agradecimiento a Alt.NET Hispano por el interés en la materia y la invitación a divulgarlo.</p>
<p><a title="Descarga directa: Essential Video" href="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/van-2011-06-11.flv?downloadOnly=true">Descarga directa del video</a> (562 Mb).</p>
<p>&nbsp;</p>
<p><span id="more-723"></span></p>
<p><object id="scPlayer" width="700" height="468" data="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/flvplayer.swf" type="application/x-shockwave-flash"><param name="movie" value="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/flvplayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="thumb=http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/FirstFrame.jpg&amp;containerwidth=800&amp;containerheight=468&amp;analytics=UA-21341284-1&amp;content=http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/van-2011-06-11.flv&amp;blurover=false" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/" />Unable to display content. Adobe Flash is required.</object></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2011/07/essential-on-alt-net-hispano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/van-2011-06-11.flv&amp;amp" length="589272873" type="video/x-flv" />
<enclosure url="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/512cfc98-8e47-48a2-8781-a22bf3f40af9/van-2011-06-11.flv?downloadOnly=true" length="589272873" type="video/x-flv" />
		</item>
		<item>
		<title>First public Essential 0.4.44 Beta!</title>
		<link>http://pjmolina.com/metalevel/2011/05/first-public-essential-beta/</link>
		<comments>http://pjmolina.com/metalevel/2011/05/first-public-essential-beta/#comments</comments>
		<pubDate>Wed, 11 May 2011 09:11:57 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[language workbench]]></category>
		<category><![CDATA[mdsd]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=681</guid>
		<description><![CDATA[The Code Generation 2011 conference and the Language Workbenches Competition 2011 Workshop are quite close in the calendar. I want to celebrate it with the MDD community sharing my work on Essential (a tool designed for acquiring speed with Model Driven Development). On 11th may 2011, version 0.4.44 has been released as the first public beta. Essential [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin-left: 10px;" title="Essential Logo" src="/img/LogoEssential300px.png" alt="Essential Logo" width="180" height="99" /></p>
<p>The <a title="Code Generation 2011" href="http://www.codegeneration.net/cg2011/index.php">Code Generation 2011</a> conference and the <a title="LWC2011 Workshop" href="http://www.languageworkbenches.net/workshop.html">Language Workbenches Competition 2011 Workshop</a> are quite close in the calendar.</p>
<p>I want to celebrate it with the MDD community sharing my work on <strong><a title="Essential - MDD tool" href="http://pjmolina.com/metalevel/essential">Essential</a> </strong>(a tool designed for acquiring speed with Model Driven Development). On 11th may 2011, version 0.4.44 has been released as the<strong> first public beta</strong>.</p>
<p>Essential is a meta-modeling and code generation tool providing specific DSLs to define and consume:</p>
<ul>
<li>Metamodels</li>
<li>Models</li>
<li>Templates (using StringTemplate) &amp;</li>
<li>Transformations (Model2Text and Model2Model)</li>
</ul>
<div>With a strong emphasis on model interpretation, prototyping a code generation can be done in an agile way without the need of generating any infrastructure boilerplate or meta-editor plumbling accessories.</div>
<div>The main goals of the tools is to enable software architects to:</div>
<div>
<div>
<ul>
<li>Prototyping software directly from models in a unexpensive way</li>
<li>Evolve theirs software architectures as fast as possible experimenting with design choices</li>
<li>Benchmarking and comparing architectures</li>
<li>Code generation</li>
</ul>
</div>
</div>
<div>For all of you interested in, feel free to <a title="Essential evaluation version download" href="http://pjmolina.com/essential/download-eval/">try it</a>, enjoy and provide feedback.</div>
<p>Try it also with the sample projects created for the <a title="LWC2011 Essential sample models" href="http://code.google.com/p/lwc11-essential/downloads/list">LWC 2011 challenge</a>.</p>
<p><a title="Essential evaluation version download" href="http://pjmolina.com/essential/download-eval/"><img class="alignnone" title="Download Essential" src="/img/blue-box256.png" alt="" width="100" height="100" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2011/05/first-public-essential-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting ready for CG2011</title>
		<link>http://pjmolina.com/metalevel/2011/04/getting-ready-for-cg2011/</link>
		<comments>http://pjmolina.com/metalevel/2011/04/getting-ready-for-cg2011/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 17:56:03 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[cg2011]]></category>
		<category><![CDATA[lwc]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=676</guid>
		<description><![CDATA[Code Generation 2011 is the leading European conference on modeling and code generation. It&#8217;s a great opportunity to meet with the experts in the field and share the latest research in the area. The invited speakers this year are very, very interesting: Terrence Parr, well known by its work on teaching compiler construction and the [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Code Generation 2011" href="http://www.codegeneration.net/cg2011"><img class="alignright" title="CG2011 logo" src="http://www.codegeneration.net/cg2011/images/cg2011-225x58.gif" alt="" width="225" height="58" /></a></p>
<p><a title="Code Generation 2011" href="http://www.codegeneration.net/cg2011">Code Generation 2011</a> is the leading European conference on modeling and code generation. It&#8217;s a great opportunity to meet with the experts in the field and share the latest research in the area.</p>
<p>The invited speakers this year are very, very interesting:</p>
<ul>
<li><a title="Terrence Parr" href="http://www.codegeneration.net/cg2011/keynotes.php#parr">Terrence Parr</a>, well known by its work on teaching compiler construction and the great tools <a title="ANTLR" href="http://www.antlr.org">ANTLR </a>and <a title="StringTemplate" href="http://www.stringtemplate.org">StringTemplate</a>, and</li>
<li><a title="Ed Merks" href="http://www.codegeneration.net/cg2011/keynotes.php#merks">Ed Merks</a>, the leader of the Eclipse Modeling Framework</li>
</ul>
<p>As a novelty, previous to the conference itself the first edition of the <a title="LWC 2011" href="http://www.codegeneration.net/cg2011/LWC-CG2011.php">Language Workbenches Competition</a> will take place on May 24<sup>th</sup> in the same venue.</p>
<p>In this edition, I will be there again, more active if ever, taking part with some activities:</p>
<ul>
<li>On May 24<sup>th</sup>, presenting <a title="Essential" href="http://pjmolina.com/metalevel/essential">Essential</a> in the scope of the <a title="LWC 2011" href="http://www.languageworkbenches.net/workshop.html">Language Workbenches Competition</a></li>
<li>On 25<sup>th</sup>, presenting on <a title="Introducing Model Driven Software Development" href="http://www.codegeneration.net/cg2011/sessioninfo.php?session=101">Introducing Model Driven Software Development </a></li>
<li>And, later on, taking part in the panel <a title="Build or buy - who should develop and own your DSLs and generators?" href="http://www.codegeneration.net/cg2011/sessioninfo.php?session=6">Build or Buy &#8211; who should develop and own your DSLs and generators?</a> organized by <a title="Juha-Pekka Tolvanen" href="http://www.metacase.com/blogs/jpt/blogView">Juha-Pekka Tolvanen</a> from <a title="Metacase" href="http://www.metacase.com">Metacase</a></li>
<li>Finally, on 26<sup>th</sup>, discussing about <a title="Modelling the User Interface" href="http://www.codegeneration.net/cg2011/sessioninfo.php?session=14">Modelling the User Interface</a></li>
</ul>
<p>As always, I’m looking forward to meet again the code generation community.</p>
<p>Take a look to the <a title="CG2011 Programme" href="http://www.codegeneration.net/cg2011/programme.php">full programme</a> and don’t miss the chance.</p>
<p>See you in Cambridge!</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2011/04/getting-ready-for-cg2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential submission to LWC11</title>
		<link>http://pjmolina.com/metalevel/2011/02/essential-submission-to-lwc11/</link>
		<comments>http://pjmolina.com/metalevel/2011/02/essential-submission-to-lwc11/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 18:21:06 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[language worbench]]></category>
		<category><![CDATA[lwc]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=660</guid>
		<description><![CDATA[As blogged before, at CG2010 a group of interest came up with a proposal for creating a Language Workbenches Competition and the first edition will be taking place in Cambridge May 24th, just before CG2011. I submitted a proposal with Essential for participation in LWC11. It&#8217;s going to be a great forum for comparing language [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="LWC11 - Essential" src="http://code.google.com/p/lwc11-essential/logo?cct=1298648794" alt="" width="153" height="47" />As <a title="LWC11" href="http://pjmolina.com/metalevel/2010/07/language-workbench-competition-2011/">blogged before</a>, at CG2010 a group of interest came up with a proposal for creating a <a title="Language Workbenches Competition" href="http://www.languageworkbenches.net/">Language Workbenches Competition</a> and the first edition will be taking place in Cambridge May 24th, just before <a title="CG2011" href="http://www.codegeneration.net/cg2011">CG2011</a>.</p>
<p>I submitted a <a href="http://lwc11-essential.googlecode.com/files/lwc11-essential.pdf">proposal</a> with <a title="Essential" href="http://pjmolina.com/metalevel/essential/">Essential</a> for participation in LWC11. It&#8217;s going to be a <strong>great forum for comparing language workbenches</strong> capabilities and the state of the art in the area. If interested, track the progress here <a href="http://www.languageworkbenches.net/submissions.html">LCW11</a>.</p>
<p>During the last weeks I&#8217;ve been working a little, replacing the old Microsoft Oslo dependencies to MGrammar inside Essential to an alternative parsing solution. The MS Oslo and later SQL Server Modeling never passed from the CTP stage and finally were discontinued. Therefore, I couldn&#8217;t ship a product in such conditions and finally decided to change it.</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2011/02/essential-submission-to-lwc11/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hello World with Essential, the video</title>
		<link>http://pjmolina.com/metalevel/2010/07/hello-world-with-essential/</link>
		<comments>http://pjmolina.com/metalevel/2010/07/hello-world-with-essential/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 15:19:47 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[mde]]></category>
		<category><![CDATA[mdsd]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=612</guid>
		<description><![CDATA[The Hello World sample is a nice starting point to show the syntax and capabilities of every new language. This test is also useful for code generators and Domain Specific Languages (DSLs) also as a proof of concept. Following this honorable tradition, I have created a video showing the capabilities of Essential: the tool I [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin-left: 10px;" title="Essential Logo" src="/img/LogoEssential300px.png" alt="Essential Logo" width="180" height="99" /></p>
<p>The <a title="Hello World" href="http://en.wikipedia.org/wiki/Hello_world_program" target="_blank">Hello World sample</a> is a nice starting point to show the syntax and capabilities of every new language. This test is also useful for code generators and Domain Specific Languages (DSLs) also as a proof of concept.</p>
<p>Following this honorable tradition, I have created a video showing the capabilities of <strong><a title="Essential" href="http://pjmolina.com/metalevel/essential/">Essential</a></strong>: the tool I am working on for doing agile Model Driven Development.</p>
<p>In this 10 minutes video you will get a general idea of the DSL the language provides to create:</p>
<ul>
<li>metamodels</li>
<li>models</li>
<li>templates</li>
<li>and control transformations</li>
</ul>
<p>In order to see the details, jump to Vimeo, activate the High Definition mode (HD) and set full screen (sorry embebed version is not good enough).</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="281" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=13587681&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="281" src="http://vimeo.com/moogaloop.swf?clip_id=13587681&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/13587681">Essential IDE &#8211; Hello World sample</a> from <a href="http://vimeo.com/user3817869">Pedro J. Molina</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>More info about it and 12 usage scenarios in the last Code Generation 2010 presentation about <a title="Tailored Code Generators" href="http://pjmolina.com/metalevel/2010/06/tailored-code-generators-at-cg2010/">Tailored Code Generators</a>.</p>
<p>Share your impressions!</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2010/07/hello-world-with-essential/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tailored Code Generators at CG2010</title>
		<link>http://pjmolina.com/metalevel/2010/06/tailored-code-generators-at-cg2010/</link>
		<comments>http://pjmolina.com/metalevel/2010/06/tailored-code-generators-at-cg2010/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 22:52:15 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[cg2010]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=603</guid>
		<description><![CDATA[I presented the following talk: DSL and tool support for Tailored Code Generators at Code Generation 2010, at Cambridge, UK on June 18th. CG2010 Tailored Code Generators View more presentations from Pedro J. Molina. It also was the public presentation of Essential: the tooling supporting my approach for applying MDD. I got a very good [...]]]></description>
			<content:encoded><![CDATA[<p>I presented the following talk: <strong><a title="DSL and tool support for Tailored Code Generators" href="http://www.codegeneration.net/cg2010/sessioninfo.php?session=15" target="_blank">DSL and tool support for Tailored Code Generators</a></strong><strong> </strong> at <strong><a title="Code Generation 2010" href="http://www.codegeneration.net/cg2010/index.php" target="_blank">Code Generation 2010</a></strong>, at Cambridge, UK on June 18th.</p>
<div id="__ss_4579382" style="width: 425px;"><strong><a title="CG2010 Tailored Code Generators" href="http://www.slideshare.net/pjmolina/cg2010-tailored-code-generators-4579382">CG2010 Tailored Code Generators</a></strong><object id="__sse4579382" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cg2010tailoredcodegenerators-100622173311-phpapp02&amp;stripped_title=cg2010-tailored-code-generators-4579382" /><param name="name" value="__sse4579382" /><param name="allowfullscreen" value="true" /><embed id="__sse4579382" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cg2010tailoredcodegenerators-100622173311-phpapp02&amp;stripped_title=cg2010-tailored-code-generators-4579382" name="__sse4579382" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/pjmolina">Pedro J. Molina</a>.</div>
</div>
<p>It also was the public presentation of <strong><a title="Essential" href="http://pjmolina.com/metalevel/essential/" target="_self">Essential</a></strong><strong>:</strong> the tooling supporting my approach for applying MDD. I got a very good feedback from the audience and receive many request to test the tool.</p>
<p>People interested in beta testing it can still enroll <a title="Request Essential Evaluation" href="http://bit.ly/9SbgvP" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2010/06/tailored-code-generators-at-cg2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Essential drop</title>
		<link>http://pjmolina.com/metalevel/2010/06/essential-drop/</link>
		<comments>http://pjmolina.com/metalevel/2010/06/essential-drop/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 12:27:38 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[cg2010]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=587</guid>
		<description><![CDATA[Essential is going to be presented this week in Code Generation 2010 during the session DSL and tool support for building tailored code generators. To celebrate this milestone and give the chance to have more people trying it, an early version is going to be released for the people interested in. If this is your case, [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://pjmolina.com/metalevel/essential"><img class="alignright" title="Essential" src="http://pjmolina.com/img/LogoEssential300px.png" alt="" width="180" height="99" /></a><a title="Essential" href="http://pjmolina.com/metalevel/essential/">Essential</a></strong> is going to be presented this week in <a title="Code Generation 2010" href="http://www.codegeneration.net/cg2010/index.php" target="_blank">Code Generation 2010</a> during the session <a title="DSL and tool support for building tailored code generators." href="http://www.codegeneration.net/cg2010/sessioninfo.php?session=15" target="_blank">DSL and tool support for building tailored code generators</a>.</p>
<p>To celebrate this milestone and give the chance to have more people trying it, an early version is going to be released for the people interested in.</p>
<p>If this is your case, please enroll yourself using the <a title="Essential evaluation form" href="http://spreadsheets0.google.com/embeddedform?formkey=dDZxQXVyM2NJTk1BcVRRZmJqUDRaREE6MQ" target="_blank">evaluation request form</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2010/06/essential-drop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Modelling with Essential</title>
		<link>http://pjmolina.com/metalevel/2010/02/modelling-with-essential/</link>
		<comments>http://pjmolina.com/metalevel/2010/02/modelling-with-essential/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 21:06:47 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[DSL]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=466</guid>
		<description><![CDATA[After presenting the metamodel DSL, today is the turn for the modelling DSL. As commented previously, Martin Thiede has a nice prototype called Concrete of a Web editor for model and metamodels. Such work and video also helps to understand the modelling and metamodelling duality. Coming back to Essential, our tool is also providing a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Benzene chemical model. CC-NA via Wikipedia" src="http://upload.wikimedia.org/wikipedia/commons/6/67/Benzene_structure.png" alt="" width="357" height="117" /></p>
<p>After presenting the <a title="Essential.Meta DSL" href="http://pjmolina.com/metalevel/2010/02/essential-meta-a-concise-dsl-for-metamodeling/">metamodel DSL</a>, today is the turn for the modelling DSL.</p>
<p>As commented previously, Martin Thiede has a nice prototype called <a title="Concrete" href="http://modeldrivensoftware.net/profiles/blogs/concrete-a-lightweight?xg_source=activity" target="_blank">Concrete</a> of a Web editor for model and metamodels. Such work and video also helps to understand the modelling and metamodelling duality.</p>
<p>Coming back to Essential, our tool is also providing a DSL to instantiate a metamodel. But a sample will probably be more illustrative:</p>
<p>Suppose the following simple metamodel:</p>
<pre class="brush:c-sharp;">namespace Core.Class
{
    class ClassModel
    {
        composition List&lt;Class&gt; Classes opposite Model;
    }
    class  Class
    {
        string Name;
        composition List&lt;Attribute&gt; Attributes;
    }
    class Attribute
    {
         string name;
         string Type;
    }
}</pre>
<p><img src="http://yuml.me/diagram/scale:90/class/[ClassModel]++1-Classes&gt;*[Class],%20[Class]++1-Attributes&gt;*[Attribute]" alt="" /></p>
<p>You could consider it as a very basic OO model. Intentionally I haven’t added too many details to keep it simple.</p>
<p>If you continue building it; adding operations, arguments, association support and more&#8230; at the end, you can have a metamodel comprising a full class diagram of UML, for example. The complexity of the metamodel you want to use is up to you. Having the control of the concepts inside the metamodel you can always add or remove features.</p>
<p>Modelling tools focused in UML, for example, provides this metamodel closed. You can’t change it, it’s a hard-wired standard and you are not allowed to change the core directly (only by extensions points like stereotypes and profiles).</p>
<h2>Modelling Language</h2>
<p>Now, let’s see how we can create <strong>a model</strong> using the previous metamodel:</p>
<pre class="brush:c-sharp;">using Core.Class;
namespace MyModel
{
    ClassModel  myClassModel
    {
        Classes = [Customer, Invoice];
    }
    Class Customer
    {
        Name = "Customer";
        Attributes = [Name, Surname];
    }
    Attribute Name
    {
        Name= "Name";
        Type= "string";
    }
    Attribute Surname
    {
        Name= "Name";
        Type= "string";
    }
    Class Invoice
    {
        Name = "Invoice";
        Attributes = [
            Attribute Amount
            {
                Name= "Amount";
                Type= "decimal";
            },
            Attribute InvoiceDate
            {
                Name= "InvoiceDate";
                Type= "date";
            }
        ];
     }
}</pre>
<p>In the sample, a basic declaration of two classes (Customer and Invoice) has been instantiated using the concept <strong>Class</strong> defined in the metamodel. Each metamodel concept is instantiated using it as you would be using a class in Java, C# or C++. Properties are assigned in the natural way one would expect in such languages.</p>
<p>As expected, the <strong>using</strong> operator imports the metamodel to be employed.</p>
<p>In the lines 26-37 you can see how properties can be also defined inline for list contexts.</p>
<p>Under the curtains, the tool is providing code completion, syntax colorization, error management and real-time parsing as you could expect from a modern IDE.</p>
<p>Essential uses DSL text for serialization but also XML can be derived. This XML document is conformant with an XSD derived from the corresponding metamodel.</p>
<h2>Intended usage</h2>
<p>Consider now, a basic DB metamodel:</p>
<pre class="brush:c-sharp;">namespace Meta.Database
{
    class Schema
    {
		string Name;
		composition List&lt;Table&gt; Tables;
    }
    class Table
    {
		string Name;
		composition List&lt;Column&gt; Columns;
    }
    class Column
    {
		string Name;
		string SqlType;
    }
}</pre>
<p><img src="http://yuml.me/diagram/scale:90/class/[Schema]+1-Tables&gt;*[Table], [Table]++1-Columns&gt;*[Column]." alt="" /></p>
<p>With this base in mind, you can define a business model containing (Customers, Invoices, etc.) based on a class metamodel and then, look for ways to transform your class model in, for example, a DB model representation. This is called, a M2M transformation (<em>Model to Model</em>). Essential will provide specialized languages to do that.</p>
<p>After that, your derived DB model can again be generated to final code, for example SQL DDL scripts in a given certain dialect. This is generally called a M2T transformation (<em>Model to Text</em>) and again Essential provides tools to describe the transformations.</p>
<p>Basically, to complete all this stuff, we need to introduce two more specialized languages: one for applying transformations, and another one for templates to be converted to final text.</p>
<p>I will focus on templates side on the next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2010/02/modelling-with-essential/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Essential namespace collision</title>
		<link>http://pjmolina.com/metalevel/2010/02/essential-namespace-collision/</link>
		<comments>http://pjmolina.com/metalevel/2010/02/essential-namespace-collision/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 23:47:09 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=450</guid>
		<description><![CDATA[Surfing the Web, I just found this Essential Project. At the same time, I&#8217;m working in an MDD tool called Essential. The first one is related to Enterprise Architecture. The second one is a tool for applying MDD. Both projects are not related in any way. But it&#8217;s curious how we collide choosing the same name. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/popilop/331357312/sizes/m/"><img class="alignright" style="margin-left: 15px;" title="Do not duplicate. By Sam UL via flickr.com" src="http://farm1.static.flickr.com/128/331357312_893ef9e791_m.jpg" alt="" width="240" height="180" /></a>Surfing the Web, I just found this<a title="Essential Project (EA)" href="http://www.enterprise-architecture.org/about" target="_blank"> Essential Project</a>. At the same time, I&#8217;m working in an MDD tool called <a title="Essential MDD" href="http://pjmolina.com/metalevel/essential/">Essential</a>.</p>
<p>The first one is related to Enterprise Architecture. The second one is a tool for applying MDD. Both projects are not related in any way. But it&#8217;s curious how we collide choosing the same name.</p>
<p>I don&#8217;t want to confuse people and fortunately the name is not the key part of our work. So, probably, a rename for our side (as the newcomers) would be gentle an a good choice. I&#8217;m open to suggestions for a new name. <img src='http://pjmolina.com/metalevel/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2010/02/essential-namespace-collision/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

