VisionCore ICE Architecture
Previous pagePrevious Print this TopicPrint

VisionCore ICE Development

This topic discusses some of the ways in which you can use the VisionCore ICE Architecture to develop stand-alone applications, components that integrate VisionCore data with other applications or to expand the system itself.  The VisionCore objects expose, business logic, and some elements of the user interface used by the VisionCore system itself.  Using the functionality exposed by the VisionCore API, you can provide three major kinds of solutions:
 
Integrated business applications that are typically standalone executables running outside of the VisionCore environment. Typically, these provide specialized vertical or horizontal functionality and integrate with VisionCore to leverage its robust accounting features.

 
Customized Business Applications that extract data from a VisionCore company database in order to display or export it in an external application.
 

Expansion that runs within the VisionCore environment and extends its functionality.  For example, a plugin might calculate the shipping charges for an invoice or check the credit rating for a customer.
 

VisionCore Expansion

The VisionCore application allows you to inherit any object of the VisionCore system to be able to customize and expand the code within the VisionCore System. 

 

User Interface expansion, which allows you to add custom controls in the VisionCore Main Menu or in any particular form.  This allows the developer to expand and have full control over the VisionCore Form's functionality.

 

Customizable Business Rules/Logic, which are are very reusable for expanding the system or adding new customized forms. These can also be inherited and customized to suite the business logic needs.

 

Plugin Expansion, which allows you to use any element of the VisionCore components to allow you to add new customized forms with little effort.

 

User Interface Expansion

A user interface expansion provides either a menu with menu text or a toolbar button that is displayed as part of the user interface of the main menu or a particular VisionCore form. When a VisionCore Form is inherited by the developer, all customizable objects in the Form are exposed.  The controls can be hidden, moved or new controls can be added. 

 

The VisionCore components like the BRLCore, Dal, and the VisionCore controls can be used for customization needs.  Reusable classes, methods, functions in the inherited form are also exposed so they can be reused.  The User interface expansion can be used to extend VisionCore by providing additional options and additional functionality that is otherwise unavailable.

 

For example, a user interface expansion might be as simple as a routine that calculates shipping charges for an invoice or it might introduce entire new areas of functionality.  While VisionCore allows you to enter basic inventory item information, a business might want to supplement it by including some marketing details with the item. For this purpose, an expansion can be created that is invoked from the VisionCore Inventory form and that displays a custom form that allows the user to input the desired marketing information.

 

The form can follow VisionCore's user interface guidelines (see UI STYLE GUIDE FOR VISIONCORE FORMS) so that it resembles the look and feel of the VisionCore interface as much as possible.  In addition, labels on the VisionCore form can be customized to match those on the expansion form, a topic covered in CUSTOMIZING USER INTERFACE LABELS. One the user elects to save the data, it can be stored in the company database using VisionCore's custom data definition features, or, more likely, it can be stored in a custom database external to VisionCore company database. In the latter case, the marketing data in a separate database and the data for the inventory item can be linked either by the items object property value.

 

Customizable Business Rules/Logic

The business rules/logic of modules can be used to handle the save and delete operations. Custom handling code can be used to either stop the entity from being saved or deleted, or update related information in its own custom data store. For an overview of the process of developing a business logic add-in, see CREATING BUSINESS RULES and HOW TO: DEVELOP BUSINESS RULES.

 

Each Business rule of the VisionCore modules are reusable and customizable when inherited. For example, a customized business rule can be as simple as a routine that prevents customer records from being deleted. They can also be much more complex. For example, a medical office using VisionCore might want to submit copies of patient invoices to an insurance company when the patient invoice is generated.  In this case, the customized business logic would use the provideRunPostSave method that the VisionCore system executes whenever a Sales Invoice object is saved.  The added code expansion could in turn display a form that allows the user to input any additional information required for billing the insurance company.

 

A business logic plugin can be used to receive notification of IBaseMasterEntity save (CU) and delete (D) operations.  Custom handling code can be used to either stop the entity from being saved or deleted, or update related information in its own custom data store.  For an overview of the process of developing a business logic plugin, see Creating Business Logic plugins and How to: Develop a Business Logic Add-In.  Once the user input is validated, the data could be saved either using the custom data features of the VisionCore system or, more likely, using a custom database separate and apart from the VisionCore company database.  In the latter case, either the ID or the GUID of the Sales Invoice document can be used to link the Sales Invoice data with the custom data related to that Sales Invoice.  For treatment of VisionCore's custom data features, see EXPANDING VISIONCORE WITH CUSTOM DATA

 

Customized Business Applications

Using the VisionCore ICE Architecture, it is possible to develop standalone applications (executables) that operate completely outside of the VisionCore environment.  These are typically horizontal applications (such as shipping applications or time-entry applications) that integrate with VisionCore to take advantage of its robust accounting engine, and that rely on VisionCore for their back office accounting.

 

For example, a company might want to build a property management application to manage its rental property.  The application developers would be responsible for implementing much of the business logic necessary for the property management application.  They could draw on the VisionCore ICE Architecture to take advantage of its business objects (such as its BRLCore and VisionCore Control objects, which provide representations of accounts and business documents), as well as its accounting engine.  The developers could also develop an entirely new user interface for the application, or they could incorporate selected VisionCore forms into the property management application.  If desired, the application's user interface as a whole could be made to resemble that of VisionCore (see UI STYLE GUIDE FOR SDI FORMS), and any Control Properties on the VisionCore forms could also be customized for instance by changing the string "customers" to "tenants" (see CUSTOMIZING USER INTERFACE CONTROLS  for details).

 

Typically, such specialized standalone business applications integrate with VisionCore and load VisionCore assemblies dynamically in a separate application domain, a topic discussed in INTEGRATING VISIONCORE USING APPDOMAIN.

 

 

 


Page url: http://www.comtechsolutions.com/csdemos/ice_sample/index.html?visioncoreicedevelopment.htm