For quite some time, I was looking for this answer ? What benefit in the world does multiple models give ? I just could not figure it out from the basic definitions available at most of the places

model is a set of elements in a given layer. Each layer consists of one or more models. Each layer contains one system-generated model that is specific to that layer. Every element in a layer belongs to only one model. In other words, no element can belong to two models in the same layer, and every element must belong to a model.
There we some questions that kept arising all the time

  • Is the end user suppose to switch in between the available models ?
  • If two or more models can be operational, what in the world is is the significance of the current model
And so many more, it was all too frustrated. To my surprise, most of the available developers and consultants were even not able to clear my concept of the purpose of multiple models side by side. To my luck, I came across a convergence video about models and metadata architecture. There, the presenter cleared it all away. 

Actually models are providing a way to export customizations (from say development or staging environment ), import them in another environment (production) without disturbing as many models already installed from n numbers of ISVs and vendors. 

Let me explain the concept with an example. Lets suppose you being an end user have a customization deployed in your production environment from vendor A, on the form, say.... Vendor List Page. And those customizations has additional menu buttons in the Action Pane. Now you bought another solution which has other customizations on the same form. Now you already have the Vendor form customized in, say VAR layer and the new vendor is also developing customizations in VAR layer ? So how would the two different versions co exist now ? How would the same element on the same layer have 2 different versions with end user expecting to get the new customizations without disturbing the already deployed customizations. This is where models come to play :) 

Since each layer can have multiple models, or slices if you ask the framework developers, each vendor can now produce their own model, install at the same layer, and both co exists meaning 2 different model customizations will be available at run time for the end user. This has questioned both of my questions actually since the current model is for developers and not for end users and that all models on respective layers render on runtime shadowing the layers  underneath.


Post a Comment