با استفاده از Dot NET MAUI، میتوانید برنامههایی را توسعه دهید که قابلیت استفاده و اجرا بر روی Android، iOS، macOS و Windows ، با استفاده از یک کد مشترک را دارا می باشد.
یکی از اهداف کلیدی NET MAUI این است که شما را قادر می سازد تا حد امکان منطق برنامه و طرح رابط کاربری خود را در یک کد پایه واحد پیاده سازی کنید.
MAUI یا دقیق تر NET MAUI مخفف Multi-platform App UI است. بعضی می گویند MAUI اساساً تمام چیزی که هست، تکرار بعدی Xamarin است، بنابراین بهجای وجود Xamarin.Forms 6، ما NET MAUI را دریافت میکنیم. اما می دانم به چه فکر می کنید، اگر این فرضیه صحیح باشد باید پرسید چرا نام Xamarin به MAUI تغییر می کند؟ اما داکیومنت مایکروسافت که مطالعه می کنیم متوجه می شویم که MAUI مطمئناً چیزی بیش از Xamarin است، بنابراین MAUI خیلی بیشتر از تغییر نام است. شاید بتوانیم بگوییم MAUI تقریباً یک بازنویسی Xamarin است و حتی بیشتر از آن.
بطور خلاصه MAUI نهایتاً به NET BCL (کتابخانه کلاس پایه) مرتبط و بخشی از Dot NET است و نه مانند Xamarin که خود پروژه جداگانه ای می باشد.
NET MAUI برای چه کسی است
NET MAUI برای توسعه دهندگانی است که می خواهند:
- برنامههای چند پلتفرمی را در XAML و با استفاده از #C، از یک پایگاه کد مشترک در ویژوال استودیو بنویسند
- طرح و طراحی رابط کاربری را در پلتفرم ها به اشتراک بگذارند
- کدها، آزمایشها و منطق برنامه را در پلتفرمها به اشتراک بگذارند
در یک کلام: Once Write Code and Run Everywhere
چه چیزی بهبود یافته است؟
پاسخ در مقایسه دو تصویر زیر است، رویای مایکروسافت این بود که با استفاده از دات نت و سی شارپ کد خود را یکبار بنویسید به گونه ای که بر روی هر دستگاهی اجرا شود. مایکروسافت هنگام اعلام دات نت 5 از این اسلاید برای نشان دادن هدف پروژه استفاده کرد:
اما تصویر زیر همزمان با ارائه دات نت 6 منتشر شده است:
بعبارتی همانگونه که گفته شد تصویر اول حکایت از برنامه و آرزوی دیرینه مایکروسافت دارد و تصویر دوم نمایشگر پروژه MAUI است، به گونه ای که APIهای Android ، iOS ، macOS و Windows را در یک API واحد یکپارچه میکند و به توسعه دهنده امکان میدهد تجربه یکبار اجرا را فراهم نماید.
چه چیزی از Xamarin به NET MAUI تغییر کرده است؟
در واقع تیم Xamarin زیرساختی را بر اساس Mono با آنچه در #C در آن زمان در دسترس بود طراحی کرد و در زمان خود شاید بهترین راه رو به جلو بود و به همین دلیل Xamarin ساخته شد. با این حال، در طول سالها و با افزایش محبوبیت Xamarin، آنها متوجه شدهند که کمبود ها و اشکالات زیادی وجود دارد که لازم بود برطرف گردد. هنگامی که مایکروسافت Xamarin را خریداری کرد، واضح بود که تیم میخواهد Xamarin را به طور کامل در Dot NET بسازد تا بتواند ایده Build Once در همه جا اجرا شود.
آنچه NET MAUI ارائه می دهد
NET MAUI مجموعه ای از کنترل ها را ارائه می دهد که می تواند برای نمایش داده ها، Actionها، نشان دادن فعالیت، نمایش مجموعه ها، انتخاب داده ها و موارد دیگر استفاده شود. علاوه برآن مجموعه ای از کنترل ها و موارد زیرارائه می دهد:
- Layout Engine استادانه برای طراحی پیج ها
- انواع ناوبری ها
- پشتیبانی از دیتا بایندینگ
- توانایی سفارشی کردن کنترلرها برای بهبود نحوه ارائه عناصر UI
- APIهای چند پلتفرمی برای دسترسی به ویژگیهای دستگاه میزبان. این APIها برنامهها را قادر میسازند به ویژگیهای دستگاه مانند GPS، شتابسنج، و وضعیت باتری و شبکه دسترسی داشته باشند. برای اطلاعات بیشتر، APIهای چند پلتفرمی را برای ویژگیهای دستگاه ببینید
- عملکرد گرافیکی کراس پلتفرم، که یک بوم نقاشی را فراهم می کند که از طراحی و نقاشی اشکال و تصاویر، عملیات ترکیب و تبدیل اشیاء گرافیکی پشتیبانی می کند
- یک سیستم پروژه واحد که برای هدف قرار دادن اندروید، iOS، macOS و ویندوز استفاده می کند
- می توانید کد و XAML خود را در حین اجرای برنامه تغییر دهید، سپس بدون ساخت مجدد برنامه، نتیجه تغییرات خود را مشاهده کنید
APIهای چند پلتفرمی برای ویژگیهای دستگاه
نمونه هایی از عملکرد ارائه شده توسط .NET MAUI برای دسترسی به ویژگی های دستگاه عبارتند از:
- دسترسی به حسگرهایی مانند شتابسنج، قطبنما و ژیروسکوپ در دستگاهها
- امکان بررسی وضعیت اتصال به شبکه دستگاه، و تشخیص تغییرات
- اطلاعاتی در مورد دستگاهی که برنامه روی آن اجرا می شود ارائه دهید
- متن را در کلیپ بورد سیستم، بین برنامه ها کپی و جایگذاری کنید
- یک یا چند فایل را از دستگاه انتخاب کنید
- داده ها را به صورت جفت key/value ایمن ذخیره کنید
- از موتورهای تبدیل متن به گفتار داخلی برای خواندن متن از دستگاه استفاده کنید
- و ...
چگونه اولین پروژه MAUI در محیط ویژوال استودیو را شروع کنیم؟
برای شروع یک پروژه در محیط ویژوال استودیو لازمست که VS2022 و DotNET 6 را برروی سیستم نصب داشته باشید ، برای ادامه کار اینجا را ببینید.
0
17031