I’m a seasoned programmer on Mac/Linux/iOS, and want to get into Windows application programming. Problem is, every time I try, Microsoft comes in a week later and discontinues the current framework in favor of something else. Because I need to use a C++ library, I started with C++/CX, just to be told C++/WinRT was the way to go etc.

I’ve lost track of what the current one is now and what has been discontinued, and can’t for the life of me find recent information on the web.

Anyone here know where I can find info on what’s the current one? It seems C# is still the main language, but what UI framework does one use? It used to be UWP, but now it seems WPF is back … ?

My constraints are: I’m making Windows desktop applications, I need to be able to call into C++, and I want it to look like a modern application. I also need to create my UI from code (based on files provided by the user), not from XAML files.

  • dohpaz42@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    ·
    edit-2
    9 months ago

    Believe it or not, this is a similar problem in web development. Every week or two there is always some new and shiny framework that is top dog and a must use. My best advice is to just pick one framework that you’re comfortable using and stick with it. Ignore the new and shiny beyond that and focus on your app. Otherwise you’ll be chasing the dragon forever.

  • RonSijm
    link
    fedilink
    arrow-up
    7
    ·
    9 months ago

    The microsoft way is probably still WPF, yea. Though there are some articles every once in a while asking “Is WPF dead?” etc

    A good alternative is Avalonia, syntax wise pretty close to WPF, but more community driven and cross-platform

    • uliwitnessOP
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

      WPF with … C#? C++/RT? … is there any place I can get this info from MS so I don’t always have to ask friendly strangers on Lemmy? :D

  • BatmanAoD
    link
    fedilink
    arrow-up
    5
    ·
    9 months ago

    Are you sure the frameworks you’ve tried are actually “discontinued”? C++/CX is still supported, it’s just not recommended because WinRt is standard-compliant (CX uses compiler extensions) and has some other advantages. UWP is also still supported.

    • uliwitnessOP
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

      Win32 is also still supported on Windows, and I cobbled together half an implementation using that (but had to do way too much work to have my app not look like Windows 95), but on all other platforms, when the platform vendor makes announcements of moving away from a technology, you don’t start a new project on an old platform. So I’d rather use whatever gets attention from MS, and new features, and looks right.

  • MajorHavoc
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    9 months ago

    every time I try, Microsoft comes in a week later and discontinues the current framework in favor of something else.

    This is the way.

    I have nothing useful to add, as I noped-out to become a full web developer, for exactly this reason.

    If I desperately needed to call into C++ libraries, I would just build the whole thing in C++. And you’re right, it won’t look modern.

    That said, it sounds like you’re asking the person running your app to give you an unprecedented amount of trust in the modern age (running locally, unsandboxed, running code from unmanaged libraries, presumably outside an app store ecosystem).

    If you have users, in that situation, I’m guessing you have a deeply compelling solution.

    And if I were in those shoes, I would build it 100% in C++ and let my users live with it looking old school. They’ll notice the appearance once or twice, then they’ll notice all the more important functionality for a lot longer.

    • sjpwarren
      link
      fedilink
      arrow-up
      4
      ·
      9 months ago

      This is definately the way with microsoft. Use this new shiny framework… 18 months later. No Use this one its’ much better, just rewrite all your code again! 18 months later…

  • onlinepersona
    link
    fedilink
    English
    arrow-up
    2
    ·
    9 months ago

    Maybe Slint is for you? If you so wish, it’ll be possible to run it on Linux+Mac too. In the future maybe even iOS and Android (they’re working on it). Supports C++, nodejs, and Rust.

    CC BY-NC-SA 4.0

    • uliwitnessOP
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

      Thanks, that looks like a cool project, but this is for a programming language with an integrated UI builder, so using another UI abstraction on top of the native UI would just lead to lots of awkward translation code on top of Slint’s.