.NET MAUI তে Shell Navigation এবং Routing অ্যাপ্লিকেশনের নেভিগেশন এবং পেজগুলির মধ্যে সঠিকভাবে স্থানান্তর পরিচালনা করতে ব্যবহৃত হয়। Shell একটি উচ্চস্তরের নেভিগেশন কন্টেইনার, যা আপনার অ্যাপের UI কে আরও সংগঠিত এবং সহজে নেভিগেটেবল করে তোলে। Routing আপনাকে নির্দিষ্ট পেজের মধ্যে স্থানান্তরের জন্য URL নির্ধারণ করার সুযোগ দেয়, যা অ্যাপ্লিকেশনটি আরও সহজে ব্যবহারযোগ্য এবং স্কেলযোগ্য করে তোলে।
1. Shell Navigation
Shell হল .NET MAUI-তে ব্যবহৃত একটি নেভিগেশন কন্টেইনার, যা অ্যাপের স্ট্রাকচারকে সহজ এবং কাস্টমাইজযোগ্য করে তোলে। এটি Tabbed, Flyout, এবং NavigationPage এর মাধ্যমে নেভিগেশন পরিচালনা করে।
Shell Navigation ব্যবহার করা:
- Shell Structure তৈরি করা:
Shell তে আপনি Flyout (সাইড মেনু), TabBar, বা Master-Detail এর মতো নেভিগেশন ব্যবহার করতে পারেন। নেভিগেশন এবং রুটিং-এর জন্য XAML এ Shell উপাদান ব্যবহৃত হয়।
Shell.xaml (App Shell)
<?xml version="1.0" encoding="utf-8" ?>
<Shell xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ShellNavigationApp"
x:Class="ShellNavigationApp.AppShell">
<!-- Flyout Menu -->
<FlyoutItem Title="Home">
<Tab>
<ShellContent Title="Home Page" ContentTemplate="{DataTemplate local:HomePage}" />
</Tab>
</FlyoutItem>
<FlyoutItem Title="Settings">
<Tab>
<ShellContent Title="Settings Page" ContentTemplate="{DataTemplate local:SettingsPage}" />
</Tab>
</FlyoutItem>
</Shell>
এখানে:
- FlyoutItem ব্যবহার করে আপনি সাইড মেনু তৈরি করেছেন।
- ShellContent এর মাধ্যমে প্রতিটি পেজের জন্য XAML টেমপ্লেট ডিফাইন করেছেন।
local:HomePageএবংlocal:SettingsPageহল HomePage.xaml এবং SettingsPage.xaml-এর জন্য তৈরি করা পেজ।
2. Shell Navigation Methods
Shell তে নেভিগেশন করার জন্য আপনাকে PushAsync, PopAsync, GoToAsync ইত্যাদি মেথড ব্যবহার করতে হয়।
Navigate to a Page using Shell Navigation:
// Navigating to a new page
await Shell.Current.GoToAsync("settings"); // "settings" is the route defined in Shell.xaml
// Pushing a page onto the navigation stack
await Shell.Current.Navigation.PushAsync(new SettingsPage());
GoToAsync মেথডে আপনি route ব্যবহার করে পেজে নেভিগেট করতে পারেন, যা আপনাকে আরও পরিচ্ছন্নভাবে নেভিগেশন করতে সহায়ক হয়।
2. Routing in .NET MAUI
Routing ব্যবহৃত হয় Shell এর মাধ্যমে নির্দিষ্ট পেজে যাওয়ার জন্য। Routes আপনাকে প্রতিটি পেজের জন্য একটি URL বা রুট পাথ তৈরি করতে দেয়, যা আপনাকে Shell থেকে পেজে নেভিগেট করতে সাহায্য করে।
Routing Setup:
AppShell.xaml-এ প্রতিটি পেজের জন্য একটি Route নির্ধারণ করতে হবে।
AppShell.xaml (Defining Routes)
<?xml version="1.0" encoding="utf-8" ?>
<Shell xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ShellNavigationApp"
x:Class="ShellNavigationApp.AppShell">
<ShellContent Route="home" Title="Home Page" ContentTemplate="{DataTemplate local:HomePage}" />
<ShellContent Route="settings" Title="Settings Page" ContentTemplate="{DataTemplate local:SettingsPage}" />
</Shell>
এখানে, Route প্রপার্টি ব্যবহার করে প্রতিটি পেজের জন্য একটি URL Path বা রুট তৈরি করা হয়েছে। এর ফলে, GoToAsync এর মাধ্যমে আপনি নির্দিষ্ট রুট ব্যবহার করে পেজে নেভিগেট করতে পারবেন।
Navigating using Routes (URL-based navigation):
// Navigating to a page via Route
await Shell.Current.GoToAsync("settings"); // Navigating to the settings page using route
// Navigating with parameters
await Shell.Current.GoToAsync("home?userId=123"); // Navigating to home page with a parameter
এখানে, আপনি settings রুটে যাওয়ার জন্য GoToAsync মেথড ব্যবহার করেছেন। এছাড়া, parameterized routingও সম্ভব, যেখানে আপনি রুটের সাথে প্যারামিটার পাস করতে পারেন।
3. Passing Parameters Between Pages using Routing
Routing ব্যবহারের সময়, আপনি প্যারামিটার পাসও করতে পারেন। এক পেজ থেকে অন্য পেজে প্যারামিটার পাস করতে Query Parameters ব্যবহার করা হয়।
Passing Parameters via Route
<ShellContent Route="home">
<ShellContent.Content>
<local:HomePage />
</ShellContent.Content>
</ShellContent>
Navigating with Parameters:
// Navigating with parameters
await Shell.Current.GoToAsync("home?userId=123"); // Passing userId as a query parameter
এখানে, userId প্যারামিটারটি home রুটে পাঠানো হচ্ছে। এটি পরে পেজে গ্রহণ করা যাবে।
Receiving Parameters in the Target Page:
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
// Retrieving the parameter
var userId = Shell.Current.CurrentState.QueryParameters["userId"];
Console.WriteLine($"User ID: {userId}");
}
}
এখানে, QueryParameters ব্যবহার করে userId প্যারামিটারটি HomePage-এ রিসিভ করা হচ্ছে।
4. Shell Navigation and Back Navigation
Shell Navigation-এর সাথে Back Navigation-এর কাজ খুবই সহজ। আপনি GoToAsync("..") ব্যবহার করে পূর্ববর্তী পেজে ফিরে যেতে পারেন।
// Going back to the previous page
await Shell.Current.GoToAsync("..");
এটি আপনার অ্যাপ্লিকেশনের স্ট্যাক থেকে পূর্ববর্তী পেজে ফিরে যাবে।
Conclusion:
- Shell Navigation .NET MAUI অ্যাপ্লিকেশনে একটি শক্তিশালী নেভিগেশন কন্টেইনার হিসেবে কাজ করে, যা Flyout, Tabbed, এবং NavigationPage এর মাধ্যমে পেজগুলোকে সহজে নেভিগেট করতে সহায়তা করে।
- Routing আপনাকে পেজগুলোর মধ্যে রুট নির্ধারণ এবং প্যারামিটার পাস করার সুবিধা দেয়, যা অ্যাপ্লিকেশনের নেভিগেশনকে আরও উন্নত এবং স্কেলযোগ্য করে তোলে।
- .NET MAUI তে GoToAsync ব্যবহার করে আপনি সহজেই রুট বা পেজে নেভিগেট করতে পারেন এবং Query Parameters ব্যবহার করে প্যারামিটারও পাস করতে পারেন।
এই কৌশলগুলি আপনার .NET MAUI অ্যাপ্লিকেশনকে আরও দক্ষ এবং ব্যবহারকারী-বান্ধব করে তুলবে।
Read more