با آموزش برنامه نویسی اندروید با زامارین ( ویکی پدیا ) در خدمتتان هستیم.در این دوره ما قصد داریم یک آموزش جامع در حوزه تکنولوژی زامارین به شما ارائه دهیم.

زامارین ( Xamarin ) یک شرکت نرم‌افزاری تحت مالکیت مایکروسافت می‌باشد که در سال ۲۰۱۱ شروع به کار نموده است. شرکت مایکروسافت ( ویکی پدیا ) در سال ۲۰۱۵ آن را خریداری و به ویژوال استودیو اضافه کرد.با استفاده از زامارین می توان یک کد #C را روی ۲.۶ میلیارد دستگاه اجرا کرد!

این نوید را به همه برنامه نویسان سی شارپ می دهیم که شما به راحتی می توانید با دانشتان در زمینه سی شارپ برای سایر پلتفرم ها هم اپلیکیشن بنویسید.

در واقع دوره برنامه نویسی اندروید با زامارین برای دات نت کارهایی است که به برنامه نویسی اندروید نیز علاقه مند هستند.

اگر در برنامه نویسی سی شارپ و دات نت دانشی ندارید و می خواهید دوره آموزش برنامه نویسی اندروید با زامارین را ببینید و یاد بگیرید، پیشنهاد می کنیم ابتدا دوره آموزش برنامه نویسی سی شارپ را مشاهده نمایید. این دوره به صورت رایگان ارائه شده است.

در این دوره ما قصد داریم یک آموزش جامع در حوزه تکنولوژی زامارین به شما ارائه دهیم.

در بخش اول، بحث مقدمات آموزش برنامه نویسی اندروید با زامارین را یاد می گیریم و شما به کمک آن قادر هستید که هر اپلیکیشن سمت کلاینتی را طراحی کنید.

در بخش دوم دوره آموزش برنامه‌نویسی اندروید با زامارین مبحث دیزاین را اصل قرار می دهیم و یک سری اپلیکیشن های ساده را در این بخش با طراحی مناسب‌تری انجام دادیم.

در بخش سوم آموزش برنامه نویسی اندروید با زامارین، کار با وب‌سرویس WebApi Rest Service در زامارین را فرا خواهید گرفت.

مخاطبین دوره برنامه نویسی اندروید با زامارین:

  • علاقه مندان به برنامه نویسی اندروید
  • علاقه مندان به زامارین
  • دانشجویان و فارغ التحصیلان رشته کامپیوتر
  • کسانی که خواهان کسب درآمد از طریق برنامه نویسی هستند.
  • و …

آنچه با خرید این دوره به دست می آورید:

  • متخصص شدن در برنامه نویسی اندروید
  • تسلط در حوزه آموزشی مورد نظر
  • اشتغال و درآمدزایی
  • انجام پروژه های تخصصی و هیجان انگیز
  • و …

پیش نیاز برنامه نویسی اندروید با زامارین:

آموزش برنامه نویسی سی شارپ

سرفصل های برنامه نویسی اندروید با زامارین:

بخش اول: 

  • آشنایی با مقدمات زامارین
  • مقایسه زامارین با جاوا
  • بررسی امکانات و قابلیت های زامارین
  • نصب و راه اندازی زامارین
  • نصب و راه اندازی ماشین مجازی
  • کار با لایه ها در زمارین
  • آشنایی با رویدادها در زامارین
  • کار با ابزارهای موجود در toolbox
  • کار با با ویجت autocomplete textview
  • کار با ویجت های پر کاربرد (btutton – plaintext – textview)
  • کار با webview
  • ساخت ماشین حساب
  • شروع کار با intent ها
  • کار با map گوشی
  • برقراری تماس
  • کار با مرورگر گوشی
  • بررسی مجوز ها در AndroidManifest
  • شروع کار با listview
  • ایجاد لایه اختصاصی برای listview
  • ایجاد آداپتر شخصی شده برای listview
  • تعریف پارامترهای شخصی شده برای listview
  • نمایش اطلاعات به صورت کاستم در listview
  • کار با gridview
  • شروع کار با دیتابیس
  • آموزش دیتابیس با روش Ado.net
  • کار با دیتابیس به روش EntityFramework
  • ساخت نرم افزار دریافت و نمایش اطلاعات به کمک روش EntityFramework
  • انجام چهار عملیات اصلی insert-delete-upadate-select با روش EntityFramework
  • کار با دیتابیس آماده
  • نصب و راه اندازی sqliteManager
  • ایجاد دیتابیس و جدول در sqliteManager
  • ایجاد صفحه لاگین
  • کدنویسی مربوط به صفحه لاگین
  • انجام چهار عملیات اصلی به روش sqlite

بخش دوم: 

در بخش اول، بحث مقدمات برنامه نویسی به کمک زامارین را آموزش دادیم و شما به کمک آن قادر هستید که هر اپلیکیشن سمت کلاینتی را طراحی کنید. اما مشکلی که در بخش اول با آن مواجه بودیم بحث دیزاین بود و دیزاین خوبی در اپلیکیشن های ما دیده نمی شد. در بخش تکمیلی آموزش زامارین مبحث دیزاین را اصل قرار دادیم و یک سری اپلیکیشن های ساده را در این بخش با طراحی مناسب تری انجام دادیم.

  • ارسال sms
  • ارسال email
  • ایجاد دیالوگ
  • کار با انیمیشن ها
  • طراحی سیستم لاگین با دیزاین زیبا
  • کار با استایل ها و نحوه استایل دهی به آبجکت ها
  • استفاده از انیمیشن در سیستم لاگین
  • استفاده از دیالوگ ها در سیستم لاگین
  • کار با progressbar و استایل دهی به آن
  • ساخت یک رویداد کاملا اختصاصی (event)
  • معرفی متریال دیزاین
  • شروع کار با متریال دیزاین
  • ایجاد تم های سفارشی
  • ویرایش کردن نقاط مختلف یک اپلیکیشن اندروید به کمک متریال دیزاین
  • ایجاد swipeRefreshLayout
  • آموزش کار با RecyclerView
  • شخصی سازی RecyclerView
  • طراحی و ساخت اکشن بار اختصاصی
  • خروجی گرفتن از برنامه
  • کاهش حجم اپلیکیشن زامارین
  • امنیت اپلیکیشن های زامارین
  • و ده ها موضوع جذاب دیگر

بخش سوم:

همان‌طور که همه شما می‌دانید کار با دیتابیس آنلاین و وب‌ سرویس یکی از مهم‌ترین مباحث هر زبان و تکنولوژی برنامه‌نویسی است.در قسمت‌های گذشته یاد گرفتیم که چگونه یک اپلیکیشن اندروید را با استفاده از زامارین ایجاد کنیم. اما هنوز این اپلیکیشن ناقص بوده و شاید در اکثر پروژه‌های تجاری نیاز داشته باشید که اپلیکیشن شما با سمت سرور یعنی وب‌سایت و دیتابیس آنلاین ارتباط برقرار کند.

در اینجا مبحثی تحت عنوان وب‌سرویس به وجود می‌آید .در زبان ASP به چند طریق می‌توان یک وب‌سرویس نوشت.دو وب‌سرویس webApi و WCF گزینه‌های پیش روی شما در ایجاد وب‌سرویس در ASP MVC می‌باشد که ما webAPI را انتخاب می‌کنیم.

Web API چیست؟

Web API، نوع قالب جدیدی برای پروژه‌های مبتنی بر وب در NET. است که بر مبنای اصول و الگوهای موجود در ASP.NET MVC ساخته شده است و همراه با ASP.NET MVC 4 وجود دارد. Web API توسعه‌دهندگان را قادر می‌سازد تا با استفاده از یک الگوی ساده که در Controller ها پیاده‌سازی می‌شود، وب‌سرویس‌های مبتنی بر پروتکل HTTP را با کدها و تنظیمات کم ایجاد کنند. این سبک جدید برای ایجاد وب‌سرویس‌ها، می‌تواند در انواع پروژه‌های NET. مانند ASP.NET MVC، ASP.NET Web Forms، Windows Application و … استفاده شود.

یک سؤال کاملاً منطقی در اینجا به وجود می‌آید. چرا نیاز به بستری جدید برای ایجاد وب‌سرویس داریم؟ آیا در حال حاضر مایکروسافت بستری محبوب و فراگیر برای توسعه‌ی وب‌سرویس‌هایی که بتوانند با پروتکل SOAP تعامل داشته باشند در اختیار ندارد؟ مگر وب‌سرویس‌های ASMX از زمان معرفی ASP.NET وجود نداشته‌اند؟ آیا تکنولوژی WCF مایکروسافت، بیشترین انعطاف‌پذیری و قدرت را برای تولید وب‌سرویس‌ها در اختیار قرار نمی‌دهد؟ وب‌سرویس‌ها جایگاه خود را یافته‌اند و توسعه گران با تکنولوژی‌های موجود به‌خوبی آن‌ها را پیاده‌سازی و درک می‌کنند. چرا Web API؟

چرا Web API؟

برای پاسخ به این سؤال، باید برخی مشکلات را بررسی کنیم و ببینیم ابزارهای موجود چه راه‌حلی برای آن‌ها در نظر گرفته‌اند. اگر با گزینه‌هایی که در ادامه می‌آیند موافق هستید، خواندن این مطلب را ادامه دهید و اگر اعتقادی به آن‌ها ندارید، پس ‌نیازهای شما به‌خوبی با بسترهای موجود پاسخ داده می‌شوند.

  • من معتقد هستم که راه بهتری برای ایجاد وب‌سرویس‌ها وجود دارد.
  • من معتقد هستم که روش‌های ساده‌تری برای ایجاد وب‌سرویس‌ها وجود دارد و WCF بیش‌ازحد پیچیده است.
  • من معتقد هستم که تکنولوژی‌های پایه‌ی وب مانند اَفعال GET، POST، PUT و DELETE برای انجام اَعمال مختلف توسط وب‌سرویس‌ها کافی هستند.

در کل می‌توان گفت که  Web API، یک روش جدید و آسان برای ایجاد وب‌سرویس‌ها، بر مبنای مفاهیم آشنای ASP.NET MVC و پایه‌ وب است. از این روش می‌توان در انواع پروژه‌های NET. استفاده کرد.

خوب ما تا اینجا تکنولوژی‌هایی که می‌توان با آن‌ها وب‌سرویس ایجاد کرد را معرفی کردیم.باید با خود وب‌سرویس‌ها بیشتر آشنا شویم.دو نمونه از وب‌سرویس‌های قدرتمند عبارت هستند از SOAP و RESTFULL یا REST که به معرفی آن‌ها خواهیم پرداخت.

تعریف REST:

یک سبک معماری و رویکردی برای ارائه سرویس‌ها و API های عمومی روی بستر اینترنت با استفاده از پروتکل HTTP می‌باشد. REST روی دسترسی به منابع آدرس دار با یک رابط ثابت متمرکز شده است. یعنی هر منبعی دارای URI مشخص و واحد است. رابط ارائه‌شده ازاین‌جهت ثابت می‌باشد که از معماری RESTful برای طراحی آن استفاده می‌شود. در این نوع از طراحی, از عملیات موجود در خود HTTP بهره‌برداری می‌شود. (Post,Get,Put,Delete)

مفهوم REST روی عملیات CRUD بر روی داده استوار است. ازآنجایی‌که وب Resource Oriented می‌باشد، وقتی صحبت از انجام عملیات روی منابع بر روی بستر پروتکل HTTP می‌کنیم، REST به میان می‌آید. سادگی آن به دلیل استفاده از HTTP راه‌حل مناسبی برای ایجاد سرویس‌های تحت وب ارائه داده است. برقراری ارتباط کلاینت با REST ساده بوده و نیاز به تنظیمات خاص ندارد.  همچنین فرمت‌های متنوعی مثل JSON و XML را ارائه می‌دهد.

تعریف SOAP:

یک پروتکل انتقال پیام می‌باشد که به برنامه‌های در حال اجرا بر روی سیستم‌های مجزا اجازه تعامل و تبادل پیام را می‌دهد.SOAP بیشتر بر روی ارائه منطق برنامه به‌صورت سرویس متمرکز شده است و درواقع عملیاتی را ارائه می‌دهد که از طریق رابط‌های (Interface) مختلف قابل‌ارائه می‌باشد، البته از SOAP به‌اشتباه WebService نیز نام می‌برند.SOAP روی ارائه عملیات متنوع برای منطق کسب‌وکار بنا نهاده شده است. فرمت پیام‌ها XML می‌باشد و ساختار پیام مخصوص خود را دارد.

مقایسه REST و SOAP:

  • ازلحاظ کارایی، مقیاس‌پذیری و سرعت خواندن داده‌ها REST عملکرد بهتری را از خود نشان می‌دهد که از دلایل آن پشتیبانی ذاتی HTTP از Cache کردن و سربار بالای پیام‌های SOAP می‌باشد.
  • SOAP همانند REST از SSL و همچنین WS-Security که ویژگی‌های امنیت سازمانی را اضافه می‌کند، پشتیبانی می‌کند. درواقع WS-Security امکانات امنیتی اضافه‌تری را فراهم می‌کند که سرویس‌های اینترنتی معمول به آن نیازی ندارند و درواقع صرفاً در سناریوهای سازمانی موردنیاز می‌باشند.
  • پشتیبانی SOAP از WS-Atomic-Transaction امکان تراکنش‌های ACID را فراهم می‌کند. این در حالی است که REST از تراکنش‌های ACID پشتیبانی نمی‌کند و این امر ناشی از محدودیت پروتکل Http می‌باشد که از two-phase-commit بر روی منابع توزیع‌شده پشتیبانی نمی‌کند.
  • REST فاقد سیستم استاندارد انتقال پیام می‌باشد و انتظار دارد تا کلاینت در صورت برخورد با هرگونه مشکلی دوباره تلاش نماید. اما SOAP منطق   Successful/retry را به‌صورت ذاتی فراهم می‌کند تا قابلیت اطمینان را در انتقال پیام به وجود آورد.بنابراین SOAP مفید و مهم است. برای مثال وقتی می‌خواهیم برنامه تراکنش مالی بنویسیم پشتیبانی از تراکنش توزیع‌شده مهم است. بنابراین SOAP گزینه مناسبی است.
  • REST  به دلیل استفاده از Http ذاتاً stateless می‌باشد ولی SOAP از state-full بودن نیز پشتیبانی می‌کند.
  • SOAP به پروتکل انتقال وابسته نیست درحالی‌که REST صرفاً بر روی Http می‌باشد. سرویس‌های SOAP توسط WSDL توصیف می‌شوند همچنین اطلاعات در موردشی در داخل خود پیام ارسال می‌شود.
  • از معایب SOAP حجم بالای پیام‌های آن و اشغال پهنای باند ارتباطی, سختی پیاده‌سازی و استفاده از آن در وب و موبایل می‌باشد. همچنین تنها به‌صورت XML پیام‌ها را ارسال می‌کند.
  • از معایب REST وابستگی آن به پروتکل Http و پیچیده بودن Authorization  و امنیت بر روی آن می‌باشد.

درنتیجه می‌توان به این گفته رسید که وقتی کلاینت‌ها و سرورها روی محیط وب و موبایل کار می‌کنند و نیازی به ارسال اطلاعات اضافی در موردشی به سمت کلاینت نداریم REST گزینه مناسب‌تری است. اما وقتی نیاز به یک Contract رسمی مابین سرور و کلاینت هستیم و یا نیاز به تراکنش‌های ACID در فراخوانی سرویس‌ها هستیم SOAP گزینه‌ی مطلوب‌تری می‌باشد.

سناریوهای معمول REST:

* Social Media Service,Social Network

*Web chat service,Mobile service

سناریوهای معمول SOAP:

*Financial Service

*Payment Gateway

*Telecommunication service

WCF سرویس‌های SOAP based را فراهم می‌کند و Web API امکان ایجاد سرویس‌های REST را فراهم می‌کند.

مقایسه جالب را در تصویر زیر می‌توانید ببینید که برگرفته از stackoverflow می‌باشد:

  • آشنایی با ساختار ASPMVC
  • آشنایی با ساختار WEBAPI
  • کار با WEBAPI
  • آشنایی با مفهوم JSON
  • کار با JSON
  • ایجاد وب سرویس WEBAPI و RESTFULL
  • انجام عملیات واکشی اطلاعات در سمت سرور
  • انجام عملیات درج اطلاعات در سمت سرور
  • انجام عمیات حذف اطلاعات در سمت سرور
  • انجام عملیات ویرایش اطلاعات در سمت سرور
  • اتصال اپلیکیشن نوشته شده در زامارین با سرور
  • فراخوانی RESTAPI در سمت زامارین
  • انجام عملیات واکشی اطلاعات در سمت زامارین
  • انجام عملیات درج اطلاعات در سمت زامارین
  • توضیح نحوه انجام حذف اطلاعات در سمت زامارین
  • توضیح نحوه انجام ویرایش اطلاعات در سمت زامارین