BlueFinity's mv.NET - Current and Future
BlueFinity International supplies Microsoft-centric tools which allow MultiValue developers to create applications using the very latest technologies while retaining their valuable and often substantial investment in MultiValue software and knowledge.
David Cooper is one of the lead developers at BlueFinity International. He has worked within the MultiValue community since 1986 and has extensive experience authoring both end-user applications and developer tools. David has worked on BlueFinity's flagship mv.NET product since its conception and is one of the few people in the industry qualified to talk at an in-depth level about MultiValue, .NET and mobile technologies.
In this article, David discusses BlueFinity's strategy to integrate MultiValue data with modern Microsoft platforms and technologies using mv.NET Solution Objects.
The Current Picture
BlueFinity's mv.NET has been the leading .NET to MultiValue development tool for the past six years and during this time its functionality has grown tremendously. In summary, it currently provides:
- Connectivity from .NET to all the major MultiValue database platforms
- High performance connection management with easy management and configuration
- Feature rich DataBASIC-like functionality for C#/VB via its Core Objects API
- A high performance ADO.NET managed data provider and data reader via its Adapter Objects API
- Industry leading and unmatched entity modelling and code generation features allowing the MultiValue database to be exposed as a series of .NET classes via its Solution Objects API
Although all of the above features are important it is probably the last one, Solution Objects, that is the most significant — both in terms of what it currently provides and also in terms of what it will provide in the near future. I will explore Solution Objects in a little more detail later in this article.
The Current Scope of mv.NET
The diagram in figure 1 illustrates the range of coverage within the overall application development and delivery spectrum currently provided by mv.NET. It also hints at what's in the pipeline for delivery in the very near future.
Fig. 1
As you can see — we do an awful lot more than simply providing a communications pipe to MultiValue databases!
At present we stretch from our footprint on the database server (which currently comprises a collection of approximately 100 BASIC support routines) through the connection management/data model presentation tier and onwards into our tooling to support the initial stages of application user interface (UI) creation.
The database side of things at present consists of a library of pre-composed support routines which reside safely and securely well away from all other applications. These routines provide a very stable and flexible target for .NET. We then provide a comprehensive library of Windows-based tools that communicate with these routines for a variety of very useful application development and tracing/debugging uses.
On the Windows (server) side, our connection management components breeze through the most demanding of connectivity requirements. These interact seamlessly with all three of our programmer APIs to provide a flexible, .NET developer-friendly way of accessing the MultiValue environment from within .NET.
Today, our adventures into the land of application UI creation is limited to the browser-based Silverlight environment. This generated a huge amount of interest within the community when it first appeared nearly two years ago, but — as we all know — the ever shifting technical landscape is evolving, resulting in the need to embrace additional technologies and working patterns.
Using mv.NET to create an application UI for Silverlight is very intuitive process and introduced an approach which met a number of sometimes conflicting development demands:
- Quick-start application development
- Database content driven screen design
- Easy access to existing DataBASIC logic on the database server
- Use of industry standard development tools with the ability to use whatever 3rd party tools libraries are necessary to assist in the job
- Great looking UIs!
- Ability to engage non-MultiValue aware development resources
The tool we created for Silverlight is called the "XAML Wizard" — XAML being the Microsoft technology used in Silverlight which provides the rough equivalent to HTML/CSS (and a bit of JavaScript) in the traditional web world. The XAML wizard provides a high level UI designer which links into Solution Objects entity modelling to provide a drag and drop UI creation experience to speed up and join the UI and database.
Once the UI design work is done (or part done — the whole process is naturally cyclic) the designer is able to generate either whole or part of a Visual Studio solution. The developer is then able to use the full power of Visual Studio to do the rest of the work to complete the application. We found that this approach gave developers the best of both worlds — a very easy to use initial application creation tool while still allowing them the full power and flexibility of an industrial strength IDE.
Despite being a great product we all know that Microsoft, while providing long term support for Silverlight, has now moved its focus on to other things — so it's time for us at BlueFinity to add more in the area of UI creation to our portfolio as well — and we are!
Solution Objects
I introduced Solution Objects earlier as an incredibly important part of mv.NET for BlueFinity. Today it provides four key components:
An entity modelling tool — this allows you create a sophisticated database to .NET class mapping definition
A code generator — this generates C#, VB or, in fact, entire Visual Studio solutions based upon an entity model. This enables all or part of your MultiValue database application to be exposed as a series of standard .NET classes. These classes can be used by any .NET developer for any kind of .NET application. Even better, .NET developers need not have an ounce of MultiValue knowledge in order to make full use of both data and logic residing on your database. This is a major benefit where development teams can be expanded by adding new .NET skills without the need for time consuming MV cross training.
- The "XAML wizard" — see above
- A "REST wizard" to fully automate the generation of a complete, fully functional read/write RESTful service directly from an entity model.
In fact, I took my stop watch out the other week and timed how long it took me to go from an entity model to a fully working and published within IIS create/read/update/delete/select enabled industry standards compliant RESTful service — 4 minutes 17 seconds was the answer.
Solution Objects is proving to be an essential tool for many BlueFinity customers. It allows them to easily address some key technological challenges:
- How to encapsulate vital MultiValue knowledge and know-how within a general purpose, industry standard projection of their database content
- How to expose selected parts of their database in a way which cannot be abused (accidentally or not) by application developers
- How to retain/advance their investment in MultiValue technology while keeping pace with the rapidly evolving user-driven technology landscape
- How to engage non-MultiValue aware development resources to help meet these challenges
- How to integrate their MultiValue database with modern hand-held devices
Solution Objects therefore is a vital part of mv.NET both now and into the future. Let's explore what's coming soon from BlueFinity and how Solution Objects plays its vital role on this very exciting path.
The Future Picture
BlueFinity has never been lacking when it comes to innovation in providing the MultiValue development community with key tools to allow them to integrate with Microsoft's ever-changing .NET environment.
At BlueFinity we spend an inordinate amount of time observing, experimenting, testing, breaking, cursing and sometimes loving new technologies. We do this partly because it's good fun but also — more importantly — because it's vital for us as a tools vendor to be absolutely on top of what the marketplace, our customers and new prospects will be asking for in terms of development tooling in 6 to 12 months time.
Over the past 18 months the task of doing this "technology watch, understand and use" process has been especially challenging as the big players out there fight to grab the hearts and minds of developers and the wallets of consumers.
In conjunction with this technology awareness, another really important part of our job at BlueFinity is to listen to what MultiValue-based IT departments are being asked to do.
It is the joining together of these two strands of awareness which is at the heart of BlueFinity's developers product roadmap for the coming 12 months. This roadmap steers a careful course through the jagged rocks of application development for today's often impetuous, trend driven, mobile device fixated modern business landscape.
We think it's really important to furnish the MultiValue community with state of the art software development tools. Tools that allow the creation of modern, forward thinking line of business applications, but which also allow these applications to be designed, developed and successfully deployed on time and on budget. Specifically, this means providing tools which are:
- Intuitive and easy to use
- Designed to utilize and integrate with industry standard components and infrastructure
- Engineered to provide a unified application development process that is able to address the need to target application delivery at an ever increasing variety of software/hardware environments
- Able to create engaging, modern look-and-feel application UIs while still being able to make the very best of existing and future MultiValue database investment
- Able to leverage the superb existing mv.NET technology stack
To that end, during the coming year we will be delivering products that you are really going to love to use and which will save you immense amounts of development time and effort (and money).
The new products coming from BlueFinity's developers will ultimately reach down into the MultiValue database via Solution Objects. This is because everything in .NET naturally speaks in the language of classes and therefore it makes perfect sense to focus on this approach. To achieve this we will be doing more clever things inside Solution Objects to underpin our support for modern coding patterns such as MVC and MVVM.
We are very excited about the products coming out of our development labs this year and can't wait to share them with you!
For More Information
To learn more about BlueFinity or to register for a free, fully supported trial evaluation of mv.NET, please visit www.bluefinity.com .