The Isomorphic Blog


Join us at the DevOps Conference – Get your FREE Pass

Join us at the DevOps Conference

Isomorphic will be at the DevOps Summit in the Javits Center, NY next month (June 7-9), and we’d love you to join us. Follow the steps at the bottom of the page to get your FREE VIP GOLD FULL CONFERENCE PASS..

One of the highlights will be our CTO, Charles Kendrick, discussing how to leverage technology to accelerate Agile development processes:

The Agile Accelerator: Where Designers, Product Managers and Engineers Collaborate in the Cloud 

Between the mockups and specs produced by analysts, and resulting applications built by developers, there exists a gulf where projects fail, costs spiral, and applications disappoint. Methodologies like Agile attempt to address this with intensified communication, with partial success but many limitations. 
In this session, we present a revolutionary model enabled by new technologies. Learn how business and development users can collaborate – each using tools appropriate to their expertise – to build mockups and enhance them all the way through functional prototypes, to final deployed applications. This approach helps you improve usability, exceed end-user expectations, and still hit project milestones.

 

To whet your appetite, here is Charles speaking at QCon SF a few months ago, in his session about Adapting UI from Desktop to Mobile.

Steps to get your FREE pass

Follow these steps to get your free VIP Gold pass:

  1. Go to https://www.blueskyz.com/v3/Login.aspx?ClientID=19&EventID=128&sg=468
  2. Click “Continue” if you are a New User or log-in if you have already created an account.
  3. Once there, register for Cloud Expo.  To register – fill out the basic business card questions and then enter isomorphicVIPgold in the Priority Code field to change the price to $0 .
  4. IMPORTANT: Email jason@isomorphic.com to let us know you are coming. We would love to meet up.

Hope to see you in NY!

Best,

The Isomorphic Team

User Interface Insights

We recently saw an upward trend in requests for increasing the default size of our UI controls and fonts. On one hand, this made sense. A bunch of technologies have emerged that, while they certainly don’t have the capabilities of SmartClient, they do have simplicity in their interface that many users like.

On the other hand, many Isomorphic customers (pharma, banks, research, technology, etc.) build data intensive applications. Being able to display as much data as possible on the page, then filter, slice and dice on the fly, is very important to them.

How could we be sure to strike the right balance between data density and resized controls? Well, we asked you of course! If you responded to our survey, thanks again!

Note: The survey was sent to those that, during registration at www.smartclient.com, opted-in to receive our emails, and had either purchased a license or downloaded our LGPL edition.

Here are a few insights from the survey results:

 

The ‘Bigger UI’ Use Case

We asked if you wanted larger UI controls, and if so, how would you use them. The responses were broad:

• 41% of respondents wanted increases ONLY in selected circumstances such as in a dashboard or simple form.
• 40% wanted increases throughout their applications.
• 19% of respondents didn’t want anything to change.

Since large portions of respondents support conflicting options, we knew that to meet everyone’s needs, we would have to implement a flexible solution. You may have noticed in our last release (11|6) that we introduced capabilities to make it very easy to resize controls and fonts. Learn more here.

How Big is Big Enough?

For a long time, the default size of SmartClient UI controls was 22px. For those survey respondents that preferred larger UI controls, we asked how big they should be.

Interestingly, 18% of survey participants that indicated that they wanted an increase, but selected 22px (unchanged) as the size they preferred.

The most common survey response (31%) was for an increase to 26px.

You can see this change has already been made in our showcase. In fact, you are now able to select from 5 variants.

It is interesting however to look at this question across all survey participants:
If we take into account those that said they did not want an increase in UI control / font size throughout their applications, there is a complete turnaround and 68% want the UI control size to be 22px (unchanged). This actually makes sense given that these are SmartClient customers with typically a high density of data in their applications.

Round vs. Square Corner Consensus

Most respondents wanted a medium level of rounding of corners. On a scale of 0-10, about 4-6 were by far the most popular.

Blog-Corners

Flat versus Gradient

We asked how UI Controls should look. Overwhelmingly (61%), the response was that they should be flat.

buttons-blog

Interestingly, there was a strong correlation between users that didn’t want UI controls / fonts to be increased, and also wanted UI controls to have some level of gradient.

Don’t worry. When we roll out our new UI skins, there’ll be something to keep everyone happy.

Available NOW: SmartClient 11 | Smart GWT 6

Blog Banner Rel 11 6 Now available

All at Isomorphic are very excited to announce the 11|6 is now generally available! In this blog, we hopefully answer many of your questions, or point you to where answers can be found.

What’s in 11 | 6 ?

SmartClient 11 | Smart GWT 6 is a major release. It includes functionality such as:

  • New adaptive UI capabilities so that your desktop web applications work beautifully on any device
  • Ability to easily resize fonts and UI controls
  • Inline operator grid filtering
  • Overhauled form controls to match current design trends
  • And much, much more.

You can find lots of details in the blogs below:

How to Get It

New Customers

Existing License Holders

When upgrading from SmartClient 10.x | Smart GWT 5.x, or earlier versions, discounts are based upon the date of your previous purchase. 

If you purchased a license within the last three months, your upgrade is FREE and your account has already been updated to reflect this. You can simply download the latest from here.

Otherwise, discount levels can be seen below.

Upgrade Discount Rel 11

 

  • To order an upgrade from a previous version & for more options, contact sales.
  • For more information on how our licenses and discounts work, see the Product & Licensing FAQ.

Once you have purchased your upgrade, Download SmartClient 11 or SmartClient 6 to get started (don’t forget to log in first)!

We would love to hear your feedback!

As always, please send us any bug reports or feedback in the Forums. Please be clear about what product and version you’re using when reporting issues, including the exact date of the build.

Thank you for being our customer. We couldn’t do it without you!

Enjoy!

The Isomorphic Team

More New Features & How to Upgrade to 11 | 6

Blog Banner Rel 11 6 batch 3

This is our third and final blog about upcoming features prior to 11|6 becoming generally available (just days away).

See our first two blogs here:

Read on to learn about:

  • More 11|6 features
  • FREE upgrades / upgrade discounts
  • How to pre-test your application with 11|6
  • How to access 11|6 live samples

New Feature: Resize Fonts and UI Controls

We recently surveyed a significant portion of our users to get feedback on font and control sizes. Thanks to all those that participated. We’ll publish a blog soon to share some of the insights. Meanwhile, in 11|6, we are providing the ability for you to easily adjust font and UI control sizes (up or down) across all or just a parts of your applications. You can therefore easily give users the layout they are asking for, or give them the ability to choose for themselves.

To give you the idea, here are a few versions of a grid with different font / control sizes.

Rel 11 Compact to Spacious

See it in action by selecting the appropriate ‘Density’ values from the dropdown in our live samples.

Density

Use our new APIs Canvas.resizeControls() (view docs) and Canvas.resizeFonts() (view docs) to do the same thing in your applications, or even offer these customization options to end users.

 

New Features: Component XML

Component XML is a format for specifying UI components declaratively in XML. Using Component XML, you can separate the layout of your application from its business logic, so that less technical users can edit the layout while JavaScript developers implement business logic. There are several new features in this area with corresponding samples for your reference.

Screen Reuse

Using createScreen(), you can load multiple copies of the same Component XML screen, and the copies will not interfere with each other. This allows Component XML screens to be treated as simple reusable components and development velocity to be increased. tryNow

Custom Components

With 11|6, you can use custom components in screens created via Component XML. Just use the “constructor” attribute to indicate that your custom class should be used. It’s also possible to declare a Component Schema so that your custom class can be used directly as the XML tag, with no need to set the constructor or declare custom properties. tryNow

Enabled and Visibility Rules

Simple XML declarations can leverage the data exposed by DataBoundComponents to control appearance or behavior. For example, to conditionally display panes, make fields editable, or display and enable buttons. tryNow

Form Rules

Form rules can now be applied which are declared directly in XML, without the need to write JavaScript code. This allows things like conditional required fields, formatting, hiding and show fields conditionally, etc. to be easily achieved. tryNow

 

How Much Does it Cost to Upgrade?

Existing Customers

If you purchased a license in the last three months, the upgrade to SmartClient 11| Smart GWT 6 is FREE. Yes, you read that correctly. It will cost you nothing. Nada. Zip. $0.00. Zilch. Jack Diddly squat. Zero. Your account has been updated and you don’t have to do anything except download the new release when it becomes available (or the pre-release version today).

If you are an existing license holder, but did not purchase in the last three months, you could still be in line for a pretty huge discount. Discounts are based on your last purchase date. See the table below for tiers, and contact us to upgrade:

Upgrade Discount Rel 11

New Customers

To learn about available editions and to purchase licenses, visit http://www.smartclient.com/product/.

 

Got Licensing Questions?

Major releases (e.g. SmartClient 11.0, Smart GWT 6.0) are paid upgrades. Minor releases (e.g. 11.1, 11.2, 11.x) are free with the major license.

See out licensing FAQs for more information.

 

Start Testing your Applications with 11|6 TODAY

The release is days away. Get a head start. Download the latest pre-release version here and test your applications NOW.

If you find any issues, please let us know through the forums, and provide as much information as possible. We will address issues ASAP.

 

Hands-on Release 11| 6 Live Samples

There is a pretty long list of live samples available for you to test out. You can access them all here.

Again, if you find any issues, please let us know through the forums, and provide as much information as possible. We will address issues ASAP.

 

Thanks for reading our blog! We hope you love the release.

The Isomorphic Team.

Even More SmartClient 11 | Smart GWT 6 Features

Email Banner Rel 11 6 with logo

 

We blogged a few weeks ago (click here) about the first batch of features in SmartClient 11 | Smart GWT 6. Below are a bunch more. Enjoy!

Beautiful input controls

First of all, we’ve overhauled the appearance of our form controls to match current design trends and take advantage of CSS3 features like box shadows and transitions, that are now supported across all common browsers.

 

To check it out for yourself, see examples here, and across many of our other samples in the pre-release sample site.

 

DataSource Navigator & Dashboards in Developer Console

You will find the new “DataSources” tab in the Developer Console to be an extremely useful tool. It enables developers & admins to view, search and edit data for any DataSource in your application, without being limited to the UI intended for normal end users. Leverage it as a:
  • Development tool
  • Troubleshooting tool for live, deployed applications (admins only)
  • Security auditing tool (log in as an ordinary user and perform operations to test for correct server-side enforcement of security rules).
It even includes the ability to save a dashboard consisting of grids configured to show interesting data, allowing admins to quickly bring up key information such as recent orders, lapsed subscriptions or other metrics that may otherwise have required a dedicated reporting tool to make available.

 

DataSources Rel 11 - V2

min and maxWidth for ListGrid auto-sizing

Space in tables is premium. You want to see as much of the data is possible at one time, but this is difficult when the size of returned data is dynamic. To resolve this, SmartClient 11 | Smart GWT 6 gives you precision control over column widths, making it possible to:

  • Autofit perfectly to typical data, but not expand for unusually long values
  • Impose a minimum size for a column that allows a title to be partially clipped (e.g. showing “Desc” may be sufficient for “Description”

Let’s look at an example:

A) The Description column in the table below only has short values. As such, the column width is narrow, taking up as little space as possible without truncating the values.

Email Grid MinMax

B) Below, one of the values in the Description column is very long. The column is wider than before, but rather than make the column unusually wide, that single long description is truncated.

Email Grid MinMax long

 

Here, all of the values in the Description column are blank. The column is therefore made as small as possible, even clipping the column title to ‘Desc …’ to free up as much space as possible.

Email Grid MinMax Blank

 

Component min and max heights & widths

Get more control over layouts with minHeight and minWidth properties on components. This makes it easy to implement scenarios like:

  • Components that should start scrolling if they grow beyond a certain size
  • Preventing components from becoming too small to be usable
  • Modal dialogs that should fill the screen, but not become overly large

Let’s look an example:

When space is not an issue, the description text and the complete table with all of the data is displayed in the layout as shown below.

Layout min max 1

As the amount of description text grows, there is less space for the table. The amount of space available for the table is reduced. the complete table is still displayed, but the user must scroll to see all rows of data.

Layout min max 2

As more description text is added, there comes a point where further decreasing the height of the table does not make sense. At this point, the table is pushed downwards and the right-hand scroll bar provides navigation to it.

Layout min max 3

 

 

This feature also provides the ability to control the size of modal dialogs. In the example below, the modal dialog has been set to take up 80% of the width of the screen. The size of the modal dialog therefore changes as the screen is resized. However, we don’t want it to get too small, or too big. Let’s look at the example:

  1. At first, the screen is very small. The dialog has to take up the full width of the screen to be readable, and it prevents the screen from being sized smaller.
  2. As the screen gets larger, the modal dialog takes up 80% of the width.
  3. As the screen gets larger still, there comes a point when it is no longer necessary for the modal dialog to grow further.

 

tryNow

 

 

More Miscellaneous Features

FormItem icons can now be “inline” on older IE (IE7 and up).  Previously, this feature was limited to IE10 and above LearnMorebutton
FormItem icons can now use text glyphs instead of CSS images or Data URLs, allowing fonts to be used as sets of icons glyphs
Space left for FormItem hints can now be explicitly controlled, to prevent excessive wrapping when forms are horizontally shrunk LearnMorebutton
Maximum file sizes are now validated within-browser (on browsers where this is possible) to avoid uploading large files only to have the file rejected after the upload completes
LearnMorebutton
Excel exports can now render “datetime” values to a particular timezone (Excel has no support for timezone-independent datetime values) LearnMorebutton
DrawPane and DrawItems now support zIndex (stack order) manipulation, at creation and on the fly LearnMorebutton
DMI can now target Java CDI (Contexts and Dependency Injection) beans LearnMorebutton

 

 Use our Pre-release features NOW!

Download our cutting-edge development pre-releases to get started using our new features now!

As always, please send us any bug reports or feedback in the Forums. Please be clear about what product and version you’re using when reporting issues.

Best,

The Isomorphic Team

First Batch of SmartClient 11 / Smart GWT 6 Features

We have been working hard on our next major release. It’s not ready yet, but check out the first batch of new features below. We hope you love them!

Grid Inline Operator Filters

With SmartClient 11 / Smart GWT 6, advanced search operations are available in any *grid that features inline filtering. Getting to important data couldn’t be easier:

  • Choose search operators such as “greater than”, “matches pattern”, “is not null” (see full list below)
  • Type a value in the existing inline filtering interface
  • Press <enter>

FilterTable2

The following operators are available:

GridFilterOperators

Note that this feature is enabled by default, so it’s an instant upgrade for your existing applications!

 

Try the Grid Operator Filter Live, Hands-on Demo >

 

Menu Embedded Components

Interactive components can now be embedded in menus to create a more streamlined, immediate user experience. This eliminates many cases where multiple steps or a modal dialog would be required to complete a menu-driven interaction. For example, see the images below:

MenuEmbeddedComponents

 In the above image:
  • The typical Cut/Copy/Paste menu items have been collapsed into a more compact row of buttons
  • The “Add Bookmark” item gives you the ability to override the default title for a new bookmark without leaving the menu.

Check out the Menu Embedded Component Live, Hands-on Demo >

 

Adaptive Layouts

The Adaptive Layout feature allows components to render in different ways according to available space.
Unlike crude “responsive design” approaches, where appearance changes based on the overall screen size, Adaptive Layout APIs allow a component to render at multiple discrete sizes based on the dynamic situation, such as:
  • How much space is needed to show dynamic data values (e.g. loaded from a database)
  • The size chosen by an end user for a re-sizable screen region
  • Labels that have different sizes in different locales

View the Adaptive Layouts API Reference >

For example, a Menu using the Adaptive Layout feature can show more or fewer menu items inline, responding on the fly as other elements on the screen require more or less space:

InlinedMenuMobile

In the image above, you can see:

  1. Menu with a candidates name and three menu items inline
  2. As available width is reduced, there is not enough space for the three menu items. The component automatically displays one of the menu item via a drop-down control
  3. With the same available width, a candidate with a longer name reduces the space available for menu items. The component reacts intelligently to the dynamic data and a second menu item is moved automatically to the dropdown control

Learn to write your own adaptive layouts >

 

Adaptive Menu Component

According to the available Space, the AdaptiveMenu component can either display menu items inline:

AdaptiveMenuInitial

or in a drop-down:

AdaptiveMenuLast

 

or mix the two modes according to available space:

AdaptiveMenuSecond

 

Go to the Adaptive Menu Live, Hands-on Demo >

Adaptive Width Button

A Button with adaptive width enabled will shrink to just an icon if there is too little space for its title, so your application will work on any size of screen.

See the example below and visit the SmartClient 11 / Smart GWT live samples to try it out.

 

ezgif.com-cropAdaptiveButton

Visit the Hands-on Demo for Adaptive Width Buttons >

 


Use our Pre-release Features Now

Download our cutting-edge development pre-releases to get started using our new features now!

As always, please send us any bug reports or feedback in the Forums. Please be clear about what product and version you’re using when reporting issues.

Look out for Part II of the SmartClient 11 / Smart GWT 6 release preview.

Best,

The Isomorphic Team

Three Problems with Agile

The essence of Agile is to ramp up communication between team members to an extreme degree. The idea behind this is to minimize the functionality gaps, design misses and rework so often encountered in waterfall development processes, with an end goal of maximizing the output of usable software.

Ramping up communication, however, has its own set of challenges. For starters, here are just three:

#1 Distributed team logistics

For a myriad of reasons (cost, morale, retention, etc.), the past ten years have seen more and more companies allow team members to work from home. However, coordinating sprints across dispersed teams is very difficult. There always seems to be someone missing or joining the conference call late and ‘catching-up’. This is causes disruption and irritation.

Now consider that the typical team these days has members spread across the world. The scrum may start at 9am in San Francisco, but it is lunchtime in New York, dinner time in London, and past bedtime in Bangalore. There is really no good compromise in this scenario. No matter what time the scrum starts, some or all of the team will not be happy.

#2 Continuous sprints

With Agile, the team is always in a “sprint”. Anyone with even basic sports awareness knows that after a sprint there should be a period of rest. However, there is never a “rest week” on an Agile schedule. For some reason it is always just ‘sprint’, ‘sprint’, ‘sprint’. This can lead to burnout and management resentment.

#3 Availability conflicts

Very often, business requirements and design validation are sourced from actual business users. However, business users actually have a day job. They can’t be in a room in a scrum all the time. If they are only available intermittently, the process starts to fall apart.

With lack of business user input, teams often end up in an intense discussion of a problem, where no one really understands the problem clearly enough to meaningfully discuss it. And this can be yet another source of team friction.

What is the solution?

It would seem that these problems and others could be solved by technology, but there are surprisingly few (no?) options out there. What would the ideal solution look like?

One thing is for certain … since different team members (e.g. designer versus developer) have different skill sets and needs, any new tools will have to be role specific.

More thoughts to follow …

Available NOW: SmartClient 10.1 / Smart GWT 5.1

10-1-5-1-ReleaseV3

The SmartClient 10.1 | Smart GWT 5.1 release is here and it’s a good one!

 What’s in 10.1 | 5.1 ?

You can find lots of details in the blogs below:

 

Here’s How to Get It

New Customers

Existing License Holders

*** Upgrades from SmartClient 10.0 / Smart GWT 5.0 to 10.15.1 are FREE. ***

When upgrading from earlier versions, discounts are based upon the date of your previous purchase. Please contact us for upgrade pricing.
  • To order an upgrade from a previous version & for more options, contact sales.
  • For more information on how our licenses work, see the Product & Licensing FAQ.

Once you have purchased your upgrade, Download SmartClient 10.1 or SmartClient 5.1 to get started (don’t forget to log in first)!

As always, please send us any bug reports or feedback in the Forums. Please be clear about what product and version you’re using when reporting issues, including the exact date of the build.

Enjoy!

The Isomorphic Team

Next Release – Final batch of features

Our next release (SmartClient 10.1 / Smart GWT 5.1) is just days away. As you probably know, we already published two blogs listing several of the upcoming features:

Here is the final batch of features (excluding 1 or 2 stragglers) …

Two New Components: “Deck” and “NavPanel”, with Tool Support

The “Deckcomponent: manages the mutually exclusive display of a set of components (like a TabSet with no tabs). LearnMorebutton
The “NavPanelcomponent: manages list/tree navigation between a set of components displayed in a Deck. LearnMorebutton
Both components are very easy to build from existing components, but specialized support has been added to both the Dashboards & Tools framework and Visual Builder to make it easy for non-developers to build screens incorporating these common patterns. DeckandNavPanel

 

More Visual Builder Updates

  • Support for adding/editing FormItemIcon
  • Ability to attach multiple actions to an event

 

More Data Import Improvements

BatchUploader has a new mode which facilitates interactive fixing of errors. PartialCommitOption allows a specified action to be taken (allow, prevent, prompt, retain) if a user attempts to save the dataset produced by a BatchUploader whilst it still contains errors. LearnMorebutton
Data Import: support for automatically translating display values from related DataSources into correct foreign key values during data imports. ** Check back later for documentation

 

Messaging Support for JMS Queues

The Real-time Messaging module has been upgraded to support JMS (Java Message Service) Queues, as well as JMS selectors (which allow you to subscribe to a subset of available messages in a JMS Topic or Queue). LearnMorebutton

 

FileSource APIs for Saving and Loading Files to DataSources

The FileSource APIs allow saving and loading files to DataSources, including automatic versioning and per-user ownership. They are implemented by sending requests to the server with a special operationType. LearnMorebutton

 

SuperDevMode

In this release, SuperDevMode becomes even more super, with a setup guide and improvements to stack traces and other diagnostics. LearnMorebutton

 

Reload listGrid without a Loading Message

 

With 10.1 / 5.1, a listGrid.refreshData() API will be available for reloading data from the server without a loading message appearing. LearnMorebutton

 

 

 Getting the Server Details Right

Avoid Precision loss with stringInBrowser

The stringInBrowser server-side setting can be used to deliver numeric values as strings to the browser. It causes values for fields of type “integer” or “float” to be represented as Strings when delivered to a web browser, to avoid mangling values which cannot be represented faithfully in JavaScript (such as BigInteger, BigDecimal, Long, etc.)

LearnMorebutton

JodaTime Support

JodaTime Support will be in this release, including handling JPA/Hibernate beans with JodaTime properties. JodaTime classes will automatically be sent to the client as Date instances, and Date instances submitted by the client will automatically populate bean fields that use JodaTime types, including automatic handling of the difference between logical date, logical time, and full date+time fields.

Optional Millisecond Precision for datetime Fields in SQLDataSource

With trimMilliseconds, the millisecond portion of time and datetime values can be (optionally) trimmed off before before being sent from client to server or vice versa. By default, millisecond information is preserved (i.e. it is not trimmed). You only need to consider trimming millisecond values if their presence causes a problem – for example, a custom server that is not expecting that extra information and so fails parsing.

LearnMorebutton

DataSourceField.sortByField for Custom Server-driven Sorting

In release 10.1 / 5.1, getSortByField() can be used for server-side sorting of the values of a field according to values of another field.

LearnMorebutton

 

 Upgrades

 *** Remember: Upgrades to 10.1/5.1 are FREE to those who have already purchased 10.0 / 5.0. ***

For those not yet on 10.0/ 5.0, upgrade discounts are available and are based on the date of your last license purchase. View our License FAQs for more details. If you would like to upgrade, please contact us.

Thanks as always,

The Isomorphic Team!

 

 

 

Is ‘lightweight’ always a good thing?

Business applications are supposed to improve productivity.

That is why they exist. However, as developers, we sometimes get excited about a newly released technology and the benefits it claims. We can then end up adopting technology that actually degrades the final product – creating a less productive UI, and even ruining performance, despite promising performance claims.

At Isomorphic, we see this happening a lot with companies that get excited about new ‘lightweight’ technologies, like AngularBootstrapBackbone or Ember – or even JQuery, when new JQuery-based components are released.

So, what drives productivity in today’s web applications?

End user productivity – from a platform perspective – is driven by:
  • Advanced UI features (i.e. performing activities with fewer steps / clicks / screens / actions)
  • Performance & scalability (i.e. getting the result of each activity faster)

 

Can we build high-productivity applications with ‘lightweight’ technologies?

There are a number of areas where ‘lightweight’ technologies consistently fall short, or fail to understand the true enterprise requirements:

1. Wrong performance focus

People are excited about “lightweight” grids, which claim to be able to render 10,000 or more rows in a reasonable time in the latest browser.  Developers often think this means that they can skip implementing data paging, and can use client-side filtering and sorting to improve performance.  The reality:
a. the reason not to load 10,000 rows is the database, not the browser.  It’s not important that a grid can render a lot of rows all at once.  The purpose of loading rows incrementally was always to avoid unnecessary database and application server load, as well as avoid wasted bandwidth.
b. 10,000 rows is not a reasonable upper bound – nor is 100,000.  Business data sets routinely get much larger, especially when you consider administrative interfaces that look at data from many users at once.  If you ship an application that expects to load all data up front, it will break in production as data volumes go higher than you had assumed.
c. client-side filter & sort is achievable with Isomorphic grids – but not with lightweight grids.  Our Adaptive Filtering technology automatically switches to client-side sort & filter when data sets are smaller, so you can handle extremely large data sets and reduce server load and bandwidth use.  This capability is why Isomorphic grids dominate performance comparisons that simulate actual end-user behavior.
d. you can only render rows faster by removing features.  Isomorphic’s grid component uses a complex HTML structure because it supports a huge variety of productivity features like auto-sizing of both rows and columns, on-the-fly column freezing, row-spanning cells, components embedded in rows, on-the-fly grouping, as well as many developer override points that require particular HTML structures in order to work.  We know exactly what simplifications would result in rendering more rows per second.  We intentionally don’t apply those simplifications because they would remove productivity features, while not actually improving real-world scalability or performance.

 

2. Productivity comes from feature-rich components, not “lightweight” ones.

Consider grid components. End users need capabilities like edit inline, freeze columns, grouping and sorting, formula columns, adaptive filtering, hiliting, export, drag & drop, etc. Without these and other features, performing simple tasks requires end users to complete multi-step processes. For example:
  • With edit inline: end users click a row or cell, edit the data, then move on.
  • Without edit inline: end users select a record, click an edit button, are taken to another screen, perform the desired update, save the record, and return back to the starting point – hopefully without losing context.
Without feature-rich components, your application can become a frustrating time sink rather than a productivity tool.

 

3. Forgetting something?  Server integration!

Some of the most powerful features in modern UI technologies span both the client and server.  Examples from Isomorphic’s technology include:
a. single source validation & security rules.  Validation rules declared in one place are enforced on the server (for security) and the client (for immediate feedback)
b. automatic UI generation.  Grids, forms and other components can be automatically configured from server-side artifacts such as Java beans and database tables, greatly reducing redundant declarations and making applications easier to maintain
c. exports.  Isomorphic’s UI components know to coordinate with our server framework to export themselves and their data to Excel, PDF and other formats.  Every application needs this; it can be a huge effort to build from scratch.
.. and this only scratches the surface of features that a modern client & server framework provides.
Starting from a ‘lightweight’, client-only framework puts you years behind the state of the art for UI technology, before you even consider which UI components to use.

 

4. Mixing components never worked, and still doesn’t

Most of the new crop of ‘lightweight’ frameworks emphasize the ability to plug in components from different sources, so you can get the best of each component type.  This should all work since they share a common data-binding system, right?
Wrong, unfortunately:
a. accessibility requires intensive coordination between components about tab order, modality, and ARIA markup.  Really trivial cases where just a few rudimentary components are combined will appear to work, however, when you have a lot of instances of dynamically change tab order, multi-level modality and the like, there’s no way to get components from different sources to work together and actually pass accessibility tests
b. skinning conflicts.  Each component has a slightly different look and feel, and it can take a lot of work to correct the mishmash of different fonts and styles so that an application looks reasonably consistent, especially since, when fonts are made consistent, the sizes of various controls and sub-controls used in the app may need to be adjusted to fit the adjusted fonts.  Also, some frameworks make conflicting assumptions about CSS they can globally apply to the whole page, breaking other frameworks or components on the same page (e.g. Bootstrap)
c. export and print support.  A rare feature among ‘lightweight’ components, yet most applications require it, and just one component lacking support can ruin the ability to print or export a particular screen or report.
d. internationalization and localization.  Pulling components from multiple sources typically means that localization work has to be repeated for each component, as every component needs the local word for “OK”, or to be told what date format to use
e. inconsistent quality and endless evaluation.  There is the practical consideration of whether it makes sense to constantly hunt for components.  One grid has inline filtering but no frozen columns.  Another has frozen columns, but no ARIA support for inline editing.  A third has a nice date filtering interface, but it looks and operates completely differently from a date filtering interface you’re using outside of the grid, which will surely lead to user confusion.
f. support.  Even if you succeed in finding a workable set of components, you may find later on that your bug reports are ignored by one team or another.  If support is even available for your chosen components, how many separate support agreements will you be purchasing?  What about the many bugs that are not quite just one vendor’s fault?  For the many single-component OSS projects, is there any reason to think the project will last as long as you need to maintain your application?

So, is ‘lightweight’ always a good thing?

No, it’s not … especially when you’re up against heavyweights. SmartClient has the richest set of UI components available, coupled with deep server integration to bring productivity and performance to your enterprise applications.

Page 2 of 9«12345»...Last »