Frequently Asked Questions

Q: What is Evoke?

Evoke is a first class toolset for the development of business applications on all application delivery platforms  – Desktop Browsers, iPhone/ iPad, Android phone /tablet, Windows Modern UI, Windows Phone and Windows native desktop – without having to acquire multiple skills and tool sets.

Built using industry standard HTML/CSS/JavaScript technology and Microsoft's ASP.NET framework, or optionally C# and XAML, Evoke consists of three parts: app designer, app generator and run-time support libraries.  The designer enables lightning fast app user interface (UI) design.  The generator automatically transforms designs into fully customizable Visual Studio projects, and the run-time libraries provide support for all platforms and devices while keeping an all-important standard look and feel across them all.

Q: Why would I choose Evoke vs Kendo UI Mobile or jQuery Mobile?

Evoke releases the developer from all the concerns about infrastructure to build first class business applications from the UI all the way through to integration with existing business application logic.  The infrastructure to manage support for multiple devices and multiple operating systems is all handled by Evoke.

Critically this is all based on generating standard Visual Studio projects that are then customisable using off the shelf components from any source.  Evoke is completely open.  The result is shorter delivery time for projects with far less risk from complex infrastructure issues associated with managing multiplatform and operating systems.

We suggest that while Kendo UI Mobile is good it only addresses part of the requirement and you are restricted to their approach whereas jQuery Mobile is primarily focused on UI (and mostly mobile UI at that).  Evoke does not have any of these restrictions and solves the problem from the UI all the way to the database.

Q: What are the major parts of Evoke?

Evoke consists of two major components, the application designer and application generator.  The application designer allows the developer to design UI menus, pages and data models which are then used by the application generator to create Visual Studio solutions.  As well as incorporating all of the client-side UI oriented code, these solutions also include all of the code required to provide read/write interaction with a back-end database as well as RESTful service based data access points for an applications UI.

The Evoke Designer is accessed as a SAAS on a hosted system from BlueFinity International.  Each company/user is allocated secure access and login for their development work.  The Evoke Code Generator is an installable application on a local workstation/laptop.  It will require a Windows operating system compatible with Visual Studio 2012 (minimum).  The code generator will need access to a MultiValue database.  Connection can be either via mv.NET Database Access Licenses (DALs) or if the database is either Universe or Unidata via U2 Data Client and Connection Pooling licenses.

Q: How is Evoke licensed?

The Evoke Designer is accessed as a SAAS on a hosted system from BlueFinity International.  Each company/user is allocated secure access and login for their development work.  The Evoke Code Generator is an installable application on a local workstation/laptop.  It will require a Windows operating system compatible with Visual Studio 2012 (minimum).  The code generator will need access to a MultiValue database.  Connection can be either via mv.NET Database Access Licenses or if the database is either Universe or Unidata via U2 Data Client and Connection Pooling licenses.

Evoke Run Time licenses are required to deploy the developed applications.  Heavy use is made of connection pooling to efficiently manage access to the MultiValue database.

All licenses are on an annual subscription basis which covers use of the product, support and all product updates.

Q: How does Evoke connect to a MultiValue database?

A:  All of the MultiValue databases are supported.  Connection can be either via mv.NET Database Access Licenses to all MultiValue databases or if the database is either Universe or Unidata via U2 Data Client using Connection Pooling licenses.

Q: Does Evoke work with Desktop browsers?

A:  On computers with a Windows operating system IE10 and above is supported together with Chrome and Safari.  Firefox will be supported in a later release.  For computers with an OSX operating system Safari and Chrome will be supported in a future release. 

Q: Does Evoke support Apple iOS, iPhone and iPad?

A: Yes, iOS devices, iPhone and iPad are supported, minimum iOS 7 release.  In addition PhoneGap is also supported for iOS devices.

Q: Does Evoke support Android devices?

A: Yes, Android devices, phones and tablets will be supported in a forthcoming release together with PhoneGap support as well.

Q: Does Evoke support Windows Phone?

A: Yes Windows Phone will be supported in a later release in 2014.

Q: Does Evoke work with PhoneGap?

A: Yes Evoke apps can be built in to hybrid apps using PhoneGap for both iOS and Android platforms.

Q: Can I use native device features like the camera?

A: Using PhoneGap will enable an Evoke app to gain comprehensive access to native functionality like the camera.

Q: Can I use third party components with Evoke?

A: Yes you can.  The architecture of Evoke is completely compatible with the use of 3rd party components.

Q: How does Evoke handle storage of data across a session?

A: Because HTML-based Evoke apps are SPAs (Single Page Applications) the internal memory model is very similar to a traditional rich client application (and also Silverlight for that matter) in that the data state for an app is retained constantly within the browser and is accessible by any part of the app.  This means that you don't have to worry about session state or web farms or any of the traditional headaches of web applications.

Q: Does Evoke use MVC partial views?  If so, can I have a static top row, and dynamic changing partial views below?

A: Yes we use partial views.  The custom content capability of the App Designer, ultimately, allows you to incorporate whatever custom functionality you like within a page.  One thing to be aware of though is that if you want to deploy PhoneGap versions of your HTML-based app, you need to avoid tying your app to ASP.NET MVC functionality because it won't be available to the app when it is running standalone.

Q: Can I incorporate custom data entry UI into grid-based editing within a page?

A: Yes.  The lookup widget that can be incorporated within an editable grid raises an event just before the dropdown list is displayed.  If you intercept this event you are able to override the default behaviour and display whatever UI content you like for that cell.

Q: Can the Evoke App Designer be hosted in any alternative environments to the current Azure-based hosting?

A: Yes. Please contact us for more details on the alternatives we can support.

Q: What type of database record locking does Evoke use?

A: Evoke uses a checksum-based optimistic record locking regime.  This is compatible with the use of traditional pessimistic (ReadU) record locking because the ReadU statement is still used at the time of actual record update.

Q: What type of connectivity does Evoke support for D3?

A: Connectivity to D3 is via BlueFinity's mv.NET product, using either Telnet or (for R9) MVSP connections.  If Rocket implements a native connection pooling option for D3 we will also support that (i.e. no usage of mv.NET).

Q: What .NET languages does the Evoke's App Generator support?

A: Currently the App Generator creates C# based code, but we will be adding VB.NET very shortly.

Q.  What will be the design of Evoke's internal application security model?

A.  The design of the internal app security model that will be introduced into the product in a couple of months' time will be such that it will be able to support either a role based security model and/or a task based approach.  It will be based on security groups; each user will be able to be a member of any number of groups; each group can relate to either a role or task; Elements within the app (menu options, pages, page segments, input fields) can then be assigned groups names on a allow/disallow access/display basis.

Q.  For WPF/Metro applications will data access be via a separate service layer? How will that change the architecture of the generated visual studio application?

A.  The data access part of the app will not change across different UI implementations.  For WPF, the user will have the option of incorporating the data access code/project as part of the solution within the WPF executable itself as opposed to accessing data via a RESTful service.

Q.  Can the evoke configuration metadata be back loaded from an existing application or do you need to start from scratch. e.g. menus entities etc.?

A.  The app generator can be used to analyse the schema data present on the database server and use this to estimate what entities exist within the data structures.  This can then be used to automatically generate entities within the app designer's data model.

Q.  Does the optimistic locking work when the data is sourced from multiple records?

A.  Yes.  The hash value is generated by .NET code, and is thus computed on the data blob being returned by your code in DataBASIC.  This means optimistic locking will be driven by whatever data you return for an entity irrespective of where that data came from originally.

Q.  Can the data for an entity come from multiple data sources?

A.  Yes.  The back-end architecture of Evoke is such that the data content of an entity can be obtained from multiple data sources.

Q.  Do we have to use Azure?

A.  At the moment, yes.  But, self-hosting of the designer will be made available later in the year.

Q.  Can we develop dictionary file (table) with Evoke?

A.  At the moment, no.  But, it's something that we have already thought about including within the product.  Please let us know how important this feature is for you.

Q.  Where are the data fields in the screen (page) defined?  Are they pulled from the database and therefore based on the database file dictionary items?  Or do you define them separately within Evoke to point at a particular database/file/record field?

A.  The data fields within a page segment are defined via “data templates”.  These are re-usable components created within the app designer that identify the properties of a particular entity that need to be represented within the page segment.  For single-entity instance templates, each of these properties will appear as an individual input field.  For multiple-entity instance templates, each of these properties will appear as a column (possibly editable) within a grid.  The connection of these fields/columns to back-end database files/fields is done as part of the app generator's “mapping” definition – the UI has no idea where the data is to be ultimately sourced from in terms of back-end data repositories.