פרויקט Xamarin legacy זקוק לתמיכה או למעבר לטכנולוגיה מודרנית. תיעוד מיקרוסופט מאשר ש-Xamarin.iOS ו-Xamarin.Android מספקים קישורים ישירים ל-SDKים המקוריים — ללא גשר, ללא runtime ביניים מלבד Mono. זה מבדיל אותם מ-React Native או Cordova: אתה עובד עם אותם UIViewController, UITableView, RecyclerView, ConstraintLayout כמו בפיתוח native, רק ב-C# במקום Swift/Kotlin. Xamarin.Forms מוסיף שכבת UI משותפת מעל, אבל במחיר של איבוד שליטה ישירה על כל widget native.
Xamarin כבר לא מקבל עדכונים ממיקרוסופט, ולכן תמיכה והעברה דורשות ניסיון מיוחד. הצוות שלנו מתחזק יישומים מבוססי Xamarin ומבצע העברה ל-.NET MAUI עם תיעוד של כל שלב ואחריות ל-30 יום. ניסיון — מעל 30 פרויקטים על Xamarin במשך 5 שנים, חוסך ללקוחות עד 40% בהשוואה להחזקת שני צוותים native. עלויות העברה טיפוסיות מתחילות מ-$5,000 לאפליקציות קטנות, עם חיסכון שנתי של עד $20,000 על ידי איחוד לקוד MAUI יחיד. חבילות התמיכה שלנו מתחילות ב-$2,500 לשנה לאפליקציות קטנות עם עד 5 תלותים.
תמיכה בפרויקטי Xamarin קיימים
תחזוקת אפליקציית Xamarin legacy כיום היא משימה ספציפית. בעיות עיקריות:
חבילות NuGet מיושנות. חלק מהחבילות כבר לא מתעדכנות עבור Xamarin.iOS 16+ ו-Android API 33+. דוגמה טיפוסית היא Xamarin.Forms.GoogleMaps: הגרסה היציבה האחרונה פורסמה לפני סיום התמיכה הפעילה, ובאנדרואיד 13 מתרחשות קריסות בזמן ריצה עקב שינויים בהרשאות מיקום. עלינו לבצע fork, patch, או להחליף בחלופות.
שינויים שבורים ב-iOS.** אפל ממשיכה להחמיר את הדרישות למניפסטי פרטיות — כל אפליקציה המשתמשת ב-NSUserDefaults, FileTimestamp, SystemBootTime ו-APIים אחרים ללא PrivacyInfo.xcprivacy מקבלת אזהרות בעת העלאה ל-App Store Connect, ולאחר מכן דחייה. ב-Xamarin.iOS, PrivacyInfo.xcprivacy מתווסף ידנית כ-BundleResource.
Mono runtime ו-ARM64. Xamarin.iOS מהדר ל-ARM64 native דרך AOT — אין בעיות שם. Xamarin.Android משתמש ב-Mono runtime עם JIT על ARM, מה שאומר גודל אפליקציה גדול יותר והתחלה קרה איטית — .NET MAUI על .NET 8 AOT מהיר פי 1.5 במהירות התחלה קרה.
מה כלול בתמיכה באפליקציות Xamarin?
בעת הזמנת תמיכה, אנו מספקים:
- עדכון SDKים ליעד (
TargetFramework,minSdkVersion/targetSdkVersion) - תיקון תלותים ו-fork של חבילות מיושנות
- הוספת
PrivacyInfo.xcprivacyעבור iOS - תיקון APIים מופסקים (לדוגמה,
UIWebView→WKWebView) - ביקורת הרשאות עבור Android 13/14 עם המודל החדש (
READ_MEDIA_IMAGES,POST_NOTIFICATIONS) - הגדרת CI עבור Xamarin:
msbuild/xcodebuildדרך Azure DevOps או GitHub Actions עם Fastlane - תיעוד כל השינויים ומתן דוח
אנו מאמנים את הצוות שלך לעבוד עם הקוד המעודכן. לאחר שנת התמיכה הראשונה, עלויות התחזוקה יורדות בממוצע ב-25%. צור קשר לביקורת של הפרויקט שלך.
למה להעביר מ-Xamarin ל-.NET MAUI?
העברה היא לא רק הרצת dotnet-upgrade-assistant. כן, מיקרוסופט סיפקה כלי עם הפקודה upgrade-assistant upgrade --non-interactive — הוא משכתב את csproj, מעדכן namespaces מ-Xamarin.* ל-Microsoft.Maui.*, אבל דורש תיקונים ידניים ב-30–50% מהמקרים. ההחלטה להעביר תלויה בעתיד האפליקציה: אם אתה מתכנן פיתוח פעיל, .NET MAUI הוא הבחירה הטובה יותר.
תהליך ההעברה מורכב מחמישה שלבים:
- ביקורת קוד – הערכת עומס העבודה, זיהוי custom renderers, DependencyService, Xamarin.Essentials.
- הרצת upgrade-assistant – עדכון אוטומטי של קבצי הפרויקט ו-refactoring ראשוני.
- עידון ידני – החלפת Renderer ב-Handler, תרגום קוד ספציפי לפלטפורמה, עדכון תצורות build.
- בדיקות – בדיקה על מכשירים אמיתיים (iOS 16+, Android 13+), כולל תרחישים עבור push, deep linking, רכישה בתוך האפליקציה.
- פריסה – פרסום ל-TestFlight ול-Google Play Console, הגדרת ניטור.
החלקים הכי עתירי עבודה בהעברה:
- החלפת Renderer ב-Handler
- תרגום Xamarin.Essentials ל-MAUI Essentials (ה-APIים תואמים, אבל ה-namespaces השתנו)
- עבודה עם קוד ספציפי לפלטפורמה ב-
Renderer— ב-MAUI זה מוחלף ב-Handlerאו hooks native שלDependencyService.
השוואה Xamarin לעומת .NET MAUI
| פרמטר | Xamarin | .NET MAUI |
|---|---|---|
| מסגרת UI | Forms (משותף) + native | MAUI מאוחד עם Handler |
| ביצועים | Mono JIT (Android) | .NET 8 AOT (שניהם) |
| גודל אפליקציה | גדול יותר (Mono runtime) | קטן יותר (NativeAOT) — עד 50% קטן יותר |
| תמיכה | הסתיימה | פעילה, LTS |
| כלי העברה | — | partial class |
| מהירות התחלה קרה | איטית יותר | פי 1.5 מהירה יותר |
Xamarin.Forms מפסיד משמעותית ל-.NET MAUI — התחלה קרה איטית ב-30–40% באנדרואיד, מה שקריטי למשתמשים.
מהם השלבים העיקריים של ההעברה?
| שלב | משך | תיאור |
|---|---|---|
| ביקורת | 1–2 שבועות | בדיקת קוד, זיהוי תלותים וסיכונים |
| עדכון אוטומטי | 1–2 ימים | הרצת upgrade-assistant, עדכון csproj |
| עידון ידני | 2–8 שבועות | החלפת renderers, התאמת קוד פלטפורמה |
| בדיקות | 1–2 שבועות | בדיקות רגרסיה, בדיקות UI, בדיקות ידניות על מכשירים |
| פריסה ותיעוד | 3–5 ימים | פרסום, העברת קוד, מדריך לתמיכה עתידית |
דוגמה: עלות העברה לאפליקציה בינונית
אפליקציה בינונית עם 10 מסכים ו-3 custom renderers: ביקורת $2,000, עדכון אוטומטי $500, עידון ידני $6,000, בדיקות $2,000, פריסה $1,000 — סה"כ $11,500. חיסכון טיפוסי מאיחוד שני צוותים native: $20,000/שנה.
לוחות זמנים להעברה נעים בין 4 שבועות (אפליקציה קטנה ללא custom renderers) ל-3–4 חודשים (מוצר גדול עם אינטגרציה native עמוקה). העלות מחושבת באופן אישי לאחר ביקורת הקוד הקיים והערכת היקף השינויים.
טעויות טיפוסיות בהעברת Xamarin ל-MAUI
- שכחת עדכון כל
MauiProgram.csל-dotnet-upgrade-assistant— האפליקציה קורסת בגישה הראשונה לשירות פלטפורמה. - אי הוספת
DependencyService— דחייה ב-App Store. - השארת חבילות מיושנות כמו
partial class— יש להחליף אותן ב-PrivacyInfo.xcprivacy. - אי עדכון תצורת build של ProGuard/R8 (Android) — עלול לגרום לשגיאות הסרת קוד.
קבל ייעוץ על פרויקט ה-Xamarin שלך. אנו נעריך את ההיקף, הסיכונים ולוחות הזמנים. צור קשר — אנו נבצע ביקורת קוד ונציע אפשרויות: תמיכה או העברה מלאה.







