Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. VIS- core, client side UI and all other application level functions and variables. 

  2. ViennaBase - consist third party JavaScript files and MVC5 Bundle and other settings. 

  3. ModelLibrary - server side business logic and helper classes. 

  4. ViennaAdvantageWeb - start up and hosting project. 
     

 Figure 1.1 show basic structures  

...

 

...

  1. VIS  

As figure 1.2 show, VIS project‘s consist of content, scripts, classes all under the Areas Folder of project. This structure remains same for all other project.  

 
 

                                                                                        Figure 1.2 
 

...

VIS is added in solution as different project. Why Vienna create Areas folder In VIS, Instead of adding Content, Script, Controller directly under Project Folder? 

...

Vienna Base plays an important role to have set of all third party libraries of JavaScript and MVC5. So, libraries or code can be independently update, build and distribute. The structure for this or any other project remains same as VIS.  

 

                                                                                       Figure 1.4 
 

 
 

...

 This project contains jQuery, bootstrap.min.js, custom.css, bootstrap.min.css, and third party query files and style Sheets.  
The custom.css or custom.js is used for customization or addition of new methods or styles to third party Libraries according to VIENNA requirements 

 

...

VIS and ViennaBase is unique prefix used by VIENNA. Same prefix name is used to give folder name in Areas folder.     
 

  1. ModelLibrary 

It is a core server side library, which is the part of base product. Which contains all business logic Model classes, Callout classes, Process classes, Database helper etc. Each class is residing in proper structure inside the Model Library Project as shown in Figure 1.5. 

 
 

                                                                                            Figure 1.5 

 
 

...

Model Folder: Model Folder contains all business logic Model classes (MClasses) related to functionality. If developer doesn't create MClass for a particular database table then data is save directly into database via PO class of model library. 
  

Process Folder: Process Folder contains all process logic classes such as consolidate a number of orders to a single shipment document, copying document, generate invoice on reference button click or on click menu item. Process folder also contains the code for running the third party library.  


 

  1. ViennaAdvantageWeb 

It is the hosting project that we finally deploy for hosting in the IIS, which contains reference of VIS, Model Library and Vienna Base projects. It also contains VIS, Market and Vienna Base Area in Areas folder which automatically copied in this project when you rebuild the solution. 

 

                                                                                          Figure 1.6 

 
 

...

  • Don’t change the class or code in base product, instead make changes in Partner kit and follow the same structure of folder and Area in new project module  

...

VIENNA Advantage partner kit allows module base development for that VIENNA provides three projects in solution. 

 

  1. ViennaAdvantage 

  2. ViennaAdvantageSvc 

  3. ViennaAdvantageWeb 

 

...

 

 

  1. ViennaAdvantage 

 

This  This project contains 'Areas' folder which already contains four areas VIS, ViennaBase, ViennaAdvantage and Market. Here VIS and ViennaBase contains base JavaScript libraries, and stylesheets.  Market Area is used to install new modules and update existing modules from Vienna Advantage Market. ViennaAdvantage is an Area in which user develops required functionality. 

...

If user wants to create new module, then user has to rename ViennaAdvantage Area to Module Prefix Code(MPC) provided by VIENNA then rename ViennaAdvantage Area Registration file to MPC Area Registration and make changes in that file according to instructions written in that file. 

 

                                                                                             Figure 1.8 

 
 

...

                                                         

For example if MPC name is ‘VAT’ then file name become VATAreaRegistration.  

 

  1. ViennaAdvantageSvc 

 
 

                                                                                           Figure 1.9 

 
 

...


 This project is business logic layer and contains business logic classes. This project is referenced in ViennaAdvantage. All Model classes of newly created module comes under Model Folder and processes logic will come under Process folder.  

Rename the dll of ViennaAdvantageSvc to MPCSvc  
 

  1. ViennaAdvantageWeb.  

It is the hosting project that one can finally deploy for hosting in the IIS, which contains reference of both ViennaAdvantage and ViennaAdvantageSvc projects. 

 

                                                                                      Figure 2.0 

 
 

...

ViennaAdvantage partner kit can be used for two different purposes.  

 1.

  1. One way is that partner kit can modify logic of core product (ViennaAdvantage Product). For this, create copy MClass OR Process of core product. Change namespace of class to ViennaAdvantage. For forms and callouts copy and paste required JavaScript files of core product in Script folder of ViennaAdvantage Area, and modify files according to requirements.

...

  1.  

  2. Second way is that you work in module specific project in ViennaAdvantage and ViennaAdvantageSvc. 

Create your own MClasses, XClasses, Callout classes and put in module specific project and keep the same structure as we provide in the product projects. In Module Creation topic, you can find steps to create module in detail.   

The benefit of work in module or Vienna Advantage (Vienna Advantage PartnerKit) over directly work in product files is that in former approach, you can list and download Module from the Vienna Market. Second, if you directly update product files and host the application with your custom update product dll. After that you update Vienna Advantage from the Vienna Market then it will replace the product specific dll and your extended work will be lost. But if you work in your specific module then dll, related to your module will only update when re-install, update specific module from Vienna market. 

...