Toon posts:

[C#] Hulp bij eerste C# project

Pagina: 1
Acties:

Onderwerpen

Vraag


  • Ge0force
  • Registratie: Augustus 2006
  • Laatst online: 27-01 13:10
Beste Tweakers,

Ik ben bezig aan mijn eerste C# hobbyprojectje, kwestie van de syntax en object georiënteerd programmeren beter onder de knie te krijgen. Mijn ervaring in C# is beperkt tot zelfstudie en online cursussen, dus alvast mijn excuses als ik "domme" vragen stel.

Mijn hobbyproject is de game "Tetris". Voor de weergave gebruik ik een WPF-form, waarbij vanuit de class GameLoop getekend wordt op het "graphics" object dat ik via de constructor van GameLoop meegeef vanuit de form.

Dat werkt, maar het probleem is dat ik vanuit GameLoop de "Paint" method van de form niet kan aanroepen. Ik heb dat voorlopig opgelost door ook de form als parameter door te geven aan GameLoop, maar dat gaat in tegen alles wat ik tot nu toe geleerd heb over encapsulation:
private void Form1_Load(object sender, EventArgs e)
{

DrawingArea = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

Graphics oGraphics;
oGraphics = Graphics.FromImage(DrawingArea);

gameLoop = new GameLoop(this, oGraphics);
gameLoop.Start();

}
Ik heb geleerd hoe ik delegates kan gebruiken om van de events in de form methods in een class op te roepen, maar nu wil ik het dus andersom; als de timer in mijn class GameLoop beslist dat het blokje een lijn moet vallen, DAN wil ik dat het paint event van de form wordt aangeroepen (al dan niet via Invalidate). Bestaat hier een oplossing voor?

Ter info: Ik zou dit kunnen oplossen door een timer op de form te zetten en om de zoveel milliseconden het paint event uit te voeren, maar ik zou de gamecode graag zoveel mogelijk willen scheiden van de form.

Alvast bedankt voor jullie hulp!

Alle reacties


  • RobIII
  • Registratie: December 2001
  • Laatst online: 13:21

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Wiens verantwoordelijkheid is 't tekenen van de graphics? In dit geval lijkt 't me dus dat de Gameloop zich bezig houdt met state en op 't moment dat die state verandert (blokje verandert van positie/roteert, lijn verdwijnt etc.) dan zal je Gameloop een event raisen of een action invoken; either way iets waar het form zich op kan abonneren of aan de gameloop vertelt wát te invoken bij zo'n gebeurtenis.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Ge0force
  • Registratie: Augustus 2006
  • Laatst online: 27-01 13:10
RobIII schreef op woensdag 11 januari 2023 @ 18:04:
Wiens verantwoordelijkheid is 't tekenen van de graphics? In dit geval lijkt 't me dus dat de Gameloop zich bezig houdt met state en op 't moment dat die state verandert (blokje verandert van positie/roteert, lijn verdwijnt etc.) dan zal je Gameloop een event raisen of een action invoken; either way iets waar het form zich op kan abonneren of aan de gameloop vertelt wát te invoken bij zo'n gebeurtenis.
Klopt, de gameloop class bepaalt wanneer de de form zich moet vernieuwen. De form is echter mijn start-up class, waarin een instance van gameloop wordt aangemaakt.

Begrijp ik het goed dat ik vanuit een instanced class geen event kan raisen in de parent form, zonder een referentie naar die form door te geven aan de instance van de class?

Dat een onderliggende class toegang heeft tot alle properties en methods van de parent form lijkt me nogal sterk tegen de richtlijnen voor objectgeoriënteerd programmeren in te gaan...

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 28-01 23:43
Daarom dus abboneert het Form zich op een event van de gameloop die dan de getekende graphics passed in dat event waarmee het form kan doen wat ie wil.
Of je geeft in dat event de graphics mee aan een functie van de GameLoop die dan direct op de graphics van het form kan tekenen.

Ofzo

[Voor 8% gewijzigd door farlane op 11-01-2023 19:59]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • RobIII
  • Registratie: December 2001
  • Laatst online: 13:21

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

In je FooEventArgs (dus je FrameDrawEventArgs ofzo) geef je alle data mee die het form degene die 't renderen gaat doen nodig heeft en daarna is 't niet meer GameLoop's pakkie-an.

En hoewel events door sommigen een beetje als verouderd beschouwd worden - ik hink een beetje op 2 benen - kun je dan ook Action ofzo overwegen, maar uiteindelijk is dat min-of-meer hetzelfde en een implementatiedetail.

[Voor 37% gewijzigd door RobIII op 11-01-2023 20:46]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 28-01 23:43
RobIII schreef op woensdag 11 januari 2023 @ 20:45:
En hoewel events door sommigen een beetje als verouderd beschouwd worden - ik hink een beetje op 2 benen - kun je dan ook Action ofzo overwegen, maar uiteindelijk is dat min-of-meer hetzelfde en een implementatiedetail.
Ik ben benieuwd waarom events verouderd zijn en wat in plaats daarvan zou moeten komen?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • sig69
  • Registratie: Mei 2002
  • Nu online
farlane schreef op woensdag 11 januari 2023 @ 22:17:
[...]

Ik ben benieuwd waarom events verouderd zijn en wat in plaats daarvan zou moeten komen?
Ik ook. Ben benieuwd, misschien leer ik iets.

Roomba E5 te koop


  • RobIII
  • Registratie: December 2001
  • Laatst online: 13:21

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Ik zei alleen dat 't door sommigen als verouderd wordt beschouwd. Ik heb er geen bezwaar tegen maar gebruik ze eigenlijk al jaren niet meer. Dat komt wellicht omdat ik weinig tot geen Winforms / WPF meer doe waar dat wat gangbaarder is. Maar je ziet wel een shift in .Net naar (anonymous) actions/funcs. Ik ga er hier geen holy war over starten, gebruik wat je 't best lijkt.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • sig69
  • Registratie: Mei 2002
  • Nu online
Laten we dat vooral niet doen. Interessante link, die stop ik in de rugzak. Ook al ben ik nog nooit tegen zulke problemen aangelopen.

Roomba E5 te koop


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 28-01 23:43
RobIII schreef op donderdag 12 januari 2023 @ 00:56:
Ik zei alleen dat 't door sommigen als verouderd wordt beschouwd. Ik heb er geen bezwaar tegen maar gebruik ze eigenlijk al jaren niet meer. Dat komt wellicht omdat ik weinig tot geen Winforms / WPF meer doe waar dat wat gangbaarder is. Maar je ziet wel een shift in .Net naar (anonymous) actions/funcs. Ik ga er hier geen holy war over starten, gebruik wat je 't best lijkt.
Ik was simpelweg geinteresseerd in wat de overwegingen en alternatieven zijn, nothing more . Bedankt voor de link iig.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Vishari Beduk
  • Registratie: Februari 2009
  • Nu online

Vishari Beduk

loves f/1.8 primes

Vier dagen te laat met antwoorden maar dan toch mijn 2ct

Je hebt het over WPF en Form1_Load maar volgens mij haal je nu WinForms en WPF door elkaar. :?
Ik zag ook je topic https://gathering.tweakers.net/forum/list_messages/2166536 en als dit hobbyprojectje als doel heeft om praktische ervaring in .NET op te doen dan is mijn advies om direct project te deleten en te vergeten.
Dat WPF is prachtig maar dateert uit een ander tijdperk. Dat merk je ook al aan het antwoord van RobIII over delegates en events wat inmiidels echt wel oud is. Daarnaast heeft WPF sowieso een steile leercurve en maak jij het jezelf alleen maar extra moeilijk.

Mijn advies is om hier te kijken naar een modern leerproject https://learn.microsoft.com/en-us/

deepin linux addict


  • Lethalis
  • Registratie: April 2002
  • Niet online
Vishari Beduk schreef op zaterdag 14 januari 2023 @ 12:50:
Dat WPF is prachtig maar dateert uit een ander tijdperk. Dat merk je ook al aan het antwoord van RobIII over delegates en events wat inmiidels echt wel oud is. Daarnaast heeft WPF sowieso een steile leercurve en maak jij het jezelf alleen maar extra moeilijk.
Tsja, je moet iets als je Windows client development wil doen.

Ik dacht een paar dagen geleden hip te zijn en heb een Blazor Hybrid .NET 7 "Hello world" app gemaakt. In het kader van projecten die je snel weer verwijdert, scoorde deze hoog :P

Wat een bloated en slome app krijg je dan zeg.

Windows Forms en WPF zijn door het gebrek aan goede alternatieven nog springlevend... Microsoft wil misschien niet dat mensen het nog gebruiken, maar niet alles is altijd handig als web applicatie.

Tuurlijk, voor een beginner is WPF best een leercurve. Zelf heb ik laatst nog een Windows Forms app in elkaar geflanst, omdat het snel moest en ik ook ff geen zin in WPF had... wel met een DevExpress XtraForm, layout panels, high dpi support, etc (wat voor mij easy is vanwege mijn werkervaring ermee).

Maar goed... ik heb ook projecten in Angular gedaan, en web development is anno nu meer gevraagd. Alleen is zoiets als Angular ook niet bepaald beginner friendly _O- Ik ken developers met 20+ jaar werkevaring die het te compex vinden (wat meteen de major selling point van Blazor Server of WASM is, "geen JavaScript gedoe").

Ergens beginnen is ook gewoon lastiger dan 30 jaar geleden toen we vooral console apps bouwden. Wat mijn werkgever de goede oude tijd noemt :+ Vooral als hij weer eens hoort hoe lang iets duurt anno nu...

PS
Ik ben ook niet meer thuis in WPF animaties... grootste issue - toen ik daar vroeger mee bezig was voor een narrowcasting systeem - is dat ze time based ipv frame based waren... gevolg was stotterende animaties op tragere hardware.

We hebben toen maar Flash gebruikt, omdat het beter werkte :X

@Ge0force Probeer testprojecten af te stemmen op het werk dat je wil gaan doen. Veel C# vacatures zullen kennis van asp.net verwachten, sql server, bouwen van rest api's etc.

Een hobbyproject zou een issue tracker kunnen zijn bijvoorbeeld (todo app maar dan wat uitgebreider ;) ).

Zelf wil ik met Blazor web assembly spelen... en ga daar waarschijnlijk een appje mee bouwen om mijn reiskosten in bij te houden en automatisch een declaratie naar mijn werkgever te sturen :) Heb het niet nodig, Excel doet het prima... maar ik wil simpelweg alle stappen doorlopen (authenticatie, communicatie met rest api, navigatie, enzovoorts).

Zo krijg ik een goed beeld van hoe het te vergelijken is met Angular bijvoorbeeld, waar ik al wat jaren werkervaring mee heb.

[Voor 27% gewijzigd door Lethalis op 14-01-2023 14:49]

Ask yourself if you are happy and then you cease to be.


  • Lethalis
  • Registratie: April 2002
  • Niet online
Ge0force schreef op woensdag 11 januari 2023 @ 12:00:
Dat werkt, maar het probleem is dat ik vanuit GameLoop de "Paint" method van de form niet kan aanroepen. Ik heb dat voorlopig opgelost door ook de form als parameter door te geven aan GameLoop, maar dat gaat in tegen alles wat ik tot nu toe geleerd heb over encapsulation:
Je kunt de view state ook "invalidaten". Dat is wat wij bij Windows Forms controls doen iig. Dus je geeft inderdaad zoals @RobIII zegt, een seintje / event aan de presentatie laag dat het opnieuw getekend moet worden, omdat de state van het (View)model veranderd is.

Het form moet zich dus subscriben op een event van het model.

Sowieso kan het geen kwaad om eventueel een cursus te kijken over event driven development :)

[Voor 10% gewijzigd door Lethalis op 14-01-2023 14:45]

Ask yourself if you are happy and then you cease to be.


  • Vishari Beduk
  • Registratie: Februari 2009
  • Nu online

Vishari Beduk

loves f/1.8 primes

Lethalis schreef op zaterdag 14 januari 2023 @ 14:13:
[...]
Tsja, je moet iets als je Windows client development wil doen.
Dat is nou juist niet mijn punt.
We raken off topic :P

De TS gaf in het andere topic aan dat hij verder wil in C#. Mijn advies daarop is om je te richten op ASP.NET core, backend dus. Dat WPF kost alleen maar tijd en levert niets meer op.

Neemt niet weg dat ik persoonlijk een XAML liefhebber :9

deepin linux addict


  • Ge0force
  • Registratie: Augustus 2006
  • Laatst online: 27-01 13:10
Vishari Beduk schreef op zaterdag 14 januari 2023 @ 16:30:
De TS gaf in het andere topic aan dat hij verder wil in C#. Mijn advies daarop is om je te richten op ASP.NET core, backend dus. Dat WPF kost alleen maar tijd en levert niets meer op.
Dat is ook het plan. Mijn eerste project is enkel bedoeld om vertrouwd te geraken met C# en OOP. Ik koos daarbij voor winforms omdat dit het meest lijkt op VB6, zodat ik mij kan focussen op de business layer. Ik wil niet meteen teveel hooi op mijn vork nemen. ;)

Mijn uiteindelijke doel is om webapplicaties te maken in C# en Angular. Mijn volgende project zal dus een webapplicatie zijn.

  • Lethalis
  • Registratie: April 2002
  • Niet online
Vishari Beduk schreef op zaterdag 14 januari 2023 @ 16:30:
[...]

Dat is nou juist niet mijn punt.
We raken off topic :P

De TS gaf in het andere topic aan dat hij verder wil in C#. Mijn advies daarop is om je te richten op ASP.NET core, backend dus. Dat WPF kost alleen maar tijd en levert niets meer op.

Neemt niet weg dat ik persoonlijk een XAML liefhebber :9
De weerbarstige realiteit is dat er nog veel banen zijn te vinden voor Windows client development, dus dat WPF "niets meer" oplevert, daar ben ik het niet mee eens.

Ruim 50% van mijn werk bestaat nog uit Windows Forms development ;(

Ik werk daarnaast ook aan moderne webapplicaties (Angular, .NET 6 api's), die veelal koppelen aan de core business software... maar die is 20 jaar geleden ontstaan en is dus Windows Forms.

En zo zijn er nog tig bedrijven waar het zo is - of zelfs erger - gezien TS zijn andere topic over VB6.

Ask yourself if you are happy and then you cease to be.


  • Lethalis
  • Registratie: April 2002
  • Niet online
Ge0force schreef op zaterdag 14 januari 2023 @ 18:05:
[...]
Mijn uiteindelijke doel is om webapplicaties te maken in C# en Angular. Mijn volgende project zal dus een webapplicatie zijn.
Angular is een heel onderwerp op zich waar veel ervaren .NET developers zelfs geen verstand van hebben.

Je kunt je zelfs afvragen wat je liever eerst doet... frontend, of backend development. En van daaruit verder kijken of je naar full stack gaat.

Als je echt C# en .NET wil leren, focus dan idd op ASP.NET zoals @Vishari Beduk aangeeft, liefst in de brede zin (web api's, MVC, Razor pages, SignalR, Blazor, Entity Framework).

Voor Angular moet je Typescript en JavaScript leren. En begrijpen hoe het hele ecosysteem in elkaar zit (node package manager, transpilers, etc).

[Voor 3% gewijzigd door Lethalis op 14-01-2023 18:27]

Ask yourself if you are happy and then you cease to be.


  • eheijnen
  • Registratie: Juli 2008
  • Niet online
En winforms zal nog hele tijd blijven
https://devblogs.microsof...-out-of-process-designer/

The Internet connected people all around the world. But also the Village Idiots...


  • Lethalis
  • Registratie: April 2002
  • Niet online
https://devblogs.microsof...enhancements-in-dotnet-7/

Betere high dpi support, MVVM support, etc. Er worden zowaar nog nieuwe dingen voor gemaakt door Microsoft.

Nu nog designer files zo opbouwen dat ze ook te mergen zijn...

[Voor 7% gewijzigd door Lethalis op 14-01-2023 19:11]

Ask yourself if you are happy and then you cease to be.


  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@Lethalis
En linux gui support aub. zoals in mono....

The Internet connected people all around the world. But also the Village Idiots...


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 28-01 23:43
Lethalis schreef op zaterdag 14 januari 2023 @ 18:15:
[...]
Ruim 50% van mijn werk bestaat nog uit Windows Forms development ;(
Even voor mijn beeld: waarom vind je het vervelend om WinForms dingen te doen? Niet hip genoeg?

Persoonlijk vind ik zo'n beetje alle Windows GUI spul wat er na kwam een draak om naar te kijken/mee te werken (als user).

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Lethalis
  • Registratie: April 2002
  • Niet online
farlane schreef op zaterdag 14 januari 2023 @ 19:52:
[...]
Even voor mijn beeld: waarom vind je het vervelend om WinForms dingen te doen? Niet hip genoeg?
Windows Forms designer files zijn een draak om te mergen (als je bijvoorbeeld een distributed source control systeem zoals git wil gebruiken, is locking eigenlijk geen optie).

Tot voor kort was er weinig support voor nieuwere manieren van development. Zelf MVVM willen toepassen in Windows Forms doe je niet voor het plezier. DevExpress heeft hier wel support voor toegevoegd. En nu pas, in .NET 7, komt Microsoft met nieuwe bindings voor bijvoorbeeld commands / actions.

Ik hou van mijn 4K monitor. De Windows Forms designer ondersteunt deze niet, dus moet ik Visual Studio met /noscale opstarten en met een blurry studio werken totdat ik klaar ben met de designer, om vervolgens weer terug te switchen om alles scherp te zien.

En tsja, omdat ik aan een gigantisch project werk, zit ik voorlopig nog vast aan .NET Framework. Dus krijg ik geen nieuwe project files bijvoorbeeld. NuGet kan ik gelukkig wel converteren naar PackageReference. Maar zit ik ook vaak vast aan oudere NuGet packages, omdat steeds meer package maintainers .NET Framework support laten vallen.

WPF lost een hoop van bovenstaande op, maar heeft zijn eigen quirks :) En had ook vrij lang last van onacceptabele bugs, zoals blurry fonts... waardoor ik nooit echt geswitcht ben.

PS
De Windows Forms designer schudt ook graag zijn kaarten... elke keer als ik bepaalde forms open er in, dan staat in de designer files alles op een andere plek... zonder dat ik iets verander 8)7

[Voor 13% gewijzigd door Lethalis op 14-01-2023 20:18]

Ask yourself if you are happy and then you cease to be.


  • Ge0force
  • Registratie: Augustus 2006
  • Laatst online: 27-01 13:10
Lethalis schreef op zaterdag 14 januari 2023 @ 18:22:
Angular is een heel onderwerp op zich waar veel ervaren .NET developers zelfs geen verstand van hebben.

Je kunt je zelfs afvragen wat je liever eerst doet... frontend, of backend development. En van daaruit verder kijken of je naar full stack gaat.

Als je echt C# en .NET wil leren, focus dan idd op ASP.NET zoals @Vishari Beduk aangeeft, liefst in de brede zin (web api's, MVC, Razor pages, SignalR, Blazor, Entity Framework).

Voor Angular moet je Typescript en JavaScript leren. En begrijpen hoe het hele ecosysteem in elkaar zit (node package manager, transpilers, etc).
Dankjewel voor de tips. ASP.NET zal het worden.

Op mijn huidig werk is de frontend wel in Angular. Met wat geluk kan ik daar binnenkort ook mee aan de slag. Ik heb reeds een basiscursus gevolgd op Pluralsight. Angular lijkt me wel cool, maar niet bepaald intuïtief.

[Voor 12% gewijzigd door Ge0force op 14-01-2023 20:33]


  • Lethalis
  • Registratie: April 2002
  • Niet online
eheijnen schreef op zaterdag 14 januari 2023 @ 19:22:
@Lethalis
En linux gui support aub. zoals in mono....
Er schijnt een open source WPF kloon te zijn, Avalonia UI, die ook op Linux werkt. Maar zelf nog geen ervaring mee.

Ask yourself if you are happy and then you cease to be.


  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Lethalis schreef op zaterdag 14 januari 2023 @ 20:32:
[...]

Er schijnt een open source WPF kloon te zijn, Avalonia UI, die ook op Linux werkt. Maar zelf nog geen ervaring mee.
Nondedjuu
https://www.avaloniaui.net/Home/Index

The Internet connected people all around the world. But also the Village Idiots...


  • Lethalis
  • Registratie: April 2002
  • Niet online
Ge0force schreef op zaterdag 14 januari 2023 @ 20:30:
[...]
Op mijn huidig werk is de frontend wel in Angular. Met wat geluk kan ik daar binnenkort ook mee aan de slag. Ik heb reeds een basiscursus gevolgd op Pluralsight. Angular lijkt me wel cool, maar niet bepaald intuïtief.
Wat mij geholpen heeft - ondanks dat het geen best practice is :$ - is om de Angular schematics zo aan te passen dat ik 2 bestanden per component krijg ipv 4. Dus ik laat de component specifieke CSS weg en ook de test file.

Daarnaast gebruik ik een "flat" structuur, zodat ik niet voor elk component een eigen directory krijg. Hierdoor worden mijn projecten een stuk overzichtelijker en voor mij intuïtiever.

Ik schrijf wel tests voor backend code, maar niet vaak voor de frontend die toch vooral een doorgeefluik is. Alle business logica zit in de backend bij mij. Kan er ook niet mee geklooid worden door script kiddies :)

Het is bizar hoeveel developers daar te weinig rekening mee houden. Kennis van mij omzeilt regelmatig allerlei dingen op websites... wat hem weleens extra "korting" op producten oplevert etc.

Dat je meer in de browser kan doen, betekent niet automatisch dat het ook altijd een goed idee is. Tenzij je het dubbel uitvoert, dus client én server side validatie.

[Voor 6% gewijzigd door Lethalis op 14-01-2023 22:18]

Ask yourself if you are happy and then you cease to be.


  • OMX2000
  • Registratie: Januari 2001
  • Nu online

OMX2000

By any means necessary...

Als je zelf de keus hebt zou ik me niet in Angular storten. Teveel concepten die alleen binnen de Angular wereld gemeengoed zijn. React of Vue als je een frontend applicatie wilt bouwen waar veel een goede documentatie, tutorials en libraries voor zijn te vinden. En niet te vergeten met grote communities. Heb je dat onder de knie, kun je altijd nog kijken naar nieuwere libraries/frameworks/meta-frameworks. De stap van Vue of React naar een andere framework maak je in mijn ogen makkelijker. Dat moet niet, maar soms sluiten die beter aan op het type applicatie wat je wilt bouwen.

Dan is er sowieso in frontend land het meest in ontwikkeling qua web development. Waarbij het eigenlijk niet echt alleen frontend meer is. Veel van de frameworks zijn verantwoordelijk voor de client- en serverside.

En dat is vanuit C#/.NET development precies andersom. Je begint vanaf de server kant, en bouwt daar een client voor. In algemene is het denk ik goed om C#/.NET te leren. Zoals @Lethalis ook aangeeft. Dat heeft als voordeel, denk ik, dat je ook wat anders kunt gaan doen dan web-development.


Leuk filmpje over verschillende manieren van serveren van web applicaties: YouTube: 10 Rendering Patterns for Web Apps

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • Ge0force
  • Registratie: Augustus 2006
  • Laatst online: 27-01 13:10
OMX2000 schreef op zaterdag 14 januari 2023 @ 22:47:
Als je zelf de keus hebt zou ik me niet in Angular storten.
Ik zou zelf ook liever werken met Blazor of Vue. Maar in m'n huidige bedrijf is gekozen voor Angular en ik merk ook dat dit voor veel vacatures nog steeds gevraagd wordt.

Ik heb de indruk dat de diversiteit aan (betere) alternatieven zo snel groeit, dat veel bedrijven nog even afwachten wat de nieuwe norm gaat worden alvorens ze overstappen vanaf Angular. Mijn bedrijf heeft zich indertijd stevig verbrand aan Silverlight, wat aanvankelijk door iedereen werd geprezen, maar al gauw in de vuilnisbak belandde doordat plugins ineens geweerd werden door de meeste browsers.

Ik volg in elk geval je suggestie om eerst te focussen op de backend in .NET.

  • Ge0force
  • Registratie: Augustus 2006
  • Laatst online: 27-01 13:10
Lethalis schreef op zaterdag 14 januari 2023 @ 22:10:

Wat mij geholpen heeft - ondanks dat het geen best practice is :$ - is om de Angular schematics zo aan te passen dat ik 2 bestanden per component krijg ipv 4. Dus ik laat de component specifieke CSS weg en ook de test file.

Daarnaast gebruik ik een "flat" structuur, zodat ik niet voor elk component een eigen directory krijg. Hierdoor worden mijn projecten een stuk overzichtelijker en voor mij intuïtiever.
Dankjewel voor alle nuttige tips die je me geeft!

  • sig69
  • Registratie: Mei 2002
  • Nu online
Lethalis schreef op zaterdag 14 januari 2023 @ 20:07:
[...]


De Windows Forms designer schudt ook graag zijn kaarten... elke keer als ik bepaalde forms open er in, dan staat in de designer files alles op een andere plek... zonder dat ik iets verander 8)7
Apart, ik heb jaren aan een flinke windows forms applicatie gewerkt en we hadden daar eigenlijk geen last van. Ligt niet aan .Net of het framework maar aan visual studio denk ik. Zo heb ik bijvoorbeeld:
-een project waarbij wisselen tussen debug en release niet werkt. Na sluiten en openen is het ok
-een project waar het toevoegen van een view 5 minuten duurt
-een project waar niets build na een nuget update, en na opnieuw laden wel
Geen idee waarom 8)7

Roomba E5 te koop


  • Lethalis
  • Registratie: April 2002
  • Niet online
sig69 schreef op zondag 15 januari 2023 @ 01:51:
[...]
Zo heb ik bijvoorbeeld:
-een project waarbij wisselen tussen debug en release niet werkt. Na sluiten en openen is het ok
-een project waar het toevoegen van een view 5 minuten duurt
-een project waar niets build na een nuget update, en na opnieuw laden wel
Geen idee waarom 8)7
Die eerste heb ik ook weleens... En wij hebben ook regelmatig de melding "opening the file" in Visual Studio 8)7

Zit je dan achter een Ryzen 7 met 32GB ram en nvme storge te wachten hoe Visual Studio een tekstbestand opent...

Ask yourself if you are happy and then you cease to be.


  • Lethalis
  • Registratie: April 2002
  • Niet online
@Ge0force
Trouwens nog ff ontopic:

CompositionTarget.Rendering Event

En de link van stack overflow waar ik het vond:

https://stackoverflow.com...make-a-render-loop-in-wpf

In dit geval raise jij geen event, maar haak je in op de bestaande render loop van WPF. Dus je kan dan net voordat WPF een frame rendert, zelf nog dingen doen / veranderen.

[Voor 5% gewijzigd door Lethalis op 15-01-2023 08:29]

Ask yourself if you are happy and then you cease to be.

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee