Forum General
We are excited to announce that the Xamarin Forums are moving to the new Microsoft Q&A experience. Q&A is the home for technical questions and answers at across all products at Microsoft now including Xamarin!

We encourage you to head over to Microsoft Q&A for .NET for posting new questions and get involved today.

Is Xamarin Forms + C#.Net a viable solution for large desktop applications

DelpierreDelpierre Member ✭✭

Our company owns a large medical software that's today limited to Windows Platform.
This software package is a big piece in terms of size (>600 dialogs, 1600 files), instruments to which it connects to (medical devices, cameras) and performances (image support up to 2 GB per image, high speed reads, imaging data reduction...).
For the next generation, we were targetting C#.Net + WPF but that would still limit us to Windows platforms only.
We are looking at C#.Net + Xamarin Forms but it is not clear to us if this technology is suitable for large desktop applications on Windows and Mac.
Most of the references to it are for mobile apps that are by nature small applictions.
Are there well known large cross-platform desktop applications developped with Xamarin?

Best Answers

Answers

  • DelpierreDelpierre Member ✭✭

    Thanks John, that helps.
    Our plan is to use the Xamarin Forms whenever it is possible and go to a platform-specific UI when needed.
    Probably most of the main screens will be platform-specific with only basic screens that use Xamarin Forms.
    The main part of my question is confirm that Xamarin has a sufficient support for macOS which would mean that:

    • most Xamarin Form controls work with the macOS and Windows 10
    • most platform macOS native controls can be included in a macOS platform-specific UI.
    • most platform Windows native controls can be included in a Windows platform-specific UI (using WPF for example).
      As of today, we have serious doubt in this area as 99% of the Xamarin literature is about mobile.

    Is it realistic to rely on Xamarin to develop a professional desktop application for Windows and Mac?

    I agree that getting the input from a Xamarin staff member would help a lot.

  • DelpierreDelpierre Member ✭✭

    Since my previous posts, I've played with VS2017 and the VS2019 Preview.
    My feeling is that Xamarin is still completely oriented to mobile devices.
    The development of Desktop applications (Windows mainly) may be possible but it looks like it could be a nightmare as VS is terribly slow...
    Has anyone an experiment in developing a Windows / MacOS cross platform desktop app?
    I'm kind of back to square 1: "Are there well known large cross-platform desktop applications developed with Xamarin?"

  • oclandioclandi Member

    Hello Delpierre,

    did you make any further steps on this topic? I am in the same boat: a large medical (imaging) application which is windows based.
    I would like to have Mac support, and as much as possible a single codebase.

    Options for cross platform:

    • Xamarin/.net
    • Embarcadero Delphi
    • Qt/C++
    • Cross platform C++/HTML UI.
    • Cross platform core/ platform specific UIs

    Each solution has strong advantages and drawbacks.

  • cbdcbd Member ✭✭

    You can get versions of the .NET Core to run on MacOS and Linux.
    Obviously there will be changes/fine tuning for each platform but it may be a viable solution if you don't need mobile support.

  • jnikjnik Member

    Hi @Delpierre @oclandi

    Please can you share what you ended up using? Some insights would be very helpful for us sitting in the same boat :)

    I guess another option may be Electron+.Net Core, or Blazor (but not sure if those are mature enough for large projects).

  • batmacibatmaci DEMember ✭✭✭✭✭

    I am late to the party but i want to give you my 2 cents as a person who developed a large Uwp applications with xamarin.forms.
    First of all let you know 2 things.
    1. xamarin.forms is mobile oriented and xamarin team doesnt care about UWP. I have recently fixed a CollectionView bug in UWP. actually bug was fixed in October 2019 for Android and IOS but not for UWP. i came across to it 20 days ago and forked, fixed myself and sent a PR. 20 days such crucial bug for CollectionView which is replacement for ListView (it is core element now). they didnt even review the PR. So surely xamarin team doesnt care about UWP.
    2. UWP is not native using xamarin.forms. You have no navigationView, you have not ListView, you have no GridView etc core UWP elements. You can still get a working application but if your priority is fluent design. This is not possible. if you check docu most of the UWP tools are translated as frameworkelement which is some custom element.
    3. As John said, if UWP is so much lagging, WPF and Mac are just recently added. Basically Uwp, Mac, Wpf are just marketing tools to say "look xamarin.forms supports more platforms" for Xamarin team. But in reality they dont really improve them.

    You have still power of .net standard. So what you can do, you can use xamarin.forms for Android, Ios and develop UWP and WPF as native by sharing services, helpers, models, viewmodels between those projects.

  • NMackayNMackay GBInsider, University admin

    Sad tale of Microsoft's lack of desktop strategy this.

  • TimDavisTimDavis Member ✭✭
    edited July 21
    Its Amazing the Xamarin Forms bashing I see.. Maybe i'm naive but I am celebrating the fact that us c# developers can now write truly cross platform apps. I developed a music Midi application for the fun of it. It uses the local midi and audio.. it looks and runs the same on windows, linux, osx, android, and ios to boot.. (its a graphical piano in xaml)

    . Dont forget that Xamarin was based on Mono and alot of work was already done to support most hardware interfaces. Various packages existed well before M$ bought Xamarin. Then there was the UI issue. They fixed that with XAML and anyone who worked in WPF knows how powerful the MVVM is.

    Someone mentioned "basic forms" . With the power of XAML and MVVM cross platform there is no limit to the UIs you can build.. animated videos, animations, 2D/3D drawing with skiasharp and only minor platform tweaks that are handled in the same XAML markup.

    For a medical app you may end up going microservice route anyway. Apps are moving away from monolithic. So one service would do one thing (think x-ray).. heart monitor.. etc. With microservices you can mix and match platforms and your UIs are bound to web services (even web services running on a local intranet). What needs to be mobile can easily be spun up.

    But for me.. right now.. there is one glaring issue. I cant find a way to have more than one form.. i would like to be able to have multiple dockable windows.. so I read more on how to hack something together. And UWP? Think Silverlight.. finally dont forget.. you can use any cross platform apps in your xamarin forms.. (vlc, ffmpeg, naudio, etc)
  • DelpierreDelpierre Member ✭✭

    FYI, the company decided to go with WPF because:
    1. Cross-platform was a too low requirement
    2. Xamarin seemed too mobile oriented.
    We are using an MVVM pattern that is suitable to replace the WPF UI with a Xamarin UI if time comes.
    Thanks for you feedback guys.

  • batmacibatmaci DEMember ✭✭✭✭✭

    @TimDavis yes you can always find a different way when you program a desktop application with xamarin.forms. i developed also large uwp application for my personal projects. If there wasnt a tool exist, i went other way around. for example, i have community license from syncfusion, i utilized their tools a lot because i am not making 1M dollar reveneu.
    But if you are working for a company, as i am freelancer, they have a design team, they prepare you a design and they want this to be exactly designed. You cannot use 3rd party tools like synfucsion because it costs them, and most of the native designs they expect, you tell them, sorry it isnt exist but there is a another way. For them this another way looks like a hack. They dont want it. I give you an example;
    UWP native tabbedpage is done using navigationview horizontal, not using Pivot. Pivot has a different purpose but xamarin forms implements pivot for tabbedpage. Or as i said, no gridview. they came out with collectionview which supports gridlayout but funny fact is that you cannot scroll using mouse on desktop when it is horizontal.
    This was reported long time a go. actually it is 2 lines of code fix. I fixed in 1 hour provided a test case also in my PR. i am waiting this PR to be merged almost a month.

Sign In or Register to comment.