Desktop programma of web applicatie?
Ik heb veel ervaring met het ontwikkelen van zowel webapplicaties als desktop apps. Ik heb jaren gewerkt met Java, en tegenwoordig vooral met het .NET framework van Microsoft. (C# met WPF).
Ik twijfel nu tussen de volgende keuzes:
- Een niet-web gebaseerd programma ontwikkelen dat op de computer zelf draait.
- Een webapplicatie die in XAMPP draait op een lokale computer. PHP, Mysql, etc. Ik wil dit zonder webhosting laten draaien, vandaar XAMPP op een computer die als 'server' en database werkt en door andere pc's eventueel via lokaal IP adres te bereiken is.
In veel gevallen verdient een webapplicatie de voorkeur. Maar dan wel gehost, zodat het overal via internet te bereiken is. Daardoor komen de gegevens altijd uit één bron (de database). En het is makkelijk om een systeem te maken met gebruikers/accounts (als er meerdere medewerkers zijn, of een boekhouder die wil meedoen).
Maar bij een desktop programma zijn de voordelen dat de software op de pc draait en dat je niet steeds bestanden zoals offertes, excel bladen, PDF's etc. hoeft te uploaden en te downloaden. Want deze staan gewoon op de pc en kunnen zelfs door het programma rechtstreeks worden gegenereerd of aangepast, zonder downloads.
Daarnaast kun je ook een hybride systeem maken. Bijvoorbeeld een lokale XAMPP server voor het 'backend' gedeelte dat alle data bewaart in zijn database en een beetje vergelijkbaar is met een REST api. En een desktop programma dat als gebruikers interface werkt, en via lokaal netwerk communiceert met de XAMPP server.
De volgende opties heb ik overwogen voor dit project:
1. XAMPP server en volledige (lokale) web applicatie.
2. XAMPP server als backend, en desktop applicatie als user interface (i.v.m. de native mogelijkheden op de pc zoals bestanden direct bewerken in word of excel files uitlezen).
3. Volledige desktop applicatie. De data wordt tussen alle andere apparaten die het programma draaien gesynchroniseerd via het lokaal netwerk.
Mijn vragen zijn:
- Is naar jullie ervaring XAMPP erg belastend voor een gewone pc om te draaien? Dus een pc waarop nu XAMPP draait, gebruikt die veel van zijn resources en wordt die merkbaar traag?
- Heeft iemand ervaring met het maken van een self-hosted applicatie?
- Welke keuze zou volgens jullie het handigste zijn, of wat is jullie advies?
Uiteraard kan deze vraag opinie gebaseerd zijn, maar ook dan wil ik graag je mening.
Als je tijd over hebt zou ik voor optie 2 gaan. Nu meer werk, maar mocht je er ooit een web-front-end tegenaan willen plakken, dan kan dat vrij eenvoudig.
Wil je snel klaar zijn, en de beste user experience dan zou ik voor bovenstaande optie 4 gaan.
Gewijzigd op 19/09/2018 20:00:33 door Rob Doemaarwat
Ik heb de Windows XAMPP overigens nog nooit gezien als een productie-software waar bedrijfskritische programma's op draaien.
Gewijzigd op 21/09/2018 15:31:54 door Thomas van den Heuvel
Geen desktop applicatie, vraagt veel onderhoud, zeker in het begin. Nieuwe versie, bugpatching.
XAMPP op elke PC/Laptop is ook zeer onderhoudsgevoelig, ook daar moet alle php, mysql etc onderhouden en gepatched. In de praktijk komen dit soort configuraties echt niet (meer) voor.
Mij lijkt een centrale server (Linux) met een complete web omgeving en MySQL de meest efficiente oplossing. Creeer ook een dev/test environment op een tweede server en ga niet ontwikkelen op de productieserver.
Dat wat Thomas zegt is erg belangrijk. Eindgebruikers die zelf een database server moeten installeren dat gaat m niet worden.