29
BEXIS Tech Talk Series #8: Implementation Notes Javad Chamanara January 2017 Jena, Germany

8 implementation notes

  • Upload
    javadch

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 8 implementation notes

BEXIS Tech Talk Series

#8: Implementation Notes

Javad ChamanaraJanuary 2017

Jena, Germany

Page 2: 8 implementation notes

2BEXIS Tech Talk #8: Implementation Notes

Reminder

• Tech Talk 5: BExIS Extensibility

Page 3: 8 implementation notes

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

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

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

6BEXIS Tech Talk #8: Implementation Notes

Module Anatomy

• Bootstrapping – Install– Uninstall

• State Management– Start– Shutdown– Activate– InActivate

Page 7: 8 implementation notes

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

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

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

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

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

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

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

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

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

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

17BEXIS Tech Talk #8: Implementation Notes

Create a Module from a Template

• Develop designated features– Controllers/ Actions– Views

Page 18: 8 implementation notes

18BEXIS Tech Talk #8: Implementation Notes

Create a Module from a Template

• Shell publishing does not include the module

Page 19: 8 implementation notes

19BEXIS Tech Talk #8: Implementation Notes

Create a Module from a Template

• Publish the module

Page 20: 8 implementation notes

20BEXIS Tech Talk #8: Implementation Notes

The Manifest File

Page 21: 8 implementation notes

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

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

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

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

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

26BEXIS Tech Talk #8: Implementation Notes

Module Management

Page 27: 8 implementation notes

27BEXIS Tech Talk #8: Implementation Notes

Documents

• Module Development Recipes• Naming Conventions• DLM API docs

Page 28: 8 implementation notes

28BEXIS Tech Talk #7: Configuration and Change Management

Outlook

What‘s next in the talk series?

Nothing

Page 29: 8 implementation notes

2929

Thanks!Questions?

Contact:[email protected]://bexis2.uni-jena.de

Acknowledgment

BEXIS Tech Talk #8: Implementation Notes