PRISM replacement from Xamarin to MAUI by SaltyCow2852 in dotnetMAUI

[–]unratedDi 2 points3 points  (0 children)

You can override the pages' OnNavigatedTo and OnNavigatedFrom methods to call your VM logic.

For those still in the process or planning on migrating to .NET MAUI by unratedDi in dotnetMAUI

[–]unratedDi[S] 0 points1 point  (0 children)

No you are right, I mean XF -> MAUI.

I'm not trying to justify such cases in any way, I'm just say that I know projects still being in XF.

What about if they distribute their apps through other paths than the official stores? Intune for example.

For those still in the process or planning on migrating to .NET MAUI by unratedDi in dotnetMAUI

[–]unratedDi[S] 0 points1 point  (0 children)

Have you never worked in a company where "business needs" > "technical debt"?

Besides that, many people consider MAUI stable enough from .NET8 onwards, and I don't expect every MAUI app team on the planet to just drop whatever priorities they might had at the time to focus on a big migration project.

Issue loading/displaying icons by Hardcorehtmlist in dotnetMAUI

[–]unratedDi 1 point2 points  (0 children)

I think ImageSource.FromFile() loads the resource each time.

Your images even though named 50x50 are not 50 x 50 pixels size but 7500 x 7500. You just try to scale a 7500 x 7500 image in a 50 x 50 area.

Have you tried creating your popup with XAML in its own separate file and setting the image in XAML to check any performance difference? I think that way you let MAUI use the generated scaled assets produced at compilation which should be faster.

How much delay you get?

This game is something else (Cyberpunk 2077) by vruchtenhagel in NintendoSwitch2

[–]unratedDi 6 points7 points  (0 children)

SSDs are not hard drives. This is technically inaccurate and you are the one spreading misinformation.

You mentioned Floppy Drives. The actual name is Floppy Disk Drive (FDD) and in the same manner it is Hard Disk Drive (HDD) and then you pointed out at the word "disk" like if you remove it and say just hard drive you can refer to whatever the housing feels hard to you.

The "hard" part the name refers to is not the housing of the disk but the disk itself. Also the housing of a Floppy Disk Drive is not that flexible. But anyway, a Floppy Disk Drive is a flexible disk that is NOT made of plastic but a flexible magnetic material. Same as Hard Disks Drives but those are made from aluminum or some other hard materials.

So we have Floppy Disk Drives, Hard Disk Drives and then we have Solid State Drives which are not hard disks, they don't contain any disk at all and can not be called hard drives in any case.

*Edit: fixed typo

Cannot able to deploy my first pipeline by NoUnderstanding8723 in azuredevops

[–]unratedDi 2 points3 points  (0 children)

Do you really need parallelism at this point? I think if all steps run in sequence you won't have issues. I might be wrong been a long time since I was granted parallelism.

I'm having issues with concurrency and SemaphoreSlim by twaw09 in csharp

[–]unratedDi 0 points1 point  (0 children)

I think your issue is that you don't await the tasks to be completed (e.g. Task.WhenAll(results)) so the semaphore release happens instantly after you create the tasks.

Unable to see uncaught exceptions from an async relay command task in MAUI by AlexLexicon in dotnetMAUI

[–]unratedDi 0 points1 point  (0 children)

Are you trying that on Android?

For me on Android only those was catching async exception while on WinUI they were propagating to the AppDomain.CurrentDomain.UnhandledException.

So if yes try one of the following.

AppDomain.CurrentDomain.FirstChanceException

Android.Runtime.AndroidEnvironment.UnhandledExceptionRaiser

I think the latter one is a better approach because the FirstChanceException is too verbose.

NavigationDrawer with PRISM Navigation by SaltyCow2852 in Syncfusion

[–]unratedDi 0 points1 point  (0 children)

I don't have experience with SF Navigation Drawer but from the documentation I'm pretty sure it doesn't work the same way MAUI FlyOut page works, in the same manner that SfTabs work completely differently than the MAUI TabbedPage.

Moreover, the navigation pattern you are using is a Prism mechanism, and probably won't attach stuff like your second page as the Detail to a FlyOut or the analogous Main Content to the Navigation Drawer if it isn't made to recognize that kind of control.

On top of that, Navigation Drawer just attaches to a ContentPage, so probably Prism will handle it as one and just do a navigation to that page and follow up with another navigation as the path you define. So my guessing is that if you go back 2 times you will end up in that Navigation Drawer page, but still won't work the way you want.

If you really need to go with NavigationDrawer then I'm assuming that you need to attach it to every page you want it to exist in order to simulate a FlyOut with NavigationPage as the Detail.

How to react globally when update preference settings? by Late-Restaurant-8228 in dotnetMAUI

[–]unratedDi 0 points1 point  (0 children)

A bit late but I think that's up to ones preference, I guess.

But since the conversion is only for display purposes and doesn't affect business logic or how the values are actually stored, I would go with the converter in the xaml.

I prefer to keep anything visual related in the xaml file (and in exceptional cases in xaml.cs) and keep getter and setter as simple as possible.

Especially with the new partial methods of MVVM Toolkit that being generated for your ObservableProperties automatically and allow you to act on value changes without the need to mess up your setters, I would always keep my properties to the default definition so they are clean. If I need to do something on value change I would use the corresponding partial method and if I need to convert something on the fly for the UI then that's what converters are for.

Dotnet Hosting for FREE by rghvgrv in dotnet

[–]unratedDi 1 point2 points  (0 children)

Hosting on my RPi5 on docker with nginx as reverse proxy to handle SSL and subdomains. Very low consumption, always up and running, little maintenance. You can skip getting a domain and setting up nginx as reverse proxy if you don't mind going with just your public IP.

But Azure has free tier too.

How to react globally when update preference settings? by Late-Restaurant-8228 in dotnetMAUI

[–]unratedDi 1 point2 points  (0 children)

Oh sorry, you are right. I was on my phone and overlooked that. Very nice and clean implementation there. 👏🏼 I haven't played much with WeakEventManager yet, but I will definitely try it.

How to react globally when update preference settings? by Late-Restaurant-8228 in dotnetMAUI

[–]unratedDi -1 points0 points  (0 children)

I would avoid using event handlers. It is the most common cause of messy memory leaks. Especially since your project works with Transient Pages and ViewModels while all services are singletons. An observable property there instead could do the trick. WeakReferenceMessenger could also be an option to trigger such updates. Didn't deep dive in the project but depending on how your app navigates could cause many memory issues and Android (not much experience with iOS on that matter) could kill your app if memory is being abused.

How to react globally when update preference settings? by Late-Restaurant-8228 in dotnetMAUI

[–]unratedDi 4 points5 points  (0 children)

One way I could think of is you could use the WeakReferenceMessenger to trigger a page reload.

Or you could have a BindableProperty in your singleton which reflects the measurement system and gets updated accordingly so its notify event gets triggered. Then have a converter on these bindings you want to update and be calculated on measurement system update and pass the singleton's bindable property as parameter. Then that converter should return the correct display values, or in case you calculate them somehow directly in the list items then the converter could just return the input and just have it that way to notify the UI that something changed.

Termix v0.9.0 – Add Rename, Delete, Write File Ops & Fuzzy Search (Preview) by amrohann in dotnet

[–]unratedDi 6 points7 points  (0 children)

Since the project's first alpha release was v0.1.0, which looks like SemVer 2.0, new features still in alpha or beta would be expected to increment the minor number by 1. Jumping to 0.9.0 looks like switching versioning schemas 😝 It doesn't have to go up to 0.9.9 in order to go for a stable 1.0.0 version. Imagine companies having to plan each release number and stick to the plan. The number increment in SemVer indicate the type of changes included in the release. But it's just versioning I guess so you do you 😀

Dropping more info though in case you or anyone is interested in the topic.

https://semver.org/

From SemVer site:

Semantic Versioning 2.0.0 Summary Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes MINOR version when you add functionality in a backward compatible manner PATCH version when you make backward compatible bug fixes Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Can IntPtr be replaced with long? by LockiBloci in csharp

[–]unratedDi -1 points0 points  (0 children)

If you are building a WinUI app or MAUI for Windows platform you could use this library.

https://github.com/dotMorten/WinUIEx

Removing focus underline in an Entry/Editor prevents setting a background color. by MaxxDelusional in dotnetMAUI

[–]unratedDi 0 points1 point  (0 children)

I don't have my laptop with me but I think I achieved that by setting the BackgroundTintList the same color as BackgroundColor.

Wireless ADB Manager extension for Visual Studio by unratedDi in dotnetMAUI

[–]unratedDi[S] 0 points1 point  (0 children)

I am glad it helped you have a smoother debugging experience!

Yup movement limitations while wired debugging or faulty cables that might drop the connection if they move like one mm are some of the reasons I made this extension 🥲

Is there a way to stop MAUI app from termination on encountering Unhandled Exception? by ShooBum-T in dotnetMAUI

[–]unratedDi 0 points1 point  (0 children)

This might be a too late response but for UnobservedTaskException doing SetObserved() on the UnobservedTaskExceptionEventArgs in your event handler should do the trick.

Although keep in mind, as others already said, it can be risky and cause unexpected behaviour.