JaroslavTulach: /* Summary */ - 2022-04-20 13:42:42

Summary

←Older revision Revision as of 13:42, 20 April 2022
Line 33: Line 33:
== Summary ==
== Summary ==
-
First and foremost the [[MVC]] a name for a group of patterns that separate model from the rest. It comes with various flavors (more than I enumerated here), each differs in nuances and is targeted and more suitable to different implementation technologies.
+
First and foremost the [[MVC]] is a name for a group of patterns that separate model from the rest. It comes with various flavors (more than I enumerated here), each differs in nuances and is targeted and more suitable to different implementation technologies.
[[MVC]] is likely to stay with us for a while. However its flavors or modifications will continue to grow. For example for [[modularity|modular applications]] it makes more sense to think in terms of [[DCI]].
[[MVC]] is likely to stay with us for a while. However its flavors or modifications will continue to grow. For example for [[modularity|modular applications]] it makes more sense to think in terms of [[DCI]].

JaroslavTulach: /* Meta-Pattern Name */ - 2022-04-20 13:40:05

Meta-Pattern Name

←Older revision Revision as of 13:40, 20 April 2022
Line 4: Line 4:
=== Meta-Pattern Name ===
=== Meta-Pattern Name ===
-
The first thing [[MVC]] stands for is name for a category of patterns that somehow separate the model from the rest. There are many things to do it, each of them suitable for different user interface. Each of such patterns however keeps model independent from the rest - e.g. model does not know anything about its presentation or business logic.
+
The first thing [[MVC]] stands for is name for a category of patterns that somehow separate the model from the rest. There are many ways to do it, each of them suitable for different user interface. Each of such patterns however keeps model independent from the rest - e.g. model does not know anything about its presentation or business logic.
=== Classical [[MVC]] ===
=== Classical [[MVC]] ===

JaroslavTulach: /* GUI in 80ties */ - 2020-04-04 06:36:12

GUI in 80ties

←Older revision Revision as of 06:36, 4 April 2020
Line 19: Line 19:
As time moved on, the separation of printer and card reader got replaced by monitor with attached keyboard and mouse. Although these devices are still independent, they are usually close to each other and are manipulated by a single person simultaneously. To absorb this paradigm change, the [[MVC]] changed as well and resulted in a modified version called [[MVP]] ([http://zdrojak.root.cz/ image taken from zdrojak.root.cz]):
As time moved on, the separation of printer and card reader got replaced by monitor with attached keyboard and mouse. Although these devices are still independent, they are usually close to each other and are manipulated by a single person simultaneously. To absorb this paradigm change, the [[MVC]] changed as well and resulted in a modified version called [[MVP]] ([http://zdrojak.root.cz/ image taken from zdrojak.root.cz]):
-
[[Image:Mvp.png]]
+
[[Image:Mvp.png|center]]
Here the user deals with the view (like [[GUI]] button or text field) directly. The changes in the view propagate to presenter. Presenter is responsible for applying business logic, validating input data and updating the model. With rise of modern [[GUI]] the [[MVP]] almost completely displaced the original meaning of [[MVC]] and these two became almost synonyms.
Here the user deals with the view (like [[GUI]] button or text field) directly. The changes in the view propagate to presenter. Presenter is responsible for applying business logic, validating input data and updating the model. With rise of modern [[GUI]] the [[MVP]] almost completely displaced the original meaning of [[MVC]] and these two became almost synonyms.

JaroslavTulach: /* Classical MVC */ - 2020-04-04 06:35:56

Classical MVC

←Older revision Revision as of 06:35, 4 April 2020
Line 10: Line 10:
Designed in 70ties. Strictly separates view and controller. The view can for example be a printer, the controller can be a punch card reader and interpreter. Obviously separating these two is easy. Not only they are physically independent, but also the delay between producing of output and receiving input can be significant. The whole idea can be illustrated ([http://zdrojak.root.cz/ picture taken from zdrojak.root.cz]) as:
Designed in 70ties. Strictly separates view and controller. The view can for example be a printer, the controller can be a punch card reader and interpreter. Obviously separating these two is easy. Not only they are physically independent, but also the delay between producing of output and receiving input can be significant. The whole idea can be illustrated ([http://zdrojak.root.cz/ picture taken from zdrojak.root.cz]) as:
-
[[Image:Mvc.png]]
+
[[Image:Mvc.png|center]]

JaroslavTulach: /* Summary */ - 2020-04-04 06:27:25

Summary

←Older revision Revision as of 06:27, 4 April 2020
Line 36: Line 36:
[[MVC]] is likely to stay with us for a while. However its flavors or modifications will continue to grow. For example for [[modularity|modular applications]] it makes more sense to think in terms of [[DCI]].
[[MVC]] is likely to stay with us for a while. However its flavors or modifications will continue to grow. For example for [[modularity|modular applications]] it makes more sense to think in terms of [[DCI]].
-
 
-
<comments/>
 
===== Side note =====
===== Side note =====

JaroslavTulach at 06:11, 4 April 2020 - 2020-04-04 06:11:38

←Older revision Revision as of 06:11, 4 April 2020
Line 1: Line 1:
-
[[wikipedia::Model–view–controller|Model View Controller]] is found in almost every article and many technologies claim to adhere to its principles, there is a lot of confusion about its actual meaning and variations.
+
[[wikipedia::Model–view–controller|Model View Controller]] [[:Category:APIDesignPatterns|design paradigm]] is found in almost every article dealing with [[UI]] and many technologies claim to adhere to its principles. Yet there is a lot of confusion about its actual meaning and variations.
Here is my own summary based on an excellent [http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ MVC Introduction] article published on [http://zdrojak.root.cz/ zdrojak.root.cz]. Thanks for such a great write up!
Here is my own summary based on an excellent [http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ MVC Introduction] article published on [http://zdrojak.root.cz/ zdrojak.root.cz]. Thanks for such a great write up!

JaroslavTulach: /* Polemic = */ - 2020-04-04 06:10:25

Polemic =

←Older revision Revision as of 06:10, 4 April 2020
Line 43: Line 43:
One anonymous reader [[Talk:DCIAndLeakyAbstractions|likes to stress]] that [[Swing]] is not [[MVC]]. I am not sure if the reader agrees, but of course, [[Swing]] is [[MVP]]!
One anonymous reader [[Talk:DCIAndLeakyAbstractions|likes to stress]] that [[Swing]] is not [[MVC]]. I am not sure if the reader agrees, but of course, [[Swing]] is [[MVP]]!
-
===== Polemic ======
+
===== Polemic =====
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.

JaroslavTulach at 06:10, 4 April 2020 - 2020-04-04 06:10:04

←Older revision Revision as of 06:10, 4 April 2020
Line 1: Line 1:
[[wikipedia::Model–view–controller|Model View Controller]] is found in almost every article and many technologies claim to adhere to its principles, there is a lot of confusion about its actual meaning and variations.
[[wikipedia::Model–view–controller|Model View Controller]] is found in almost every article and many technologies claim to adhere to its principles, there is a lot of confusion about its actual meaning and variations.
Here is my own summary based on an excellent [http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ MVC Introduction] article published on [http://zdrojak.root.cz/ zdrojak.root.cz]. Thanks for such a great write up!
Here is my own summary based on an excellent [http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ MVC Introduction] article published on [http://zdrojak.root.cz/ zdrojak.root.cz]. Thanks for such a great write up!
-
 
-
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.
 
-
 
-
Then there is just confusion. The original implementation of [[MVC]] is [[Talk:MVC|said]] to not be based on the original paper, but the paper has not been published until many years later. Surprisingly that original [[MVC]] manifest does not talk about [[MVC]], but about model-view-editor-controller. Can you see the mess? Based on understanding of the original manifest its worshipers judge the actual implementations (guess what [[Talk:MVC|they think]] about the first [[MVC]] in [[Smalltalk]]?). One of the most valued implementations of the original vision these days is said to be [http://en.wikipedia.org/wiki/Naked_objects Naked objects]. It autogenerates the view and controller. It is beyond my capabilities to understand why it shall be called [[MVC]] at all (but for sure I don't get the original vision). Looks to me almost everyone is trying to capture the [[MVC]] term and fill it with own technology.
 
-
 
-
I guess I do not want to be part of such discussions. Enough for me to know that there is a difference between [[MVC]] and [[MVP]] and that one shall know about [[DCI]].
 
=== Meta-Pattern Name ===
=== Meta-Pattern Name ===
Line 48: Line 42:
One anonymous reader [[Talk:DCIAndLeakyAbstractions|likes to stress]] that [[Swing]] is not [[MVC]]. I am not sure if the reader agrees, but of course, [[Swing]] is [[MVP]]!
One anonymous reader [[Talk:DCIAndLeakyAbstractions|likes to stress]] that [[Swing]] is not [[MVC]]. I am not sure if the reader agrees, but of course, [[Swing]] is [[MVP]]!
 +
 +
===== Polemic ======
 +
 +
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.
 +
 +
Then there is just confusion. The original implementation of [[MVC]] is [[Talk:MVC|said]] to not be based on the original paper, but the paper has not been published until many years later. Surprisingly that original [[MVC]] manifest does not talk about [[MVC]], but about model-view-editor-controller. Can you see the mess? Based on understanding of the original manifest its worshipers judge the actual implementations (guess what [[Talk:MVC|they think]] about the first [[MVC]] in [[Smalltalk]]?). One of the most valued implementations of the original vision these days is said to be [http://en.wikipedia.org/wiki/Naked_objects Naked objects]. It autogenerates the view and controller. It is beyond my capabilities to understand why it shall be called [[MVC]] at all (but for sure I don't get the original vision). Looks to me almost everyone is trying to capture the [[MVC]] term and fill it with own technology.
 +
 +
I guess I do not want to be part of such discussions. Enough for me to know that there is a difference between [[MVC]] and [[MVP]] and that one shall know about [[DCI]]!
[[Category:APIDesignPatterns]]
[[Category:APIDesignPatterns]]

JaroslavTulach at 06:04, 4 April 2020 - 2020-04-04 06:04:25

←Older revision Revision as of 06:04, 4 April 2020
Line 1: Line 1:
[[wikipedia::Model–view–controller|Model View Controller]] is found in almost every article and many technologies claim to adhere to its principles, there is a lot of confusion about its actual meaning and variations.
[[wikipedia::Model–view–controller|Model View Controller]] is found in almost every article and many technologies claim to adhere to its principles, there is a lot of confusion about its actual meaning and variations.
-
Here is my own summary based on an excellent [http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ MVC Introduction] article published on [http://zdrojak.root.cz/ zdrojak.root.cz]. Thanks for such great write up!
+
Here is my own summary based on an excellent [http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ MVC Introduction] article published on [http://zdrojak.root.cz/ zdrojak.root.cz]. Thanks for such a great write up!
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.

JaroslavTulach at 20:15, 29 November 2009 - 2009-11-29 20:15:44

←Older revision Revision as of 20:15, 29 November 2009
Line 4: Line 4:
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.
After [[Talk:MVC|receiving comments]] about my interpretation of [[MVC]], I can only summarize: There is '''a lot''' of confusion with respect to [[MVC]] and I am not qualified to resolve it. What seems to be OK is the difference between [[MVC]] and [[MVP]] as described at this page. Less accepted, but still OK is the fact that for [[Module_system|modular system]]s it is better to think in terms of [[DCI]]. But that's where the consensus ends.
-
Then there is just confusion. The original implementation of [[MVC]] is [[Talk:MVC|said]] to not be based on the original paper, but the paper has not been published until many years later. Surprisingly that original [[MVC]] manifest does not talk about [[MVC]], but about model-view-editor-controller. Can you see the mess?
+
Then there is just confusion. The original implementation of [[MVC]] is [[Talk:MVC|said]] to not be based on the original paper, but the paper has not been published until many years later. Surprisingly that original [[MVC]] manifest does not talk about [[MVC]], but about model-view-editor-controller. Can you see the mess? Based on understanding of the original manifest its worshipers judge the actual implementations (guess what [[Talk:MVC|they think]] about the first [[MVC]] in [[Smalltalk]]?). One of the most valued implementations of the original vision these days is said to be [http://en.wikipedia.org/wiki/Naked_objects Naked objects]. It autogenerates the view and controller. It is beyond my capabilities to understand why it shall be called [[MVC]] at all (but for sure I don't get the original vision). Looks to me almost everyone is trying to capture the [[MVC]] term and fill it with own technology.
-
Based on understanding of the original manifest its worshipers judge the actual implementations (guess what [[Talk:MVC|they think]] about the first [[MVC]] in [[Smalltalk]]?). One of the most valued implementations of the original vision these days is said to be [http://en.wikipedia.org/wiki/Naked_objects Naked objects]. It autogenerates the view and controller. It is beyond my capabilities to understand why it shall be called [[MVC]] at all (but for sure I don't get the original vision). Looks to me almost everyone is trying to capture the [[MVC]] term and fill it with own technology.
+
I guess I do not want to be part of such discussions. Enough for me to know that there is a difference between [[MVC]] and [[MVP]] and that one shall know about [[DCI]].
-
 
+
-
I guess I do not want to be part of such discussions. Enough for me to know that there is a difference between [[MVC]] and [[MVP]].
+
=== Meta-Pattern Name ===
=== Meta-Pattern Name ===