samples icon indicating copy to clipboard operation
samples copied to clipboard

Mono Samples should use standard shipping tooling to publish apps

Open jkoritzinsky opened this issue 7 months ago • 6 comments

Issue description

Today, the samples under core/mono-samples/ use custom targets with the AppleAppBuilder, AndroidAppBuilder, and WasmAppBuilder tasks from dotnet/runtime to publish apps. None of these tasks are used in production scenarios when targeting netX.0-ios, netX.0-tvos, netX.0-android, netX.0-browser or netX.0-wasi. In fact, these are the only usages of these tasks outside of the dotnet/runtime repository.

Additionally, none of these sample apps target a TFM with the platform, they all target a OSless net6.0 TFM.

Both of these cases describe scenarios that we do not guide our customers to use. All other documentation directs users to use the standard tooling that comes with the OS-suffixed TFM. We should update these samples to use said TFMs and use the standard tooling.

Target framework

Check the .NET target framework(s) being used, and include the version number(s).

  • [X] .NET Core
  • [ ] .NET Framework
  • [ ] .NET Standard

cc: @elinor-fung @rolfbjarne @lewing @steveisok @kotlarmilos @jonpryor

jkoritzinsky avatar May 08 '25 22:05 jkoritzinsky

I thought the purpose of these samples was to show how to use Mono without the iOS/Android SDKs on these platforms?

rolfbjarne avatar May 09 '25 06:05 rolfbjarne

Is that an officially supported scenario? For example, if someone were to try to file a DTS issue for a problem with AppleAppBuilder, would we cover that under our support policy? Or is the only officially supported way to use .NET on iOS through the netX.0-ios TFM?

Alternatively, would it be more interesting to show a more complete toolchain in the sample instead of pulling "internal" runtime tooling into our external samples repository?

jkoritzinsky avatar May 09 '25 18:05 jkoritzinsky

Is that an officially supported scenario?

I have no idea. @steveisok?

rolfbjarne avatar May 12 '25 06:05 rolfbjarne

@steveisok do you have any guidance on this? Are the mobile/wasm tasks from dotnet/runtime officially supported? Should these samples be using them?

sbomer avatar Oct 31 '25 18:10 sbomer

@steveisok do you have any guidance on this? Are the mobile/wasm tasks from dotnet/runtime officially supported? Should these samples be using them?

The wasm one could be adapted to use the wasm sdk that is officially supported. I think the mobile ones no longer have any value.

/cc @lewing @vitek-karas

steveisok avatar Oct 31 '25 19:10 steveisok

I think the only officially supported way is to use the mobile SDKs. If the only purpose of having the code in the repo is to "document" how to do that without the mobile SDKs then I would vote for use to remove it.

That said, we do have several apps in the runtime repo which are targeting mobile without the use of mobile SDKs - these are for testing purposes. Eventually we could convert those to use mobile SDKs but currently there's value in having them separate. All of the CoreCLR onboarding was first done in the runtime repo and we could enable basic testing via these apps, without the need of having the full mobile SDK support.

vitek-karas avatar Nov 03 '25 10:11 vitek-karas