Up until now I’ve always been using Entity framework and .NET MVC to create project management websites for my clients. I always went to them, looked at their process and mapped their current Excel processes (just columns of data linked to other Excel tabs) into a SQL database using Entity framework code first.
All my last clients all had the same kind of structure however, they needed some typical objects such as: Projects, ProjectStatuses, ProjectTypes, Clients, Leads, Users, UserRoles, … 90% of the data structures were always the same.
Now, for my coming clients I’d like to offer a quicker service by instead of coding the database and the views etc. from scratch, by creating the data / views through a user interface only I (unless they pay extra) have access to allowing them to create objects with fields (such as Text, Numbers, Booleans, Choices, …). Every field would then have a certain set of properties (such as Visibile, Order, …) for the Views part of the solution.
What I was wondering now however, how would you guys tackle this kind of data? Would you use something like Entity Framework with a few tables holding the data about the objects, and a table with the objects’ fields, and a table with the field properties etc. Or would you use something like a formatted JSON table holding the user create datastructure, and based of that create tables and views at runtime and store only the actual data in a database?
The inspiration for this comes mostly from my recent experiences with MS Dynamics CRM which is a very nice platform but out of the price range and scope of my clients.
Hope someone can give me some insights on how to handle this! I know this will take a while to develop, but feel free to give me insights as I have plenty of time to develop it and learning on the job 🙂