{"id":235,"date":"2015-01-07T11:45:00","date_gmt":"2015-01-07T11:45:00","guid":{"rendered":"http:\/\/unicoach.wgl-demo.net\/?p=235"},"modified":"2025-05-22T08:07:11","modified_gmt":"2025-05-22T08:07:11","slug":"technologieauswahl-web-framework","status":"publish","type":"post","link":"https:\/\/www.siteos.de\/wp\/technologieauswahl-web-framework\/","title":{"rendered":"Technologieauswahl Web-Framework"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"235\" class=\"elementor elementor-235\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-98c8deb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"98c8deb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a808adc\" data-id=\"a808adc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c3ce1ec elementor-widget elementor-widget-text-editor\" data-id=\"c3ce1ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p><p>SiteOS hat im Rahmen eines Gro\u00dfprojektes eine Technologieauswahl f\u00fcr eine neue Applikation bei einem Kunden durchgef\u00fchrt. Ziele dabei waren, eine Technologie zu finden, welche sich in die bestehende IT-Infrastruktur und Applikationslandschaft nahtlos integrieren l\u00e4sst und mit der die Anforderungen an die neue Applikation m\u00f6glichst einfach umzusetzen sind.<\/p><p>Die bestehende Infrastruktur bestand aus:<\/p><ul><li>Runtime JBoss AS FINAL 7.1.1 Community Edition (mit diversen aktualisierten Libraries f\u00fcr Hibernate\/JPA\/Envers\/RESTeasy)<\/li><li>Java 1.7<\/li><li>bereits vorhandene Rich-Client (SWT) Applikationen mit Serverkomponenten<\/li><li>REST-Schnittstellen<\/li><li>Oracle 11g als Datenspeicher<\/li><\/ul><p>Das Vorgehen bei der Technologieauswahl war:<\/p><p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3912ae8 elementor-widget elementor-widget-image\" data-id=\"3912ae8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"986\" height=\"243\" src=\"https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic1.png\" class=\"attachment-large size-large wp-image-20134\" alt=\"\" srcset=\"https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic1.png 986w, https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic1-300x74.png 300w, https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic1-768x189.png 768w\" sizes=\"(max-width: 986px) 100vw, 986px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67b2770 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"67b2770\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b0d9021\" data-id=\"b0d9021\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0f88377 elementor-widget elementor-widget-text-editor\" data-id=\"0f88377\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p><h3 id=\"1-technische-anforderungen\">1. TECHNISCHE ANFORDERUNGEN<\/h3><p>Ein Auszug der technischen Anforderungen:<\/p><p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e7080a elementor-widget elementor-widget-image\" data-id=\"5e7080a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"226\" src=\"https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic2-1024x226.png\" class=\"attachment-large size-large wp-image-20137\" alt=\"\" srcset=\"https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic2-1024x226.png 1024w, https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic2-300x66.png 300w, https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic2-768x170.png 768w, https:\/\/www.siteos.de\/wp\/wp-content\/uploads\/2020\/09\/technologieauswahl-web-frameworkpic2.png 1244w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2e35bf6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2e35bf6\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ae22d7b\" data-id=\"ae22d7b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8743fa1 elementor-widget elementor-widget-spacer\" data-id=\"8743fa1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e0765fe elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e0765fe\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4ab0805\" data-id=\"4ab0805\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5871d6f elementor-widget elementor-widget-text-editor\" data-id=\"5871d6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 id=\"2-webrecherchen\">2. WEBRECHERCHEN<\/h3><p>Da das neue System mit einer Web-Oberfl\u00e4che ausgestattet werden soll, hat man sich bei der Technologieauswahl auf die Auswahl eines Web-Frameworks konzentriert. Viele n\u00fctzliche Hinweise und Empfehlungen zum Vorgehen bei der Framework-Auswahl hat der Web-Framework Vergleich von Matt Raible geliefert.<\/p><p><a href=\"http:\/\/de.slideshare.net\/mraible\/comparing-jvm-web-frameworks-february-2014\">http:\/\/de.slideshare.net\/mraible\/comparing-jvm-web-frameworks-february-2014<\/a><\/p><p>Die nachfolgenden Links besch\u00e4ftigen sich ebenfalls dem Vergleich\/der Gegen\u00fcberstellung von Web-Frameworks<\/p><ul><li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Comparison_of_web_application_frameworks#Java\">http:\/\/en.wikipedia.org\/wiki\/Comparison_of_web_application_frameworks#Java<\/a><\/li><li><a href=\"http:\/\/zeroturnaround.com\/rebellabs\/developer-productivity-report-2012-java-tools-tech-devs-and-data\">http:\/\/zeroturnaround.com\/rebellabs\/developer-productivity-report-2012-java-tools-tech-devs-and-data<\/a><\/li><li><a href=\"http:\/\/zeroturnaround.com\/rebellabs\/rebel-labs-release-it-ops-devops-productivity-report-2013\">http:\/\/zeroturnaround.com\/rebellabs\/rebel-labs-release-it-ops-devops-productivity-report-2013<\/a><\/li><li><a href=\"http:\/\/devrates.com\/project\/list?query=web+framework\">http:\/\/devrates.com\/project\/list?query=web+framework<\/a><\/li><li><a href=\"http:\/\/bit.ly\/jvm-frameworks-matrix\">http:\/\/bit.ly\/jvm-frameworks-matrix<\/a><\/li><\/ul><p>Starke Indizien f\u00fcr die Verbreitung eines Frameworks sind z.B.<\/p><ul><li>die Anzahl der Google-Treffer im Vergleich zu anderen Frameworks<\/li><li>die Anzahl der Jobgesuche<\/li><li>technische Fragen dazu auf Stackoverflow<\/li><\/ul><h3 id=\"3-frameworks-festgelegt\">3. FRAMEWORKS FESTGELEGT<\/h3><p>Folgende Frameworks wurden f\u00fcr die Technologieauswahl ins Rennen geschickt.<\/p><ul><li>Vaadin<\/li><li>JSF<\/li><li>Primefaces<\/li><li>Tapestry<\/li><li>Wicket<\/li><li>Grails<\/li><li>Play Framework<\/li><li>SpringMVC<\/li><\/ul><h3 id=\"4-evaluation-der-frameworks-in-der-m\u00f6glichen-zielarchitektur\">4. EVALUATION DER FRAMEWORKS IN DER M\u00d6GLICHEN ZIELARCHITEKTUR<\/h3><p>Als Basis f\u00fcr die Demo-Applikation wurde ein gemeinsames Datenmodell mit einer zugeh\u00f6rigen Serviceschicht f\u00fcr die Persistenz und REST-Services (EJB-Serverprojekt) entwickelt. Die Frameworks wurden in mehreren Iterationsstufen evaluiert:<\/p><ul><li>1.) Pr\u00fcfen der Demos\/Showcases gegen die Anforderungen<\/li><li>2.) Lesen der Tutorials\/ erste Gehversuche<\/li><li>3.) Integration des Frameworks in die Zielarchitektur (JBoss 7.1.1 Runtime)<\/li><li>4.) Entwicklung der Demo-Applikation pro Framwork<ul><li>Einfache CRUD-Oberfl\u00e4che<\/li><li>Komplexe Oberfl\u00e4che mit Unterstrukturen<\/li><li>Anbindung REST-Schnittstelle<\/li><\/ul><\/li><\/ul><p>Nicht bei allen Frameworks sind alle Iterationsstufen durchlaufen worden. Manchmal hat sich z.B. schon relativ bald herauskristallisiert dass Framework nicht geeignet ist, oder es ist an mangelnden Integrationsm\u00f6glichkeiten in die Zielumgebung gescheitert.<\/p><h3 id=\"5-bewertung-und-auswahl\">5. BEWERTUNG UND AUSWAHL<\/h3><p>F\u00fcr die Evaluation gab es ein strukturiertes Bewertungsschema welches die Anforderungen ber\u00fccksichtigt und in das die Ergebnisse eingetragen wurden.<\/p><p>Bewertungs- und Entscheidungskriterien waren unter anderem<\/p><ul><li>Popularit\u00e4t\/Zukunftssicherheit<\/li><li>Toolunterst\u00fctzung<\/li><li>Effektivit\u00e4t\/Produktivit\u00e4t<\/li><li>Lernkurve<\/li><li>Dokumentation<\/li><li>Community Support<\/li><\/ul><p>Weiterhin sind eigene Erfahrungen mit den jeweiligen Frameworks aus anderen Projekten mit eingeflossen.<\/p><p>Am Ende gab es eine Teamentscheidung f\u00fcr<span>\u00a0<\/span><strong>Primefaces\/JSF<\/strong>, die Gr\u00fcnde daf\u00fcr waren<\/p><ul><li>Vorhandene Komponenten passen am besten zu den Anforderungen<\/li><li>sehr umfangreiche und komfortable Tabellenkomponente<\/li><li>damit war eine schnelle Entwicklung der Demoapplikation m\u00f6glich<\/li><li>sehr gute Integration in die Zielumgebung<\/li><li>Standard im JEE\/ JSF Umfeld<\/li><li>Weit verbreitet<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>SiteOS hat im Rahmen eines Gro\u00dfprojektes eine Technologieauswahl f\u00fcr eine neue Applikation bei einem Kunden durchgef\u00fchrt. Ziele dabei waren, eine Technologie zu finden, welche sich in die bestehende IT-Infrastruktur und Applikationslandschaft nahtlos integrieren l\u00e4sst und mit der die Anforderungen an die neue Applikation m\u00f6glichst einfach umzusetzen sind.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[53],"tags":[74,86,89],"class_list":["post-235","post","type-post","status-publish","format-standard","hentry","category-finance","tag-coaching","tag-motivation","tag-strategy"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/posts\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":7,"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":23451,"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/posts\/235\/revisions\/23451"}],"wp:attachment":[{"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siteos.de\/wp\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}