Warum empfehle ich meinen Kunden das Spring Framework?

2.603 Aufrufe

Veröffentlicht am

In den letzten Jahren wurde vermehrt die Diskussion JEE 6 vs. Spring geführt, wobei immer öfter die Irrelevanz des Spring Frameworks heraufbeschworen wurde. Im Rahmen der Session möchte ich - abseits jeglicher Polemik - in einer ganzheitlichen Betrachtung schildern, warum ich meinen Kunden noch immer zum Einsatz von Spring rate.

Veröffentlicht in: Technologie, Bildung
0 Kommentare
7 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.603
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
16
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
7
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Warum empfehle ich meinen Kunden das Spring Framework?

  1. 1. Warum empfehle ich meinen Kunden das Spring Framework ?
  2. 2. Michael Plöd Partner und Principal Architect bei Senacor Technologies AG Autor Java Magazin @bitboss http://speakerdeck.com/mploed
  3. 3. 100% unabhängig
  4. 4. 2005 Java EE Entwickler Spring Entwickler
  5. 5. 2014 Java EE Entwickler Spring Entwickler
  6. 6. Java EE
 vs
 Spring
  7. 7. Java EE
 mit oder ohne
 Spring !
  8. 8. Mit beiden Wegen wird man sein Projekt liefern
  9. 9. App Server
  10. 10. Die Argumentation findet auf architektureller Entscheider Ebene statt
  11. 11. Sagen und Mythen
  12. 12. Spring ist eine XML Hölle
  13. 13. 0Zeilen XML für eine Spring Web- Anwendung
  14. 14. Spring ist komplex
  15. 15. Man muss kein Jedi Developer sein
  16. 16. Spring hat zu viele Dependencies
  17. 17. Ist das Ihre Zielplattform?
  18. 18. Spring ist Proprietär und nicht portabel
  19. 19. Wer hat schon eine nicht-triviale JEE Anwendung als drop-in portiert?
  20. 20. Wichtig ist eine ganzheitliche Betrachtung
  21. 21. Betrieb Road-MapCode
  22. 22. Betriebliche
 Aspekte
  23. 23. Infrastruktur
  24. 24. Infrastruktur App Server ! Servlet Container Operations Team
  25. 25. Update Umfang App Server ! Servlet Container Server Runtime Libraries wie ! CDI, Servlet,
 JPA, JSF, ... Eventuell JVM Viel 
 Planung und
 Testing nötig Integration in Monitoring etc
  26. 26. Projekt Libs
  27. 27. Projekt Libs Hibernate ... Spring Development Team
  28. 28. Update Umfang Hibernate ... Spring Dediziert Einzelne Libraries Ad Hoc ! Wenig Test
  29. 29. Roundtrips Hibernate ... Spring App Server ! Servlet Container 2-4 Monate 2-3 Jahre
  30. 30. DEV OPS vs ?
  31. 31. Mit Spring binde ich mein Programmiermodell lose an die Runtime und gewinne somit viel Flexibiliät
  32. 32. Coding
  33. 33. ? Sind
 Dependency Injection und Testing entscheidend
  34. 34. Bitte nachdenken: wir sind im Jahr
 2014 und nicht in 2005
  35. 35. Dependency Injection und Testing sind Commodity
  36. 36. Entscheidend ist das gesamte Ökosystem

  37. 37. Die Basis von Spring setzt auf Java EE auf
 !Scheduling MVC REST JMX Testing Caching Profiles DI AOP TX JMS AOP JDBC ORM OXM Expression JSR-250 JSR-330JTA JDBC 4.1 JPA 2.0JSF 2.0 JSR-303 JMX 1.0
  38. 38. WebServices AMQP Roo Security OAuth Data JPA MongoDB Neo4j GemFire HBase 
 Redis JDBC Splunk Querydsl
 
 HDFS MapReduce Hive
 Pig Cascading SI/Batch Social Twitter
 LinkedIn
 Facebook WebFlow !Scheduling MVC REST JMX Testing Caching Profiles DI AOP TX JMS AOP JDBC ORM OXM Expression Batch
 ! Integration ! Mobile
  39. 39. Spring Data
 als Beispiel Data JPA MongoDB Neo4j GemFire HBase 
 Redis JDBC Splunk Querydsl
 
 HDFS MapReduce Hive
 Pig Cascading SI/Batch
  40. 40. JPA 2 Query
 ... public class PersonDAO ... { private EntityManager em; ! public List<Person> findByFirstname(String firstname) { Query q = em.createQuery(“from Person p where p.firstname = :name “) .setParameter(“name“, firstname) return q.getResultList(); } }
  41. 41. JPA 2 Query
 ... public class PersonDAO ... { private EntityManager em; ! public List<Person> findByFirstname(String firstname) { Query q = em.createQuery(“from Person p where p.firstname = :name “) .setParameter(“name“, firstname) return q.getResultList(); } } Wir schreiben in der Regel viele kleine Queries wie diese
  42. 42. Spring Data
 @Repository public interface PersonRepository extends JpaRepository<Person, Long> { List<Kunde> findByFirstname(String firstname); }
  43. 43. Spring Data mit QueryDSL
 @Repository public interface PersonRepository extends JpaRepository<Person, Long>,
 QueryDslPredicateExecutor<Person> { List<Kunde> findByFirstname(String firstname); } ! ! ! ! ! QPerson P = QPerson.person; BooleanExpression hasBirthday = p.birthday.eq(...); BooleanExpression livesInLinz = p.adress.city.eq("Linz"); Person result = personRepository.findAll(hasBirthday.and(livesInLinz));
  44. 44. Spring Data adressiert auch NoSQL, Big Data and Data Grids
 Data JPA MongoDB Neo4j GemFire HBase 
 Redis JDBC Splunk Querydsl
 
 HDFS MapReduce Hive
 Pig Cascading SI/Batch
  45. 45. Wo bleiben die Java EE Antworten auf NoSQL, Mobile, Social, etc?
  46. 46. Zur Erinnerung App Server ! Servlet Container Server Runtime Libraries wie ! CDI, Servlet,
 JPA, JSF, ... Eventuell JVM Viel 
 Planung und
 Testing nötig ! Üblicher Roundtrip 2-3 Jahre !
  47. 47. Spring bietet neben den Basics zahlreiche stabile Helfer und höherwertige APIs rund um innovative Themen
  48. 48. Road-Maps
  49. 49. Java EE 6 12 / 2009 Mid 201112 / 2010 01 / 2012 02 / 2012 12 / 2009 Final Spec Release (GlassFish, kein Support) 12 / 2010 JBoss 6 (Web Profile, kein Support) Mid 2011 WebSphere 8 01 / 2012 WebLogic 12c 02 / 2012 JBoss 7.1
  50. 50. ! Die Java EE Vendoren haben 1,5 Jahre
 für den ersten voll unterstützten Container benötigt
  51. 51. Java EE 7: 3,5 Jahre später 12 / 2009 Final Spec Release JEE 6 Q2 / 2013 Final Spec Release JEE 7 ??? Erster Container mit Support
  52. 52. News rund um Java EE 7 Cloud Plattform wird auf Java EE 8 verschoben Social API wird vorerst gestoppt JCache wird doch nicht Bestandteil von Java EE 7
  53. 53. Was bleibt übrig?
  54. 54. JAX-WS 2.0 CDI 1.1JMS 2.0
 ! nach
 11 Jahren JPA 2.1Servlet 3.1 JSF 2.2 .... Java EE 7
  55. 55. 12 / 2009 Spring 3.0 12 / 2011 Spring 3.1 12 / 2012 Spring 3.2 12 / 2013 Spring 4.0 Spring Seit 2009 12 / 2009 12 / 2011 End 2013 Voller Support ! Auf allen Servern sofort verfügbar 12 / 2012
  56. 56. Rechenbeispiel Java EE API Release 12 / 2009 0 Monate Server Mid 2011 18 Monate Interne Verfügbarkeit Mid 2013 18 + 24 Monate Ab API Release ist API in Produktion verfügbar in 42 Monate
 3,5 Jahre
  57. 57. Rechenbeispiel Spring 4.0 API Release 12 / 2009 0 Monate Interne Verfügbarkeit 3 / 2010 3 Monate Ab API Release ist API in Produktion verfügbar in 3 Monate
  58. 58. Mit Spring habe ich eine zuverlässige und innovative Road-Map mit sofortiger Verfügbarkeit auf allen gängigen Servern und vollem Support
  59. 59. Betrieb Road-MapCode
  60. 60. Betrieb Road-MapCode Mit Spring binde ich mein Programmiermodell lose an die Runtime und gewinne somit viel Flexibiliät
  61. 61. Road-MapCode Spring bietet neben den Basics zahlreiche stabile Helfer und höherwertige APIs rund um innovative Themen Betrieb
  62. 62. Road-Map Mit Spring habe ich eine zuverlässige und innovative Road-Map mit sofortiger Verfügbarkeit auf allen gängigen Servern und vollem Support Betrieb Code
  63. 63. Deshalb empfehle ich meinen Kunden das Spring Framework !
  64. 64. Vielen Dank!!! Photos / Grafiken (c) Michael Plöd / Senacor Technologies AG Ausnahme: Photos auf Folien 2, 9 (c) Matthias Heyde; Photo auf Folie 34 lizensiert von istockphoto Pointy Font lizensiert von Bitfoundry Morgen 08:30 Uhr Gutenbergsaal 4 Caching Best Practices! michael.ploed@senacor.com http://www.senacor.com!

×