زامارین چیست؟

What is Xamarin?زامارین یک بستر متن باز مبتنی بر .NET، به منظور ساخت برنامه های مدرن و با پرفورمنس بالا برای iOS، اندروید و ویندوز است. زامارین یک لایه ی انتزاعی است که ارتباطات میان کد مشترک را به همراه کد های زیرین (مربوط به هر پروژه، اندروید، iOS و ...) مدیریت می‌کند. زامارین در یک محیط مدیریت شده اجرا می‌شود که اعمالی نظیر گرفتن حافظه (memory allocation) و garbage collection را آسان می‌کند.زامارین به توسعه دهندگان این امکان را می‌دهد تا حدود 90% از برنامه‌ی خود را میان پلتفرم های مختلف به صورت مشترک بنویسند. استفاده از این الگو به توسعه دهندگان این قابلیت را می‌دهد تا تمام منطق بیزنس (business logic) را با یک زبان کدنویسی کنند اما پرفورمنس، ظاهر و ... را بسته به سیستم عاملی که اپلیکیشن بر روی آن اجرا می‌شود دریافت کنند.اپلیکیشن های زامارین می‌توانند هم بر روی سیستم عامل ویندوز و هم بر روی mac نوشته شوند و به پکیج های اپلیکیشن های محلی (native) کامپایل شوند، مانند فایل .apk برای اندروید و یا یک فایل .ipa برای iOS.کامپایل و خروجی گرفتن اپلیکیشن های iOS در حال حاضر نیاز به یک ماشین MacOS دارد. برای اطلاعات بیشتر درباره‌ی نیازمندی های توسعه، اینجا را مشاهده کنید.زامارین برای چه کسانی استزامارین برای برای توسعه دهندگانی است که هدف های زیر را دنبال می‌کنند:کد مشترک، تست و منطق بیزنس واحد میان پلتفرم های مختلفنوشتن اپلیکیشن های چندسکویی با استفاده از C# و ویژوال استودیوزامارین چگونه کار می‌کندزامارین چگونه کار می‌کندتصویر بالا معماری کلی یک اپلیکیشن چندسکویی مبتنی بر زامارین را نشان می‌دهد. زامارین این امکان را به شما می‌دهد تا با نوشتن منطق اصلی برنامه‌تان در لایه‌ی مشترک (shared) با زبان سی شارپ خروجی های مختلف و مبتنی بر سیستم عامل های موبایل دریافت کنید. در اکثر اوقات چیزی حدود 80% تا 90% کد یکبار نوشته می‌شود.ویژگی های افزوده شدهزامارین قابلیت های محلی سیستم عامل ها را با هم ترکیب می‌کند و یک سری از ویژگی ها را نیز به آن ها می‌افزاید که شامل:1. بایندینگ کامل برای SDK های زیرین : زامارین بایندینگ ها را تقریبا برای تمامی SDK های پلتفرم زیرین نظیر اندروید و iOS را شامل می‌شود. علاوه بر آن، این بایندینگ ها strongly typed هستند، بدین معنی که به آسانی پیمایش و استفاده می‌شوند، و type checking قدرتمند زمان کامپایل را در حین زمان توسعه فراهم می‌کند. بایندینگ های strongly-typed منجر به خطا های اجرای کمتری و اپلیکیشن های با کیفیت تری می‌شود.2. جاوا، C ، C++ ، Objective-C : زامارین این امکان را به شما می‌دهد تا بتوانید مستقیماً از کتابخانه های نوشته شده به زبان های یاد شده استفاده کنید. بدین ترتیب شما این قدرت را دارید تا از طیف وسیعی از کتابخانه های third party بهره‌مند شوید.3. سازه های زبان مدرن : اپلیکیشن های زامارین با زبان سی شارپ نوشته می‌شوند، زبانی که مدرن است و پیشرفت های بسیار مهمی فراتر از جاوا و objective-c را به خود اضافه کرده است. ویژگی های نظیر لامبدا ها، برنامه نویسی موازی، LINQ، جنریک ها و ... .4. استفاده از (Base Class Library (BCL قدرتمند : اپلیکیشن های زامارین از .NET BCL استفاده می‌كنند، ‌مجموعه ای وسیع از کلاس ها که ویژگی های جامع و ساده سازی شده ای مانند XML قدرتمند، پایگاه داده، سریالیزیشن، IO، رشته و پشتیبانی شبکه و ... را دارند.5. محیط توسعه‌ی مجتمع شده‌ی مدرن (Modern Intagrated Development Enviroment) : زامارین از ویژوال استودیو، یک محیط توسعه‌ی مدرن که ویژگی هایی نظیر code auto completion، سیستم مدیریت پروژه و solution پیچیده، قالب های پروژه جامع، کنترل منبع مجتمع شده (integrated source control) و ... را دارد استفاده می‌کند.6. پشتیبانی چندسکویی موبایل : زامارین پشتیبانی چندسکویی انتزاعی را برای 3 پلتفرم مهم اندروید، iOS و ویندوز را پیشنهاد می‌کند. همچنین با استفاده از کتابخانه Xamarin.Essentials میتوان به API های محلی دستگاه های موبایل نظیر دوربین، location و ... دسترسی پیدا کرد. کد نویسی به این سبک هم باعث کاهش هزینه های توسعه و هم باعث صرفه جویی در زمان می‌شود.Xamarin.AndroidXamarin.Android اپلیکیشن های Xamarin.Android از سی شارپ به زبان میانی (Intermediated Language IL) و سپس در زمان اجرا (Just-in-Time (JIT به اسمبلی محلی کامپایل می‌شود. اپلیکیشن های Xamarin.Android شانه به شانه‌ی ماشین مجازی (Android Runtime (ART در درون محیط اجرای Mono اجرا می‌شوند. زامارین فضای نام های NET Binding. را به اندروید * جاوا فراهم سازی می‌کند. محیط اجرای Mono این فضاهای نام را از طریق (Managed Callable Wrappers (MCW فراخوانی می‌کند و Android Callable Wrappers ((ACW را برای ART فراهم می‌کند، این امکان به وجود می‌آید که هر دو محیط کد ها را از یکدیگری فراخوانی کنند.برای مطالعه‌ی بیشتر اینجا را مطالعه کنید.Xamarin.iOSXamarin.iOSاپلیکیشن های Xamarin.iOS کاملاً از سی شارپ (Ahead-of-Time (AOT به کد اسمبلی محلی ARM کامپایل می‌شود. زامارین از Selectors برای در معرض گذاشتن Objective-C به managed c# و از Registrars برای در معرض گذاشتن C # مدیریت شده به Objective-C استفاده می کند. Selectorها و Registrarها مجموعا با هم "بایندینگ‌ها" نامیده می‌شوند و اجازه می‌دهند تا Objective-C و سی شارپ با هم تعامل کنند.برای مطالعه بیشتر اینجا را ببینید.Xamarin.Essentialsاین کتابخانه API های چندسکویی برای ویژگی های محلی دستگاه فراهم می‌کند. همانند خود زامارین فرم، زامارین اسنشیالز انتزاعی است که روند دستیابی به قابلیت های بومی را ساده می کند. همانند:Device info File system Accelerometer Phone dialer Text-to-speech Screen lockبرای مطالعه بیشتر اینجا را ببینید.Xamarin.Formsزامارین فرم یک چارچوب UI منبع باز است. زامارین فرم به توسعه دهندگان این امکان را می دهد تا برنامه های Xamarin.iOS ، Xamarin.Android و Windows را از یک کد مشترک خروجی بگیرند. زامارین فرم به توسعه دهندگان اجازه می دهد تا رابط های کاربری در XAML با کد بک اند C # ایجاد کنند. این رابط های کاربری به عنوان کنترل های بومی عملکردی در هر سیستم عامل ارائه می شوند. چند نمونه از ویژگی های ارائه شده توسط زامارین فرم عبارتند از:XAML user-interface languageDatabindingGestures Effects Stylingبرای مطالعه بیشتر اینجا را ببینید.منبع نوشته : https://docs.microsoft.com/en-us/xamarin/get-started/what-is-xamarin https://vrgl.ir/rddVE