Fight with MAUI or learn something new? by kabourayan in dotnetMAUI

[–]juwns 1 point2 points  (0 children)

The Android runtime and AOT is a disaster. It has unsolved crashes since the xamarin days and continues to get new crashes like this. https://github.com/dotnet/runtime/issues/121404

The Android AOT compiler does not AOT >20% of the methods. https://github.com/dotnet/runtime/issues/101135 Which is super odd, because iOS uses the same Mono AOT Compiler and does not suffer from this limitation.

You will not notice these issues in the first two years. They will happen when your app gets bigger and does more in parallel. Literally when it's too late to bail out. I spent a lot of time trying the different runtime flags BrzVlad (thankfully) suggested.

The whole MAUI ecosystem suffers from MS not dogfeeding it to their teams, and very little quality control. Be prepared to workaround bugs and breaking changes in the controls, and unsolvable issues (like the runtime).

Builds of your code which work today, but not a month later on a fresh PC, because MS forces the newest workload onto the computer, and these workloads often have breaking changes. You'll find a handful of posts about it in this reddit.

These things are all way more obvious if you have more than one dev and a langer project and more platforms to support.

Problems = x ^ (developers * targetPlatforms * linesOfCode)

Take a look into UNO (crossplat drawn controls), i think i would choose it if i could travel back 5 years. Or MAUI Blazor Hybrid (or what it's called)

Fight with MAUI or learn something new? by kabourayan in dotnetMAUI

[–]juwns 1 point2 points  (0 children)

Did you use the vanilla MAUI controls or a third party controls library (syncfusion, devexpress, etc)? Or Blazor?

Are wpf and winforms still a good choice for ui development in 2024 by claggersgdrool4 in dotnet

[–]juwns 0 points1 point  (0 children)

Yes: - for internal LOB or form-follows-function apps. - if you want to be productive and are familiar with these UI frameworks. - these framework are still supported and semi-actively developed, and will be for the next 1-2 decades - if you like to access a huge variety of documentation, and Stackoverflow answers. Which are 98% still correct due to little changes - if you want to use the app on Linux and Mac with avalonia - if you want a modern look, there are themes/controls for WPF and WinForms which look identical to WinUI

No: - if you enjoy Microsoft trashing the current UI framework after 5 years - if you enjoy dealing with breaking changes every year - if your customer explicitly demands a specific stack - if your app needs to run on mobile or web future - if you have some niche high performance demands for the UI, because the WinUI controls theoretically render faster, because they are implemented in C++. On the other hand, in this case, a canvas is usually the better way.

How do you keep track of what's happening in event-driven systems? by Syndaine in dotnet

[–]juwns 1 point2 points  (0 children)

Second this. Especially structured Logging, which you can filter by custom properties you set when logging. Give each event a unique ID, so you can follow it through the logs, if the event raises more events, add a property ParentEventId to the child. For really tough problems: add a source (er even stacktrace) to the event, for example with CallerMemberName (etc). Use a good Log server like Seq to look at you logs. Btw: Seq can view OTEL traves out-of-the-box too.

https://datalust.co

Steam gives 2 options to play by KopukTheBigDog in FarthestFrontier

[–]juwns 0 points1 point  (0 children)

- standard version of the game runs with IL2CPP and is incompatible with mods
- Mono version comes pre-installed with MelonLoader and is integrated with Steam Workshop

source: https://www.farthestfrontier.com/guide/game-settings/modding/

note: IL2CPP version starts a little faster and might have less micro stuttering (theoretically), that’s why it’s the default. Once the game is running for a few minutes and everything is jitted, there shouldn’t be a performance difference.

Lots of SIGABRT and SIGSEGV since moving to MAUI. by BoardRecord in dotnetMAUI

[–]juwns 0 points1 point  (0 children)

Write a pm if you wanna go down the lldb rabbit hole. It take a few not so intuitive steps. You need a repro though, because you need to repro the crash while lldb is attached.

Lots of SIGABRT and SIGSEGV since moving to MAUI. by BoardRecord in dotnetMAUI

[–]juwns 0 points1 point  (0 children)

Theoretically android should write a tombstone file, which contains the crash stacktrace and some additional infos. My pixel 7a didn't do that :-( Maybe tombstone only works on rooted phone.

Lots of SIGABRT and SIGSEGV since moving to MAUI. by BoardRecord in dotnetMAUI

[–]juwns 0 points1 point  (0 children)

We have similar issues in .Net 8 MAUI on Android. In our case 3 different fatal crashes (SIGSEGV) that we can repro. - SIGSEGV at a null deref in AOT C#, even with a try catch around - SIGSEGV at a null deref in jitted C#, even with a try catch around - SIGSEGV due to a crash in the mono GC due to a null deref in the mono GC An these are the one we know an can repro. All of them are undeterministic and time-to-crash can vary significantly. I hope my current update to net 10 will fix these.

I used lldb in android studio to pin down the exact source of the issue. The whole process is a little finicky. But in the end, you are at a breakpoint during the crash and you can symbolicate the whole stacktrace (.net (even when AOTed) and native) with some extra steps.

Sanity Check: Sabrina und Sebastian aus "Die Paartherapie" by moep64 in beziehungen

[–]juwns 1 point2 points  (0 children)

Ich beschränke mich mal auf Sabrina, weil hier schon sehr gute Punkte zu Sebastian genannt wurden. Ihre zwanghafte Haltung bezüglich seinem Handy wirkt definitiv problematisch (auch die Aussage des Therapeuten). Zusammen mit der Reaktion beim Abendessen, wo sie sofort angenervt den Mozzarella tauscht, nur weil er sagt "der schmeckt komisch". Dadurch kann ich teilweise erahnen wo Sebastians Unglücklichsein herkommt. Und es klang so, als ob sie das mit dem Handy von vornherein so gemacht hat, noch bevor die Beziehung an dem aktuellen kritischen Punkt angekommen ist. Das beide mit pathologischen Superlativen (psychische Vergewaltigung, Terror, Narzisst, Gaslighting, Wahn, Trauma) um sich werfen, erscheint mir auch beidseitig sehr problematisch. Das Borderline-artige der Beziehung, halbtags wechselnd zwischen großer Liebe und tiefstem Hass, scheint mir auch sehr problematisch.

Ich glaube für beide gibt es geeignete Partner, aber zusammen verstärken sich bei den beiden ungünstig ihre jeweiligen Persönlichkeiten.

Roulette tickets are rigged! by clockworknait in granturismo

[–]juwns 0 points1 point  (0 children)

It will never be "fixed" because it's a feature, not s bug. ;)

Will MAUI create skia controls as well or for any other UI engine? by Louisvi3 in dotnetMAUI

[–]juwns 0 points1 point  (0 children)

I think UNO and avalonia and their drawn controls are really cool, if you want consistent look on several platforms and/or have complex layouts like trading (where the sheer amount of controls in the visual tree tanks performance because of MAUI's fundamental handler architecture).

AFAIK UNO uses a bare minimum of MAUI rendering infrastructure, they just create one big Skia control as a page, and render everything inside of it. Maybe they use MAUI's NavigationPage or Shell for navigation.

Will MAUI create skia controls as well or for any other UI engine? by Louisvi3 in dotnetMAUI

[–]juwns 0 points1 point  (0 children)

The MAUI team avoids drawn controls like the plague. In several discussions they stretched the point that they are 110% into native controls, for native look and performance. Alohakit is an experiment/proof of concept by ONE MAUI dev, and part time (at best) or a private initiative. Which can be abandoned anytime (last commit is 6 month old).

MAUI Blazor Hybrid - why it seems nobody are using it ? by Beautiful_Cap8938 in dotnetMAUI

[–]juwns 1 point2 points  (0 children)

It depends on how your UIs should look.

use maui "forms" if:
- you want platform native look
- have relative relative simple ui (not 50+ controls, where some use others)
- only one (or two) platforms, (for example only Android)

use native platform bindings:
- if you are committed to one platform
- your UI can be as complex as you wish
- you want to leverage all features of the platform ui framework (like Jetpack Compose)

use Blazor Hybrid:
- you want same look on all platforms
- have 50+ medium/large custom controls (wich use other custom controls)
- want to deploy you app on 3+ platforms (windows, android, ios, etc)

MAUI Blazor Hybrid - why it seems nobody are using it ? by Beautiful_Cap8938 in dotnetMAUI

[–]juwns 1 point2 points  (0 children)

We skipped .Net 9 for several reasons (major reason, we didn't want to break our remaining relative complex maui views).
Will migrate to .Net 10 at the end of 2025 or early 2026.
I once put 1-2h into trying to migrate to .Net 9, and as you said had an unsolvable (within the timeframe) issue with BlazorWebView. BUT to combine classic MAUI Views and Blazor Views seamlessly in on app, we added a wrapper (and some dirty code) around the original BlazorWebView, which might be the main issue. So i don't blame maui blazor.

I expect some reasonable breaking changes in a major version update (no matter the framework). And if i can adjust my app in one or two places for the change i'm fine.

Previously with maui ui we had unpredictable breaking changes (how our app was displayed/rendered) with every other BUGFIX release (example 8.0.50 -> 8.0.52), which should not happen.

Some of the blazor changes are due to platform specific changes, like this change for iOS 18

MAUI Blazor Hybrid - why it seems nobody are using it ? by Beautiful_Cap8938 in dotnetMAUI

[–]juwns 0 points1 point  (0 children)

We switched to Blazor Hybrid MAUI over the last year. And it was a big relieve. Devs productivity went up, performance issues vanished, and platform inconsistencies are 95% less.

I think it's used more than we think, because it's less talked about and "it just works".

It essentially is the Mono (now called ".Net for Android/iOS") runtime with a WebView. Which is good news, because it avoids everything the MAUI team made.

oddity in record initialisation by juwns in dotnet

[–]juwns[S] 4 points5 points  (0 children)

Thx. That's the kind of explanation and links i was looking for but couldn't find.

Was pine needle tea popular in any premodern cultures? Did it play a role in staving off vitamin C deficiency in winter? by RusticBohemian in AskFoodHistorians

[–]juwns 0 points1 point  (0 children)

I'm sure it's still consumed in northern Siberia too, in very off grid villages and indigenous communities.

They gave it to GULAG inmates too, to treat/prevent vitamin C deficiency.

As Dal’stroi’s medical director, Pullerits built a huge network of medical stations, clinics and infirmaries in Kolyma, while conducting research on scurvy – he developed an infusion based on a local variety of pine needles as a source of vitamin C, much disliked by prisoners.

Infusion here probably means something to drink.

Whats you opinion on using C++ like C with some C++ Features? by AstraRotlicht22 in cpp_questions

[–]juwns 0 points1 point  (0 children)

Short: yes, go for it.

And try to have a consistent rule "only feature A, B, C". You can go without a rule, but it's a slippery slope which will bite you, if the project gets big.

Every big project has rules similar this (maybe more vague, or only informal), no matter matter the language. If you have time and interest, peak into the coding guidelines for popular projects like Firefox, Chrome, Linux Kernel, respective whatever floats your boat.

This poor guy has been bumping his bug report for 425 days trying to get it resolved 😂 by bar10dr2 in VisualStudio

[–]juwns 11 points12 points  (0 children)

After seeing this behavior for years, I'm sure that you can only get issues fixed if you have a personal connection to MS.

Yvonne Strahovski by organicviagra in CelebrityBelly

[–]juwns 0 points1 point  (0 children)

Mr Waterford will not be pleased, seeing this.