Last post Oct 22, 2013 08:06 AM by Rodrigo C
Oct 18, 2013 04:16 PM|Rodrigo C|LINK
In a medium/big sized application, where I will have some modules (will be small areas, modules, Financial / stock .. others, something quite extensive ), wanted an opinion how separating them ... as will be web, the level of access is dynamic, but can also
Well, I thought about some possible solutions
Razor - Helpers html
Ninject for DI//ou castle windsor
project.core //utils/helpers//security class
project.module1 //class/repository/interfaces //dependence: project.core
project.module2 //class/repository/interfaces //dependence: project.core
project.module3 //class/repository/interfaces //dependence: project.core
project.persistence //mapping class(fluent entity framework)// dependeces: project.module1, project.module2,project.module3
project.DTO //dto class
project.web // dependence all modules, project.core e project.dto
project.Core //helpers for entity
project.security //classes security, etc
project.utils // helpers general
project.persistence //class mappaing fluent entity framework
project.persistence //all class/mapping fluent entity framework//repository//interfaces -- separated by folder
any opinion? sugestion?
Oct 20, 2013 01:56 PM|Rodrigo C|LINK
Oct 21, 2013 08:12 AM|Illeris|LINK
Why do you want to separate? Do you want do deploy partially, or will all modules always be there with the deployment?
In the last case separation is not needed. I'd go for a split like this:
Oct 21, 2013 08:44 AM|Rodrigo C|LINK
if my client decides to hire only a module and not all?
These modules could be separated by areas?
I have my main module, it will have the basic registration, settings
And for every area of work, I have a module, for example:
Main Module - settings, registration
module Industry - management industry
Module stock - stock
production module - module for production management industry
then the customer decides which modules will buy
Oct 22, 2013 07:41 AM|Illeris|LINK
This does not require separate physical modules. If you build a web enabled application, it is a matter of giving authorizations to users. If you host the application, you are in control. I would not recommend you to separate things physically in this case.
If you distribute your application, you can use a basic licensing system with public key encryption to enforce rules : a single XML config file, describing what parts/modules the user has access to, signed by a privat key you have/own, will cover most licensing
needs. But if you host everything youself : don't bother.
In your architecture, you should include the multi tenancy aspect:
Oct 22, 2013 08:06 AM|Rodrigo C|LINK