To start with, why do I even call it a battle? Isn’t it supposed to be a peaceful coexistence where each type of power apps can contribute where the other type is lacking in functionality?
In theory, yes. In practice, it seems things may spin out of control in the extreme cases. Imagine there is a relatively complex data model which would normally justify model-driven approach, and, yet, there is a really strong push towards custom UI. Which would, in turn, normally justify utilizing a canvas app. Would you choose a model-driven app, or would you choose a Canvas App?
I guess Canvas Apps are non the left side here…
Or, possibly, on the right…
Actually, I’m not going to even try to answer that question, since there can be no perfect answer, it seems. However, while thinking about it, I got a strange idea.
Would it be so impossible if the ultimate goal of the product team working on the Canvas App technology were to eventually replace model-driven apps with Canvas Apps?
Nonsense, you’d say? Maybe, but… Consider:
- Canvas Apps have come a long way since they were first introduced a few years ago, whereas model-driven applications, at least the way I see it(forgive me Microsoft), got a lot of face-lifting efforts put into them, but, other than that, they are still the same old Dynamics CRM
- Component Framework is now available for both types of apps
- Most of what is doable with web resources in model-driven apps can also be done on the canvas apps side
- Canvas Apps support various data sources, whereas model-driven can only work with CDS
- Canvas Apps support user interface customizations which are beyond the reach of model-driven apps
- Canvas Apps, in the form of embedded apps, are already making their way into the model-driven world, but I am not sure the opposite is true
Is there anything a Canvas App can’t do(with the proper application of development efforts) that a model-driven application can? Interestingly, I would not even think to ask that question a few years ago (“whaaat? Are those, really, apps?”)
Of course, and that seems to be the main factor that’s still keeping model-driven apps alive, it would take a lot of time to create a Canvas App from scratch that would provide the same level of functionality that a model-driven app can deliver in just a few minutes.
So, what’s going to happen if and when Canvas Apps product team closes that gap and adds yet missing components to the Canvas Apps? What if there were a command bar control? Left-hand navigation control? A quick find control? They might not show up tomorrow, they might not show up a few months from now… but, looking at where the Canvas Apps are now, after just a few years of being around, would it really be that surprising if this happens in a few years?