building shared module between applications windows 10 - windows-10

I'm developing multiple windows 10 applications. and I have Inbox module which will be shared between all applications. this module like standalone project contains classes, xaml pages. How can I build this module to reuse it in all my applications? I don't need to copy, paste.
is windows runtime component suitable for this or which technique?

I'd recommend creating it as a UWP portable class library. You can then, if you wish, create it as a Nuget package which you can share publicly or just use yourself in your own apps as is.
I do this for my own applications as, like yourself, I share code across my apps.

Related

Porting complex legacy linux application to freertos (i.MX)

I am trying to port an existing C++ application running on linux currently to freertos.
My application has various custom libraries ( prj_lib1, prj_lib2, … prj_lib9) which I wanna link to one .exe(Project_main.exe)
I just need a bit of clarification on how to proceed in this scenario.
Do I need to create freertos static library for each library to link in the Project_main.exe or normal c++ static library should be good enough?
Currently what I am doing is, I have generated Project_main.exe by modifying an existing demo application. And then created normal C++ static library for different libraries which I link in the Project_main.exe.
Is this the correct way to go ahead? Or should I modify existing demo application to generate libraries too?
If there’s some other way please do let me know.

Windows Shell Namespace Extension from REST API

I'm working on a project which is an open-source cloud, similar to Nextcloud. It also provides a file upload and manage feature.
I'd like to have a shell namespace extension which displays those files and folders in the Windows Explorer. Moving, deleting, renaming and editing files / folders should be possible.
Data is available from a REST API or my Electron Client.
I know NodeJS and only some C#.
Is it possible whith NodeJS / Electron to create a shell namespace extension?
If not, are there any free libraries which make this task easier?
Windows Explorer uses 'COM' as its extension model. Therefore, technically speaking, you can use whatever you like, as long as it supports COM.
For NodeJS, you'd be dependent on the runtime to provide the COM support for you and to wrap the appropriate APIs. I'm not aware of any project that does this for the Windows Shell APIs. Here is one for the WinRT APIs.
For C# (.NET), again you'd be dependent on the runtime for COM support. .NET does expose that to you; although it is messy. There are a few projects which wrap the shell APIs and try to hide the COM interop goo as best they can for you.
Here is an open source one.
Here is a commercial one.
Be aware that Microsoft advises against building shell extensions which require a runtime (EG: .NET). The runtime may be loaded into processes that aren't expecting it. Therefore, in practice, Microsoft expects you to use C/C++ to build shell extensions. Here is the Microsoft supplied sample project. It is written in C++.

What library can I use with UWP apps/ASP.NET Core/.NET 4.5.2 apps ?

As I code I want to share across both (App Insights, REST API Calls..) I am trying to figure out what type of project to make. At first I was looking at Portable Class Libraries but they seem to be for the past and not for UWP/.NET core.
When you use a Portable Class Library type, you can select the supported targets.

What's the alternative for Windows.ApplicationModel.Resources.ResourceLoader for MonoDroid?

I'm using Mono For Android (probably will use MonoTouch too soon) and MVVM-Cross to port of a Windows Store app (Work on progress by another team, in Parallel).
Unfortunately the Windows store app team started of without using MVVM-Cross. That lead to some Windows specific libraries (like Windows.ApplicationModel.Resources) being scattered across code that should be portable across other platforms (for eg "Windows.ApplicationModel.Resources.ResourceLoader" was used for localization).
I was wondering if there's a cross-platform alternative (or may be a mvvm-cross plugin) for some of these windows libraries. Or may be guidance on how to create my own plugin/alternative.
There is a resourceloader plugin which uses windows package content files and android asset files.
See https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/ResourceLoader/Cirrious.MvvmCross.Plugins.ResourceLoader.WindowsStore/MvxStoreResourceLoader.cs
It is used in (for example) the customer management sample in order to load an XML data file - see https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20CustomerManagement/CustomerManagement/CustomerManagement/Models/SimpleDataStore.cs
It's also used internally in the json i18n plugin.
If you want a different implementation on one platform, then you can override the plugin for just that platform.
If you want a different implementation on all platforms, then it should be easy to create your own plugin, or to inject implementation of an interface on each platform. See the explanation of mvvmcross IOC in Instantiation of ViewModels and Service classes

Why can BuildProvider be used only with ASP.NET website projects?

I was going to try Subsonic, you can generate DAL with buildProvider element in an ASP.NET website project. But I get curious why Web applications or windows applications do not support BuildProvider.
PS: I know for Subsonic there is one other option to use it with other than BuildProvider, but I just get curious.
It doesn't work because of the different way things are compiled in web application projects vs. website projects. From what I read on MSDN, it has to do with the fact that in web app projects, all your code files are compiled into a single assembly using MSBuild before deployment, but Build Providers are used to generate code that is compiled at runtime (from your App_Code folder).
In website projects, all of your code is compiled at runtime so it all plays nicely together.
You could possibly hook it into your pre-build event, and call the sonic.exe with the proper command line.

Resources