Interview with the architects of the Vision Commerce XV Framework


    Vision Commerce has released a new development framework for its Vision origination system. We sat down with Kirk Hall and Carey Loomis, the principal architects and developers of the new framework, to ask a few questions.

    Why a new framework?


    The last major rewrite of our legacy environment was in 2003. Although we have continually added features, the underlying structure was unchanged. It made sense to rewrite the user interface from scratch to take advantage of the latest technologies and techniques. With the recent solidification of HTML5 and CSS3 specifications the time was right for a new framework to improve functionality in the desktop environment and better address the mobile environment.

    So this was a complete rewrite?


    The code that generates the user interface and processes user requests is completely new. Legacy code provided a starting point for concepts, but it is a full rewrite.

    There are plenty of platforms out there. Why not use one of them?


    We did look for other platforms. We would have gladly adopted one that would allow us to focus all our energy on providing solutions to customers instead of framework development and maintenance.

    Our business focus is on customers who excel through differentiation. There are some great platforms out there, especially for cookie-cutter implementations supporting simple processes, but we could not find anything that would allow us or our customers to do what we need to do in a timely or economically feasible way.

    What new features do you think will have the biggest impact on end-user productivity?


    Simultaneous record editing. It is kind of a hidden feature that will go unnoticed by most, but the ability for two or more people to be working in the same record and saving data without overwriting the other’s changes is a game changer for fast-paced originators.

    The XV list screen also packs a lot of new functionality: multi-column filtering, grouping, saved searches, detail fields, record stacks, etc. Users will be able to find and manipulate data much more easily than before.

    What do you mean by record stack?


    We have so much new functionality, one of our challenges is coming up with good names. When a user generates a list, the designer can expose functionality to allow the user to pop open a detail screen for the list that the user can step forward and backward through using navigation controls. For example, you might have 20 tasks assigned to you in a queue list. You filter the list so it shows the ones that are critical. You pop open a record stack, and then you can just step through these records without going back to the list. It is especially convenient in a mobile environment where navigation is more challenging.

    So mobile is a focus of the new framework?


    It is a primary focus. Our intent is that every Vision screen be fully functional and easily useable in a mobile environment. The framework emits HTML5 that is mobile-first.

    Obviously, there are many complex activities that are part of origination that a user would not typically expect to perform on a phone. It is just not efficient to enter large amounts of data normally done with a keyboard or to evaluate complex sets of detail data.

    And XV supports different languages?


    XV provides cultural support for labels, number/date formatting, lookups, messages, and more.

    Most systems that support culture do it at the user level. The user sets their cultural preference and their experience is defined by that setting throughout their session.

    We were fortunate to have a partner in Quebec who gave us insight into what a truly multi-cultural system needs to provide to a multi-cultural office. Bilingual staff often prefer to use an interface in the language they are working in. If they are talking to a customer in English, they want to view the interface in English. If they are talking in French, they want it in French. Thus Vision needs to allow a user to switch cultural settings on the fly. This might sound easy, but when you factor in number and date format differences, handling the post in one language and the response in another was not simple. We have ended up with a solution that supports multi-cultural settings better than anything we have benchmarked.

    What about developer productivity?


    When we developed the original framework, Vision Commerce personnel were the sole users of our configuration tools. They were not intended to be seen by anyone else (much less used by them).

    But the quick and dirty “Master Control Program” written as a client-server application evolved into a universal development tool, and on-premises clients began doing in-house configuration with it. Although it has a bohemian appeal to those who grew up with it, no one would ever say it is pretty or easy to understand.

    With XV we focused on increasing developer productivity by making the framework more logical and providing an integrated, web-based development tool. All configuration is now done using screens exposed to developers inside the Vision system that are fully documented with inline help.

    These configuration screens are actually a great demonstration of the flexibility of the new framework. Everything that defines a screen in Vision is data. The framework is about facilitating the controlled presentation and manipulation of data. It was a logical step to expose the framework through screens built upon the framework.

    Try to wrap your head around using a screen to maintain its own configuration. I once accidentally deactivated all the fields on the configuration screen used to define core field attributes (including the active flag) and all the controls on that screen went away.

    Do developers get access to the same tools you are using to develop screens?


    Any on-premises or hosted customer can have access to the same development tools we use to generate, customize, and maintain screens. They can even make changes to the configuration screens to suit their development needs.

    This fits with our company philosophy of mutual reliance instead of dependence.

    What does upgrading require?


    XV and Legacy Vision can run side-by-side using the same databases. An unbreakable rule for everything we have done with XV is that it must do no harm to existing functionality. You can actually do business using the legacy interface and the XV interface simultaneously. We practice this in our Cloud environment where the same database is used by XV and Legacy interfaces. The new framework structures added to the Vision databases are ignored by the legacy code.

    Upgrading the framework requires addition of objects and data to the Vision databases. We do this part with SQL scripts. It is a simple process and typically requires a few hours of effort.

    Utilizing the new framework capabilities to present new screens is the difficult part. The XV GUI is so much better and fundamentally different than the legacy GUI that an automated translation of old to new does not always make sense. The best practice is to evaluate every custom screen and create a design that takes full advantage of XV capabilities.

    Note that the core Vision concepts of user roles, workflows, formats, edit rights, and access rights are unchanged.

    How hard is it to create new screen definitions?


    The developer tools in XV are much easier to use than legacy Vision, and the same get/save procedures are supported. We have also cleaned up definitions and added help to the configuration tools.

    So generating a new screen using the same get and save procedures can be done in minutes and requires significantly less effort to configure and tweak than it did in legacy Vision.

    The harder part is re-visualizing the screen to take full advantage of the new controls and functionality. It takes some experience and thinking to get the best result.

    Does XV require more server resources?


    No. The new code actually streamlines database communication and page processing on the web server. We also cache more application, session, and screen level data to improve performance. Overall, we see that XV uses less memory, less processor, and less network bandwidth between the web server and database server than the legacy code.

    The browser is expected to do more of the processing with XV, but any modern browser on a reasonable device will server up XV pages without a sweat. We routinely test XV pages on smart phones and the most complex pages present without a hitch.

    What are the core technologies used in the framework?


    • SQL
    • HTML5
    • CSS3
    • JavaScript
    • .NET / C#

    So what does XV stand for?


    Fifteen. It initially came from the convergence of 2015 (the year of its development) and the 15th year of our partnership.

    As we have seen what XV is capable of doing and the excitement it generates when we demonstrate the new features, I think we can also say it stands for eXtreme Vision.

    Or possibly X-ray Vision, because it allows you to see beyond the surface.

    What are the future plans for the framework? Is there an XVI?


    Our goal with legacy Vision was framework with the right mix of configurability, maintainability, and extensibility. But the core technologies, specifications, and programming meters were not there when we started with HTML 4, CSS 2, and C# 1.0.

    Internet technologies have solidified. HTML5 was initially a rogue specification that was revolt against the XHTML standards being pushed on developers. In the end, the people who actually do the work won the day, and HTML5 is now a living standard with a solid foundation and nearly universal support. It is a time of convergence, compliance, and integration. And as a result, also a great time to define a lasting framework.

    The biggest structural difference in legacy and XV code is that we have incorporated the relational model that worked so well for storing our framework data directly in our code classes. This restructuring allows our code to work much like relational database where new functionality is as easy to add as tables and fields can be added to a database if you understand the model.

    So when will it by time for XVI? When there is a fundamental change to the technologies and specifications that underpin the framework. In the meantime, we have a solid foundation to keep pace with HTML5 additions, GUI fashion changes, and the evolving needs of the financial services industry.

    Quick Intro to New Functionality


    • • Completely new responsive layout
    • • Customizable logins
    • • Dynamic graphical reports
    • • Navigation bar with submenus
    • • Fully integrated cultural support
    • • New notification process including growl pop-ups and notification lists
    • • New queue options
    • • Drag and drop support for file uploads
    • • CRM activities based on company or individual contact
    • • Master vs non-master (point in time) record options
    • • Record locking to ensure usage
    • • New control types (about 20 and growing) including special additions of:
      • • TypeAhead
      • • Date and time enhancements
      • • Masked Fields
      • • Contextual add-on fields
      • • Expanding text area
      • • Markdown support
      • • Charts
    • • List screens are completely reengineered
      • • Sort, filter and group on multiple columns
      • • Universal search options
      • • Phone number search
      • • Filter options tied to data type
      • • Multi-column / complex search combo and text box support
      • • Saved searches for individual users
      • • Saved searches available from top-level navigation
      • • Record action area
      • • Additional detail fields
      • • Export custom lists to Excel
      • • “Stacking” records for quick navigation