Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. # IT:AD:Design:Blueprints:View Layout Service # <callout type="Navigation" class="small"> * [[../|(UP)]] {{indexmenu>.#2|nsort tsort}} </callout> <panel title="Summary"> Almost all Enterprise applications have static layouts that cannot be updated later without a redeployment. Why? Mainly, because it's perceived as much more difficult to produce a UI rendering mechanism that can later be reorganized, dynamically, at will. </panel> ## Design ## All current 2D applications -- whether [[IT/#WIMP/]] based, or [[IT/#CUTE/]] based, are hierarchical in nature. I've already covered this here: * [[IT/AD/Patterns/It's all Hierarchical After All/]] To manage that, you'll need schema definition system similar to the following. <uml> class View { + Id: int + Enabled: bool + Order:int + IsContainer: bool + IsContainerBoundary:bool + ChildrenCanBeMoved: bool + ICollection<View> Views: ICollection<View> + IconIdentifier: string + Title: string + Header: string + Footer: string } class ViewControl { + Id: int + ViewFK: int } class View { + Renderers: ICollection<ViewRenderingFrameworkControl> } class ViewRenderingFrameworkControl { + Id: int + ViewFK: int + RenderingFramework: ViewRenderingFramework + ViewControlFK: int } class ViewControl { + Id: int + Enabled: bool + Tag: string } class ViewRenderingFramework { + Id: int + Name: string } note "Really just a db mapping of an Enum. Contain 1 (2?) entries (eg: 'ASP.MVC', 'ASP.Classic')" as n0 note "Tag will be something the rendering engine can use. (eg: an *.ascx path, a *.cshtml path)" as n1 View "1" *-- "*" View View "1" *-- "+" ViewRenderingFrameworkControl ViewRenderingFrameworkControl "*" ..> "1" ViewControl ViewRenderingFrameworkControl "*" ..> "1" ViewRenderingFramework ViewRenderingFramework..n0 ViewControl..n1 </uml> #### Rendering Systems #### Some of you may be wondering about the validity of the indirection provided by the ViewRenderingFramework collection. In most cases I'll agree that the lifespan of the rendering framework will generally outlive the usefulness of the application. But I'm the kind of guy that likes being prepared. For one small little friction, I'll be able to move to the next system, whereas everybody else has to practically rip out their whole app and start again. >When did Noah build the ark? *Before* the flood. *Before* the flood. /home/skysigal/public_html/data/pages/it/ad/design/blueprints/view_layout_service.txt Last modified: 2023/11/04 03:40by 127.0.0.1