Standard Architecture for Building Metro apps - c#-4.0

I am new to Metro apps...and have been developing on WPF(MVVM) for some time...
I also saw that WPF like Binding Engine is also there with Metro apps ..
So here i ask a few question ..
What is a suitable architecture to develop a maintainable Meto app.
Is it
1) MVC
2) MVVM
Are there any framework that could be used to develop the same using the above Architectures.
Can MEF be used with mero apps (I dont think so but still need to confirm).

MVVM is a totally fine choice and a MVVM Light for WinRT is available. In regard to MEF there is a SO question that elaborates on this ( How to load/import dll with MEF out of metro app? )
Edit:
MVVM Light Download for Windows 8 http://mvvmlight.codeplex.com/releases/view/88894
Announcement: http://blog.galasoft.ch/archive/2012/06/03/mvvmlight-v4-for-windows-8-rp-is-available.aspx

Related

Developing C++ WinUI3 Desktop App with MVVM

I am looking at the WinUI3 framework with native C++ support for desktop applications.I cannot see any MVVM support as in C#. Should I expect it will be never supported and go i.e. with MVP with some code behind, or I am missing something?I cannot find any sample.
When you are talking about automatic tooling for XAML than you have to wait until 2024 to use it with C++. This is the estimated timeline from MS as they first hebr yo push a reflection API into the C++2023 standard.
But the MVVM fundamentals are perfectly working. Just write it out by hand and enjoy a developer experience last seen in 2006.
You can do MVVM by implementing interfaces such as INotifyPropertyChanged manually. Check out this sample which showcases how to implement the interface.
The cppxaml library (part of the unpackaged NuGet package) has been providing some help with MVVM though it's very barebones compared to MVVM frameworks available for .NET apps.

How to write a library for UWP using C++/winRT (Visual Studio 2019)?

This should not be so difficult!
In normal C++ one can write static or dynamic libraries that can be used in multiple application projects. I want to do the same thing for UWP apps using C++/winRT.
I have written a simple C++/winRT UWP app that discovers Bluetooth Low Energy Devices. I used the Core UWP project template that set up all that pch.h stuff. What I want to do is to make a library out of the code I wrote that did the Bluetooth work so it can be shared across many UWP apps but I have no idea which project template I should use to do that.
I have come to the conclusion that writing a Windows Runtime Component is not what I want. I am not making a run time component though I need to use runtime components for the Bluetooth.
In the end I will be calling that library from a Java application but that's off in the future.
All my problems would be solved if they had a Java/winRT option (a Java language projection in Microsoft-speak).
Note that the project selection interface in Visual Studio 2019 must be very different than 2017 as none of the demos I have seen online look like what I see.

Can WPF applications be run in Linux or Mac with .Net Core 3?

Microsoft announced .NET Core 3 comes with WPF and Windows Forms. So can I create a desktop application for Linux or Mac using .NET Core 3?
No, they have clearly stated that these are windows only. In one of the .NET Core 3.0 discussions, they have also clarified that they do not intend to make these features cross-platform in the future since the whole concept is derived from windows specific features. They talked about thinking of a whole new idea for cross-platform applications, which is not easy.
Source: https://youtu.be/HNLZQeu05BY
Update
The newly announced .NET 5 now aims in avoiding all this confusion by no longer calling it ".NET Core".
Update 2
With blazor client-side (releases on may, 2020), there is a new experimental project for cross-platform apps using webview that is in the works.
Source:
https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternatives-to-electron-for-hosting-a-blazor-desktop-app/
No with WPF or Winforms. But you still can develop desktop apps on Linux, with .NET Core, using other libs like GtkSharp or Avalonia
Well, the name itself says Windows Presentation Foundation. So it's primarily windows based.
But it is worth to be noted that the new UI framework, .NET MAUI that will be shipped with .NET 6 is cross-platform, with a single-codebase, single-project structure.
Currently in Preview at the time of writing, to be shipped in November 2021. Here's the roadmap.
Although it is not native dotnet core on linux, but it may be helpful - using wine.
I find a very useful comment in the discussion here, more details here
In other words, it is possible to use windows version of dotnet core under wine.
I didn't try it yet, but from the article I mentioned I can say it looks nice and might be an option.

xamarin.forms integration of zendesk chat

I am new to Xamarin development. And, currently I want to integrate the zendesk chat.
As per my RnD and after contacting Zendesk support center they are not supporting the xamarin yet.
Currently they have sdk for native android and ios respectively.
I need you expertize people's guidelines for the development regarding what scenario i should follow to achieve the same using xamarin.forms :
Integrate the both platforms native sdk's for xamarin in each platform and later call it from Xamarin.Forms by adding platform dependency using Device.OnPlatforms . ( I am not sure about this scenario, please suggest)
Create a jar/aar of Zendesk SDK and use it using binding library concept.( I am not sure it will be accessible into ios platform)
Kindly, suggest me the best approach for this.
Any sample reference for suggestions will be grateful.
Thanks in advance.
I think it's a mix of number 1 and number 2 (and a little extra).
You will need to create the Binding libraries for both iOS and Android. Xamarin has a good documentation of how to do this: Android/Java and IOS/Objective-C
Then you can go either with Xamarin Native (Xamarin.iOS and Xamarin.Android projects) adding the binding to each project. Or you can go with Xamarin.Forms but this will require a little more work as you will need to create an interface of the methods you want to use from the SDKs (most likely all off them) and create the implementations for each platform.
Let's say your interface is called: ISendeskSdkService you will need at least two implementations: ISendeskSdkServiceiOS and ISendeskSdkServiceDroid. These implementations will be on the Platform project and they will be calling the binding libraries you just created and added to each of these projects.
You will be developing your app on top of your interface and which implementation to use will be set on the application load when you are configuring your IoC.
Hope this gives you an idea.

C++ Metro UI Tiles

Is there any libraries to make the Metro tiled interface in Visual C++/MFC?
That is,
If you are going to deploy the App. on Windows XP, the library would emulate the UI elements of Metro in MFC/C++ in your App.
There are currently C# libraries which emulate the MetroUI but none in Visual C++/MFC.
It seems that BCGSoft is going to implement this control: they reported about it on their forum
the latest BCGSuite for MFC version 18.0 from BCGSoft has this features:
http://www.bcgsoft.com/featuretour/tour327.htm
http://www.bcgsoft.com/featuretour/tour329.htm
http://www.bcgsoft.com/featuretour/tour328.htm
It's not free, but very good looking

Resources