Need Advice RE: Rapid App Prototyping

Topics: Core, Customizing Orchard, General
Nov 6, 2015 at 10:57 PM
Hi Folks:

I'm looking for some advice. I need to rapidly build a web database app / portal. I've been playing with Orchard today, including going through the four part tutorial in the docs on making your first widget from the online docs.

Here's a small example of what I need to accomplish:

I need to build a portal that allows different users in different roles to log in. Depending upon their role, they are presented with information from a database, including general portal content that they have permission to. (I know the general portal content, I can do with no programming by just using the Orchard CMS out of the box).

But I have different user roles. I'll give two examples:

A regional Director and a sales person.

The regional director, when he logs on, needs to be able to see (add/edit/update) information about his region: Customers (Name, address, city state, zip, phone), related customer contacts, customer quotes. One regional director can have many customers, each with many contacts, and many quotes. Pretty straight forward.

The sales person, when he logs in, must see only his customers, add/edit/update his customers, add/edit/update related contacts (think rolodex, 1 customer can have many contacts), add/edit/update quotes (quote ID, quote date, terms, customer, contact, etc.), and quote line items (SKU, qty, selling price, retail, discount, description, etc.). This also would necessarily include related parts (part #, item name, description, units (ea, pkg.), cost, retail, product category).

When a different sales person logs on, they should only be able to manage their customers/quotes.

Obviously, from a DB schema perspective, this is all kindergarten stuff.

But what I can't figure out with Orchard is whether I need to hand-code custom modules to do this, or whether I can do what I need by just using the UI (content types, lists, etc.).

I am in need of some guidance on whether I should even try to define this from the UI using the OOB Orchard 1.9.x CMS, or whether I should dig deep and just start with a code first MVC approach.

The thing is, I don't have a lot of time to hand design tables, Models, Views, Controllers, then figure out how to get this rendered in the context of the Orchard API.

I was also looking at the Entity Framework POCO reverse generator as a way to quickly get the DB schema designed and POCO objects to work with quickly that would give me at least a set of rapidly created classes that do all the grunt work of fundamental object definition including database CRUD. Then perhaps looking at figuring out how to use that in Orchard.

I've been doing some PHP development recently, and I've been away from .Net for a bit.

I love what I see in Orchard. I had done some DNN sites in the past, but really want to consider Orchard as a framework.

So this is a long-winded way of asking for advice:

Can one build a rapid database app using Orchard (add customer, update customer, delete customer, read customer) with role based security, filtered lists (datagrids) based upon role membership (sortable) etc, OOB, or would this truly require code first.

If it's code first, are there any rapid Orchard-ready MVC code generation tools that could rapidly generate supporting MVC resources from a database table?

Just truly trying to find the fastest way to build a fundamental database app using Orchard, preferably with as little coding as possible to help get this done as quicly as possible.

Any guidance would be greatly appreciated.