Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

8 implementation notes

101 views

Published on

A recipe on how to develop and register a module on BExIS

Published in: Software
  • Be the first to comment

  • Be the first to like this

8 implementation notes

  1. 1. BEXIS Tech Talk Series #8: Implementation Notes Javad Chamanara January 2017 Jena, Germany
  2. 2. Reminder • Tech Talk 5: BExIS Extensibility 2BEXIS Tech Talk #8: Implementation Notes
  3. 3. Modules • What is a module? A module is a set of related user facing functions, operating from inside the BExIS shell 3BEXIS Tech Talk #8: Implementation Notes
  4. 4. Module Development Consideration • ASP.NET MVC 5 • Plug-ability – Independent development, testing, publishing – Online deployment • Shell Integration – Menu integration – State Management 4BEXIS Tech Talk #8: Implementation Notes
  5. 5. Module Anatomy • UI project: – Entry points – Controllers, Models, Views – Manifest file • Menus, dependencies, identification • Services • Data Access 5BEXIS Tech Talk #8: Implementation Notes
  6. 6. Module Anatomy • Bootstrapping – Install – Uninstall • State Management – Start – Shutdown – Activate – InActivate 6BEXIS Tech Talk #8: Implementation Notes
  7. 7. 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 7BEXIS Tech Talk #8: Implementation Notes
  8. 8. Create the UI project • From scratch: – Read the “Module Development Recipes” doc • From a template – Follow up 8BEXIS Tech Talk #8: Implementation Notes
  9. 9. 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 9BEXIS Tech Talk #8: Implementation Notes
  10. 10. Create a Module from a Template • Inside the folder, rename: – *.csproj to <projectCode>.csproj – *.csproj.user to <projectCode>.csproj.user 10BEXIS Tech Talk #8: Implementation Notes
  11. 11. 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. 11BEXIS Tech Talk #8: Implementation Notes
  12. 12. Create a Module from a Template • Add Existing Project • <projectCode> from the Areas/<moduleId> • To solution/Modules/<moduleID> • Via “Add Existing Project”. 12BEXIS Tech Talk #8: Implementation Notes
  13. 13. 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 13BEXIS Tech Talk #8: Implementation Notes
  14. 14. 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 14BEXIS Tech Talk #8: Implementation Notes
  15. 15. Create a Module from a Template • Edit /Views/web.config –Edit <add namespace="Template.UI" /> to <add namespace="<projectCode>" /> 15BEXIS Tech Talk #8: Implementation Notes
  16. 16. Create a Module from a Template • Edit the module manifest • Change the moduleId from “Template” to <moduleID> • Update other attributes and elements 16BEXIS Tech Talk #8: Implementation Notes
  17. 17. Create a Module from a Template • Develop designated features – Controllers/ Actions – Views 17BEXIS Tech Talk #8: Implementation Notes
  18. 18. Create a Module from a Template • Shell publishing does not include the module 18BEXIS Tech Talk #8: Implementation Notes
  19. 19. Create a Module from a Template • Publish the module 19BEXIS Tech Talk #8: Implementation Notes
  20. 20. The Manifest File 20BEXIS Tech Talk #8: Implementation Notes
  21. 21. The Manifest File: Dependencies 21BEXIS Tech Talk #8: Implementation Notes • Must be installed and active • Required version is checked against available one
  22. 22. The Manifest File: Exports • Publicly accessible module features • Plugged into the menu structure • Document order is preserved – Also catalog order 22BEXIS Tech Talk #8: Implementation Notes
  23. 23. 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 23BEXIS Tech Talk #8: Implementation Notes
  24. 24. Module Publishing • Shell is already published • Areas folder does not include the module • Publish the module into a folder • Create a zip bundle 24BEXIS Tech Talk #8: Implementation Notes
  25. 25. 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 25BEXIS Tech Talk #8: Implementation Notes
  26. 26. Module Management 26BEXIS Tech Talk #8: Implementation Notes
  27. 27. Documents • Module Development Recipes • Naming Conventions • DLM API docs 27BEXIS Tech Talk #8: Implementation Notes
  28. 28. Outlook What‘s next in the talk series? Nothing BEXIS Tech Talk #7: Configuration and Change Management 28
  29. 29. 29 Thanks! Questions? Contact: javad.chamanara@uni-jena.de http://bexis2.uni-jena.de Acknowledgment BEXIS Tech Talk #8: Implementation Notes 29

×