VirtoCommerce / vc-platform

Virto Commerce B2B Innovation Platform
https://virtocommerce.com
Other
1.23k stars 846 forks source link

Is there a technical Design Documentation? #122

Closed HaythemJ closed 8 years ago

HaythemJ commented 8 years ago

Hi,

I want to dig into the design, but I did not find any documentation related to CORE, DATA or WEB projects. I only found documentation on how we create a new module. Does this documentation exist?

Best Regards H.JAIDI

tatarincev commented 8 years ago

Our solution have resent structure VirtoCommerce.Platform - is a native platform itself contains all commons functionality and may be used to construct any solution not only for ecommerce thematic. You can read more about how functionality included to platform here http://docs.virtocommerce.com/display/vc2devguide/Working+with+Platform Platform projects structure contains three type of projects VirtoCommerce.Platform.Core - all domain types declaration, abstractions and utility methods VirtoCommerce.Platform.Data - contains concrete implementations and data access layer VirtoCommerce.Platform.Web - host project in ASP.NET MVC is a Application.

All business logic (ecommerce or other industry solutions) should be implemented as platform modules and placed to Modules folder. How to extend platform you can read here http://docs.virtocommerce.com/display/vc2devguide/Extending+Functionality Each module can be created using any of the concept of architecture, often is a single project with name like {{ ModuleName }}.Web pattern. We use for our ecommerce modules three project Core - domain model and abstraction , Data - concrete impl and data layer. Web - module application with api definition.

I think is will be helpful for you.

HaythemJ commented 8 years ago

Hi,

Thank you for the quick reply.

What I am locking for is technical documentation to extend the platform itself: In case I need to extend the PLATFORM itself (which is really pretty good).

I am looking for a kind of Class Diagram, DB Schema, Activity, Component interaction...

I believe that a such documentation exists, but I am wondering if it is shared or not, since we are talking about an OpenSource subject.

Best Regards H.JAIDI

tatarincev commented 8 years ago

Sure we have it but is realy unstructual and unrepresentative view only for inner usage. Which kind of docmentation you need? Platform db schema is simple and contains only few tables with prefix Platform other tables related to modules

Almost each platform feature have documentation in our site. Can you tell which kind platform extension you want todo and we give you more intuition how it can do.

HaythemJ commented 8 years ago

Hi,

I want to study the current platform technical implementation in order to:

1/ Fork it 2/ Create a core of a generic ASP.NET pluggable application at runtime (MEF discovery) 3/ I want to build something as simple as Odoo (new Open ERP https://www.odoo.com/ ) 4/ Main feature are: templates, SPA, hot db/entities migration/update 5/ ....

So when searching on the net I found that VitroCommerce is a great point to start. But first of all I need to understand some technical issues like:

1/ Modules Install/Uninstall 2/ DB feature (Dynamic entities, AttribueValue Entiry ...) 3/ Modules interoperability 4/ ....

Finally, you did a great job, and I was wondering if you can share with us the how-to and technical knwoledge.

Best Regards H.JAIDI

tatarincev commented 8 years ago

You've come to the right address :) VirtoCommerce is a good choise.

  1. How to develop custom solution, updates and more http://docs.virtocommerce.com/display/vc2devguide/Developing+a+custom+solution
  2. Our platform module extentibility support modules runtime installation you can read more how to create new module http://docs.virtocommerce.com/display/vc2devguide/Creating+new+module, how to pack module here http://docs.virtocommerce.com/display/vc2devguide/Creating+module+packages. We use Unity IoC and DI container i dont think that it compatible with MEF framework, there may be problem.
  3. I think our platform contains all features and posibilites to construct similar as Odoo application (css themes http://virtocommerce.com/platform/styleguide, navigation and blade constuctor http://virtocommerce.com/platform/styleguide/blade-constructor.html, UI extension points, push notifications, logs, db migrations, robust authorization and authentifications http://docs.virtocommerce.com/display/vc2devguide/Working+with+platform+security, good architect design and so more http://docs.virtocommerce.com/display/vc2devguide/Working+with+Platform)
  4. Here http://docs.virtocommerce.com/display/vc2devguide/Managing+Module+Database you can read how db migrations works. Each our module worked with self db shema which automaticaly created or updated on module initialization.

Install/Uninstall modules is main platform feature and is available through UI. http://demo2.virtocommerce.com/admin#/workspace/modules

Dynamic properties - http://docs.virtocommerce.com/display/vc2devguide/Using+dynamic+properties and mor more usefull stuff... Modules interoperability - we currently use semantic version methodology http://semver.org/

HaythemJ commented 8 years ago

Hi,

I am sure I am at the right place :).

Many thanks for your support,much appreciated.

Best Regards H.JAIDI