<?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"
	>

<channel>
	<title>j2flex</title>
	<atom:link href="http://www.j2flex.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.j2flex.com</link>
	<description>Flexible Persistence</description>
	<pubDate>Fri, 16 Nov 2007 16:37:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>j2flex release not in schedule</title>
		<link>http://www.j2flex.com/2007/11/16/14/</link>
		<comments>http://www.j2flex.com/2007/11/16/14/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 16:36:56 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
		
		<category><![CDATA[j2flex]]></category>

		<category><![CDATA[release]]></category>

		<category><![CDATA[schedule]]></category>

		<guid isPermaLink="false">http://www.j2flex.com/2007/11/16/14/</guid>
		<description><![CDATA[First of all we have to apologize the delay of the j2flex release date. Actually we planed to publish a first developer test version after the MAX at Barcelona, but we decided to add some more functionality, because of the responses we got at the conference. Additionally our resource planning got a little bit disordered [...]]]></description>
			<content:encoded><![CDATA[<p>First of all we have to apologize the delay of the j2flex release date. Actually we planed to publish a first developer test version after the MAX at Barcelona, but we decided to add some more functionality, because of the responses we got at the conference. Additionally our resource planning got a little bit disordered because we underestimated the testing effort, the work for our other projects and last but not least our developers got deseased (but they are already fit again <img src='http://www.j2flex.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )</p>
<p>We still work on some additional tools for easy handling of the framework and to support the developer at his work. I think we need some more time to complete a version that we can give away without any doubts.</p>
<p>Please be patient and give us the extra time to increase the power of the j2flex framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j2flex.com/2007/11/16/14/feed/</wfw:commentRss>
		</item>
		<item>
		<title>j2flex Datasheet</title>
		<link>http://www.j2flex.com/2007/10/11/13/</link>
		<comments>http://www.j2flex.com/2007/10/11/13/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 08:56:30 +0000</pubDate>
		<dc:creator>Artur</dc:creator>
		
		<category><![CDATA[j2flex]]></category>

		<guid isPermaLink="false">http://www.j2flex.com/2007/10/11/13/</guid>
		<description><![CDATA[Here you can download the j2flex Product Datasheet as PDF.
]]></description>
			<content:encoded><![CDATA[<p>Here you can <a href="http://www.j2flex.com/wp-content/uploads/2007/10/j2flex_datasheet_english.pdf">download</a> the j2flex Product Datasheet as PDF.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j2flex.com/2007/10/11/13/feed/</wfw:commentRss>
		</item>
		<item>
		<title>j2flex - CRUD operations</title>
		<link>http://www.j2flex.com/2007/10/11/12/</link>
		<comments>http://www.j2flex.com/2007/10/11/12/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 08:42:46 +0000</pubDate>
		<dc:creator>Dirk</dc:creator>
		
		<category><![CDATA[j2flex]]></category>

		<guid isPermaLink="false">http://www.j2flex.com/2007/10/11/12/</guid>
		<description><![CDATA[In this article I'll talk about the j2flex client side API, more specifically how to read and modify data.
One of the main goals for j2flex was to keep things simple. For a default installation this means, that you do not have to code a single line of server side code to persist you date (of [...]]]></description>
			<content:encoded><![CDATA[<p>In this article I'll talk about the j2flex <a href="http://docs.j2flex.com/asdoc/">client side API</a>, more specifically how to read and modify data.</p>
<p>One of the main goals for j2flex was to keep things simple. For a default installation this means, that you do not have to code a single line of server side code to persist you date (of course you can do this if you want by using the server side Java API, but basic <a href="http://en.wikipedia.org/wiki/CRUD_(acronym)" target="_blank">CRUD</a> functionality is already inplemented for you). So let's see how this works.</p>
<p><span id="more-12"></span>j2flex comes as a compiled ActionScript libraray (SWC) that has to be added to the project's build path. The main class you're working with in the client side code is called <a href="http://docs.j2flex.com/asdoc/com/j2flex/core/J2FlexService.html">J2FlexService</a>. To create an instance of the service class in your Flex application you just do:</p>
<div class="igBar"><span id="lxml-7"><a href="#" onclick="javascript:showPlainTxt('xml-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-7">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;j2flex</span>:J2FlexService <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"j2flex"</span> <span style="color: #000066;">destination</span>=<span style="color: #ff0000;">"j2flex.service"</span><span style="font-weight: bold; color: black;">/&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>If you've been working with <em>RemoteObjects</em> or <em>DataServices</em> in Flex before this should look familiar. Actually, j2flex 1.0 requires an existing installation of Adobe's <a href="http://www.adobe.com/products/livecycle/dataservices/" target="_blank">LiveCycle Data Services</a> (LCDS) product so under the hood it uses the same messaging and transport infrastructure as LCDS (i.e. AMF3 over HTTP and/or RTMP).</p>
<p>Next, say we want to fetch a list of products from the database. Lets assume the products are stored inside a virtual table called products in the meta database. A list of objects is typically wrapped by an <em>ArrayCollection</em> in Flex, so just create one (in MXML in this case, could be ActionScript 3 as well, of course):</p>
<div class="igBar"><span id="lxml-8"><a href="#" onclick="javascript:showPlainTxt('xml-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-8">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:ArrayCollection <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"products"</span><span style="font-weight: bold; color: black;">/&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>To display the list of products lets create a <em>DataGrid</em> control and bind it to products ArrayCollection:</p>
<div class="igBar"><span id="lxml-9"><a href="#" onclick="javascript:showPlainTxt('xml-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-9">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mx</span>:DataGrid <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"productsGrid"</span> <span style="color: #000066;">dataProvider</span>=<span style="color: #ff0000;">"{products}"</span><span style="font-weight: bold; color: black;">/&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Now, the final bits are to send a j2flex SQL statement to j2flex and populate the ArrayCollection. To execute a query you use the <a href="http://docs.j2flex.com/asdoc/com/j2flex/core/J2FlexService.html#getObjects()">getObjects()</a> method of the J2FlexService class. You can also pass in a <em>ListCollectionView</em> instance which will be automatically filled with the data returned by the server:</p>
<div class="igBar"><span id="lactionscript-10"><a href="#" onclick="javascript:showPlainTxt('actionscript-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-10">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// invoke the getObjects method on the j2flex service instance</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">j2flex.<span style="color: #006600;">getObjects</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"select * from products order by price ASC"</span>, products<span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>That's it - Flex will contact the server side J2FlexService class, fetch the data from the meta database and return the data as a list of objects to Flex. The ArrayCollection will update automatically, thus the DataGrid will display the records.</p>
<p>If you want to update existing data this is as simple as picking an object from the ArrayCollection, update properties of the object and finally send the object back to j2flex by calling the <a href="http://docs.j2flex.com/asdoc/com/j2flex/core/J2FlexService.html#updateObject()">updateItem()</a> method on the J2FlexService instance:</p>
<div class="igBar"><span id="lactionscript-11"><a href="#" onclick="javascript:showPlainTxt('actionscript-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-11">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// e.g. pick the 5th product from the ArrayCollection</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> product:<span style="color: #0066CC;">Object</span> = products.<span style="color: #006600;">getItemAt</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">4</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// update the price</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">product.<span style="color: #006600;">price</span> = <span style="color: #cc66cc;color:#800000;">1</span>.<span style="color: #cc66cc;color:#800000;">99</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// update the name</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">product.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">"New Name"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// and persist it</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">j2flex.<span style="color: #006600;">updateObject</span><span style="color: #66cc66;">&#40;</span>product<span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>To create a new product you simply create a new Object instance (or Product subclass if you use typed Value Objects), set the object type (which is a static ID actually provided by j2flex in the moment you created the server side object definition), populate it with data and persist it:</p>
<div class="igBar"><span id="lactionscript-12"><a href="#" onclick="javascript:showPlainTxt('actionscript-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-12">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// create a new product</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> product:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// set the type of the Object - this relates to a ID created by j2flex</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">product.<span style="color: #006600;">obj_type</span> = <span style="color: #cc66cc;color:#800000;">1234</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// set the price</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">product.<span style="color: #006600;">price</span> = <span style="color: #cc66cc;color:#800000;">1</span>.<span style="color: #cc66cc;color:#800000;">99</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// set the name</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">product.<span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">"New Product"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">// and persist it</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">j2flex.<span style="color: #006600;">createObject</span><span style="color: #66cc66;">&#40;</span>product<span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Deleting objects works exactly the same - just pass the object that should get deleted to the <a href="http://docs.j2flex.com/asdoc/com/j2flex/core/J2FlexService.html#deleteObject()">deleteObject()</a> method and you're done.</p>
<p>Important to note here: these operations will only execute successfully, if the current user is allowed to do it - so for every action, by default j2flex checks the effective user's rights against the object rights set. This is true for all read and write operations by default!</p>
<p>These are the basic CRUD operations directly built into j2flex. More details on additional features will be posted soon!</p>
<p>Dirk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j2flex.com/2007/10/11/12/feed/</wfw:commentRss>
		</item>
		<item>
		<title>j2flex - The main concepts</title>
		<link>http://www.j2flex.com/2007/10/04/3/</link>
		<comments>http://www.j2flex.com/2007/10/04/3/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 08:37:37 +0000</pubDate>
		<dc:creator>Dirk</dc:creator>
		
		<category><![CDATA[j2flex]]></category>

		<guid isPermaLink="false">http://www.j2flex.com/2007/10/04/3/</guid>
		<description><![CDATA[While the last post introduced j2flex and the big picture behind it, this article will take a look at core features of the framework. We start with some theory first as this is needed to understand the sample code later on.
 The main concept in j2flex is something called a "meta database", an object-oriented data [...]]]></description>
			<content:encoded><![CDATA[<p>While the last post <a href="/2007/10/04/2/">introduced j2flex</a> and the big picture behind it, this article will take a look at core features of the framework. We start with some theory first as this is needed to understand the sample code later on.</p>
<p><span id="more-3"></span> The main concept in j2flex is something called a "meta database", an object-oriented data model stored in a relational database system like MS SQL Server or Oracle. So, how does this compare to a "traditional" approach? For example, imagine you want to build a CRM application with Organizations and Contacts. From a data model point of view a Contact typically stores information like a name, an email address and a birth date. In a traditional database you would probably create a table "contact" with columns like NAME of type VARCHAR and BIRTHDATE of type DATE and so on. The identity (primary key) of the Contact could be an INTEGER and so on. In an object-oriented data model you would not persist everything in one single table but store the different data values in different tables and every table is made to store data of a certain type only. In the above case the NAME and EMAIL columns would be stored in the OBJ_TEXT table (a table which only stores VARCHAR data) and the BIRTHDATE data would get stored in the OBJ_DATE table and so on. So every row in every table only stores single aspects of a whole object. Of course, to re-assemble an object, we need a unique key again. In the world of j2flex every object stores an OBJ_ID and an OBJ_TYPE value. Both of the are numeric and together they a unique primary key to lookup date from the several tables.</p>
<p>This approach allows us to persist pretty complex data definitions very easily and without much hassle, including 1-1, 1-n and n-m relationships. Due to this dynamic persistance schema, new object types (i.e. business entities) can be added to the system pretty easily without modifying the physical database model. Also, it's super-easy to modify existing object definitions. On the other hand, if you already have a full-blown physical database model in place, it's quite easy to make it work with j2flex. All you have to do is to add OBJ_ID and OBJ_TYPE columns to your physical data model.</p>
<p>Now that you know how data gets persisted in j2flex the next question is what to use to query this "meta database"? Well, SQL of course! Probably the best thing in j2flex' core engine is the SQL Parser. This allows you to use pseudo-SQL statements to query the database. Why pseudo? Because it is no "real" SQL. The SQL you send to j2flex is parsed on the server side into real SQL before the data is fetched from the database. Why's that? As said above, when a Contact gets persisted, the real data gets stored in several physical tables. The SQL Parser allows you to query the database as if the Contacts would be stored in a table called CONTACT- This is because when you create a new data type "Contact" a virtual table of that name gets created, think of it as the class name in terms of OOP. So querying all Contacts becomes as simple as</p>
<p><code>select * from CONTACT</code></p>
<p>Doesn't sound too complicated, does it? The neat thing is that with j2flex you can send those queries directly from a Flex client to the server. As they are no real SQL queries there's no danger of SQL injections as everything gets handled by the SQL Parser. Also, the SQL Parser only allows SELECT statements, so you cannot call INSERT/UPDATE/DELETE on it. To create, update or delete objects (data) you use a special API which we will see in the next article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j2flex.com/2007/10/04/3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>j2flex - A persistence framework for Flex applications</title>
		<link>http://www.j2flex.com/2007/10/04/2/</link>
		<comments>http://www.j2flex.com/2007/10/04/2/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 08:30:07 +0000</pubDate>
		<dc:creator>Dirk</dc:creator>
		
		<category><![CDATA[j2flex]]></category>

		<guid isPermaLink="false">http://www.j2flex.com/2007/10/04/2/</guid>
		<description><![CDATA[This is the first article in a series of posts that will introduce j2flex - a persistence framework for Flex powered applications. j2flex is the outcome of our day-to-day work with Flex, LiveCycle Data Services and J2EE in real-life projects with the goal to make your life easier.
 So what's it all about: When we [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first article in a series of posts that will introduce j2flex - a persistence framework for Flex powered applications. j2flex<strong></strong> is the outcome of our day-to-day work with Flex, LiveCycle Data Services and J2EE in real-life projects with the goal to make your life easier.</p>
<p><span id="more-2"></span> So what's it all about: When we started with Flex 1.0 back in 2004 we realized quickly that although Flex facilitates integrating with Service Oriented Architectures (SOA) of course not every customer is able or willing to create such an infrastructure just for the sake of using Flex. With Flex 2.0 this is even more true - a lot of smaller shops start evaluating Flex 2.0 but then realize that they do not know how to integrate Flex with their data store. Some of them even do not have a dedicated data store in place and say: "Ohh, Flex is soo cool - but how do I connect to a database?"</p>
<p>This is one of the areas where j2flex offers a simple yet powerful solution: j2flex allows Flex beginners to quickly setup a powerful persistence store for Flex applications. With j2flex you can directly read data from and save data your database without too much worrying about how this works - and without writing server side code. It just works. Sounds nice? Well, it really is <img src='http://www.j2flex.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But j2flex also offers a solution for integrating a Flex application into an existing J2EE infrastructure - including mapping the physical data model to the Flex world, dedicated authentication and authorization, workflow support and much more.</p>
<p>If that's still not enough, you can easily extend j2flex to meet your needs, either through the Flex/ActionScript 3 or Java API. It conforms to Flex 2 Framework standards, can be used with <a href="http://labs.adobe.com/wiki/index.php/Cairngorm" target="_blank">Cairngorm</a> and gives nice integration with the Data Management Services of <a href="http://www.adobe.com/products/livecycle/dataservices/" target="_blank">LiveCycle Data Services</a>.</p>
<p>This was just a little teaser - I'll be posting more information, samples and resources during the next weeks so stay tuned. Btw, the first public demonstration of j2flex<strong></strong> will take place at <a href="http://adobemax2007.com/europe/" target="_blank">MAX Barcelona</a> at our booth in the exhibition hall.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j2flex.com/2007/10/04/2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>j2flex Blog goes online</title>
		<link>http://www.j2flex.com/2007/10/02/1/</link>
		<comments>http://www.j2flex.com/2007/10/02/1/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 08:23:20 +0000</pubDate>
		<dc:creator>Artur</dc:creator>
		
		<category><![CDATA[Generally]]></category>

		<guid isPermaLink="false">http://www.j2flex.com/2007/10/02/1/</guid>
		<description><![CDATA[Today the official j2flex Blog goes online. Here you will find information's about j2flex, the new persistence framework for Flex Applications, including Articles, Tutorials, Samples and much more.
]]></description>
			<content:encoded><![CDATA[<p>Today the official j2flex Blog goes online. Here you will find information's about j2flex<strong></strong>, the new persistence framework for Flex Applications, including Articles, Tutorials, Samples and much more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.j2flex.com/2007/10/02/1/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
