• Blog
  • Info Support
  • Career
  • Training
  • International Group
  • Info Support
  • Blog
  • Career
  • Training
  • International Group
  • Search
logo InfoSupport
  • Latest blogs
  • Popular blogs
  • Experts
      • All
      • Bloggers
      • Speakers
  • Meet us
  • About us
    • nl
    • en
    • .NET
    • 3D printing
    • Advanced Analytics
    • Agile
    • Akka
    • Alexa
    • Algorithms
    • Api's
    • Architectuur
    • Artificial Intelligence
    • ATDD
    • Augmented Reality
    • AWS
    • Azure
    • Big Data
    • Blockchain
    • Business Intelligence
    • Chatbots
    • Cloud
    • Code Combat
    • Cognitive Services
    • Communicatie
    • Containers
    • Continuous Delivery
    • CQRS
    • Cyber Security
    • Dapr
    • Data
    • Data & Analystics
    • Data Science
    • Data Warehousing
    • Databricks
    • DataOps
    • Developers life
    • DevOps
    • Digital Days
    • Digital Twin
    • Docker
    • eHealth
    • Enterprise Architecture
    • Event Sourcing
    • Hacking
    • Infrastructure & Hosting
    • Innovatie
    • Integration
    • Internet of Things
    • Java
    • Machine Learning
    • Microservices
    • Microsoft
    • Microsoft Bot Framework
    • Microsoft Data Platform
    • Mobile Development
    • Mutation Testing
    • Open source
    • Pepper
    • Power BI
    • Privacy & Ethiek
    • Python
    • Quality Assistance & Test
    • Quality Assurance & Test
    • Requirements Management
    • Scala
    • Scratch
    • Security
    • SharePoint
    • Software Architecture
    • Software development
    • Software Factory
    • SQL Server
    • SSL
    • Start-up
    • Startup thinking
    • Stryker
    • Test Quality
    • Testing
    • TLS
    • TypeScript
    • Various
    • Web Development
    • Web-scale IT
    • Xamarin
    • All
    • Bloggers
    • Speakers
Home » NL-JUG University Session: Development Frameworks
  • NL-JUG University Session: Development Frameworks

    • By Oud-medewerkers
    • Various 17 years ago
    • Various 0 comments
    • Various Various
    NL-JUG University Session: Development Frameworks

    Gisteravond was de eerste NL-JUG University Session. Ruim 50 developers hadden zich verzameld in Driebergen waar Martin Percival (BEA Systems) en Alef Arendsen (Interface21) hun licht lieten schijnen over het thema ‘Development Frameworks’. Martin vertelde over Apache Beehive en Alef behandelde het Spring Framework. Zoals we inmiddels gewend zijn van de NL-JUG, was ook dit weer een goed georganiseerd evenement. Enige minpuntje was eigenlijk dat het erg warm was in de ruimte waar de presentaties werden gegeven. Met dit weer is een ruimte met airco eigenlijk wel een vereiste. Zeker als je mensen na een dag hard werken en een maaltijd toe moet spreken moet je toch al alles uit de kast halen om deze ‘graveyard shift’ te volbrengen en dan helpt de warmte zeker niet mee. Desalniettemin was het zeker een informatieve avond. De prijs voor de scherpste opmerking van de avond gaat wat mij betreft naar Martin Percival. Vrij vertaald: “waarom willen jullie (developers) toch altijd frameworks bouwen, misschien is het een goed idee om af en toe ook eens een applicatie te bouwen ofzo…” De spijker op zijn kop.

    Wat persoonlijke ‘notes’…

    Met Beehive laat BEA weer eens zien dat ze naast eigen innovatie ook standaardisatie en open source belangrijk vinden. De drie onderdelen van het
    framework: controls, page flows en web services zijn stuk voor stuk nuttige onderdelen die het bouwen van een applicatie met Weblogic Workshop kunnen veraangenamen en middels Beehive nu ook beschikbaar zijn voor niet-BEA containers zoals bijvoorbeeld Tomcat, of een andere container. Ook ben je niet langer aan Weblogic Workshop gebonden, want via de
    Pollinate plugin is Beehive ook goed te gebruiken vanuit Eclipse.

    Controls zijn een abstractie, waarvoor de gemiddelde ontwikkelaar zelf waarschijnlijk al proxies of een delegate  achtig iets zou hebben gemaakt. Page flows zijn een uitbreiding op Struts, die voorzien in een mogelijke oplossing voor enkele van de beperkingen en scherpe kantjes van Struts. Op het gebied van web services biedt Beehive een set aan annotations waarmee op een gemakkelijke manier web services gegenereerd kunnen worden. Hoewel annotations op zichzelf een nuttige taalfeature zijn, is de manier waarop sommige frameworks deze gebruiken wel enigzins weerzinwekkend en Beehive heeft daar ook een beetje een handje van. Als voorbeeld: een Java interface met boven een methode declaratie een annotation waarin de implementatie (select * from products where id={pid}) van die methode staat, is volgens mij niet waar interfaces voor bedoeld zijn. Was er niet iets met scheiding tussen interface en implementatie? Het gebruik van annotations voor configuratie blijf ik sowieso een slechte zaak vinden. Configuratie hoort niet tussen source code thuis. Hadden we hier geen deployment descriptors, preferences en property files voor uitgevonden?

    Beehive is zeker het bekijken waard en wellicht zijn de onderdelen uit het framework of in ieder geval de ideeen  erachter bruikbaar in de eerstvolgende applicatie die je gaat bouwen. Kleine kanttekening is wat mij betreft dat het voor sommige technologie beter zou zijn als men toch het geduld voor de soms trage standaardisatie zou kunnen opbrengen. In de tussentijd is de technologie dan misschien slecht bruikbaar, maar het voorkomt in ieder geval dat de versie 2 producten een stevige rewrite zullen zijn van het versie 1 product.

    Spring zat ik persoonlijk al een tijdje tegenaan te hikken. Het geniet weliswaar veel populariteit als je sommige bronnen op het internet moet geloven, maar het had mij tot op heden nog niet weten te imponeren. Ik had het al eens de ’10 minute testdrive’ gegeven, maar nog niet echt de tijd gehad om er stevig mee aan de gang te gaan. De presentatie van Alef en de opmerkingen en vragen uit de zaal hebben me in ieder geval gesterkt in het gevoel dat het framework best aardig in elkaar steekt en dat je er zeker een serieuze applicatie mee zult kunnen bouwen, maar dat het wederom geen silver bullet is. Het is slechts een van de vele aanpakken die je vandaag de dag kunt kiezen. Het geknutsel met XML files en het aan elkaar knopen van stukken applicatie middels Inversion of Control klinkt allemaal simpel en aardig, maar ook hier geldt weer…waar zijn de tools? Wie bewaakt de consistentie tussen XML files en Java code? Een paar halfbakken Eclipse plugins zijn onvoldoende.

    Feitelijk het grootste bezwaar dat ik tegen beide frameworks (Beehive en Spring) heb, is dat alles onder het kopje ‘ease of development’ wordt geschoven. Productiviteit verhogen is goed…niets mis mee, maar waarom zou je alles in het werk willen stellen om je developers ‘dom’ te houden? Wat is er mis met de complexiteit van Enterprise JavaBeans? Die dingen zijn ook niet ontworpen om er helloworld dingetjes mee in elkaar te zetten. In business critical enterprise applicaties mogen dingen best complex zijn. Er is helemaal niets mis mee dat je van je developers verlangt dat ze weten waar ze mee bezig zijn. Liever denken in patterns dan denken in XML en annotations wat mij betreft! Misschien was de insteek wat ongelukkig gekozen, maar waarom is een Service Locator, een Factory of een DAO nu ineens ‘evil’ en moeten deze tegen elke prijs uit de applicatie worden weggewerkt? Ook voor Spring geldt…zeker eens bekijken! Positief is hier
    naar mijn mening ook nog dat het heel goed mogelijk is om slechts (kleine) onderdelen uit het framework te gebruiken (bijvoorbeeld de JDBC template) zonder dat het framework inbreuk doet op de architectuur van je applicatie.

    Overall dus zeker een informatieve avond. Kijk alweer uit naar de volgende University eind september, met als onderwerp ‘Presentation-tier Frameworks’
    (o.a. JSF). Voor meer info moet je zeker de NL-JUG site in de gaten houden!

    Share this

Oud-medewerkers

View profile

IT Training at Info Support

Which training fits you?

Consultancy

Consultancy

Related blogs

  • Video Conferencing en OBS Studio koppelen: online prese…

    Video Conferencing en OBS Studio koppelen: online prese… Maaike Brouwer - 2 years ago

  • Verantwoordelijkheid pakken in jouw eigen persoonlijke …

    Verantwoordelijkheid pakken in jouw eigen persoonlijke … Stephan Versteegh - 2 years ago

  • Tips voor als je gaat afstuderen

    Tips voor als je gaat afstuderen Bart Renders - 3 years ago

Data Discovery Channel

  • Explainable AI - Break open the blackbox

  • Toekomstvaste microservice data architecturen

  • Modern Data Platform

Nieuwsbrief

* verplichte velden

Contact

  • Head office NL
  • Kruisboog 42
  • 3905 TG Veenendaal
  • T +31 318 552020
  • Call
  • Mail
  • Directions
  • Head office BE
  • Generaal De Wittelaan 17
  • bus 30 2800 Mechelen
  • T +32 15 286370
  • Call
  • Mail
  • Directions

Follow us

  • Twitter
  • Facebook
  • Linkedin
  • Youtube

Newsletter

Sign in

Extra

  • Media Library
  • Disclaimer
  • Algemene voorwaarden
  • ISHBS Webmail
  • Extranet
Beheer cookie toestemming
Deze website maakt gebruik van Functionele en Analytische cookies voor website optimalisatie en statistieken.
Functioneel Always active
De technische opslag of toegang is strikt noodzakelijk voor het legitieme doel het gebruik mogelijk te maken van een specifieke dienst waarom de abonnee of gebruiker uitdrukkelijk heeft gevraagd, of met als enig doel de uitvoering van de transmissie van een communicatie over een elektronisch communicatienetwerk.
Voorkeuren
De technische opslag of toegang is noodzakelijk voor het legitieme doel voorkeuren op te slaan die niet door de abonnee of gebruiker zijn aangevraagd.
Statistieken
De technische opslag of toegang die uitsluitend voor statistische doeleinden wordt gebruikt. De technische opslag of toegang die uitsluitend wordt gebruikt voor anonieme statistische doeleinden. Zonder dagvaarding, vrijwillige naleving door uw Internet Service Provider, of aanvullende gegevens van een derde partij, kan informatie die alleen voor dit doel wordt opgeslagen of opgehaald gewoonlijk niet worden gebruikt om je te identificeren.
Marketing
De technische opslag of toegang is nodig om gebruikersprofielen op te stellen voor het verzenden van reclame, of om de gebruiker op een website of over verschillende websites te volgen voor soortgelijke marketingdoeleinden.
Manage options Manage services Manage vendors Read more about these purposes
Voorkeuren
{title} {title} {title}