diff --git a/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/App.xaml b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/App.xaml
new file mode 100644
index 0000000000..4c3710ea40
--- /dev/null
+++ b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/App.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/App.xaml.cs b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/App.xaml.cs
new file mode 100644
index 0000000000..513e4717de
--- /dev/null
+++ b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/App.xaml.cs
@@ -0,0 +1,11 @@
+namespace Microsoft.ML.OnnxRuntime.InferenceSample.Maui;
+
+public partial class App : Application
+{
+ public App()
+ {
+ InitializeComponent();
+
+ MainPage = new AppShell();
+ }
+}
diff --git a/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/AppShell.xaml b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/AppShell.xaml
new file mode 100644
index 0000000000..277222966a
--- /dev/null
+++ b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/AppShell.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/AppShell.xaml.cs b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/AppShell.xaml.cs
new file mode 100644
index 0000000000..9e004e3f82
--- /dev/null
+++ b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/AppShell.xaml.cs
@@ -0,0 +1,9 @@
+namespace Microsoft.ML.OnnxRuntime.InferenceSample.Maui;
+
+public partial class AppShell : Shell
+{
+ public AppShell()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/MainPage.xaml b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/MainPage.xaml
new file mode 100644
index 0000000000..84fb808754
--- /dev/null
+++ b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/MainPage.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/MainPage.xaml.cs b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/MainPage.xaml.cs
new file mode 100644
index 0000000000..ce091fdce0
--- /dev/null
+++ b/csharp/sample/InferenceSample/Microsoft.ML.OnnxRuntime.InferenceSample.Maui/MainPage.xaml.cs
@@ -0,0 +1,84 @@
+namespace Microsoft.ML.OnnxRuntime.InferenceSample.Maui;
+//using Microsoft.Maui.Controls;
+
+public partial class MainPage : ContentPage
+{
+ public MainPage()
+ {
+ InitializeComponent();
+
+ // Best Practice: create the inference session (which loads and optimizes the model) once and not per inference
+ // as it can be expensive and time consuming.
+ inferenceSampleApi = new InferenceSampleApi();
+ }
+
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+
+ OutputLabel.Text = "Press 'Run Tests'.\n";
+ }
+
+ private readonly InferenceSampleApi inferenceSampleApi;
+
+ private async Task ExecuteTests()
+ {
+ Action