We are looking to upgrade our current product. The current product is built using web forms (asp.net), c# and Sql server. The current product does not follow much of the best practices such as IOC, Unit of work, Repository pattern etc, however it does follow three layered architecture.
We would like to build the new product from scratch using best practices so that product can be scaled up when required. Our product needs to be a multi tennant web application which should be mobile friendly if viewed on a mobile device. We have found aspnet zero boiler plate which follows best practices but it seems a wee bit limited for us. The disappointment for us is the effort it requires to just add one new field as we would need to add it into multiple places and then recompile the product and publish it. Our product also rely on multiple forms and each form can contain hundereds of fields and on top of that each of our customers may not use all fields in the same form so we need a mechanism to hide and display fields based on customer's credentials. The dynamic creation of forms is a must requirement for us. I have listed below the requirements that we need:
- Must follow Industry standard best practices (IOC, Unit of work, Repository, logging etc)
- Ability to create forms dynamically and to report on these fields.
- Should not rely on compiling and publishing the product for adding additonal field.
- Custom business rules for each customer
- Adhoc web based reporting
- Full auditing to record changed and new value for certain or all fields.
- Fully scalable
- Role/User based permissions
Is there a suitable framework for achieving above or do we need to build it ourselves?