Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Door te zoeken op het internet heb ik de meeste voorkomende frameworks genoteerd. Dit zijn:

  • Angular

Angular is de het front-end framework van Google. Deze wordt gebruik onder andere gebruikt door Microsoft en en Gmail en heeft zo'n 83.000 github stars. .  Angular maakt gebruikt van typescript(Angular, z.d.)

  • Vue.js

Vue.js is een java Java framework. Deze wordt onder andere gebruikt door Nintendo en Adobe.  en heeft 198.000 github starsVue.js is een soort uitbreiding op react

  • React

React is gemaakt door facebook Facebook en wordt gebruikt door discord Discord en en instagramInstagram. In tegenstelling to vue is react tot Vue.js is React een library en is handiger over het algemeen beter voor single page aplicatiesapplicaties.

  • jQuery

jQuery is het minst bekend van deze frameworks maar . Echter kwam ik deze nog steeds vaak tegen dus heb ik er voor gekozen om dit ook als een optie te zien. Het wordt gebruikt door onder andere walt disneyWalt Disney.


Deze 4 kwam ik tegen op de meeste websites en zijn ook de meest gebruikte. Deze neem ik dus mee naar de volgende deelvragen.

...

    Deze criteria zal ik even kort toelichten:
  • CR1 gaat Gaat over hoeveel er te vinden is op het internet. Is de documentatie up to date en hoeveel kun je er op stackoverflow sites zoals Stackoverflow over vinden.?
  • CR2 staat Staat voor hoeveel ervaring wij met het framework hebben. Hoe bekend zijn we er mee en hebben we er al eerder mee gewerkt.?
  • CR3 gaat over de snelheid van de framework.
  • CR4 is voor hoe makkelijk het is om de prototype te maken.
  • CR5 is hoe vaak de het framework wordt geüpdate geüpdatet en onderhouden.

Wat zijn de resultaten van de prototypes

Om te kijken welke front-end framework het fijnst is beste bij ons past maak ik met elke framework een dynamische lijst op basis van JSON. 

React

Het maken van de react het React prototype ging erg gemakkelijk. Ik heb react React nog nooit eerder gebruikt en heb de eerste beste video gebruikt om mijn react React project op te zetten. Van daaruit Vanuit daar heb ik verder gezocht naar een dynamische lijst en kon ik ook gelijk weer de eerste video gebruiken. Het maken van de het prototype ging dus zonder problemen en werkte eigenlijk meteen.

...

Resultaat

Figuur 1: Resultaat reactReact

jQuery

In tegenstelling to React kon ik over jQuery niet zoveel vinden. Er bestonden geen goeie duidelijke video's hoe ik een project moest opzetten met jQuery ook . Ook duurde het even tot ik het antwoord voor mijn oplossing had gevonden

...

Figuur 2: Resultaat jQuery

 Vue.js

Het duurde even tot ik de syntax van vue Vue.js begreep. Dit komt vooral omdat het niet op iets lijkt wat ik al eerder gebruikt heb. Het duurde daarom relatief gezien best lang om dit voor elkaar te krijgen maar omdat vue . Echter, omdat Vue.js een erg populaire framework is, kon ik genoeg hulp vinden op het internet.

...

Resultaat

figuur 3: resultaat vueVue.js


 Angular

Het duurde even tot ik de beginnende kneepjes van angular Angular in de hand had. Dit kwam wel vrij snel door de grote hoeveelheid documentatie die angular biedAngular aanbied. Voor bijna elk component dat angular biedt Angular aanbiedt zijn er 10 tal tientallen voorbeelden over hoe je het zou kunnen gebruiken. Hierdoor was het maken van het prototype zeer gemakkelijk en van zelf sprekend, enig vanzelfsprekend. Het enige wat iets lastig was, was het feit dat het maken van pagina's iets uitgebreider was dan met bijvoorbeeld vueVue.js.

Code Block
languagejs
themeEclipse
firstline1
titleprototype angular ts
<div class="container">
  <h1> Dashboards </h1>
    <ul *ngFor="let dashboard of dashboards">
      <li> Auto: {{ dashboard.car }} coureur: {{ dashboard.driver }} <button>kijk mee</button></li>
    </ul>
</div>
Code Block
languagejs
themeEclipse
firstline1
titleprototype angular
import { Component } from '@angular/core';
import dashboardData from './json/dashboard.json';
interface dashboard {
  ID: Number;
  car: String;
  driver: String;

}
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'prototype';
  // @ts-ignore
  dashboards: dashboard[] = dashboardData;
}

Resultaat

Image Added

figuur 4: resultaat angular

Prototype angular + google charts

Omdat angular ook een google charts API integratie hebben we hier ook een prototype voor gemaakt

Code Block
themeEclipse
titleangular ts
import { Component, OnInit } from '@angular/core';
import {FormControl} from import { Component, OnInit } from '@angular/core';
import {FormControl} from "@angular/forms";


@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent {
  tabs = ['First', 'Second', 'Third'];
  selected = new FormControl(0);

  addTab(selectAfterAdding: boolean) {
    this.tabs.push('New');

    if (selectAfterAdding) {
      this.selected.setValue(this.tabs.length - 1);
    }
  }

  removeTab(index: number) {
    this.tabs.splice(index, 1);
  }

}

Code Block
languagexml
themeEclipse
firstline1
titleprototype Angular
linenumberstrue
<div>
  <button mat-raised-button
          class="example-add-tab-button"
          (click)="addTab(selectAfterAdding.checked)">
    Add new tab
  </button>
  <mat-checkbox #selectAfterAdding> Select tab after adding </mat-checkbox>
</div>

<mat-tab-group mat-align-tabs="center">
  <mat-tab label="First" style="height: 100%">
    <div class="example-boundary">
      <div class="example-box" cdkDragBoundary=".example-boundary" cdkDrag>
        <img src="https://lh3.googleusercontent.com/_eWd5RuZfGPlgVcNzsG4S352TTXbZVoHsJju1t2_jFattGC-JaLrRTe02L7tBfQacQ=w600-rwa" height="100%" width="100%">
      </div>
    </div>
  </mat-tab>
  <mat-tab label="Second" >Content 2</mat-tab>
  <mat-tab label="Third" >Content 3</mat-tab>
</mat-tab-group>


Resultaat


figuur 5: resultaat angular google charts

Hoe scoren de frameworks op de criteria

...

CodeAspectCijferToelichtingBron
CR1Documentatie7Omdat React ongeveer de grootste front-end framework is kun je op onder andere stackoverflow Stackoverflow genoeg hulp vinden, maar omdat het zo snel groeit wordt niet alles gedocumenteerd.https://www.sam-solutions.com/blog/best-frontend-framework/#3
CR2Ervaring7Er zijn een 2 teamleden die al eerder gewerkt hebben met react React maar er geen grote fan van zijn.-
CR3Prestatie8React is één van de snelste frameworks door het gebruik van de virtual DOM.

https://jelvix.com/blog/is-react-js-fast#:~:text=Engineering-,React.,optimal%20choice%20for%20interactive%20design.

https://reactjs.org/docs/faq-internals.html

CR4Prototype9Omdat er genoeg hulpbronnen bestaan kon ik de het prototype snel maken.
CR5Onderhouden9React is wordt erg vaak geupdategeüpdatet.

https://www.sam-solutions.com/blog/best-frontend-framework/#3

https://www.ideamotive.co/blog/best-frontend-frameworks

...

CodeAspectCijferToelichtingBron
CR1Documentatie5De documentatie van de DOM is outdatedverouderd.https://www.monocubed.com/blog/best-front-end-frameworks/
CR2Ervaring3Niemand in het de projectgroep heeft ervaring met jQuery er . Er zijn er wel een aantal groepsleden die een beetje kennis hebben van javascriptJavascript.-
CR3Prestatie3Omdat jQuery relatief oud is is de performance nogal laag.https://www.sam-solutions.com/blog/best-frontend-framework/#3
CR4Prototype5In tegenstelling tot react React kon ik niet zoveel vinden als jQuery en duurde het maken van een prototype dus ook een stuk langer.-
CR5Onderhouden5De API van jQuery is nogal outdated verouderd en jQuery wordt niet vaak geupdategeüpdatet.https://www.sam-solutions.com/blog/best-frontend-framework/#3

https://www.monocubed.com/blog/best-front-end-frameworks/


Vue.js

CodeAspectCijferToelichtingBron
CR1Documentatie10Ik kon genoeg video's en hulp vinden voor het maken van de het prototype.

https://www.sam-solutions.com/blog/best-frontend-framework/#3

https://www.monocubed.com/blog/best-front-end-frameworks/

CR2Ervaring6We hebben een workshop gehad over vueVue.js. Verder zijn er geen groepsleden met ervaring.-
CR3Prestatie10Vue.js is erg snel omdat het een nieuwe nieuwer framework is en de wrappers extreem snel zijn.

https://www.sam-solutions.com/blog/best-

frontend-framework/#3

frontend-framework/#3

https://www.ionos.com/digitalguide/websites/web-development/what-is-a-wrapper/

CR4Prototype5de De syntax is erg nieuw maar er is genoeg documentatie.-
CR5Onderhouden8Vue.js heeft tussen de 1 en 3 maanden  maanden een update en is 1 van de meest progressieve frameworks.https://endoflife.date/vue

...

CodeAspectCijferToelichtingBron
CR1Documentatie10Ik kon genoeg video's en hulp vinden voor het maken van de het prototype.

https://www.sam-solutions.com/blog/best-frontend-framework/#3

https://www.monocubed.com/blog/best-front-end-frameworks/

CR2Ervaring7We hebben een workshop gehad en het lijkt een beetje op javaJava.-
CR3Prestatie8Angular is snel omdat het gebruik maakt van two way databinding

https://www.sam-solutions.com/blog/best-frontend-framework/#3

https://www.tutorialsteacher.com/angular/two-way-data-binding#:~:text=Two-way%20data%20binding%20refers,property%20in%20a%20component%20class.

CR4Prototype8Het heeft iets weg van java Java en er bestaat genoeg documentatie-
CR5Onderhouden8Angular heeft elke paar maanden weer een nieuwe update.Meron Brouwer (Nuttshelltalk angularAngular)


Conclusie

Door de cijfers bij elkaar op te te tellen en de wegingsfactor toe te passen hebben we een shortlist opgesteld.

FrameworkPunten
React79
jQuery42
Angular81
Vue.js71

Je ziet al snel dat één framework al door de mand zakt. Dit is jQuery. Dit komt omdat jQuery relatief gezien erg oud is. In vergelijking met de andere frameworks kun je ook niet heel veel vinden. Vue.js heeft net iets minder punten dan angular Angular en reactReact. Dit komt omdat de syntax op vue Vue.js niet lijkt op iets dat we eerder gebruikt hebben en het dus ook even gaat duren voor dat we hier bekend mee raken. Tussen react React en Angular zitten maar 2 punten verschil. Het voordeel van react React is dat het veruit de het grootste framework is en je hier dus ook het meeste hulp bij kan vinden. Het voordeel van Angular is dat het meest lijkt op de technieken waar we bekend mee zijn en hier dus snel mee aan de gang kunnen. Ook hebben we hier een workshop over gehad en kunnen we bij eventuele vragen bij Meron brouwers Brouwers aankloppen. Een ander voordeel is dat angular Angular een integratie heeft voor google charts Google Charts die als winnaar uit het onderzoek van de graphs komt Onderzoeksverslag Visuele Dataweergave. Daarom is Angular het antwoord op onze hoofdvraag: Welke "Welk front-end framework past het best bij ons project? "

Bronnen

Angular. (

...

n.d.). Angular. Retrieved November 23, 2022, from https://angular.io/

...

endoflife.date. (n

...

.d.)

...

. Vue | endoflife.date. Retrieved November 23, 2022, from https://endoflife.date/vue

Patel, J. (2021, November 24). 10 Best Front end Frameworks for Web Development in 2022. Monocubed. https://www.monocubed.com/blog/best-front-end-frameworks/

...

Jelvix. (

...

n.d.)

...

. What Makes React.js Fast: Tools to Optimize the Performance. Retrieved November 23, 2022, from https://jelvix.com/blog/is-react-js-

...

fast

Sakovich, N. (2021, December 10). Best Frontend Frameworks for Web Development of 2021–2022. SaM Solutions. https://www.sam-solutions.com/blog/best-frontend-framework/

...