https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Model_View_ControllerModel View Controller - Versionsgeschichte2025-05-22T13:52:57ZVersionsgeschichte dieser Seite in WikipediaMediaWiki 1.45.0-wmf.2https://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=248816402&oldid=prevSiegbert v2: Quellen und Weblinks überarbeitet (fast alle sind inzwischen offline => Archivlinks)2024-09-22T21:03:54Z<p>Quellen und Weblinks überarbeitet (fast alle sind inzwischen offline => Archivlinks)</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 22. September 2024, 23:03 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-Ansicht-Steuerung'') ist ein [[Entwurfsmuster]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''Ansicht'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als Entwurfsmuster eingesetzt werden.<ref>{{<del style="font-weight: bold; text-decoration: none;">cite</del> <del style="font-weight: bold; text-decoration: none;">web</del> |url=<del style="font-weight: bold; text-decoration: none;">http</del>://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |<del style="font-weight: bold; text-decoration: none;">title</del>=Is MVC a design pattern or an architectural pattern? |<del style="font-weight: bold; text-decoration: none;"> author</del>=<del style="font-weight: bold; text-decoration: none;">Kamal</del> <del style="font-weight: bold; text-decoration: none;">Wickramanayake</del> |<del style="font-weight: bold; text-decoration: none;">date</del>=2010-07-17 |<del style="font-weight: bold; text-decoration: none;">language</del>=<del style="font-weight: bold; text-decoration: none;">englisch |work=Software View</del> |<del style="font-weight: bold; text-decoration: none;">accessdate</del>=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-Ansicht-Steuerung'') ist ein [[Entwurfsmuster]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''Ansicht'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als Entwurfsmuster eingesetzt werden.<ref>{{<ins style="font-weight: bold; text-decoration: none;">Internetquelle</ins> <ins style="font-weight: bold; text-decoration: none;">|autor=Kamal Wickramanayake</ins> |url=<ins style="font-weight: bold; text-decoration: none;">https</ins>://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |<ins style="font-weight: bold; text-decoration: none;">titel</ins>=Is MVC a design pattern or an architectural pattern? |<ins style="font-weight: bold; text-decoration: none;">werk</ins>=<ins style="font-weight: bold; text-decoration: none;">Software</ins> <ins style="font-weight: bold; text-decoration: none;">View</ins> |<ins style="font-weight: bold; text-decoration: none;">datum</ins>=2010-07-17 |<ins style="font-weight: bold; text-decoration: none;">sprache</ins>=<ins style="font-weight: bold; text-decoration: none;">en</ins> |<ins style="font-weight: bold; text-decoration: none;">abruf</ins>=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 130:</td>
<td colspan="2" class="diff-lineno">Zeile 130:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Literatur ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Literatur ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Erich Gamma, Richard Helm, Ralph Johnson<del style="font-weight: bold; text-decoration: none;">:</del> <del style="font-weight: bold; text-decoration: none;">''</del>Entwurfsmuster. Elemente wiederverwendbarer objektorientierter Software<del style="font-weight: bold; text-decoration: none;">''.</del> 2<del style="font-weight: bold; text-decoration: none;">. Auflage.</del> Addison-Wesley<del style="font-weight: bold; text-decoration: none;">,</del> <del style="font-weight: bold; text-decoration: none;">ISBN</del> 978-3-8273-1862-6<del style="font-weight: bold; text-decoration: none;">.</del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins style="font-weight: bold; text-decoration: none;">{{Literatur |Autor=</ins>Erich Gamma, Richard Helm, Ralph Johnson <ins style="font-weight: bold; text-decoration: none;">|Titel=</ins>Entwurfsmuster. Elemente wiederverwendbarer objektorientierter Software <ins style="font-weight: bold; text-decoration: none;">|Auflage=</ins>2 <ins style="font-weight: bold; text-decoration: none;">|Verlag=</ins>Addison-Wesley <ins style="font-weight: bold; text-decoration: none;">|Sprache=de</ins> <ins style="font-weight: bold; text-decoration: none;">|ISBN=</ins>978-3-8273-1862-6<ins style="font-weight: bold; text-decoration: none;">}}</ins></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Weblinks ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Weblinks ==</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Steffen Düsel<del style="font-weight: bold; text-decoration: none;">:</del> <del style="font-weight: bold; text-decoration: none;">[</del>https://www.methodpark.de/blog/model-view-controller-mvc/ Model-View-Controller (MVC)<del style="font-weight: bold; text-decoration: none;">]</del> <del style="font-weight: bold; text-decoration: none;">(deutsch)</del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins style="font-weight: bold; text-decoration: none;">{{Internetquelle |autor=</ins>Steffen Düsel <ins style="font-weight: bold; text-decoration: none;">|url=</ins>https://www.methodpark.de/blog/model-view-controller-mvc/ <ins style="font-weight: bold; text-decoration: none;">|titel=</ins>Model-View-Controller (MVC) <ins style="font-weight: bold; text-decoration: none;">|sprache=de |archiv-url=https://web.archive.org/web/20210417082732/https://www.methodpark.de/blog/model-view-controller-mvc/ |archiv-datum=2021-04-17 |abruf=2021-06-17 |abruf-verborgen=ja}}</ins></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">[</del>http://c2.com/cgi-bin/wiki?ModelViewController Portland Pattern Repository <del style="font-weight: bold; text-decoration: none;">–</del> <del style="font-weight: bold; text-decoration: none;">Model</del> <del style="font-weight: bold; text-decoration: none;">View</del> <del style="font-weight: bold; text-decoration: none;">Controller]</del> <del style="font-weight: bold; text-decoration: none;">(englisch)</del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins style="font-weight: bold; text-decoration: none;">{{Internetquelle |url=</ins>http://c2.com/cgi-bin/wiki?ModelViewController <ins style="font-weight: bold; text-decoration: none;">|titel=Model View Controller |werk=</ins>Portland Pattern Repository <ins style="font-weight: bold; text-decoration: none;">|sprache=en</ins> <ins style="font-weight: bold; text-decoration: none;">|archiv-url=https://web.archive.org/web/20160806075025/http://c2.com/cgi-bin/wiki?ModelViewController</ins> <ins style="font-weight: bold; text-decoration: none;">|archiv-datum=2016-08-06</ins> <ins style="font-weight: bold; text-decoration: none;">|abruf=2007-12-04</ins> <ins style="font-weight: bold; text-decoration: none;">|abruf-verborgen=ja}}</ins></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Jeff Moore<del style="font-weight: bold; text-decoration: none;">:</del> <del style="font-weight: bold; text-decoration: none;">[</del>http://www.phpwact.org/pattern/model_view_controller Model View Controller<del style="font-weight: bold; text-decoration: none;">]</del> <del style="font-weight: bold; text-decoration: none;">(englisch)</del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins style="font-weight: bold; text-decoration: none;">{{Internetquelle |autor=</ins>Jeff Moore <ins style="font-weight: bold; text-decoration: none;">|url=</ins>http://www.phpwact.org/pattern/model_view_controller <ins style="font-weight: bold; text-decoration: none;">|titel=</ins>Model View Controller <ins style="font-weight: bold; text-decoration: none;">|sprache=en |archiv-url=https://web.archive.org/web/20160608102231/http://www.phpwact.org/pattern/model_view_controller |archiv-datum=2016-06-08 |abruf=2007-01-30 |abruf-verborgen=ja}}</ins></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* <del style="font-weight: bold; text-decoration: none;">[http</del>://martinfowler.com/eaaDev/uiArchs.html <del style="font-weight: bold; text-decoration: none;">''</del>GUI Architectures<del style="font-weight: bold; text-decoration: none;">''.]</del> <del style="font-weight: bold; text-decoration: none;">Martin</del> <del style="font-weight: bold; text-decoration: none;">Fowler</del> <del style="font-weight: bold; text-decoration: none;">(englisch)</del></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins style="font-weight: bold; text-decoration: none;">{{Internetquelle |autor=Martin Fowler |url=https</ins>://martinfowler.com/eaaDev/uiArchs.html <ins style="font-weight: bold; text-decoration: none;">|titel=</ins>GUI Architectures <ins style="font-weight: bold; text-decoration: none;">|sprache=en</ins> <ins style="font-weight: bold; text-decoration: none;">|abruf=2011-05-21</ins> <ins style="font-weight: bold; text-decoration: none;">|abruf-verborgen=ja}}</ins></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einzelnachweise ==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Einzelnachweise ==</div></td>
</tr>
</table>Siegbert v2https://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=248814703&oldid=prevSiegbert v2: Artikel verlinkt2024-09-22T19:57:42Z<p>Artikel verlinkt</p>
<a href="//de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=248814703&oldid=241037402">Änderungen zeigen</a>Siegbert v2https://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=241037402&oldid=prevAka: doppelten Link entfernt, typografische Anführungszeichen2024-01-10T15:57:50Z<p>doppelten Link entfernt, typografische Anführungszeichen</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 10. Januar 2024, 17:57 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-Ansicht-Steuerung'') ist ein [[Entwurfsmuster]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''Ansicht'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als <del style="font-weight: bold; text-decoration: none;">[[</del>Entwurfsmuster<del style="font-weight: bold; text-decoration: none;">]]</del> eingesetzt werden.<ref>{{cite web |url=http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |title=Is MVC a design pattern or an architectural pattern? | author=Kamal Wickramanayake |date=2010-07-17 |language=englisch |work=Software View |accessdate=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-Ansicht-Steuerung'') ist ein [[Entwurfsmuster]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''Ansicht'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als Entwurfsmuster eingesetzt werden.<ref>{{cite web |url=http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |title=Is MVC a design pattern or an architectural pattern? | author=Kamal Wickramanayake |date=2010-07-17 |language=englisch |work=Software View |accessdate=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[Long Polling]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen <del style="font-weight: bold; text-decoration: none;">"das</del> <del style="font-weight: bold; text-decoration: none;">Beste"</del> vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[Long Polling]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen <ins style="font-weight: bold; text-decoration: none;">„das</ins> <ins style="font-weight: bold; text-decoration: none;">Beste“</ins> vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
</tr>
</table>Akahttps://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=241030613&oldid=prev88.152.158.71 am 10. Januar 2024 um 11:52 Uhr2024-01-10T11:52:14Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 10. Januar 2024, 13:52 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-Ansicht-Steuerung'') ist ein [[<del style="font-weight: bold; text-decoration: none;">Muster#Beispiele|Muster</del>]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''Ansicht'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als [[Entwurfsmuster]] eingesetzt werden.<ref>{{cite web |url=http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |title=Is MVC a design pattern or an architectural pattern? | author=Kamal Wickramanayake |date=2010-07-17 |language=englisch |work=Software View |accessdate=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-Ansicht-Steuerung'') ist ein [[<ins style="font-weight: bold; text-decoration: none;">Entwurfsmuster</ins>]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''Ansicht'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als [[Entwurfsmuster]] eingesetzt werden.<ref>{{cite web |url=http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |title=Is MVC a design pattern or an architectural pattern? | author=Kamal Wickramanayake |date=2010-07-17 |language=englisch |work=Software View |accessdate=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
</tr>
</table>88.152.158.71https://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=236260070&oldid=prevSebastian.Dietrich: Änderungen von 80.156.183.73 (Diskussion) auf die letzte Version von Juergeen zurückgesetzt2023-08-09T14:29:34Z<p>Änderungen von <a href="/wiki/Spezial:Beitr%C3%A4ge/80.156.183.73" title="Spezial:Beiträge/80.156.183.73">80.156.183.73</a> (<a href="/wiki/Benutzer_Diskussion:80.156.183.73" title="Benutzer Diskussion:80.156.183.73">Diskussion</a>) auf die letzte Version von <a href="/wiki/Benutzer:Juergeen" title="Benutzer:Juergeen">Juergeen</a> zurückgesetzt</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 9. August 2023, 16:29 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 30:</td>
<td colspan="2" class="diff-lineno">Zeile 30:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Begriffe des ursprünglichen MVC-Musters werden heute oft entlehnt, um Systeme begreiflich zu machen, die weitaus komplexer sind als die damalige Software. Dabei kommt es auf die Perspektive des betrachteten Teilsystems an, welche Elemente damit bezeichnet werden. So könnte ein Webbrowser als View eines größeren Gesamtsystems verstanden werden, während schon ein einzelnes Formularelement im Browser wiederum aus einem kleinen Datenmodell, der zugehörigen Darstellung und seiner Steuerung besteht. Die Grundidee der Trennung von Model, View und Controller hat sich erhalten, wird aber feiner granuliert und verschachtelt eingesetzt.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Begriffe des ursprünglichen MVC-Musters werden heute oft entlehnt, um Systeme begreiflich zu machen, die weitaus komplexer sind als die damalige Software. Dabei kommt es auf die Perspektive des betrachteten Teilsystems an, welche Elemente damit bezeichnet werden. So könnte ein Webbrowser als View eines größeren Gesamtsystems verstanden werden, während schon ein einzelnes Formularelement im Browser wiederum aus einem kleinen Datenmodell, der zugehörigen Darstellung und seiner Steuerung besteht. Die Grundidee der Trennung von Model, View und Controller hat sich erhalten, wird aber feiner granuliert und verschachtelt eingesetzt.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Während sich viele Projekte als Model-View-Controller-Architektur definieren, wird der Begriff sehr vielfältig benutzt. Es etablieren sich neue Begriffe, wie das [[Model-View-Presenter]]-, das [[Model View ViewModel|Model-View-ViewModel]]- oder das [[Model-View-Adapter]]-Muster, die versuchen, die Varianten präziser zu beschreiben<del style="font-weight: bold; text-decoration: none;">. Auf Lock</del>.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Während sich viele Projekte als Model-View-Controller-Architektur definieren, wird der Begriff sehr vielfältig benutzt. Es etablieren sich neue Begriffe, wie das [[Model-View-Presenter]]-, das [[Model View ViewModel|Model-View-ViewModel]]- oder das [[Model-View-Adapter]]-Muster, die versuchen, die Varianten präziser zu beschreiben.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Widget-Bibliotheken für Desktop-Applikationen ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Widget-Bibliotheken für Desktop-Applikationen ===</div></td>
</tr>
</table>Sebastian.Dietrichhttps://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=236252683&oldid=prev80.156.183.73: /* Nicht festgelegte Funktionalitäten */2023-08-09T09:47:58Z<p><span class="autocomment">Nicht festgelegte Funktionalitäten</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 9. August 2023, 11:47 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 30:</td>
<td colspan="2" class="diff-lineno">Zeile 30:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Begriffe des ursprünglichen MVC-Musters werden heute oft entlehnt, um Systeme begreiflich zu machen, die weitaus komplexer sind als die damalige Software. Dabei kommt es auf die Perspektive des betrachteten Teilsystems an, welche Elemente damit bezeichnet werden. So könnte ein Webbrowser als View eines größeren Gesamtsystems verstanden werden, während schon ein einzelnes Formularelement im Browser wiederum aus einem kleinen Datenmodell, der zugehörigen Darstellung und seiner Steuerung besteht. Die Grundidee der Trennung von Model, View und Controller hat sich erhalten, wird aber feiner granuliert und verschachtelt eingesetzt.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Begriffe des ursprünglichen MVC-Musters werden heute oft entlehnt, um Systeme begreiflich zu machen, die weitaus komplexer sind als die damalige Software. Dabei kommt es auf die Perspektive des betrachteten Teilsystems an, welche Elemente damit bezeichnet werden. So könnte ein Webbrowser als View eines größeren Gesamtsystems verstanden werden, während schon ein einzelnes Formularelement im Browser wiederum aus einem kleinen Datenmodell, der zugehörigen Darstellung und seiner Steuerung besteht. Die Grundidee der Trennung von Model, View und Controller hat sich erhalten, wird aber feiner granuliert und verschachtelt eingesetzt.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Während sich viele Projekte als Model-View-Controller-Architektur definieren, wird der Begriff sehr vielfältig benutzt. Es etablieren sich neue Begriffe, wie das [[Model-View-Presenter]]-, das [[Model View ViewModel|Model-View-ViewModel]]- oder das [[Model-View-Adapter]]-Muster, die versuchen, die Varianten präziser zu beschreiben.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Während sich viele Projekte als Model-View-Controller-Architektur definieren, wird der Begriff sehr vielfältig benutzt. Es etablieren sich neue Begriffe, wie das [[Model-View-Presenter]]-, das [[Model View ViewModel|Model-View-ViewModel]]- oder das [[Model-View-Adapter]]-Muster, die versuchen, die Varianten präziser zu beschreiben<ins style="font-weight: bold; text-decoration: none;">. Auf Lock</ins>.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Widget-Bibliotheken für Desktop-Applikationen ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Widget-Bibliotheken für Desktop-Applikationen ===</div></td>
</tr>
</table>80.156.183.73https://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=232833844&oldid=prevJuergeen: Grossschreibung gemaess RR § 55 (3) - siehe WP:Auskunft#Gross-/Kleinschreibung englischer Begriffe im Deutschen2023-04-14T23:11:45Z<p>Grossschreibung gemaess RR § 55 (3) - siehe <a href="/wiki/Wikipedia:Auskunft#Gross-/Kleinschreibung_englischer_Begriffe_im_Deutschen" title="Wikipedia:Auskunft">WP:Auskunft#Gross-/Kleinschreibung englischer Begriffe im Deutschen</a></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 15. April 2023, 01:11 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[Long <del style="font-weight: bold; text-decoration: none;">polling</del>]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen "das Beste" vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[Long <ins style="font-weight: bold; text-decoration: none;">Polling</ins>]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen "das Beste" vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
</tr>
</table>Juergeenhttps://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=232603107&oldid=prevSchotterebene: Formatierung2023-04-08T15:27:52Z<p>Formatierung</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 8. April 2023, 17:27 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[<del style="font-weight: bold; text-decoration: none;">long</del> polling]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen "das Beste" vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[<ins style="font-weight: bold; text-decoration: none;">Long</ins> polling]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen "das Beste" vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
</tr>
</table>Schotterebenehttps://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=232602395&oldid=prev217.61.195.200: Link2023-04-08T14:54:51Z<p>Link</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 8. April 2023, 16:54 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
<td colspan="2" class="diff-lineno">Zeile 67:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Bei klassischen Webanwendungen kann der Browser nicht nach dem klassischen [[Beobachter (Entwurfsmuster)|Observer-Muster]] unmittelbar auf Änderungen des Models auf dem Server reagieren. Jede Antwort (HTTP-Response) an den Browser setzt eine Anfrage (HTTP-Request) voraus. Man spricht vom Request-Response-Cycle. Daraus folgt, dass das Observer-Muster auch auf Seiten des Servers seine Vorteile nicht ausspielen kann. Weil es somit einen Mehraufwand bedeutet hätte, kam es typischerweise nicht zum Einsatz. Stattdessen tritt meist der Controller als aktiver Vermittler zwischen Model und View im Rahmen eines Request-Response-Cycles auf.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[<del style="font-weight: bold; text-decoration: none;">Long-Polling</del>]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen "das Beste" vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Neuere [[Webanwendung]]en erlauben bereits die Implementierung eines Observer-Musters. Die hierbei verwendete [[Push-Medien|Push-Technologie]] (Server-Push) erlaubt dem Server, Ereignisse direkt und ohne Anfrage an die Clients zu übermitteln. Viele Implementierungen nutzen hierbei das sogenannte [[<ins style="font-weight: bold; text-decoration: none;">long polling</ins>]] (Request mit verzögerter Antwort, bis ein Ereignis eintritt) oder die neueren [[WebSocket|Websockets]]. Einige [[JavaScript-Framework]]s abstrahieren hierbei das Push-Verfahren und nutzen "das Beste" vom jeweiligen Browser bzw. der Serveranwendung zur Verfügung gestellte Verfahren. Somit ist es auch möglich, das Observer-Muster in Webanwendungen einzuführen.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==== Die besonderen Herausforderungen des Hyperlinks und der Form-Action ====</div></td>
</tr>
</table>217.61.195.200https://de.wikipedia.org/w/index.php?title=Model_View_Controller&diff=232579240&oldid=prev2A02:8108:5940:1314:E98B:1B20:9FC5:3731: Änderung der Übersetzung von "view" von "Präsentation" auf die richtigere "Ansicht", um Verwirrung insb. bezüglich des MVP-Musters zu vermeiden2023-04-07T18:28:03Z<p>Änderung der Übersetzung von "view" von "Präsentation" auf die richtigere "Ansicht", um Verwirrung insb. bezüglich des MVP-Musters zu vermeiden</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 7. April 2023, 20:28 Uhr</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
<td colspan="2" class="diff-lineno">Zeile 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Datei:ModelViewControllerDiagram2.svg|mini|Ein Model-View-Controller-Konzept. Eine durchgezogene Linie symbolisiert hier eine direkte [[Assoziation (UML)|Assoziation]], eine gestrichelte eine indirekte Assoziation (zum Beispiel über einen [[Beobachter (Entwurfsmuster)|Beobachter]]).]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-<del style="font-weight: bold; text-decoration: none;">Präsentation</del>-Steuerung'') ist ein [[Muster#Beispiele|Muster]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''<del style="font-weight: bold; text-decoration: none;">Präsentation</del>'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als [[Entwurfsmuster]] eingesetzt werden.<ref>{{cite web |url=http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |title=Is MVC a design pattern or an architectural pattern? | author=Kamal Wickramanayake |date=2010-07-17 |language=englisch |work=Software View |accessdate=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''{{lang|en|Model View Controller}}''' ('''MVC''', {{enS}} für ''Modell-<ins style="font-weight: bold; text-decoration: none;">Ansicht</ins>-Steuerung'') ist ein [[Muster#Beispiele|Muster]] zur Unterteilung einer [[Software]] in die drei Komponenten ''Datenmodell'' (englisch ''{{lang|en|model}}''), ''<ins style="font-weight: bold; text-decoration: none;">Ansicht</ins>'' (englisch ''{{lang|en|view}}'') und ''Programmsteuerung'' (englisch ''{{lang|en|controller}}''). Das Muster kann sowohl als [[Architekturmuster]] als auch als [[Entwurfsmuster]] eingesetzt werden.<ref>{{cite web |url=http://www.swview.org/blog/mvc-design-pattern-or-architectural-pattern |title=Is MVC a design pattern or an architectural pattern? | author=Kamal Wickramanayake |date=2010-07-17 |language=englisch |work=Software View |accessdate=2016-12-16}}</ref> Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht. Es ist dann zum Beispiel möglich, eine Anwendung zu schreiben, die dasselbe Modell nutzt und es dann für Windows, Mac, Linux oder für das Internet zugänglich macht. Die Umsetzungen nutzen dasselbe Modell, nur Controller und View müssen dabei jeweils neu implementiert werden.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Konzept wurde 1979 zunächst für Benutzeroberflächen in [[Smalltalk (Programmiersprache)|Smalltalk]] durch [[Trygve Reenskaug]] beschrieben (Seeheim-Modell), der damals an Smalltalk im [[Xerox PARC]] arbeitete. Es gilt mittlerweile aber als De-facto-Standard für den Grobentwurf vieler komplexer Softwaresysteme, teils mit Differenzierungen und oftmals mehreren jeweils nach dem MVC-Muster aufgeteilten Modulen.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 9:</td>
<td colspan="2" class="diff-lineno">Zeile 9:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Modell ''({{lang|en|model}})'' ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Modell ''({{lang|en|model}})'' ===</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Das Modell enthält Daten, die von der <del style="font-weight: bold; text-decoration: none;">Präsentation</del> dargestellt werden. Es ist von <del style="font-weight: bold; text-decoration: none;">Präsentation</del> und Steuerung unabhängig. Die Änderungen der Daten werden der <del style="font-weight: bold; text-decoration: none;">Präsentation</del> durch das [[Beobachter (Entwurfsmuster)|Entwurfsmuster „Beobachter“]] bekanntgegeben. In manchen Umsetzungen des MVC-Musters enthält das Modell eine [[Geschäftslogik]], die für die Änderung der Daten zuständig ist.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Das Modell enthält Daten, die von der <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> dargestellt werden. Es ist von <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> und Steuerung unabhängig. Die Änderungen der Daten werden der <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> durch das [[Beobachter (Entwurfsmuster)|Entwurfsmuster „Beobachter“]] bekanntgegeben. In manchen Umsetzungen des MVC-Musters enthält das Modell eine [[Geschäftslogik]], die für die Änderung der Daten zuständig ist.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>=== <del style="font-weight: bold; text-decoration: none;">Präsentation</del> ''({{lang|en|view}})'' ===</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=== <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> ''({{lang|en|view}})'' ===</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die <del style="font-weight: bold; text-decoration: none;">Präsentation</del> ist für die Darstellung der Daten des Modells und die Realisierung der Benutzerinteraktionen zuständig. Sie kennt das Modell, dessen Daten sie präsentiert, ist aber nicht für die Verarbeitung dieser Daten zuständig. Des Weiteren ist sie von der Steuerung unabhängig. Die Bekanntgabe von Benutzerinteraktionen an die Steuerung geschieht nach dem Entwurfsmuster „Beobachter“. Die <del style="font-weight: bold; text-decoration: none;">Präsentation</del> wird über Änderungen der Daten im Modell mithilfe des Entwurfsmuster „Beobachter“ unterrichtet und kann daraufhin die Darstellung aktualisieren. Die <del style="font-weight: bold; text-decoration: none;">Präsentation</del> verwendet oft das [[Kompositum (Entwurfsmuster)|Entwurfsmuster „Kompositum“]].</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> ist für die Darstellung der Daten des Modells und die Realisierung der Benutzerinteraktionen zuständig. Sie kennt das Modell, dessen Daten sie präsentiert, ist aber nicht für die Verarbeitung dieser Daten zuständig. Des Weiteren ist sie von der Steuerung unabhängig. Die Bekanntgabe von Benutzerinteraktionen an die Steuerung geschieht nach dem Entwurfsmuster „Beobachter“. Die <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> wird über Änderungen der Daten im Modell mithilfe des Entwurfsmuster „Beobachter“ unterrichtet und kann daraufhin die Darstellung aktualisieren. Die <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> verwendet oft das [[Kompositum (Entwurfsmuster)|Entwurfsmuster „Kompositum“]].</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Steuerung ''({{lang|en|controller}})'' ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Steuerung ''({{lang|en|controller}})'' ===</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Steuerung verwaltet die <del style="font-weight: bold; text-decoration: none;">Präsentation</del> und das Modell. Sie wird von der <del style="font-weight: bold; text-decoration: none;">Präsentation</del> über Benutzerinteraktionen (mithilfe des [[Beobachter (Entwurfsmuster)|Entwurfsmusters „Beobachter“]]) informiert, wertet diese aus und nimmt daraufhin Anpassungen an der <del style="font-weight: bold; text-decoration: none;">Präsentation</del> sowie Änderungen an den Daten im Modell vor. In einigen modernen Implementierungen des MVC-Musters aktualisiert die Steuerung die Daten im Modell nicht mehr direkt, stattdessen aktualisiert sie die Daten indirekt, indem sie auf die im Modell implementierte Geschäftslogik zugreift. In einem Spezialfall des MVC-Musters kann die Steuerung auch mehrere <del style="font-weight: bold; text-decoration: none;">Präsentationen</del> oder mehrere Modelle gleichzeitig verwalten.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Steuerung verwaltet die <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> und das Modell. Sie wird von der <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> über Benutzerinteraktionen (mithilfe des [[Beobachter (Entwurfsmuster)|Entwurfsmusters „Beobachter“]]) informiert, wertet diese aus und nimmt daraufhin Anpassungen an der <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> sowie Änderungen an den Daten im Modell vor. In einigen modernen Implementierungen des MVC-Musters aktualisiert die Steuerung die Daten im Modell nicht mehr direkt, stattdessen aktualisiert sie die Daten indirekt, indem sie auf die im Modell implementierte Geschäftslogik zugreift. In einem Spezialfall des MVC-Musters kann die Steuerung auch mehrere <ins style="font-weight: bold; text-decoration: none;">Ansichten</ins> oder mehrere Modelle gleichzeitig verwalten.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Nicht festgelegte Funktionalitäten ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Nicht festgelegte Funktionalitäten ===</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 33:</td>
<td colspan="2" class="diff-lineno">Zeile 33:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Widget-Bibliotheken für Desktop-Applikationen ===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Widget-Bibliotheken für Desktop-Applikationen ===</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Als [[Widget]]s werden die einzelnen Komponenten grafischer Oberflächen bezeichnet, wie Menüpunkte oder Editor-Komponenten. Widgets zeichnen sich dadurch aus, dass sie neben der <del style="font-weight: bold; text-decoration: none;">Präsentation</del> auch typische Merkmale des klassischen Controllers in einer Komponente vereinen, wie das Event-Handling. Einige Widgets, wie z.&nbsp;B. Auswahllisten, können sogar über ein eigenes internes Modell verfügen, wobei dieses dann mit dem eigentlichen Modell synchronisiert werden muss.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Als [[Widget]]s werden die einzelnen Komponenten grafischer Oberflächen bezeichnet, wie Menüpunkte oder Editor-Komponenten. Widgets zeichnen sich dadurch aus, dass sie neben der <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> auch typische Merkmale des klassischen Controllers in einer Komponente vereinen, wie das Event-Handling. Einige Widgets, wie z.&nbsp;B. Auswahllisten, können sogar über ein eigenes internes Modell verfügen, wobei dieses dann mit dem eigentlichen Modell synchronisiert werden muss.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Obwohl die Widgets die feste Dreiteilung durchbrechen, spricht man trotzdem noch von einer Model-View-Controller-Architektur. Es kommen auch Komponenten wie Filter zur Sortierung oder Bestätigungsdialoge vor, die sich nicht eindeutig in die klassische Dreiteilung einordnen lassen.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Obwohl die Widgets die feste Dreiteilung durchbrechen, spricht man trotzdem noch von einer Model-View-Controller-Architektur. Es kommen auch Komponenten wie Filter zur Sortierung oder Bestätigungsdialoge vor, die sich nicht eindeutig in die klassische Dreiteilung einordnen lassen.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Zeile 42:</td>
<td colspan="2" class="diff-lineno">Zeile 42:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Entwurfsmuster definiert auch den Rahmen für die Entwickler von GUI-Frameworks. Ein fertiges GUI-Framework beinhaltet:</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Das MVC-Entwurfsmuster definiert auch den Rahmen für die Entwickler von GUI-Frameworks. Ein fertiges GUI-Framework beinhaltet:</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div># eine <del style="font-weight: bold; text-decoration: none;">Präsentation</del> ''({{lang|en|view}})'' in Form ausimplementierter [[Steuerelement|GUI-Widgets]],</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div># eine <ins style="font-weight: bold; text-decoration: none;">Ansicht</ins> ''({{lang|en|view}})'' in Form ausimplementierter [[Steuerelement|GUI-Widgets]],</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># die Vereinbarung eines zugrundeliegenden Datenmodells in Form von Schnittstellen,</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># die Vereinbarung eines zugrundeliegenden Datenmodells in Form von Schnittstellen,</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># die Vereinbarung von [[Ereignis (Programmierung)|Ereignissen]] (englisch ''events'') auf Grund von Benutzerinteraktionen in Form von Schnittstellen und ausimplementierten Klassen sowie</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># die Vereinbarung von [[Ereignis (Programmierung)|Ereignissen]] (englisch ''events'') auf Grund von Benutzerinteraktionen in Form von Schnittstellen und ausimplementierten Klassen sowie</div></td>
</tr>
</table>2A02:8108:5940:1314:E98B:1B20:9FC5:3731