8 implementation notes
Transcript of 8 implementation notes
![Page 1: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/1.jpg)
BEXIS Tech Talk Series
#8: Implementation Notes
Javad ChamanaraJanuary 2017
Jena, Germany
![Page 2: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/2.jpg)
2BEXIS Tech Talk #8: Implementation Notes
Reminder
• Tech Talk 5: BExIS Extensibility
![Page 3: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/3.jpg)
3BEXIS Tech Talk #8: Implementation Notes
Modules
• What is a module?A module is a set of related user facing
functions, operating from inside the BExIS shell
![Page 4: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/4.jpg)
4BEXIS Tech Talk #8: Implementation Notes
Module Development Consideration
• ASP.NET MVC 5• Plug-ability– Independent development, testing, publishing– Online deployment
• Shell Integration – Menu integration– State Management
![Page 5: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/5.jpg)
5BEXIS Tech Talk #8: Implementation Notes
Module Anatomy
• UI project:– Entry points– Controllers, Models, Views– Manifest file• Menus, dependencies, identification
• Services• Data Access
![Page 6: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/6.jpg)
6BEXIS Tech Talk #8: Implementation Notes
Module Anatomy
• Bootstrapping – Install– Uninstall
• State Management– Start– Shutdown– Activate– InActivate
![Page 7: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/7.jpg)
7BEXIS Tech Talk #8: Implementation Notes
Module Development Recipe
• 1: Defines the required names– <moduleID>: usually a three letter abbreviation of your
module name– <Affiliation>: the institute that owns the module– <projectName>: <Affiliation>.Modules.<moduleID>– <projectCode>: <projectName>.UI
![Page 8: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/8.jpg)
8BEXIS Tech Talk #8: Implementation Notes
Create the UI project
• From scratch:– Read the “Module Development Recipes” doc
• From a template– Follow up
![Page 9: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/9.jpg)
9BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Copy “Module.Template” folder to the Areas folder– The template is in the “Repo/Code/Templates”
folder– Replace the name with actual <moduleID>– Remove the tailing “Template” token
![Page 10: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/10.jpg)
10BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Inside the folder, rename:– *.csproj to <projectCode>.csproj– *.csproj.user to <projectCode>.csproj.user
![Page 11: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/11.jpg)
11BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• In the VS Solution explorer, at solution’s root• Create the “Modules” folder in does not exists• Create a <moduleID> folder under the “Modules” folder.
![Page 12: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/12.jpg)
12BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Add Existing Project• <projectCode> from the Areas/<moduleId>• To solution/Modules/<moduleID> • Via “Add Existing Project”.
![Page 13: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/13.jpg)
13BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• From inside VS, rename the followings:– ModuleIDModule.cs to <moduleID>Module.cs– ModuleID.Manifest.xml to
<moduleID>.Manifest.xml
![Page 14: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/14.jpg)
14BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Edit the <moduleID>Module.cs – Update the namespace to <projectCode>– Update the class name to <moduleID>Module– Pass <moduleID> to the base constructor
![Page 15: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/15.jpg)
15BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Edit /Views/web.config–Edit <add namespace="Template.UI" /> to <add
namespace="<projectCode>" />
![Page 16: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/16.jpg)
16BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Edit the module manifest• Change the moduleId from “Template” to <moduleID>• Update other attributes and elements
![Page 17: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/17.jpg)
17BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Develop designated features– Controllers/ Actions– Views
![Page 18: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/18.jpg)
18BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Shell publishing does not include the module
![Page 19: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/19.jpg)
19BEXIS Tech Talk #8: Implementation Notes
Create a Module from a Template
• Publish the module
![Page 20: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/20.jpg)
20BEXIS Tech Talk #8: Implementation Notes
The Manifest File
![Page 21: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/21.jpg)
21BEXIS Tech Talk #8: Implementation Notes
The Manifest File: Dependencies
• Must be installed and active• Required version is checked against available
one
![Page 22: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/22.jpg)
22BEXIS Tech Talk #8: Implementation Notes
The Manifest File: Exports
• Publicly accessible module features• Plugged into the menu structure• Document order is preserved– Also catalog order
![Page 23: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/23.jpg)
23BEXIS Tech Talk #8: Implementation Notes
The Manifest File: Exports
• Id: export port id for path/hierarchy building• Title: as menu label• Description: as tooltip• Controller: the controller name• Action: the action name• Argument: If the action has a parameter• Extends: The injection point in the menu
structure
![Page 24: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/24.jpg)
24BEXIS Tech Talk #8: Implementation Notes
Module Publishing
• Shell is already published• Areas folder does not include the module• Publish the module into a folder• Create a zip bundle
![Page 25: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/25.jpg)
25BEXIS Tech Talk #8: Implementation Notes
Module Registration
• Method 1:– Update Modules.Catalog.xml– Create the <moduleID>folder under Shell/Areas– Unzip the module zip file into the folder
• Method 2:– Use the SAM’s registration feature
![Page 26: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/26.jpg)
26BEXIS Tech Talk #8: Implementation Notes
Module Management
![Page 27: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/27.jpg)
27BEXIS Tech Talk #8: Implementation Notes
Documents
• Module Development Recipes• Naming Conventions• DLM API docs
![Page 28: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/28.jpg)
28BEXIS Tech Talk #7: Configuration and Change Management
Outlook
What‘s next in the talk series?
Nothing
![Page 29: 8 implementation notes](https://reader035.fdocuments.us/reader035/viewer/2022070600/58d017181a28ab97708b494d/html5/thumbnails/29.jpg)
2929
Thanks!Questions?
Contact:[email protected]://bexis2.uni-jena.de
Acknowledgment
BEXIS Tech Talk #8: Implementation Notes