زمان آن فرا رسیده است که برنامه های .NET چند پلتفرمی قدیمی خود را به روز کنید. آیا باید از MAUI استفاده کنید یا چیز دیگری؟
در کمتر از یک ماه مایکروسافت به پشتیبانی برای اولین ابزار مهم رابط کاربری متقابل پلتفرم دات نت، Xamarin Forms پایان می دهد. بهجای اینکه توسعهدهندگان مجبور باشند رابطهای کاربری جداگانه برای Windows، iOS و Android بسازند، Xamarin Forms مجموعهای از کنترلهای رابط کاربری متقابل پلتفرم را در اختیار ما قرار میدهد که میتوانیم از آنها برای ایجاد یک پایه کد که برای همه پلتفرمهای هدف کامپایل میشود، بدون کد خاص دستگاه استفاده کنیم. موفقیت بزرگی بود، اما اکنون در حال محو شدن است.
مایکروسافت دنبالهای برای فرمهای Xamarin به شکل MAUI، رابط کاربری چند پلتفرمی برنامه توسعه داده است. MAUI از Windows، macOS، iOS و Android پشتیبانی میکند و مجدداً به شما امکان میدهد با استفاده از ابزارها و تکنیکهای مشابه Xamarin به توسعه کد ادامه دهید و با آخرین نسخههای .NET کار کنید. MAUI هنوز بسیار در دست توسعه است، با برخی تفاوتها که تعویض یک مجموعه از کنترلها را با مجموعهای دیگر سخت میکند.
میتوانید مقایسه فعلی بین دو پلتفرم را ببینید< /a> در GitHub. احتمالاً مهمترین تفاوت ها نیاز به انتقال کد به جدیدترین پلت فرم دات نت، با پشتیبانی از .NET 6 و بالاتر، و همچنین طیف وسیعی از مدل های کاربردی مختلف است که برای شامل پشتیبانی از هم MVU و هم Blazor. هدف ارائه مجموعهای از ویژگیهای مشترک بین MAUI و Windows App SDK است، بنابراین میتوانید به سرعت کدهای مخصوص ویندوز را به چند پلتفرم منتقل کنید.
یک نکته کلیدی که باید به آن توجه داشت این است که، حتی اگر پشتیبانی نمیشود، هنوز برای ساختن برنامهها برای دستگاههای قدیمیتر iOS و Android به فرمهای Xamarin نیاز دارید. اگر دستگاههای قدیمیتر هدف شما نیستند، باید کد خود را به MAUI یا به یکی از فریمورکهای متقابل پلتفرمی داتنت UI که اکنون در دسترس هستند، منتقل کنید. هم پلتفرم Uno و هم Avalonia ابزارهای بالغی هستند که کنترلهای سازگار با WinUI 3 را ارائه میکنند و بسیاری از سیستمعاملهای مختلف از جمله لینوکس را پشتیبانی میکنند.
گزینه های بیشتر از MAUI
انتخاب خوب است. ماهیت منبع باز دات نت آن را به یک پلتفرم جذاب برای برنامه های افزودنی مانند Uno و Avalonia تبدیل کرده است، که هر دو رویکردهای متفاوتی را برای ارائه رابط های کاربری متقابل پلتفرم ارائه می دهند و از انواع مختلفی پشتیبانی می کنند. مدل های کاربردی و ارائه طیف متفاوتی از کنترل ها. میتوانید ابزاری را انتخاب کنید که مناسب تیمتان است، و اگر میخواهید ابزار جدیدی را امتحان کنید، تنها کاری که باید انجام دهید این است که یک شعبه جدید در مخزن خود راهاندازی کنید و آن را امتحان کنید.
Microsoft یک راهنمای بهروزرسانی از Xamarin به MAUI ارائه میکند . در حالی که اکثر سناریوهای رایج پشتیبانی می شوند، سایر سناریوها، مانند watchOS، از شما می خواهد که برنامه های Swift بومی جدید بسازید. در عمل این ممکن است ضروری نباشد، زیرا اعلانهای غنی watchOS ممکن است جایگزین بهتری برای مدیریت یک چارچوب برنامه کاملاً جدید باشد.
در حالی که میتوانید پروژهها را به صورت دستی به قالب پروژه MAUI SDK منتقل کنید، این گزینه وجود دارد که از دستیار ارتقاء دات نت خود مایکروسافت برای شروع فرآیند برای شما استفاده کنید. توجه به این نکته مهم است که در بیشتر موارد این یک برنامه آماده برای ساخت ارائه نمی دهد. باید زمانی را صرف نهایی کردن طرحبندیها و اطمینان از داشتن کتابخانههای مناسب کنید.
نسخههای اخیر MAUI به بسیاری از مشکلات قبلی پرداخته است، و مایکروسافت نقشه راه و همچنین فهرستی از اصلاحات را باز نگه میدارد در مخزن MAUI GitHub. مطمئناً این یک پروژه بسیار فعال است و به سرعت در حال بلوغ است.
اگر میخواهید از یکی از پلتفرمهای رابط کاربری جایگزین استفاده کنید، هم Uno و هم Avalona مهاجرت شخصی خود را ارائه میکنند. راهنما، و همچنین مطالعات موردی که نشان می دهد مشتریان بزرگ چگونه انتقالات خود را مدیریت کرده اند.
انتخاب پلتفرم رابط کاربری
بزرگترین تفاوت بین پلتفرمهای Uno و Avalonia UI و MAUI این است که MAUI یک پوشش برای کنترلهای بومی است. MAUI به شما امکان میدهد برنامههای ظاهر و احساس بومی بسازید در حالی که همچنان از همان کد استفاده میکنید، در حالی که Avalonia و Uno نیز رندر مخصوص به خود را دارند. این رویکرد سطح سازگاری بین برنامهها را در دستگاههای هدف مختلف تضمین میکند و انتقال کنترلها به دستگاهها و پلتفرمهای مختلف را آسانتر میکند. با ایجاد مدل WinUI ویندوز، پلتفرم های Avalonia و Uno گزینه های بیشتری برای کنترل های استایل دارند.
اگر به مستندات مهاجرت Uno نگاه کنید، موارد زیادی در هنگام مهاجرت وجود دارد، از انیمیشنها ، به کنترل ها، پیمایش و موارد دیگر. با این حال، شباهت کافی بین نحوه اجرای XAML Uno و Xamarin Forms وجود دارد که میتوانید مسیر خود را از طریق مهاجرت انجام دهید. با این حال، نباید انتظار داشته باشید که این فرآیندی باشد که به راحتی میتوان آن را خودکار کرد.
به عنوان مثال، اگر کنترلها یا اشیا را متحرک میکنید، شما باید از کلاس انیمیشن Xamarin Forms به استوریبردهای WinUI 3 بروید. استوری بردها بر اساس رویکردهای انیمیشنی هستند که با WPF در روزهای اولیه دات نت معرفی شدند و ممکن است آشنا به نظر برسند، زیرا بیش از یک دهه است که در اکثر ابزارهای توسعه UI ویندوز استفاده می شوند. ارزش درک معادلهای Storyboard عملیات انیمیشن Xamarin Forms و استفاده از آنها به عنوان بخشی از مهاجرت، در حین کار در جدول زمانی Storyboard را دارد.
مشکلات کوچکی از این دست به اندازه کافی وجود دارد که باید قبل از اقدام به مهاجرت، مدتی را روی مستندات و آموزشها صرف کنید. با این حال، هیچ نشان دهنده واقعی وجود ندارد، و راه حل هایی برای اکثر مشکلات وجود دارد. البته، جنبه دیگری نیز در داستان وجود دارد، جایی که مهاجرت برخی از عملیات ها را ساده می کند و به شما امکان می دهد پیچیدگی کد را کاهش دهید و اشکال زدایی آن را آسان تر می کند.
به روز رسانی ها به معنای همه چیز هستند
در عمل، هر رویکردی که برای جایگزینی فرمهای Xamarin انتخاب کنید، به کار قابل توجهی نیاز دارد. با این حال، بیشتر آن به دلیل تکامل پلتفرم دات نت فراتر از Xamarin خواهد بود. مایکروسافت کارهای زیادی انجام داده است تا اطمینان حاصل کند که دات نت در تمام پلتفرم های هدف خود به خوبی عمل می کند، و اگر برنامه های کاربردی برای کاربر ایجاد می کنید، می خواهید از این تغییرات بهره ببرید. Xamarin Forms اکنون یک فناوری قدیمی است و به این ترتیب شما و کاربرانتان را عقب نگه می دارد.
با حرکت به یک چارچوب مدرن UI، گامی به سوی محافظت از برنامه های خود در آینده برداشته اید. این بدان معناست که کاربران از دستگاههای جدیدتر پشتیبانی میکنند و با Wasm، از برنامههای وب غنی پشتیبانی میکنیم که بسیاری از قابلیتهای مشابه برنامههای دسکتاپ و موبایل بومی را دارند. هر دو Avalonia و Uno دارای کتابخانههای بزرگی از کنترلها هستند که فراتر از آنچه Xamarin Forms میتوانست انجام دهد، به شما امکان میدهد کارهای بیشتری را با کد خود و با سرعت بیشتری انجام دهید.
اگر این رویکرد را در پیش بگیرید، میتوانید پایان عمر Xamarin Forms را فرصتی برای بهروزرسانی و معماری مجدد کدتان ببینید، با بهرهگیری از ویژگیهای جدیدتر داتنت و الگوهای طراحی جدیدتر که ممکن است برای برنامههای شما مناسبتر باشند. حتی میتوانید ابزارهای طراحی مدرن مانند Figma را به زنجیره ابزار خود اضافه کنید که به شما امکان میدهد شکافهای بین طراحی و توسعه را پر کنید، اصطکاکها را کاهش دهید و محیطی با مشارکت بیشتر را تضمین کنید.
پایان پشتیبانی از فرمهای Xamarin برای موبایل و داتنت چند پلتفرمی چیز بدی نیست. در هر صورت، نشان می دهد که دات نت مدرن گزینه های زیادی را در اختیار شما قرار می دهد. و مبانی منبع باز آن به شما امکان می دهد کد خود را برای پر کردن هر شکافی اضافه کنید.
پست های مرتبط
Xamarin Forms مرده است. حالا چی؟
Xamarin Forms مرده است. حالا چی؟
Xamarin Forms مرده است. حالا چی؟