dotnet / core

.NET news, announcements, release notes, and more!
https://dot.net
MIT License
20.99k stars 4.91k forks source link

Theme: .NET has a great client app development experience #5423

Closed maddymontaquila closed 1 year ago

maddymontaquila commented 4 years ago

Summary

With .NET 6, we want to bring mobile developers forward to a unified .NET development experience and enable developers investing today in web and client development experiences to bring those investments to the desktop. In .NET 6, we will be integrating Xamarin into the .NET SDK, bringing support for the latest project system, BCL, and Target Framework Monikers to align with the rest of the .NET ecosystem. We want to expand Blazor to allow Blazor applications to run as native desktop applications, boost mobile application performance, improve inner-dev loop experiences, and maintain app size with Xamarin.

Epics

Note: These experiences are proposed for .NET 6 and not yet committed. Epics under this Theme:

josepvg commented 4 years ago

Ok, now we will be able to compile Blazor to native apps?!?. I must admit I'm getting a bit lost in this multiplatform development world. I'm currently using Xamarin for my mobile development. But now if I understand this correctly we have 3 options:

  1. Xamarin (android/ios/uwp).
  2. Platform UNO ( android/ios/uwp/wasm/windows/macos)
  3. Blazor (wasm.... android/ios/uwp)

I get the feeling that all three are tackling the same problem. Which one is the best option?, Which is most likely to be supported for the longest time? I really don't want to invest in learning all three.

moflaherty commented 3 years ago

Would love to see Fluent UI ported to Blazor for a rich set of controls and styling. That would amp up the native developer experience.

Luiz-Monad commented 3 years ago

Know what would be cool, if XAML worked in all platforms, including webbrowsers.

There isn't any good multiplatform UI library, everyone seems to be going the wrong way, trying to use/emulate web tech to do UI (ReactNative/Flutter). We should do the opposite, bring native UI libraries to the web instead, because they are better.

sinand99 commented 3 years ago

Microsoft should calm down on this cross-platfrom craziness. I don't want stupid bloated web controls on my desktop. Those belong to the browser only.

petemidg32 commented 3 years ago

@Luiz-Monad Have you not heard of Ooui ? That is a .net core library that lets you add (say) a .net core mvc project into a mobile app alongside the ios and android projects, and then just run the app targeting this project into a browser. I have tried doing this using instructions available online and found it not a smooth process: I had to remove the button style I was using (via a static resource) and then remove the button property 'TextTransform'. That's what I've discovered so far!

dotMorten commented 3 years ago

My main issue with client app dev support, is that we've lost the ability to have a webrequest cache in .NET Core that we had "built in" in .NET Framework. This can significantly slow down repeated web-requests in a client app that will often check back on URLs for for instance status updates or fresh data, but not taking advantage of cache-control and etag headers, causing increased network data-load. This also to some extent applies to iOS/Android where NSUrlSessionHandler actually provided this capability as well, and SocketsHttpHandler doesn't.

Building this yourself in an efficient and multi-threaded way that adhere to the RFC spec is no easy task (I did it, and it was A LOT of work - most people won't do this work, and I'd prefer deleting my own implementation and rely on platform-level caching that the developer can control in a way that affects all 3rd party libs the same way).

mairaw commented 1 year ago

Bulk closing .NET 6 epics and user stories. If you think this issue was closed in error, please reopen the issue and update it accordingly.