<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.webappkit.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>webAppKit blog - Tag - roadmap</title>
  <link>http://blog.webappkit.net/</link>
  <atom:link href="http://blog.webappkit.net/feed/tag/roadmap/rss2" rel="self" type="application/rss+xml"/>
  <description>news about webAppKit, the generic PHP kernel for web apps</description>
  <language>en</language>
  <pubDate>Wed, 10 Sep 2008 12:39:03 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Zero Dot Nine</title>
    <link>http://blog.webappkit.net/post/2007/10/30/Zero-Dot-Nine</link>
    <guid isPermaLink="false">urn:md5:381eb3312b6b3af8fd3d93d62d96ab97</guid>
    <pubDate>Tue, 30 Oct 2007 14:10:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>roadmap</category>    
    <description>&lt;p&gt;If you take a look at the &lt;a href=&quot;http://code.google.com/p/webappkit/wiki/Roadmap&quot; hreflang=&quot;en&quot;&gt;roadmap&lt;/a&gt;,
you'll see some changes. A &lt;a href=&quot;http://webappkit.googlecode.com/svn/branches/0_9/&quot; hreflang=&quot;en&quot;&gt;development
branch&lt;/a&gt; has been started, numbered 0.9 (odd minor versions numbers will now
be for development versions - even for stable ones). The 0.8 still live in the
trunk for now. Milestones are set up to 0.14.&lt;/p&gt;    &lt;p&gt;So what's new ?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Services have disapperead and are replaced by &lt;a href=&quot;http://code.google.com/p/webappkit/wiki/Tools&quot; hreflang=&quot;en&quot;&gt;Tools&lt;/a&gt;, which
are accessed as Kits members.&lt;/li&gt;
&lt;li&gt;Storages are now Tools themselves, provided by webappkit/storages.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/webappkit/wiki/Kits&quot; hreflang=&quot;en&quot;&gt;Kits&lt;/a&gt; API have changed a bit. Most methods are static ones. Kits
metadata and libraries are now loaded before Kit instance building, to allow
some kits to override the generic webappkit class.&lt;/li&gt;
&lt;li&gt;PHP version range compatibility can be defined in Kits metadata.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The help file in the repository have been updated with new tutorials. I hope
to release 0.10 rather quickly, has goals previously set for 0.9 have been
sparsed over three milestones.&lt;/p&gt;
&lt;p&gt;Here is the content of the updated help file :&lt;/p&gt;
&lt;h2 id=&quot;using-a-kit&quot;&gt;Using a Kit&lt;/h2&gt;
&lt;p&gt;Unzip webappkit at the root of your web application. It's probably done as
the file you're reading is part of it. It creates a webappkit/ folder. Before
retrieving any Kit, put this line into your code :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
* getting webappkit core (only once call is necessary)
*/
include('webappkit/include-me.php');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;When you need a Kit's resources, let's say &lt;em&gt;ooxmlrpc&lt;/em&gt;, &lt;strong&gt;load
it&lt;/strong&gt; with :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
* loads a kit resources
*/
webappkit::getKit('ooxmlrpc');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;If you need only a subkit, let's say &lt;em&gt;http&lt;/em&gt; within
&lt;em&gt;databeans&lt;/em&gt;, get it with :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
* loads a subkit's resources
*/
webappkit::getKit('databeans/http');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;In this exemple, &lt;em&gt;databeans/http&lt;/em&gt; requires
&lt;em&gt;databeans/databean&lt;/em&gt;, but you don't have to take care about that.&lt;/p&gt;
&lt;p&gt;webappkit::getkit($id) returns the kit instance. Always use this method to
retrieve a kit, as Kits should be singletons.&lt;/p&gt;
&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Tools&lt;/em&gt; are named object instances taking their configuration data
from the kit they belong to.&lt;/p&gt;
&lt;p&gt;They are retrieved as kit members like this :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
 * retrieving the kit instance.
 */
$kit=&amp;amp;webappkit::getKit('helloworld');
/**
 * calling the method &amp;quot;bar&amp;quot; of the kit's tool named &amp;quot;foo&amp;quot;
 */
$kit-&amp;gt;foo-&amp;gt;bar();&lt;/code&gt;
&lt;/pre&gt;
&lt;h2 id=&quot;storages&quot;&gt;Storages&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Storages&lt;/em&gt; are specific Tools. They build and retrieve object
instances stored within kits files.&lt;/p&gt;
&lt;p&gt;You use them just as any other Tool, as a kit's member. For example, let's
get a template from our sample kit :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
 * retrieving the kit instance.
 */
$kit=&amp;amp;webappkit::getKit('helloworld');
/**
 * getting the template from the storage, which is named &amp;quot;templates&amp;quot;
 */
$tpl=$kit-&amp;gt;templates-&amp;gt;getItem('help');
/**
* using the 
*/
echo $tpl-&amp;gt;render();&lt;/code&gt;
&lt;/pre&gt;

&lt;h2 id=&quot;building-a-kit&quot;&gt;Building a Kit&lt;/h2&gt;
&lt;p&gt;Let's build a Kit named &lt;em&gt;mykit&lt;/em&gt;, which will contain a couple of class
definition files.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a folder named &lt;strong&gt;mykit.wak&lt;/strong&gt; within your
&lt;em&gt;webappkit/&lt;/em&gt; folder.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put your code files inside, let's say &lt;strong&gt;myclass.class.php&lt;/strong&gt; and
&lt;strong&gt;mychildclass.class.php&lt;/strong&gt; which is extending it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create an INI file at its root named &lt;strong&gt;wak.ini&lt;/strong&gt; and edit it
:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[kit]
; kit-wide meta informations
version = &amp;quot;0.1&amp;quot;
; kit version. Will be used later.
desc = &amp;quot;This is my first kit. It will rocks !&amp;quot;
; a short description. Single line to be INI compliant !
phpversion = &amp;quot;4.3-5.*&amp;quot;
; define which PHP versions range compatibility (optional)
; you can use a single version string with jokers, as 4.*

[load_kits]
; kits to load before self resources, order will be preserved.
; n = &amp;quot;absolute kit id&amp;quot;
0 = &amp;quot;datapath&amp;quot;

[load_files]
; self resources to load, order will be preserved.
; n = &amp;quot;relative/path/to/file&amp;quot;
0 = &amp;quot;myclass.class.php&amp;quot;
1 = &amp;quot;mychildclass.class.php&amp;quot;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;This file describe Kit's resources and dependancies. Kits and files will be
loaded in the order you defined.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here we're done with the main kit.&lt;/p&gt;
&lt;p&gt;Please note that Kits are singletons and won't be instanciated twice.
Hopefully.&lt;/p&gt;
&lt;h3&gt;PHP version auto-switch&lt;/h3&gt;
&lt;p&gt;You can have a library file for each PHP versions, and tell the kit to load
the appropriate one upon the current PHP version running.&lt;/p&gt;
&lt;p&gt;To do this, we will name our files with the specific extensions : .php4 and
.php5 , and then edit the kit's INI as this :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_files]
; self resources to load, order will be preserved.
; n = &amp;quot;relative/path/to/file&amp;quot;
0 = &amp;quot;myclass.class.php*&amp;quot;
1 = &amp;quot;mychildclass.class.php*&amp;quot;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Using * at the end of the file name will trigger the load of .php4 or .php5,
upon the current running PHP version.&lt;/p&gt;
&lt;h2 id=&quot;building-a-subkit&quot;&gt;Building a subkit&lt;/h2&gt;
&lt;p&gt;Kits can contain subkits, which can be either optional or loaded by their
parent kit.&lt;/p&gt;
&lt;p&gt;It will also require another kit, &lt;em&gt;webappkit/datapath&lt;/em&gt;, and provide
an extension as an optional subkit named &lt;em&gt;mysubkit&lt;/em&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Into &lt;em&gt;mykit.wak/&lt;/em&gt;, create a folder named
&lt;strong&gt;mysubkit.wak&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put its own code files into it, for example
&lt;strong&gt;anotherclass.php4&lt;/strong&gt; and &lt;strong&gt;anotherclass.php5&lt;/strong&gt;,
which are PHP4 and PHP5 versions of the same class as seen before.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create its &lt;strong&gt;wak.ini&lt;/strong&gt; file at its root :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_kits]
; kits to load before self resources, order will be preserved.
; n = &amp;quot;absolute kit id&amp;quot;
0 = &amp;quot;mykit&amp;quot;
1 = &amp;quot;pathnodes&amp;quot;

[load_files]
; self resources to load, order will be preserved.
; n = &amp;quot;relative/path/to/file&amp;quot;
0 = &amp;quot;anotherclass.php*&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;As you see, this subkit requires its parent kit and another kit,
&lt;em&gt;pathnodes&lt;/em&gt;. It also requires &lt;em&gt;datapath&lt;/em&gt;, but this dependancy is
already defined by parent kit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A subkit may contain itself a subkit and so on.&lt;/p&gt;
&lt;h3&gt;Subkits auto-loading&lt;/h3&gt;
&lt;p&gt;If we want the parent kit &lt;em&gt;mykit&lt;/em&gt; to load its subkit when loaded
itself, we can add this into &lt;em&gt;mykit&lt;/em&gt;'s wak.ini file :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_subkits]
; subkits to load after self resources, order will be preserved
; n = &amp;quot;relative subkit id&amp;quot;
0 = &amp;quot;mysubkit&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The subkit will be loaded &lt;strong&gt;after&lt;/strong&gt; paren'ts kit dependancies
and own files.&lt;/p&gt;
&lt;h2 id=&quot;adding-tools&quot;&gt;Adding Tools&lt;/h2&gt;
&lt;p&gt;Tools have to be declared within kit's &lt;em&gt;wak.ini&lt;/em&gt; file :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_files]
0 = &amp;quot;worker.class.php&amp;quot;

[tools]
; name = &amp;quot;class&amp;quot;
bob = &amp;quot;worker&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Here we have declared a tool wich will be named &lt;em&gt;bob&lt;/em&gt; within the kit
and will be an instance of the class &lt;em&gt;worker&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Tools classes have to extends &lt;em&gt;wakTool&lt;/em&gt; class. Their definition file
can be included within the providing kit or one of its dependencies. Here it's
an included one. Let's look at its class definition :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;class worker extends wakTool {
        /**
        * a Factory function : every Tool has to declare it
        * @static
        * @param string $kit kit's id
        * @param string $name tool's name within kit
        * @return object worker's instance
        */
        function &amp;amp; factory($kit,$name) {
                return new worker($kit,$name);
        }
        
        /**
        * here is an useful function
        * @return string hairs color
        */
        function getHairs() {
                return $this-&amp;gt;cfg['hairs'];
        }
        
        /**
        * @var array the default configuration values
        */
        var $cfg=array('hairs'=&amp;gt;'red');
}&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Now, we can get tool &lt;em&gt;bob&lt;/em&gt; from our kit and it will have its default
config :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$kit=&amp;amp;webappkit::getkit('mykit');
/**
* this will print 'red'
*/
echo $kit-&amp;gt;bob-&amp;gt;getHairs();&lt;/code&gt;
&lt;/pre&gt;
&lt;h3&gt;Borrowing tools&lt;/h3&gt;
&lt;p&gt;But our &lt;em&gt;worker&lt;/em&gt; class can now be used in another kit, by declaring
it in the kit's &lt;em&gt;wak.ini&lt;/em&gt; file :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[kit]
desc = &amp;quot;this is another kit, providing a worker tool borrowed from mykit&amp;quot;

[load_kits]
0 = &amp;quot;mykit&amp;quot;
; we need its &amp;quot;worker&amp;quot; class for alice service

[tools]
alice = &amp;quot;worker&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;And let's override its config. Create a file named
&lt;strong&gt;alice.tool.ini&lt;/strong&gt; at the &lt;em&gt;anotherkit&lt;/em&gt;'s root :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;; this is the alice tool config file for anotherkit
hairs = &amp;quot;blue&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Let's look at our second tool instance :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$kit2=webappkit::getkit('anotherkit');
/**
 * this will print &amp;quot;blue&amp;quot;
 */
echo $kit2-&amp;gt;alice-&amp;gt;getHairs();&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;And you can also have several instances of the same tool within the same
kit, each with its own config.&lt;/p&gt;
&lt;h2 id=&quot;adding-storages&quot;&gt;Adding storages&lt;/h2&gt;
&lt;p&gt;Storages are just specific tools. Just like them, their definition file can
be included within their providing kit, or they can just provide a config file
for a tool class taken from an external kit dependancy.&lt;/p&gt;
&lt;p&gt;They have to extend &lt;strong&gt;wakStorage&lt;/strong&gt; class, which is provided by
&lt;strong&gt;webappkit/storages&lt;/strong&gt; kit.&lt;/p&gt;
&lt;p&gt;Their function is to retrieve object instances stored in files within the
kit.&lt;/p&gt;
&lt;p&gt;Here we will get templates from our kit, using a storage class provided by
&lt;em&gt;djtpl&lt;/em&gt; template engine kit.&lt;/p&gt;
&lt;p&gt;Here's our kit's &lt;em&gt;wak.ini&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_kits]
; getting dependancies, including the storage class
0 = &amp;quot;djtpl&amp;quot;
; please note that djtpl kit itself require webappkit/storages

[tools]
; declaring storage, name = &amp;quot;class&amp;quot;
templates = &amp;quot;djtplstorage&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;And now we override some storage config in &lt;em&gt;templates.tool.ini&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;; this is the templates storage config
search = &amp;quot;views/{{lang}}/{{id}}.{{type}}&amp;quot;
; here is the filename template for files search
[critera]
; the defaults values for search criteria
lang = &amp;quot;en&amp;quot;
type = &amp;quot;html&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
This settings indicate that template files will be stored within a
&lt;em&gt;views/&lt;/em&gt; folder within our kit, having languages subfolders, and that
files are named by id.type. The default language is set to &lt;em&gt;en&lt;/em&gt;, and
default type to &lt;em&gt;html&lt;/em&gt;.
&lt;p&gt;Now, let's get a template from our kit. First, we will change the language
default value to &lt;em&gt;fr&lt;/em&gt;. Then, we want the template having the
&lt;em&gt;home&lt;/em&gt; id.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
 * changing a criteria's default value
 */
$kit-&amp;gt;templates-&amp;gt;setCriteria('lang','fr');
/**
 * getting a template
 * string criteria will be taken as 'id'
 * or you can provide an associative array for more criteria
 * missing criteria will be taken from current defaults
 * this will build a template instance from views/fr/home.html
 */
$tpl=$kit-&amp;gt;templates-&amp;gt;getItem('home');
/**
* rendering the template
*/
echo $tpl-&amp;gt;render();&lt;/code&gt;
&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Changes for kits interface - requests for comments</title>
    <link>http://blog.webappkit.net/post/2007/06/29/Changes-for-kits-interface-requests-for-comments</link>
    <guid isPermaLink="false">urn:md5:d5343520bd8f4f3a3275925bde359323</guid>
    <pubDate>Fri, 29 Jun 2007 17:20:00 +0200</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>discuss</category>
        <category>roadmap</category>    
    <description>&lt;p&gt;I'm about to change the current kit interface (the webappkit class). The
goal is to make it more agile and extensible. Please let me know how bad are
this ideas.&lt;/p&gt;    &lt;p&gt;First, i plan to allow inheritance / overriding of this class. Each kit may
define its own kti class, and/or inherit from a specific kit class. To allow
this, it will be required to read the metadata file &lt;em&gt;before&lt;/em&gt; creating
the kit instance (to resolve classe heritage). But heritage may go further than
just class heritage, it may also concern kits components such as services and
storages.&lt;/p&gt;
&lt;p&gt;Second, i thought again about generic components, like services and
storages. Rather than having specific kit methods to retrieve them, they would
be public members of their kit instances. For example :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$foo=&amp;amp;$kit-&amp;gt;getService('foo');
$foo-&amp;gt;bar();&lt;/code&gt;
would become
&lt;code&gt;$kit-&amp;gt;services-&amp;gt;foo-&amp;gt;bar();&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;where $kit-&amp;gt;services would be an instance of a ServiceFactory class. Each
component type would have its factory / iterable class. Components would be
loaded on kit-&amp;gt;load(), not when creating kit instance.&lt;/p&gt;
&lt;p&gt;In the same way, subkits instances would be available within their parent
kit with &lt;code&gt;$kit-&amp;gt;subkits-&amp;gt;subkit_name;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On a side note, webappkit/appengine framework kit have been renamed to
webappkit/evtengine. This is more meaningful, and it may not be the favorite
framework for web admin. Rather, i plan to develop a framework based on the new
webappkit paradigm rather than implement the old paradigm again. More about
this later : one commit at a time ;)&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Massive refactoring</title>
    <link>http://blog.webappkit.net/post/2006/12/06/Massive-refactoring</link>
    <guid isPermaLink="false">urn:md5:31a4cc650f4b1002af732976fdb8d7bc</guid>
    <pubDate>Wed, 06 Dec 2006 11:41:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category><category>roadmap</category>    
    <description>&lt;p&gt;After some doubts on project future, i have decided to keep on working on
webappkit rather than dropping it for some existing frameworks. I've been
looking at &lt;a href=&quot;http://www.djangoproject.com/&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt;,
&lt;a href=&quot;http://www.symfony-project.com/&quot; hreflang=&quot;en&quot;&gt;Symfony&lt;/a&gt; and
&lt;a href=&quot;http://www.cakephp.org/&quot; hreflang=&quot;en&quot;&gt;CakePHP&lt;/a&gt;. Django is by far
my favorite, and i use it to practice my python. However PHP is still the most
used language, and i think that webappkit approach still makes sense.&lt;/p&gt;    &lt;p&gt;But i'm going to rewrite big parts of the project, focusing on packages
since the beginning rather than a virtual layer on the top of the internal
structure. Packages will have a physical representation as directories, and may
provide their own libraries, services etc. They may have their own request
handler.&lt;/p&gt;
&lt;p&gt;The core components will theirselves be shipped as a package. It will
provide a small api giving access to packages, services and libraries. Some
basic requests handling libraries and services will be provided, but this task
may be forwarded to one or more package(s). Think to webappkit as a
meta-framework.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>where is going webappkit</title>
    <link>http://blog.webappkit.net/post/2006/10/27/where-is-going-webappkit</link>
    <guid isPermaLink="false">urn:md5:050a5b706d09adbb82e7b30146cc2d66</guid>
    <pubDate>Thu, 02 Nov 2006 14:23:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>in-depth</category>
        <category>deprecated</category><category>roadmap</category>    
    <description>&lt;p&gt;I realized that while i have some pretty clear idea about webappkit future,
i had somewhat kept this in the secret of my head. Here are some informations
about webappkit goals, intended usage/audience and roadmap.&lt;/p&gt;    &lt;h3&gt;A flexible architecture to build web applications on&lt;/h3&gt;
&lt;p&gt;WebAppKit is not another MVC framework, such as Ruby On Rails, Django and
many PHP clones such as CakePHP. In fact, it's not a framework at all. It
doesn't allow rapid blog/cms building by mapping an SQL database with
controller classes linked to URIs. It doesn't offer (yet) cool ajax
features.&lt;/p&gt;
&lt;p&gt;Rather, it's intended to be a lower-level structure which provides tools for
the developper, with as few constraints as possible. You can use provided
services as you wish, build your app on webappkit standards, or you may prefer
follow your own style and rules, picking only what serves you best. You may
even build your own framework on the top of webappkit, by writing your own
request handler. The µkernel/service based structure of webappkit make any of
its parts substitutable.&lt;/p&gt;
&lt;p&gt;This goal is near completion. Although there is still room for improvements,
It starts to be usable for producing complete web applications, such as
&lt;a href=&quot;http://quizzgeek.net&quot; hreflang=&quot;fr&quot;&gt;quizzGeek&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;A platform for modular parts integration&lt;/h3&gt;
&lt;p&gt;As webappkit applications are highly modular, the next logical step is to
allow share and reuse of modules and generic applications parts, from tiny
functionnality to complete specification implementation, or even full
standalone application. To achieve this, webappkit admin system will ultimately
allow to import and export &lt;q&gt;kits&lt;/q&gt;.&lt;/p&gt;
&lt;p&gt;Kits will be packages which may contain libraries, services, events, and/or
triggers. They will range from basic toolkits to complete applications with
their own admin, that you will be able to &amp;quot;mount&amp;quot; on an URI of your core
application. For example, you may just install a &amp;quot;blog&amp;quot; kit and mount it on
yourdomain.net/blog, or an &amp;quot;accesscontrol&amp;quot; kit mounted on
yourdomain.net/private, and it will protect everything under this path.&lt;/p&gt;
&lt;p&gt;Webappkit web site will of course collect and distributes those kits, for
the use of the community.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>