Live data from Hacker News

.NET MAUI: .NET Multi-Platform App UI

github.com

231–240 of 260 posts

Re: .NET MAUI: .NET Multi-Platform App UI

#231
post #228

Earlier quoted context omitted.

MAUI is open source, check their code Apple mentioned in their WWDC how they embraced data oriented code for SwiftUI wich gave them great performance by default

And how does OOP result in slower code?

indirections, abstraction cost, vtables, cache misses, slow datastructures etc etc etc

you might not see it on your i9 with 64gb of memory

but your mom's android phone will struggle

Re: .NET MAUI: .NET Multi-Platform App UI

#232
What the fuck is wrong with Microsoft these days? Why can’t they stick to a single UI library for more than a year? We don’t want n+1 incompatible UI frameworks. We want a single UI toolkit that you stay committed to, with rich controls and long-term support. I can’t believe that in 2021 WinForms is still the only sorta decent option to write Windows applications.

Re: .NET MAUI: .NET Multi-Platform App UI

#233

Has anyone done much with this? I wouldn't mind moving on from Windows Forms but the stuff that's come after seems like evolutionary dead ends that weren't really worth my time, so far...

Oddly enough, if you don't care about cross platform and pixel perfect placement, Winforms are probably the sanest choice. It's been ported to .NET 5 and they fixed some of the high DPI issues of the past (more coming in .NET 6).

Honestly I don't really mind Winforms except the messaging for a long time seemed to be "this is legacy technology."

Re: .NET MAUI: .NET Multi-Platform App UI

#234
post #228

Earlier quoted context omitted.

And how does OOP result in slower code?

indirections, abstraction cost, vtables, cache misses, slow datastructures etc etc etc you might not see it on your i9 with 64gb of memory but your mom's android phone will struggle

There is nothing on this list inherent to OOP. I’m fairly sure C++ is an OOP language (okay, multi paradigm), and their use is “zero-cost” abstraction. Vtables are only necessary for virtual functions, and you similarly have to decide another function implementation if the business logic requires that. Indirection, cache misses do happen with some managed OOP language, but that is due to objects being pointers to heaps instead of stack-allocated.

And slow data structures have yet again has nothing to do with it at all. I guess you mean datastructure containing pointers to objects, which is not always the case, and an implementation detail.

Re: .NET MAUI: .NET Multi-Platform App UI

#235

Earlier quoted context omitted.

Well this is a very loaded question. I’d tackle it by basic aspects of base development. - File Handling, IO, Streams - Data Storage, ADO.NET - Generics, Collections - Linq, Lambdas - Threading, Tasks - Cryptography I’d just build console apps, which you can do on Windows, Linux, or MacOS. Just install dotnet-core.

I'd recommend skipping ADO and learn Dapper/EF Core (this is harder to learn because its huge)

I'd consider going straight into Dapper. It's where you'll end up anyways if you start worrying about performance. Direct SQL queries and matching projection models allow for much more flexibility in all areas. If you are bad at SQL, EF Core won't save you for very long. Might as well learn it the hard way.

Re: .NET MAUI: .NET Multi-Platform App UI

#236
post #211

Earlier quoted context omitted.

SPA = single page application. You can make one entirely in Blazor and can host it on any static file host. Are you talking about Javascript specifically?

The difference of Blazor compared to a "classic" SPA (for example React + JSON API) is: Blazor Server: On a broken/poor connection there is no interactivity anymore Blazor WASM (=SPA): Keeps working when connection is lost, but everything is sooo slow classic SPA: Keeps working with lost connection and is fast.

Last year I created a Blazor WASM app[1] to get familiar with the tech. It was a game based on the board-game from the 60's called "Acquire". Although it's using the WASM hosting model, I did use SignalR to facilitate the real-time game play between players. The "practice" mode against the crude AI is entirely WASM and can be "played" as a PWA completely offline. I had intentions of finishing this out, but I got far enough that I learned what I needed to for now. I felt like it was pretty good considering it's probably less than 40 hours of work and I'm a mobile/desktop dev not a Web dev.

[1] https://acquiregame.azurewebsites.net/

Re: .NET MAUI: .NET Multi-Platform App UI

#237
post #213

Earlier quoted context omitted.

Xamarin.Forms isn't just unfinished. It's total garbage. Plus you can't share UI code between Android and iOS. You still need to build the UI's natively with no code reuse. Plus building and cross-compiling between Windows and Mac is hacky and painfully slow. I wish Microsoft would get rid of Xamarin. Every Visual Studio update has a bugfix for it, usually relating to iOS.

It's 100% UI code reuse between both platforms and MAUI takes it up to Mac and Windows. I've delivered several apps with more then hundred thousand users and the turnaround time for XF apps is generally 3-4x faster than native. You don't know what you're talking about clearly.

Same. OP says "going to die soon" of a framework that's been around for 9 years and is being invested in heavily. I've been working on Xamarin projects for years and have done very well with it.

Doing consulting I've done plenty of projects in React Native and played with Flutter a bit but Xamarin really is a great framework.

Re: .NET MAUI: .NET Multi-Platform App UI

#238
post #226
post #211

Earlier quoted context omitted.

The difference of Blazor compared to a "classic" SPA (for example React + JSON API) is: Blazor Server: On a broken/poor connection there is no interactivity anymore Blazor WASM (=SPA): Keeps working when connection is lost, but everything is sooo slow classic SPA: Keeps working with lost connection and is fast.

> Blazor WASM (=SPA): Keeps working when connection is lost, but everything is sooo slow Why should it be slow? Once Blazor WASM is loaded, it doesn't need a connection to the server anymore.

.NET runs in WASM around 20 times slower than in the server runtime. The application is just slow, not the network.

Re: .NET MAUI: .NET Multi-Platform App UI

#239
post #185

Fool me once shame on you, fool me twice shame on me. Windows phone/Xamarin, Microsoft really doesn’t understand what mobile developers want. What’s the point in investing to learn something when it will be in the hospice next year.

I feel the same way. I’ll bite once I see Microsoft release Outlook built with this.

New Outlook is being written with a web UI, using WebView2 on Windows. MAUI lets you do something similar (embed a web view, do your UI in that with Blazor or any other web tech).

Re: .NET MAUI: .NET Multi-Platform App UI

#240

Fool me once shame on you, fool me twice shame on me. Windows phone/Xamarin, Microsoft really doesn’t understand what mobile developers want. What’s the point in investing to learn something when it will be in the hospice next year.

Whats the story with Xamarin now? Does it have a present/future?

Xamarin is merging into .NET with .NET 6. MAUI is the new name/brand of what used to be Xamarin.Forms the cross-platform UI toolkit. The rest of Xamarin, the "binding glue" to build .NET applications for Android and iOS is now just "profiles"/"targets" of .NET 6 itself: net6.0-android and net6.0-ios.
Post reply on HN