Skip to content

Software Development News: .NET, Java, PHP, Ruby, Agile, Databases, SOA, JavaScript, Open Source

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

The Dojo Toolkit - Announcements
Syndicate content
Unbeatable JavaScript Tools
Updated: 1 hour 26 min ago

Dojo 1.12.2 and various backports released!

Sun, 03/05/2017 - 18:37

Today we’ve released Dojo 1.12.2, 1.11.4, 1.10.8, 1.9.11, 1.8.14, 1.7.12, 1.6.5, 1.5.6, and 1.4.8, which consists of bug and regression fixes reported since our last batch of releases in December.

One change has been made, which is that cross-domain support for the Flash version of dojox/storage has been removed due to a reported security vulnerability. If you are using the Flash-based version of dojox/storage, please note this change in behavior. Thanks to Enguerran Gillier for reporting this issue.

New releases are available at download.dojotoolkit.org or via npm.

Releases will also be available via the Google CDN once they’ve had a chance to deploy the updates.

Categories: Open Source, RIA

Dojo 2 updates – Week ending Jan. 27, 2017

Tue, 01/31/2017 - 13:54

Over the past few weeks, we’ve been working on several large improvements to widget authoring and theming with Dojo 2.

Theming

We’re currently using css-modules and css-next via PostCSS, a powerful tool for transforming CSS with JavaScript. css-next enables us to just write vanilla CSS with vendor prefixing done automatically, so there’s no need to learn the separate syntax of a CSS pre-processor such as SASS, LESS, or Stylus, just the new semantics of CSS.

This gives us several primary benefits for how themes are applied to widgets within Dojo 2:

  • Local scoping by default and obfuscated class names prevent class name collisions across widgets and from top level CSS rules
  • Full autocomplete/Intellisense for widget authoring, which extends to how CSS class names are specified. Only the locally scoped widget class names are available, which is very powerful
  • Users can import fully supported Dojo 2 theme variables into their custom widgets
  • CSS authoring is fully built into the Dojo 2 cli

Overall we believe this will provide a complete end-to-end authoring experience that makes theming much easier for TypeScript developers.

This work has either landed in master or is currently under review as PRs.

Simplifying widget state and property handling

Via our widget API, we promote the reactive principles of “properties in, events out”. By default, Dojo 2 widgets are stateless. Widgets are passed properties and implement a render function. Through refactoring to reduce and simplify the surface area of widgets, we have removed state from the widget API. This simplifies the authoring experience of widgets, leaving us with a very simple public API for widgets: `render` and `diffProperties`. Both functions have sensible default implementations.

We also provide capabilities for more advanced widget authoring, such as diff-ing single properties if needed, and adding behavioral traits via functional composition.

Usage of Dojo 2 widgets is documented in the widget-core readme.

Web components

Beyond our usage of Custom Elements for all Dojo 2 widgets, we have been working on support for making any Dojo 2 widget easy to export as a web component to use within other environments that support web components. While a web component will not have all of the benefits of using a widget inside a Dojo 2 environment, this will make it much easier to include a Dojo 2 widget within a non-Dojo application. For example, say you want to make dgrid available for use in non-Dojo applications? This will now be much easier to do with Dojo 2 widgets.

Initial support for web component utilities landed recently in widget-core. Support for exporting a single widget as a web component, and installing via npm, is currently under development.

Dojo 2 roadmap

As January draws to a close, we’re continuing updates on the Dojo 2 roadmap.

Categories: Open Source, RIA

Dojo 2 updates – Week ending Jan. 13, 2017

Mon, 01/16/2017 - 19:31

We’ve accomplished a lot on Dojo 2 over the past few months, which has meant a fair amount of churn and improvements. Rather than trying to recap everything, we’re going to start covering some of the highlights in more frequent, shorter blog posts than we did in 2016.

Dojo 2 roadmap update

We have a new Dojo 2 roadmap. It’s currently more accurate about the things we’ve finished than it is about the things that are upcoming. We’re in the process of splitting out the remaining items into things that block the first Dojo 2 beta, and those that will follow it.

Scoped packages

With npm, the first package to choose a name wins, and in the past this has led to things like dgrid, dstore, and even util and themes not being able to have the same name in npm as they do in our own repositories. npm does not make it easy to provide aliases between names, so there’s been a fair amount of workarounds needed to provide a consistent installation experience for npm and non-npm users.

A while back, npm added support for scoped packages, so that it would be easy enough to refer to something as @dojo/core rather than dojo-core. We had resisted going this route as we were still aiming to support bower, but with a significant decrease in adoption of bower, and a heavy reliance on npm for the Dojo 2 development approach, we’ve made the decision to drop bower support for Dojo 2 and we’ve started using scoped packages.

In your code, the main change will be with how you include and reference dependencies. A dojo/core commit shows how this works in practice, but the things to note are:

  • The source package remains in the same location, e.g. dojo/loader is still found at https://github.com/dojo/loader
  • When including that package as a dependency, you will now include it as @dojo/loader instead of dojo-loader in both your package.json as well as within any ES6 module import statements, as well as via any npm install commands, e.g. npm install @dojo/loader

Besides being able to keep short and consistent package names, all officially supported Dojo 2 packages will be included under this scope.

Categories: Open Source, RIA

Dojo 1.12 released!

Wed, 12/21/2016 - 15:15

Happy Holidays from the Dojo team, we’re pleased to announce updated releases!

Dojo 1.12

Dojo 1.12 is now available for download or via npm or bower. Point releases are also available for versions 1.4 through 1.11!

Note that our documentation and tutorials for 1.10 remain valid for 1.11 and 1.12. 1.12 is mostly a release that fixes reported issues and adds minor feature enhancements to keep things improving while minimizing the risk of issues when upgrading. More details are available at the Dojo 1.12 release notes.

Dojo 2

We’re getting close to the much anticipated Dojo 2. We’ve reworked our approach many times to strike what we believe is the right balance of modern and efficient to use. You may track our progress at Dojo meta and the Dojo 2 roadmap. Our current goal (no guarantees, we want to get things right rather than meet an arbitrary deadline!) is to have a beta release in Q1 2017. Let us know if you would like to get involved!

In the past month, we’ve reworked the dojo/widgets approach to simplify state management with the virtual DOM, we’ve created an initial proof of concept for dgrid 2, implemented an ES8 Observables shim to reduce the dependency size for reactive observability, made significant strides on stores and i18n for Dojo 2, and much more.

Thanks!

Thanks for your contributions and support this year. We made many key improvements to giving Dojo 1.x while focusing the majority of our efforts on Dojo 2. We’re very excited to release Dojo 2 in 2017.

Categories: Open Source, RIA