Hi David,
Quite a lot of diffs
In short:
- Security part is optional. Once loaded, RoleProvider is mandatory, ProfileFilters are optional.
- We'd like functionality and bug suggestions. A fork would be OK (IMOO I'd include in ANGTE the security & databinding with Event handlers part)
We tried to keep this code as implementation agnostic as possible (we have integrated it with backoffice workflow & WCF services, and we use client certificates for authentication, but you will not notice it). Only the Spanish labels could be a pain in the neck (sorry, we postponed multilanguage support till next year... at least).
**Our experience with Llblgen Pro:
**- Llblgen Pro is a gorgeous & mature ORM (Entity FW needs to evolve yet), but it is much more: a great model designer & template system.
- It reduces the development cost & time.
- A good use of custom templates provides a common architecture -> allows the less experienced coders to catchup and be more productive. Common solutions are reused (its cost drops down: it's not "code vs. understand & integrate" but "code vs. plug")
- Code for your particular application in VS as usual. If the code is reusable add the code to the template (it usually means changing things like "Product" with "Entity.Name", not hard staff).
My concerns: **
- I cannot find Llblgen developers in the Madrid-area.
- We're pretty new with Llblgen. I wouldn't like to run to notice latter on we missed something important (ex. Fields mapped onto related fields? What are they for if you have TypedLists? )
- The more a template set is used, the better. That's why we're sharing. If you get any bugfix in ANGTE, we can update ESDBEditor.
**
That said, what is the expected use (IMOO):
- DBEditor (standard GUI templates). Use example.
- ANGTE. Functional web site to start with (for example, to get the initial databinding code of my own templates for MVC). Learn about the Llblgen FW. Notice the databinding, use the prefetchpath, ExcludeIncludeList, blabla. The security part is missing and should be there (you always will need to filter results by user). I think it should be included. About the SpMappedTypedView I'm not so sure, the web server filtering can lead to very bad practices.
- ESDBEditor. Fully functional web site with a particular look & feel. That include breadcrumbs, savedlinks, etc. It's nice functionality, but not used everywhere.
ON THE TECHNICAL PART
It has other restrictions by design:
- No Javascript. That's a strong one... but it's a client requirement to be WAI AA compliant.
- Plain-old classic ASP.Net. Not a problem really. Let's see how MVC maturity evolves in the next years.
On 12th Aug I did my last commit to the ANGTE repository. You can start from there.
On the security part (RoleProvider, Profile & SiteMap):
- It is optional. The SDE_GeneralUtils.SecurityEntitiesLoaded method looks for a Security.BaseProfile entity. If found, the security code is generated.
- RoleProvider & Sitemap. Standalone providers. Can be used with no profile filtering (but gets the roles list & user mapping to roles from the database, just generate the profile entities with no additional fields, like ManagerProfile)
- Filtering & Profile. All the filters code is in CustomProfile.cs (generated from the GUI XML file). Every control:
- gets a _profileFilter and uses it when the filter is set.
- On load, calls its HideProfileControls() method to hide fields, actions, etc.
- All the code is in GUI\CodeApp\Custom*.cs
The Breadcrumb & SavedLinks:
- They are two controls in the Base Master page.
- Its main purpose is to save and load back a bucket (RelationPredicateBucket or SpTypedViewBucket) to the page.
- Therefore all the pages must call Master.UpdatePageCrumb to know if it must update the bucket, title or whatever (the Master knows if it is a call to a savedpage, or a breadcrumb)
- If there is no security loaded, the savedlinks are stored in HttpSession.
My suggestion:
1.- Start with a standard Northwind without security. Main changes:
- Sorting, prefetchpaths & IncludeExcludeLists
- EntryPoints (OnUpdate(currentElement), etc.)
- Breadcrumb & SavedLinks
2.- Configure the security part.
If you need any Skype talk or access to the Assembla repository to follow the changes, you still has my email. Let me know.
Best regards,
Jose