More Query and Caching Power for Data Stores: ClientFilter, JsonQuery, and JsonQueryRestStore December 18th, 2008 at 1:02 am by Kris Zyp

Dojo includes several new modules which open up new querying and caching capabilities for Dojo data stores. dojox.data.ClientFilter is available in Dojo 1.2, and provides the ability to cache queries, update the query results and cached queries based on local modifications, and performs sub-queries and sorting on the client-side. The JsonQuery is a new mixin class for Dojo 1.3 that converts Dojo query objects and sort objects to JSONQuery expressions; JSONQuery can be used for delivering complex queries to the server. JsonQueryRestStore is a new module (for Dojo 1.3) that extends the JsonRestStore and combines the ClientFilter and JSONQuery such that any query can be executed on the client or the server automatically based on what data has been locally cached on the client-side, utilizing dojox.json.query to execute queries on the client-side when appropriate.

Read the rest of this entry »

End of the Year Dojo News and Updates December 17th, 2008 at 10:55 am by Dylan Schiemann

As 2008 wraps up, there are a number of announcements and noteworthy items surrounding Dojo, DWR, Persevere, and SitePen services.

Read the rest of this entry »

Taking a Look at CSS3 December 8th, 2008 at 11:25 pm by Chris Anderson

The design and styling elements that make up the Web 2.0 mantra have been defined by—among other things—rounded corners, transparency, and drop shadows. These three concepts have been key in many CSS-driven web applications or sites. (For examples of some great CSS-driven work, check out cssvault and cssBeauty.) Following the CSS2 recommendation, for years we’ve been using a combination of code and images to make these types of things possible.

My colleague, Torrey Rice, has touched upon unofficial CSS advancements in Safari 3.1 in his discussion about CSS animations, so I’ll focus on advancements that are part of ongoing CSS3 drafts. While CSS 3 as a whole is much maligned, we can use some of the properties that have already been implemented in today’s browsers with just a few simple lines of CSS. Dijit Themes for the Dojo Tooolkit already take advantage of these enhancements where it makes sense. Of course, you can also customize or write your own theme taking advantage of CSS3 wherever possible.

Read the rest of this entry »

DojoX FileUploader Upgrade to Support Flash 10 December 1st, 2008 at 2:00 pm by Mike Wilcox

I’ve just completed the upgrade of the DojoX FileUploader to make it compatible with Flash Player 10. The FileUploader widget allows for the uploading of more than one file at a time, which is surprisingly still not supported natively by any web browser on the market today.

In Flash versions 8 and 9, a file upload Browse Dialog could be launched using JavaScript code. Users could click an HTML button, which would call a JavaScript function behind the scenes, communicate with a Flash (SWF) file, which would then trigger the browse() method in the SWF. The latest Flash Player has a security feature where the user must click within a Flash-based portion of the user interface to launch the Browse Dialog. This change is to prevent malicious code from continually opening the dialog without user interaction. Working toward this upgrade was a major undertaking that involved a significant rewrite of FileUploader. The results are a success, and in addition to working with the tightened security policies, it was a great opportunity to add many new features:

  • Degradable
  • CDN Support (see below for cross-domain restriction details)
  • POST Data Support
  • Custom Field Name Support
  • Full Event Support
  • Exposed CSS Positioning
  • Dialog Container Detection

Read the rest of this entry »

Effective use of JsonRestStore: Referencing, Lazy Loading, and more November 21st, 2008 at 2:27 pm by Kris Zyp

The JsonRestStore is a Dojo Data store that provides a JSON-based RESTful interface to servers and implements the Dojo Data read, write, notification, and identity APIs.

One of the core concepts of a REST architecture is hyperlinking, and this is available in the JsonRestStore through it’s referencing support. This concept enables powerful features like lazy loading and cross-store referencing that greatly improve the effectiveness and usability of the JsonRestStore. All of the features described in this article are available with Dojo Toolkit version 1.2 and later.

Read the rest of this entry »

Affordable Dojo Workshop Open to All! November 19th, 2008 at 4:58 pm by Carrie Sackett

Is it time to bring your team up to speed with Ajax, Open Source, and the real technologies of the web? Or perhaps you want to increase your marketability in a tough economy. Or maybe you’re looking to allocate a small portion of your company budget to continuing education. Whatever the reason, SitePen’s Getting Started With Dojo workshop may be just what you’re looking for!

We’re planning to hold an open Dojo workshop in January. Here’s the tentative information:

Course: Getting Started with Dojo!
Date: January 26-29, 2009
Time: 9:00 AM - 1:00 PM PT daily
Location: Online
Price: $499 (USD)
Skill Level: Background in Programming

Course Description
Ajax and Web 2.0 development are easy to learn but take significant effort to master. SitePen’s workshop accelerates the process by teaching you the essential knowledge and best practices needed to quickly become more productive with Dojo, the most widely used Ajax toolkit in enterprise application development.

From the outset, you will receive a plethora of information starting with an introduction to JavaScript and Dojo fundamentals, taking novice JavaScript developers and exposing them to the concepts and practices used by expert web developers throughout the technical community.

Next, we tackle Dojo in more depth, covering a wide range of popular and advanced Dojo techniques for building great web applications. We’ll focus in detail on techniques that are core to all developers (Ajax, Events, DOM, Widgets, Performance) and immerse you in the latest and greatest of web application development.

Though 16 hours isn’t enough time to cover every feature in the Dojo Toolkit, we will show you all of the great extras that Dojo has to offer. At the end of the course, armed with your knowledge of the core Dojo features and all of the extras, you’ll know how to best leverage Dojo on your project.

Throughout the workshop you will be guided through best practices and approaches for using Dojo, offering insight gained through years of building web apps and creating the Dojo Toolkit. Our activities revolve around Sensei, a beautiful RSS reader application created by SitePen exclusively for our training. Sensei offers students the chance to hack on a well-designed, feature-rich application to help them learn much more than they could with non-linear examples.

By the end of this comprehensive workshop, you will have experienced and learned:

• How to set up a Dojo application and use the Dojo Toolkit
• The Core Dojo APIs and proper selection of APIs essential to development goals
• Performance optimization and efficient debugging techniques
• Secrets of expert developers in pragmatic and effective web development

View Workshop Itinerary

Bonus! Immediately following the workshop, you will receive a complimentary 1-week pass to Ask the Experts by SitePen Support to insure that none of your questions go unanswered!

If you’re interested, please sign up now!

When to Use Persevere: a Comparison with CouchDB and Others November 18th, 2008 at 10:24 am by Kris Zyp

Persevere and CouchDB are both new JSON-based storage systems, and have been receiving increasing focus. It may be informative to those interested in these new technologies to discuss the differences between these new database systems and what types of applications each is best suited for. While Persevere and CouchDB share an extremely similar JSON HTTP/REST interface and object structured data storage, there are important distinctions. Each of these different tools has a different target audience, and despite my obvious bias being the developer of Persevere, I hope to give at least some semi-objective differentiations between these tools.

Read the rest of this entry »

Evolving Schemas with Persevere November 17th, 2008 at 7:27 am by Kris Zyp

Traditional relational databases have strict data schemas; all records in a table must be of the same type. With new non-relational database technologies, some databases feature schema-free tables, each record is free to have any structure desired. This fundamentally different approach to the structure of persisted data is one of the core differences between relational and non-relational databases. However, is strict-schema or schema-free always the best approach for all the components in an application, throughout the entire life cycle of the application? Persevere provides a more flexible approach, allowing tables to start schema-free, and type constraints can be gradually added as desired or needed, with the freedom to partially constrain, defining types for some properties and not for others.

Read the rest of this entry »

Announcing Dojo Extensions for Adobe AIR November 12th, 2008 at 8:58 am by Dylan Schiemann

I’m excited to announce a new BSD-licensed project created by SitePen and co-sponsored by Adobe: Dojo Extensions for Adobe AIR.

This new effort creates a new namespace, dair, making it even easier to create rich desktop apps, such as the Dojo Toolbox, using the Dojo Toolkit and Adobe AIR.

The extensions offer convenience methods for your application, wrapping many common AIR Patterns in Dojo-like constructors and providing an entire framework from which to grow. Built-in persistent storage, granular window control from creation to destruction, Window FX, Audio/Video helpers, and extra console debugging facilities are just the beginning.

This work was greatly inspired by our creation of the Dojo Toolbox. It simplifies Ajax application development on the AIR platform for not only Dojo users, but also anyone creating an Ajax application inside AIR. Thanks again to Adobe for helping make this possible.

I’ll be speaking in more detail about this on the afternoon of Monday, November 17th at Adobe MAX in San Francisco.

Visit the Dojo Extensions for Adobe AIR project page for full details, including a screencast, downloads, examples, documentation, and of course the source code and information on getting involved. Of course, if you need help creating a great AIR-based desktop app, contact us for more information on how we can assist you.

Dojo and Firebug Tricks for Development November 10th, 2008 at 12:01 am by Tom Trenka

As an Ajax developer, I’m always looking for easy ways of helping my development process—things to make development faster, easier ways of checking things, etc. Today I’ll share two quick and easy tricks I use all the time when developing web applications using the Dojo Toolkit.

Read the rest of this entry »