Sunday, 26 October 2008

A Web-Based App Builder With a Microsoft Twist

Now that the desktop revolution is largely over, most of the excitement lies in the counter-desktop revolution that is bringing all the flair developed by the desktop programmers back to the safe world of the server. Caspio is one of the most prominent players seeking to lure the desktop database builders away from Microsoft Access and back into the datacenter's fold. The company has been around since before the last bubble burst, and now it boasts a number of prominent companies as customers.
The process is simple and requires, as Caspio's Web site promises, "no more programming." First you specify some database tables and then you describe how these tables can be filled up with Web forms. After a bit of testing, you push a button and copy some JavaScript, and the forms are deployed on your Web site. The data your Web application captures lives in Caspio's datacenter.
(Cogheadclicks for noncoders with a flexible XML database and drag-and-drop form builder. See Peter Wayner's review in InfoWorld's Test Center.)
Caspio's solution, called Caspio Bridge, is part of a wave of Web-based applications for building Web applications. Some, such as JotForm, WuFoo, FormAssembly, and their many cousins, promise to help automate the process of turning forms into tables and CSV files (see "Application builders in the sky"). Others, such as Coghead, want to help you develop an entire Web application. The line between them is getting quite blurry, but Caspio Bridge lies much closer to Coghead because it aspires to help you build full-fledged, database-driven Web applications.
As a programmer, I'm loath to call what Caspio and Coghead let you do as "not programming" because it includes much of the architectural forethought and experience that pays my rent. You do need to think about the structure of the data and make a number of other decisions that take up many of the early meetings during a programming project. Smart database design can make a difference. After that, though, using Caspio is just filling out metaforms that specify what other forms will look like.

Wizards and Widgets
Caspio won't help you build the coolest applications, but you can accomplish quite a bit without much effort. The meat of the process comes during a fairly complex wizard for designing Web forms. Each field in the data table can have a number of basic and advanced rules for converting it into a field on the form seen by the user.
I particularly liked the way Caspio implemented the duplicate fields used by many Web sites to gather fragile information, such as new passwords. All it takes is one click on a check box; Caspio inserts a second field and automatically checks the two for consistency. All of the standard widgets are provided, plus a few somewhat novel ones, including a CAPTCHA button and Google Maps integration. The look of these widgets is vintage Microsoft, and the icons will take you back to simpler days when your real estate was going up in value. Although there's a good deal of JavaScript at work here, Caspio's designers have stayed away from the pastels, morphing blocks, and pulsing DIVs so common in Web 2.0 implementations.
After the form is built, though, comes a brick wall. There's no simple way to add your own custom validation to the server side of the application. Caspio offers a number of suggestions for how to add JavaScript to the client side, but you can't tweak any of the application logic on the back end.
This will be frustrating to a programmer who wants control over every layer in the stack, but it's easy to see why Caspio locks the server down. I've played with one reporting tool that lets you add arbitrary Java classes into the reporting logic. It's slick and programmer-friendly, but it fails badly when something goes wrong. The tool offers to compile your Java for you, but if it finds an error, it fills the screen with a stack dump. Caspio, like all of these server-based tools, must anticipate the worst that a user can do, which usually means endless loops and other simple mistakes. Exiling extra logic to the client is a simple and fairly elegant solution to malicious code, though Caspio's JavaScript customization comes with fine print: "Caspio is not responsible for the correctness, compatibility or applicability of these functionalities."
Here is where the counterrevolution starts losing punch. Pushing the logic to the client can make security much harder because a malicious person can hijack any extra JavaScript you add to your client. I don't think that this is a real concern for most of the applications built on top of Caspio, but it's something to keep in mind. Caspio does offer a good number of security features, including the option of encrypting your development sessions with SSL.

Loaded and Locked In
The lock-in with Caspio can be brutal as it is with most similar tools. Once you build your application in Caspio, you can't really move it. This makes sense, given the business model, which charges nothing up front and a monthly fee afterward. You pay only if your application is successful, and eternal devotion to Caspio is the price.
The costs, though, aren't steep. Caspio encourages unlimited users and measures the sophistication of an application by counting the number of forms and the data stored in tables. By contrast, Coghead and WuFoo count the full-time users, although both are trying to tweak their model to avoid charging for users who visit only occasionally. Caspio avoids the distinction between full-time and casual users entirely.
What is truly surprising about Caspio is how much it feels like a Microsoft product. While there are many programming idioms common in Web applications, Caspio sidestepped most of them and built something that will look very familiar to Microsoft Access users. I did a double-take when I pushed the "edit" button for a page because Caspio took me back to the beginning of the page's configuration wizard. You may be working in a Web browser, but It's just like using Windows.
The underlying data structure will also be familiar to Microsoft SQL Server users; Caspio has SQL Server running underneath everything. SQL back ends are useful for programmers because they make it easier to link the system with other tools that expect to find an SQL database minding the information. The data ends up in a format that's comforting to the DBAs, and all of the unrelenting logic of SQL comes with it. I remember enjoying the fact that Coghead uses a more flexible XML database as the back end because it liberates you from creating a table for every single collection of items.
There are other ways that Caspio will be familiar to programmers and slightly confounding to the nonprogrammers. The look and feel for a data page is built out of CSS and a wizard. Pushing the "deploy" button assembles the parts in much the same way as pushing a "make" button. Other competitors do a better job of building WYSIWYG environments that let casual users plop down a field wherever they darn well please. As a programmer, I like Caspio's solution, but I suspect that the rest of the world may enjoy the WYSIWYG alternatives.

Bridge to Office
There are several other nice features that Microsoft users will appreciate. Microsoft Office applications can suck down data directly from Caspio using plug-ins. This tight integration lets you tweak the data to create charts and ad hoc reports on your desktop. It's not the same thing as a shell account, but it has some advantages for everyone. Caspio is also expanding the widget tools to make it easier to integrate your data tables with other sites.
The most promising market for Caspio will continue to be the casual programmer from a large Microsoft house. This set includes the people who aren't in the IT department per se, but who can do more with spreadsheets than just fill in rectangles. Many Excel users find they need to a way to make the Web site collect data or display it for the customers. Anyone with a good intuition for how computers work will be able to accomplish this, even if they don't have any formal programming training. The data can then be brought back down to Microsoft applications, where it can be massaged as needed.
Another marketplace may be the curators of large Web sites, such as those for newspapers. These large ships are often hard to steer quickly, and that makes it hard to integrate new forms or data applications. Caspio has a nice, JavaScript-based deployment mechanism that can make its applications look like they live on your Web site. That's a nice trick because it's often hard to do much with these large Web sites beyond including a bit of JavaScript.
Caspio Bridge can do more than just replace desktop databases -- it can also replace parts of Web sites. But that's life during the creative destruction era of Web 2.0. Caspio is a good, solid tool with a polish that will be welcome in many Microsoft houses.

Reference :

1 comment:

Mathew Johnson said...

have you reviewed blist, the easy online database app, here yet?
blist tries to give most of the features of a coghead of caspio bridge - but make it much simpler by adopting more of a spreadsheet metaphor:

blist database

Nasser Hajloo
a Persian Graphic Designer , Web Designer and Web Developer

Subscribe feeds via e-mail
Subscribe in my preferred RSS reader

Subscribe feeds rss Recent Entries

Advertise on this site Sponsored links

Labels And Tags



All My Feeds

Computer And Technology News Blog
Hajloo's Daily Note Blog
Development World Blog
Iran ITIL - ITSM Center Blog
Khatmikhi Press Blog
Khatmikhi Blog
Mac OS X in Practice Blog

Subscribe feeds rss Recent Comments


My authority on technorati
Add this blog to your faves