Skip to content
Will Strohl edited this page Nov 18, 2024 · 13 revisions

Welcome to the generator-upendodnn wiki!

The UpendoDnn Generator empowers developers of any skill level to get started with building most kinds of extensions for their DNN website, using a single solution. This is really powerful for the built-in time-savings, of course. However, it really shines in environments where teams are involved, multiple types of DNN extensions, integrations with other systems/libraries/apps, etc.

Want to Build a DNN Extension?

If you're a DNN developer, all of the instructions you should need are in the project README, including a useful video showing you everything.

https://github.com/UpendoVentures/generator-upendodnn#readme

Supported DNN Extensions

The following types of DNN extensions are directly supported as generated projects in your DNN solution.

  • Solution Structure - Use this first, if this is a new project and no solution exists yet. This contains all of the expected solution structure and the required dependencies for the build process.
  • Authentication Provider - This is a great starting point for creating your own authentication provider to replace the default login in DNN.
  • Library - If you need to build a library for anything, such as integrating with your own (or other) systems, new business logic layer, or any other DLL you need, this is where you may consider starting, unless it's a DLL that already has a project type below (e.g., scheduled job, HCC gateway, etc.).
  • Library: Scheduled Job - Scheduled jobs can be very useful in DNN, and this project type helps you quickly build out your own scheduled job in DNN that can perform any kind of scheduled logic you can imagine writing in code.
  • Module: MVC - Helps you build a module using the MVC development pattern.
  • Module: MVC+SPA - If you wish to use Angular with the MVC development pattern, use this template.
  • Module: SPA - There are options, based on your comfort and preference with one of the common SPA frameworks below, using the DNN SPA module development pattern.
    • Angular
    • ReactJS
    • Vue 2
    • Vue 3
  • Module: Webforms - This is the most common type of module, historically.
  • Persona Bar - Based on VueJS.
  • Theme Object - Also known as a skin object, based on webforms.
  • Hotcakes Commerce - If your project is using HCC, there's a template for that too!

Want to Help Build this Tool?

Here are some resources for those of you who would like to help build and iterate on the upendodnn generator.

Getting Started: Generator Development

First, get to know how to write a Yeoman generator.

Next, install this generator.

Now, you'll want to use your normal cloning technique to clone the repository to your development computer.

Finally, if you want to test the code you're writing - and you should - then, use the command prompt to navigate to the root folder where the generator project has been cloned in your file system. Your command to get to the root folder might look like the example below.

Command

cd C:\MyStuff\UpendoDnnGenerator\source-code\  

Once you're there and you confirm this is the correct working directory, you will run the next command. You should see a package.json in the same root folder, and the first line of real code in that file should "name": "generator-upendodnn".

Command

npm link  

That's it! The next time you run the yo upendodnn command, you should see your updates and/or errors to debug because of your updates. :)

Frequently Asked Questions

What generators are installed already?

To view a list of the generators you have installed, run the following command: yo --generators

Troubleshooting Random Errors with Yeoman

If you're running into weird issues with Yeoman, you can run the following command to troubleshoot it: yo doctor

Switching using npm link now throws errors, but worked before the link

When this happens, it's probably because you're using some older node dependencies. Delete the node_modules folder in the generator source code folder where you're developing (e.g., C:\Work\Generator-UpendoDNN\source-code\node_modules`). It's sometimes necessary to reboot as well.

Next, using the command line, navigate back to the source code folder, and run the npm install command.

Once completed, in the command line window, you should now be able to navigate to your clean/test folder and the yo upendodnn command should work, and the running code should be the source code.

How do I debug the generator?

You're in luck... We have a documentation article on how to debug, just for you! :)