What is the developer experience in extending or creating a new module for the platform?

I’ve read this Developer guide - Create a new module - Virto Commerce Documentation and I am still not clear what are actual developer experience in this?

dotnet new vc-module --ModuleName CustomerReviews --Author "Jon Doe" --CompanyName VirtoCommerce 

Once you do this, then what? If I build a simple for for example, how can I actually see the form running in development mode? Does it appear in F5 run or do I have to keep reuploading the compiled module to the VC platform to be able to see it?

You need run platform, load module into it and attach to the process. If you modify the code, you need restart the platform.

Wouldn’t this slow down development speed significantly?

Contrariwise dev speed improved significantly.

It based on few principles:

  1. True Modularity. Every module builds on single responsibility principle. A developers develops limited piece of the code in one module at one time. VC Module has 3 projects: Core, Data and Web. Easy to develop and control dependencies, learn code, refactor and fix bugs. Go to github and check source for any native module.

  2. Tests. A developer should use Tests (already part of every module) to check that code implemented properly, before running the module in the platform.

  3. Frontend Experience as for any solution. Admin Web UI can be developed without platform restart as for all web projects.

  4. Scallability. Development process can be scaled because several developers can works with the solution and implement own modules.

  5. Atomic Architecture. Virto Atomic Architecture and Virto Atomic Architecture In Action forces developer to implement business feature and don’t worry about architecture.