.NET MAUI — এটি কী, আর্কিটেকচার এবং ক্রস-প্ল্যাটফর্ম ডেভেলপমেন্ট

লেখক: IT Sectr প্রকাশিত: 2026-05-01 পড়ার সময়: 8 মিনিট

.NET MAUI হল C# এবং XAML-এ নেটিভ অ্যাপ্লিকেশন তৈরির জন্য একটি ক্রস-প্ল্যাটফর্ম Microsoft ফ্রেমওয়ার্ক, যা 2022 সালে .NET 6-এর সাথে প্রকাশিত হয়েছিল। Microsoft .NET MAUI Documentation, 2024 অনুসারে, MAUI iOS, Android, Windows, macOS এবং Tizen সমর্থন করে, এগুলিকে একটি শেয়ার্ড কোডবেস সহ একটি একক প্রকল্পে একত্রিত করে। ফ্রেমওয়ার্কটি Xamarin.Forms-এর সরাসরি উত্তরসূরি।

মূল পয়েন্ট

  • .NET MAUI — Xamarin.Forms-এর উত্তরসূরি, আলাদা SDK ছাড়াই .NET 6+-এ নির্মিত
  • একীভূত Single Project তিনটি আলাদা প্ল্যাটফর্ম প্রজেক্ট প্রতিস্থাপন করে
  • XAML এবং C# ডিক্লারেটিভ UI নির্মাণ এবং বিজনেস লজিকের জন্য ব্যবহৃত হয়
  • Handlers প্ল্যাটফর্ম অ্যাবস্ট্রাকশনের জন্য Xamarin.Forms-এর পুরানো রেন্ডারার প্রতিস্থাপন করেছে
  • 5টি প্ল্যাটফর্ম সমর্থন: iOS, Android, Windows, macOS, Tizen

.NET MAUI কী

.NET MAUI (Multi-platform App UI) হল Xamarin.Forms-এর বিবর্তন, যা .NET 6+-এর জন্য স্ক্র্যাচ থেকে পুনর্নির্মিত। Xamarin.Forms-এর বিপরীতে, যার প্রতিটি প্ল্যাটফর্মের জন্য আলাদা প্রজেক্ট প্রয়োজন ছিল, MAUI একটি শেয়ার্ড .csproj ফাইল এবং প্ল্যাটফর্ম ফোল্ডার Platforms/iOS, Platforms/Android, Platforms/Windows এবং Platforms/MacCatalyst সহ একটি একক কাঠামো ব্যবহার করে। প্রথম স্থিতিশীল MAUI রিলিজটি মে 2022 সালে হয়েছিল।

.NET MAUI এবং এর পূর্বসূরির মধ্যে মূল পার্থক্য হল .NET 8 BCL (বেস ক্লাস লাইব্রেরি)-এর সাথে সম্পূর্ণ একীকরণ। ডেভেলপাররা কোনও অতিরিক্ত SDK ছাড়াই সরাসরি System.Text.Json, System.Net.Http, System.Linq, System.IO এবং অন্যান্য API-তে অ্যাক্সেস পায়। Xamarin.Forms শেয়ার্ড লজিকের জন্য .NET Standard 2.0 ব্যবহার করেছিল, যা নতুন .NET প্ল্যাটফর্ম ক্ষমতাগুলিতে অ্যাক্সেস সীমিত করেছিল।

Microsoft Build 2024 অনুসারে, .NET MAUI App Store এবং Google Play-তে 40,000+ অ্যাপ্লিকেশনে ব্যবহৃত হয়। উল্লেখযোগ্য প্রকল্পগুলির মধ্যে রয়েছে UPS Mobile, The Weather Channel এবং Siemens Teamcenter। Microsoft নভেম্বর 2024-এর জন্য পরিকল্পিত .NET 9-এর অংশ হিসাবে MAUI সক্রিয়ভাবে বিকাশ করছে।

.NET MAUI-এর ইতিহাস এবং উৎপত্তি

.NET MAUI-এর ঘোষণা .NET একীকরণ কৌশলের অংশ হিসাবে Microsoft Build 2020-এ করা হয়েছিল। Microsoft .NET Core, Mono এবং .NET Framework-কে একটি একক .NET 5+ প্ল্যাটফর্মে একীভূত করেছে। Xamarin.Forms MAUI-এর ভিত্তি হয়ে ওঠে, কিন্তু কোডবেস সম্পূর্ণরূপে পুনর্লিখিত হয়েছিল: পুরানো APIগুলি সরানো হয়েছিল, রেন্ডারারগুলিকে Handlers দিয়ে প্রতিস্থাপন করা হয়েছিল, DependencyService-কে DI কন্টেইনার দিয়ে প্রতিস্থাপন করা হয়েছিল।

.NET MAUI 8 (নভেম্বর 2023) Native AOT, উন্নত CollectionView পারফরম্যান্স, Blazor Hybrid (MAUI অ্যাপ্লিকেশনে Blazor কম্পোনেন্ট এম্বেড করা) এবং নতুন ফন্ট ম্যাপিং-এর জন্য সমর্থন যোগ করেছে। .NET MAUI 9 (2024)-এ C# 12, উন্নত WinUI 3 এবং macOS Sonoma একীকরণ এবং সমস্ত প্ল্যাটফর্মের জন্য একটি নতুন Drag & Drop API অন্তর্ভুক্ত রয়েছে।

.NET MAUI এবং Xamarin.Forms-এর মধ্যে পার্থক্য

প্রথম পার্থক্য হল একটি একক অ্যাপ্লিকেশন। Xamarin.Forms-এ, iOS এবং Android-এর একটি সমাধানে দুটি আলাদা প্রজেক্ট প্রয়োজন ছিল। .NET MAUI-তে, প্ল্যাটফর্ম ফোল্ডার সহ একটি প্রজেক্ট। এটি কোড নেভিগেশন, নির্ভরতা ব্যবস্থাপনা এবং CI/CD পাইপলাইনকে সহজ করে। .csproj ফাইলটি TargetFrameworks: net8.0-android, net8.0-ios, net8.0-maccatalyst সহ SDK-style ফরম্যাট ব্যবহার করে।

দ্বিতীয় পার্থক্য হল রেন্ডারারের পরিবর্তে Handlers ব্যবহার করে রেন্ডারিং আর্কিটেকচার। Xamarin.Forms-এ, প্রতিটি উপাদানের (Button, Label) নিজস্ব Renderer ক্লাস ছিল যা একটি নেটিভ কন্ট্রোল তৈরি করত। কাস্টমাইজেশনের জন্য Custom Renderer প্রয়োজন ছিল। MAUI-তে, Handler হল একটি হালকা বস্তু যা একটি অ্যাবস্ট্রাক্ট উপাদানকে নেটিভ কন্ট্রোলে ম্যাপ করে এবং কন্ট্রোল পুনরায় তৈরি না করেই বৈশিষ্ট্য আপডেট করার জন্য Property Mappers সমর্থন করে।

তৃতীয় পার্থক্য হল একটি একীভূত DI কন্টেইনার Microsoft.Extensions.DependencyInjection। Xamarin.Forms প্ল্যাটফর্ম বাস্তবায়ন নিবন্ধনের জন্য DependencyService ব্যবহার করত। MAUI DI-কে ফ্রেমওয়ার্ক কোর-এ এম্বেড করে: পরিষেবাগুলি MauiAppBuilder-এ নিবন্ধিত হয়, কন্ট্রোলাররা কনস্ট্রাক্টরের মাধ্যমে নির্ভরতা পায়। এটি পরীক্ষাকে সহজ করে এবং আধুনিক .NET অনুশীলনগুলি অনুসরণ করে।

.NET MAUI আর্কিটেকচার

.NET MAUI আর্কিটেকচার একটি বহু-স্তরীয় মডেলের উপর ভিত্তি করে। নীচের স্তরটি হল .NET BCL এবং Mono Runtime (Android) / CoreCLR (Windows) / NativeAOT (iOS)। মধ্যম স্তরটি হল ফ্রেমওয়ার্ক কোর সহ Microsoft.Maui.dll: Handlers, Layout, Graphics, Controls। উপরের স্তরটি হল XAML পৃষ্ঠা, ViewModel এবং পরিষেবা সহ ডেভেলপারের অ্যাপ্লিকেশন।

Single Project এবং Multi-Targeting

Single Project হল .NET MAUI-এর একটি মূল আর্কিটেকচারাল বৈশিষ্ট্য। সমস্ত ফাইল তিনটি বিভাগে বিভক্ত: শেয়ার্ড কোড (Shared), প্ল্যাটফর্ম কোড (Platforms) এবং রিসোর্স (Resources)। .csproj-এ Multi-targeting নির্দিষ্ট করে যে অ্যাপ্লিকেশনটি কোন প্ল্যাটফর্মের জন্য তৈরি। প্রতিটি প্ল্যাটফর্ম শুধুমাত্র নিজের Platforms ফোল্ডার এবং শেয়ার্ড কোড কম্পাইল করে।

প্ল্যাটফর্ম কোড শর্তসাপেক্ষ ফোল্ডার-এ রাখা হয়। Platforms/Android-এ MainActivity.cs, MainApplication.cs এবং AndroidManifest.xml রয়েছে। Platforms/iOS — AppDelegate.cs, Info.plist এবং Entitlements.plist। Platforms/Windows — Package.appxmanifest এবং App.xaml। শর্তসাপেক্ষ কম্পাইলেশনের জন্য, কোডটি #if ANDROID, #if IOS, #if WINDOWS, #if MACCATALYST নির্দেশ ব্যবহার করে।

.NET MAUI-তে XAML এবং MVVM

XAML হল Xamarin.Forms এবং WPF থেকে উত্তরাধিকারসূত্রে প্রাপ্ত একটি ডিক্লারেটিভ মার্কআপ ভাষা। .NET MAUI-তে, XAML পৃষ্ঠা (ContentPage), লেআউট (VerticalStackLayout, Grid, FlexLayout), উপাদান (Label, Entry, Button, Image) এবং কন্ট্রোল (CollectionView, CarouselView) বর্ণনা করতে ব্যবহৃত হয়। XAML বিল্ড টাইমে BAML ফরম্যাটে কম্পাইল হয়।

MVVM প্যাটার্ন CommunityToolkit.Mvvm-এর মাধ্যমে বাস্তবায়িত হয় — Microsoft-এর একটি ওপেন-সোর্স লাইব্রেরি। [ObservableProperty] অ্যাট্রিবিউট INotifyPropertyChanged বৈশিষ্ট্য তৈরি করে, [RelayCommand] মেথড থেকে কমান্ড তৈরি করে। CommunityToolkit.Mvvm 8.2 Source Generator আংশিক ক্লাস ViewModel-কে রূপান্তর করে, Reflection ছাড়াই ObservableObject তৈরি করে। এটি ম্যানুয়াল বাস্তবায়নের তুলনায় Binding-কে 30% পর্যন্ত গতিশীল করে।

.NET MAUI অ্যাপ্লিকেশন উদাহরণ

csharp
using Microsoft.Maui;
using Microsoft.Maui.Controls;

namespace MauiApp;

public class MainPage : ContentPage
{
    public MainPage()
    {
        Title = "MAUI App";
        
        Content = new VerticalStackLayout
        {
            Spacing = 12,
            Padding = new Thickness(16),
            Children =
            {
                new Label
                {
                    Text = "Hello, .NET MAUI!",
                    FontSize = 24,
                    FontAttributes = FontAttributes.Bold
                },
                new Button
                {
                    Text = "আমাকে ক্লিক করুন",
                    BackgroundColor = Colors.Blue,
                    TextColor = Colors.White,
                    Command = new Command(async () =>
                        await DisplayAlert("হ্যালো", "দুনিয়া", "OK"))
                }
            }
        };
    }
}

প্ল্যাটফর্ম এবং সমর্থন

.NET MAUI 5টি প্ল্যাটফর্ম সমর্থন করে: iOS 15.0+, Android 5.0 (API 21)+, Windows 10 1809+, macOS 12.0+ (MacCatalyst) এবং Tizen 6.5+। প্রতিটি প্ল্যাটফর্ম কন্ট্রোল এবং API-এর নিজস্ব সেট ব্যবহার করে। iOS Mac Catalyst-এর মাধ্যমে UIKit ব্যবহার করে, Android — Xamarin.Android-এর মাধ্যমে AndroidX, Windows — WinUI 3, macOS — Mac Catalyst-এর মাধ্যমে AppKit।

iOS এবং Android-এ, MAUI Xamarin.Forms-এর মতো একই রেন্ডারিং মেকানিজম ব্যবহার করে — নেটিভ UI কন্ট্রোল। তবে, Handlers আরও নমনীয় কাস্টমাইজেশন প্রদান করে। iOS-এ প্ল্যাটফর্ম-নির্দিষ্ট Button কনফিগারেশনের জন্য, PlatformConfiguration.iOS সহ OnPlatform<Button> ব্যবহার করা হয়। Windows-এর জন্য, MAUI WinUI 3 ব্যবহার করে — Fluent Design System সমর্থন সহ Microsoft-এর একটি আধুনিক UI ফ্রেমওয়ার্ক।

macOS সমর্থন Mac Catalyst-এর মাধ্যমে যুক্ত করা হয়েছে — Apple-এর প্রযুক্তি যা Mac-এ UIKit অ্যাপ্লিকেশন চালায়। এটি অ্যাপ্লিকেশনের macOS সংস্করণের জন্য 100% MAUI iOS কোড পুনরায় ব্যবহার করার অনুমতি দেয়। নির্দিষ্ট Mac বৈশিষ্ট্যগুলির (Menu Bar, Touch Bar) জন্য, MAUI Mac Catalyst এবং NSView র্যাপারের মাধ্যমে প্ল্যাটফর্ম API প্রদান করে।

Tizen হল স্যামসাং-এর স্মার্ট টিভি, স্মার্টফোন এবং স্মার্ট ওয়াচের জন্য প্ল্যাটফর্ম। .NET MAUI-তে Tizen সমর্থন Samsung Tizen .NET-এর মাধ্যমে বাস্তবায়িত। MAUI অ্যাপ্লিকেশনগুলি Samsung TizenFX বাইন্ডিংয়ের মাধ্যমে Tizen-এর জন্য কম্পাইল হয়। তবে, Tizen Microsoft-এর জন্য অগ্রাধিকার প্ল্যাটফর্ম নয় — এর জন্য আপডেটগুলি 1–2 মাস বিলম্বে প্রকাশিত হয়।

প্ল্যাটফর্মসর্বনিম্ন সংস্করণUI ফ্রেমওয়ার্কস্থিতি
iOSiOS 15.0UIKit (Mac Catalyst)স্থিতিশীল
AndroidAPI 21 (5.0)AndroidX / Material 3স্থিতিশীল
WindowsWin 10 1809WinUI 3 / Fluent Designস্থিতিশীল
macOSmacOS 12.0AppKit (Mac Catalyst)স্থিতিশীল
TizenTizen 6.5TizenFX / Samsungঅতিরিক্ত

.NET MAUI-এর সুবিধা

একীভূত কোডবেস — .NET MAUI কোড পুনরাবৃত্তি হ্রাস করে। C# এবং XAML-এ একটি প্রজেক্ট 5টি প্ল্যাটফর্মের জন্য কম্পাইল হয়, সহজ UI সহ অ্যাপ্লিকেশনের জন্য 95% পর্যন্ত শেয়ার্ড কোড প্রদান করে। বিজনেস লজিক, পরিষেবা, ডেটা মডেল এবং HTTP ক্লায়েন্ট শেয়ার্ড কোডে থাকে। শুধুমাত্র প্ল্যাটফর্ম-নির্দিষ্ট বৈশিষ্ট্যগুলির (ক্যামেরা, জিওলোকেশন, বায়োমেট্রিক্স) DI-এর মাধ্যমে আলাদা বাস্তবায়ন প্রয়োজন।

পারফরম্যান্স .NET MAUI-এর Xamarin.Forms-এর চেয়ে বেশি। Handlers রেন্ডারিং ওভারহেড হ্রাস করে: Microsoft পরীক্ষাগুলি Xamarin.Forms 5.0-এর তুলনায় স্ক্রিন রেন্ডারিং সময়ে 20–30% হ্রাস দেখায়। iOS-এ Native AOT C# কোড সরাসরি ARM64 নির্দেশাবলীতে কম্পাইল করে, JIT কম্পাইলেশন বাদ দিয়ে এবং স্টার্টআপ সময় 40% হ্রাস করে।

Blazor Hybrid হল .NET MAUI-এর একটি অনন্য ক্ষমতা। BlazorWebView MAUI অ্যাপ্লিকেশনে সরাসরি Blazor কম্পোনেন্ট এম্বেড করে। ওয়েব ইন্টারফেস ডেভেলপাররা মোবাইল অ্যাপ্লিকেশনে Blazor কম্পোনেন্ট (Razor পৃষ্ঠা, JS ইন্টারঅপ, CSS স্টাইল) পুনরায় ব্যবহার করতে পারেন। Blazor Hybrid Blazor কম্পোনেন্ট কোড পরিবর্তন না করেই সমস্ত 5টি MAUI প্ল্যাটফর্মে কাজ করে।

.NET ইকোসিস্টেম — হাজার হাজার NuGet প্যাকেজে অ্যাক্সেস: ডাটাবেস অপারেশনের জন্য Entity Framework Core, লগিংয়ের জন্য Serilog, পুনরায় চেষ্টা HTTP অনুরোধের জন্য Polly, ভ্যালিডেশনের জন্য FluentValidation। CommunityToolkit.Maui রেডি-মেড UI উপাদান প্রদান করে: Popup, Toast, Snackbar, অ্যাক্সেসিবিলিটির জন্য SemanticScreenReader। .NET MAUI Azure, SignalR এবং Microsoft Graph SDK-এর সাথে একীভূত হয়।

ডেভেলপমেন্ট টুল — Visual Studio 2022 এবং JetBrains-এর Rider। XAML Hot Reload অ্যাপ্লিকেশন পুনরায় চালু না করেই 1–2 সেকেন্ডে UI আপডেট করে। C# Hot Reload (.NET 6+ থেকে) প্রক্রিয়া পুনরায় চালু না করেই একটি মেথড পরিবর্তন পুনরায় কম্পাইল করে। Visual Studio Debugger, Profiler এবং IntelliCode পারফরম্যান্স ডায়াগনস্টিক এবং কোড কোয়ালিটির জন্য টুলকিট পরিপূরক করে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

.NET MAUI কী?

.NET MAUI হল iOS, Android, Windows, macOS এবং Tizen-এর জন্য C# এবং XAML-এ নেটিভ অ্যাপ্লিকেশন তৈরির জন্য Microsoft-এর একটি ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক। এটি Xamarin.Forms-এর উত্তরসূরি, .NET 6+-এ নির্মিত এবং প্রতিটি প্ল্যাটফর্মের জন্য আলাদা প্রজেক্টের পরিবর্তে একটি একক প্রজেক্ট (Single Project) ব্যবহার করে।

.NET MAUI কীভাবে Xamarin.Forms থেকে আলাদা?

.NET MAUI একটি একক প্রজেক্ট, রেন্ডারারের পরিবর্তে Handlers, একটি বিল্ট-ইন DI কন্টেইনার, iOS-এর জন্য Native AOT এবং Blazor Hybrid ব্যবহার করে। Xamarin.Forms-এর প্রতিটি প্ল্যাটফর্মের জন্য আলাদা প্রজেক্ট প্রয়োজন, UI কাস্টমাইজেশনের জন্য Custom Renderer, DI-এর জন্য DependencyService ব্যবহার করে এবং Blazor সমর্থন করে না। .NET MAUI .NET-এর অংশ, Xamarin.Forms একটি আলাদা SDK।

.NET MAUI কি macOS সমর্থন করে?

হ্যাঁ, .NET MAUI Mac Catalyst-এর মাধ্যমে macOS সমর্থন করে (সর্বনিম্ন সংস্করণ macOS 12.0)। MAUI-তে iOS অ্যাপ্লিকেশনগুলি কোড পরিবর্তন ছাড়াই স্বয়ংক্রিয়ভাবে Mac-এর জন্য কম্পাইল হয়। নেটিভ Mac বৈশিষ্ট্যগুলির (Menu Bar, Dock, Touch ID) জন্য, Platforms/MacCatalyst ফোল্ডারে Mac Catalyst এবং NSView র্যাপারের মাধ্যমে প্ল্যাটফর্ম কল ব্যবহার করা হয়।

.NET MAUI-তে কি Flutter প্যাকেজ ব্যবহার করা যেতে পারে?

না, .NET MAUI Dart/Flutter প্যাকেজের সাথে সামঞ্জস্যপূর্ণ নয়। MAUI .NET ইকোসিস্টেম এবং NuGet প্যাকেজ ব্যবহার করে। প্ল্যাটফর্ম-নির্দিষ্ট বৈশিষ্ট্যগুলির (ক্যামেরা, Bluetooth, বায়োমেট্রিক্স) জন্য, Android Bindings (Kotlin/Java) এবং iOS Bindings (Objective-C/Swift)-এর মাধ্যমে নেটিভ লাইব্রেরি ব্যবহার করা হয়। CommunityToolkit.Maui সাধারণ পরিস্থিতিতে রেডি-মেড র্যাপার প্রদান করে।

.NET MAUI কি নেটিভ অ্যাপ্লিকেশনের চেয়ে ধীর?

পারফরম্যান্স-এ পার্থক্য ন্যূনতম। iOS-এ Handlers এবং Native AOT সহ .NET MAUI একটি নেটিভ SwiftUI অ্যাপ্লিকেশনের পারফরম্যান্সের 95–98% অর্জন করে। Android-এ, Kotlin অ্যাপ্লিকেশনের সাথে পার্থক্য UI রেন্ডারিং পরীক্ষায় (Microsoft Benchmarks, 2024) 3–7%। বেশিরভাগ বিজনেস অ্যাপ্লিকেশনের জন্য, পার্থক্য ব্যবহারকারীর কাছে অলক্ষিত।

সারাংশ

  • .NET MAUI — C# এবং XAML-এ ক্রস-প্ল্যাটফর্ম Microsoft ফ্রেমওয়ার্ক, Xamarin.Forms-এর উত্তরসূরি
  • Single Project মাল্টি-টার্গেটিং সহ 3টি আলাদা প্রজেক্টকে একটি কনফিগারেশন দিয়ে প্রতিস্থাপন করে
  • Handlers Xamarin.Forms রেন্ডারারের চেয়ে দ্রুত রেন্ডারিং প্রদান করে
  • Blazor Hybrid সরাসরি মোবাইল অ্যাপ্লিকেশনে ওয়েব কম্পোনেন্ট এম্বেড করার অনুমতি দেয়
  • 5টি প্ল্যাটফর্ম — iOS 15+, Android 5.0+, Windows 10, macOS 12+, Tizen 6.5+
  • iOS-এ Native AOT স্টার্টআপ সময় 40% এবং বাইনারি আকার হ্রাস করে
  • ক্রস-প্ল্যাটফর্ম ক্ষমতা এবং নেটিভ API-তে অ্যাক্সেস প্রয়োজন এমন .NET প্রকল্পগুলির জন্য .NET MAUI বেছে নিন

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন