tag:blogger.com,1999:blog-61991845936818461592024-03-20T00:29:57.417-07:00Kittoing - A blog about KittoNandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-6199184593681846159.post-8242299341455340332017-12-11T08:48:00.001-08:002017-12-11T08:48:27.906-08:00<h2>
Running Kitto through a Proxy server</h2>
Did you know you can run a Kitto application through a Proxy server? Wonder why and how? This page just added to the Kitto wiki explains everything:<br />
<br />
<a href="https://github.com/EtheaDev/kitto2/wiki/Proxy">https://github.com/EtheaDev/kitto2/wiki/Proxy</a><br />
<br />
Don't forget to pull the latest changes from the repository.<br />
<br />Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-74663942903086539192017-12-08T05:17:00.000-08:002017-12-08T05:17:20.306-08:00<h2>
Zero-code WebBroker support</h2>
Just a quick note to signal that Kitto2 has just gained WebBroker support, which means new deployment options such as CGI, ISAPI and Apache modules.<br />
<br />
<h3>
Kitto-only WebBroker applications</h3>
Kitto's approach to WebBroker deployment is zero-code, meaning that you just need to create a standard WebBroker project through Delphi's wizard, choose the deployment option that you require, and then in the generated project ditch the auto-created empty WebModule unit and add Kitto.WebBroker.WebModule to the uses list. That's all.<br />
<br />
<h3>
Mixing Kitto with other services in the same application</h3>
Alternatively, if you want to mix the Kitto application with other services or for any other good reason you require to keep the generated WebModule, you just add the following code to the WebModule1DefaultHandlerAction event handler or to some other web action handler:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">Handled := TKWebBrokerHandler.Current.HandleRequest(Request, Response);</span><br />
<br />
Also add the Kitto.WebBroker.Handler unit. By the way, this unit will be useful if you need to integrate a Kitto application into any sort of existing application (as long as it is an HTTP server), provided you can manufacture the needed TWebRequest/TWebResponse classes.<br />
<br />
<h3>
Implementation status</h3>
This has required a complete reimplementation of session management in Kitto, which is now independent from Indy, more manageable and hopefully faster. The code still needs some testing (especially look for deadlocks and race conditions) and possibly a few refinements. This is currently being done, but you can start experimenting.<br />
<br />Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-75476242427045255042017-12-02T02:34:00.000-08:002017-12-02T02:34:01.722-08:00Windows Services and latest developmentsAmong the recent changes to our Kitto2 repo is restored support for running a Kitto application as a Windows Service, which was disabled when porting the code from Kitto's previous life and has been just reimplemented and enhanced.<br />
<br />
<h2>
Running HelloKitto as a Windows Service</h2>
<div>
If HelloKitto.exe is not run by an administrative account, it will default to running as an application. Otherwise, it will run as a service and interpret the -install and -uninstall command line switches (you can also use slashes instead of dashes) to register and unregister the service in the Service Manager. From then on, you just start and stop the service from the Control Panel (by default, it's an auto-start service but you can change this and other parameters through the new Service section in the Config.yaml file.</div>
<div>
<br /></div>
<h4>
Note</h4>
<div>
You can run HelloKitto as an application even when running it from an administrative account, by passing the -a command line switch.</div>
<div>
<br /></div>
<div>
The same applies to all Kitto applications, of course. No changes needed to application code or project files.</div>
<div>
<br /></div>
<h2>
Kitto.Start.pas</h2>
<div>
A Kitto application can run as an application or service (and soon also command line application and Linux daemon) off the same compiled executable with the same project file code. All the intricacies are encapsulated in the Kitto.Start.pas unit; you just need to call Kitto.Start as the sole code in your project file and the rest will be taken care of.</div>
<div>
<br /></div>
<h2>
Going forward</h2>
<div>
As we add more deployment options to Kitto (mainly ISAPI and Apache module), a separate project file will be needed for each one, as Delphi project files for programs and libraries are structurally different; we will aim to keep the required code in the project file to a minimum anyway.</div>
<div>
<br /></div>
<div>
A huge internal refactoring has just taken place to allow new deployment options to be implemented soon in an easier way. Specifically, the TKWebServer class was split into an HTTP server class that handles requests and responses and an engine class (which is a route) than handles sessions and controls the TKWebApplication class which is the heart of a Kitto application (and itself a route). The route subsystem has been refactored as well to allow route composition through the TKWebRouteList class.</div>
Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-83929221932880789582017-09-25T07:13:00.002-07:002017-09-25T07:13:56.782-07:00KIDE is now Open Source<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrb6f1pF9_W9ms293IOzNv7vkMCjh5ocgEHOfqweN2uGaVoyLXw1PC5gsUA_0QVbW2av_jPqXOsJZ5_LQ-2sGT58L2HoXHdXKK9cAFizFsqJk_vx4nl9kFJOMshYnXqQMv3O17l7kU-4yJ/s1600/logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="600" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrb6f1pF9_W9ms293IOzNv7vkMCjh5ocgEHOfqweN2uGaVoyLXw1PC5gsUA_0QVbW2av_jPqXOsJZ5_LQ-2sGT58L2HoXHdXKK9cAFizFsqJk_vx4nl9kFJOMshYnXqQMv3O17l7kU-4yJ/s320/logo.png" width="320" /></a></div>
<br />
That's right. The entire Delphi source of KIDE, the Integrated Development Environment that makes writing and maintaining Kitto applications easier, was just added to Kitto's <a href="https://github.com/EtheaDev/kitto2" target="_blank">git repo</a>.<br />
<br />
You can download and build the code with Delphi XE8, 10.1 or 10.2. It shouldn't be difficult to build it in other (modern) versions as well. If you do, please share your changes through a pull request.<br />
<br />
Kudos to <a href="http://www.ethea.it/" target="_blank">Ethea</a> for releasing the code.Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-69146736569104130702017-09-21T08:22:00.002-07:002017-09-21T08:22:34.306-07:00ExtJS 6 supported!Let's try to reboot this blog once again. Work on Kitto has been going on without interruptions but the blog and other communication channels were unfortunately neglected.<br />
<br />
So, we have news. Actually, quite a backlog of them. Let's start with the much awaited <b>support for ExtJS's latest version</b>, built into the new version of Kitto, called Kitto2.<br />
<br />
More posts will follow about the huge architectural overhaul that is Kitto2. Meanwhile, you can download the <a href="https://github.com/EtheaDev/kitto2" target="_blank">source code</a> and try the demos.<br />
<br />Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-54526049631734343542015-04-09T03:36:00.000-07:002015-04-09T03:36:00.761-07:00Still alive - on GitHubJust a quick note to inform you all that the project was moved to <a href="https://github.com/nandod/kitto" target="_blank">GitHub</a> and the source code was updated to the latest version I've been working on together with the folks at <a href="http://www.ethea.it/" target="_blank">Ethea</a> for the past year or so.<br />
<div>
The project <a href="https://github.com/nandod/kitto/wiki" target="_blank">wiki </a>was also moved and (partially) updated with descriptions for the new features. There are tons of them.</div>
<div>
Now that active development has resumed on Kitto, we should be able to post much more frequent updates.</div>
<div>
Keep watching this space.</div>
Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-45816952634527418132013-02-15T00:50:00.000-08:002013-02-15T00:50:39.449-08:00Custom model handlersHello everybody.<br />
<br />
A new concept is being introduced in Kitto. <i>Model handlers</i> are basically an abstraction layer between views and the database. The idea is that you can define and declare a custom model handler (a Delphi class), on a model-by-model basis, to override database operations (read and write) on that model performed through views.<br />
The basic, or built-in model handler will be used by default and will just perform database operations the same way as ever.<br />
Model handlers enable you to create virtual models, that is models that are not database-bound, and to leverage the power of tools such as the Form controller to do more than edit database records.<br />
<br />
<h2>
Custom parameterized actions</h2>
One example of custom model handler is when implementing custom parameterized actions/tools. An action of this type is often a button that opens a form in which you enter some parameters and then click a button to do a custom operation. Using a custom model handler to implement your cuatom action yields the following advantages:<br />
<ul>
<li>Using a virtual model to define the parameters allows you to have advanced validation.</li>
<li>Using the Form controller as an input form for the parameters gives you layouts and all other form features.</li>
<li>The custom action you implement in Delphi can be bound to the data displayed in a List view, for example. So, you can have context-sensitive parameterized actions.</li>
</ul>
A first implementation of model handlers will be created in the next few weeks.Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-49691371632627105592012-10-25T21:38:00.000-07:002012-10-25T21:38:13.399-07:00Kitto EnterpriseWhat's cooking...<br />
<br />
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/wKvyCdeVQvw" width="560"></iframe>Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-6571706629136665552012-10-21T04:04:00.004-07:002012-10-21T04:04:54.401-07:00What's going on...Hello,<br />
there hasn't been much visible activity on google code's Kitto lately, but rest assured that work is ongoing on several different tracks.<br />
<br />
A rather large undertaking was started to <b>rewrite parts of the javascript generation code</b>, which was giving us problems in terms of code formatting, memory management and evolution. Things are looking quite well on that side; there still are a few things to nail and then we'll hopefully be able to transfer everything to the git repo.<br />
<br />
Plus, as we do client work with Kitto we are able to add small and large <b>enhancements</b> most of which can and will find their way to the community version. The downside to that is that client work, while giving us the opportunity to move Kitto forward, uses most and sometimes all our time and development resources, that's why progress looks a bit slow from the outside.<br />
<br />
One of these enhancements is a new powerful <b>model virtualization</b> system, which will allow Kitto applications to gather their data from heterogeneous sources (not just SQL-based databases). I'll explain more in a forthcoming post.<br />
<br />
Among all this, we are also working on our <b>enterprise</b> offerings, of which we might be able to start showing something very soon. I'll be talking more extensively in a separate post.<br />
<br />
Stay tuned!Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-90311345545481904192012-06-16T08:48:00.001-07:002012-06-16T08:48:48.827-07:00FAQ is growing...The <a href="http://code.google.com/p/kitto/wiki/KittoFAQ">Kitto FAQ</a> has grown with two new articles today. One is about selectively disabling fields and the other one is about customizing the user table for authentication.<br />
There's much stuff under the hood that is being documented a bit at a time - the FAQ is a step in the right direction, I think.<br />
So, if you have a FAQ or just a Q, just <a href="https://groups.google.com/forum/#!forum/kitto-discuss">ask us</a>!Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0tag:blogger.com,1999:blog-6199184593681846159.post-22853248987183704222012-06-16T02:02:00.002-07:002012-06-16T08:55:35.046-07:00Welcome to Kitto!<div class="separator" style="clear: both; text-align: center;">
<a href="http://wiki.kitto.googlecode.com/git/kitto_logo_200.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://wiki.kitto.googlecode.com/git/kitto_logo_200.png" /></a></div>
<span style="font-family: 'Trebuchet MS', sans-serif;">Hello everybody!</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">This blog is meant as a way to publish facts, announcements, tips and tricks, assorted ramblings and whatnot about <a href="http://code.google.com/p/kitto/">Kitto</a> - the open source development environment for rich web applications.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">Kitto is becoming more robust and complete every day, and people is starting to look into it quite seriously. We at <a href="http://www.ethea.it/eng_default.asp">Ethea</a> are already using Kitto for in-house ptojects and client work, and we are also developing an IDE and other tools.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">We have just created a <a href="https://groups.google.com/forum/#!forum/kitto-discuss">discussion group</a> about Kitto, which you can find here and join to if you wish. Let us know what you think about Kitto - we'll appreciate that!</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">If you want to see a couple of online demos, point your browser <a href="http://kitto.ethea.it/">here</a>.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">That's it for now. Happy kittoing!</span><br />
<br />Nandohttp://www.blogger.com/profile/09839697732453193834noreply@blogger.com0