در این قسمت قصد داریم به بررسی چند زبانه سازی برنامهها بپردازیم. برای چند زبانه کردن یک برنامه باید حداقل به موارد زیر توجه شود: 1- بحث Right to left و Left to right در صورتیکه زبان هایی که قصد پشتیبانی از آنها را داریم، از هر دو مدل باشند. 2- بحث stringهای استفاده شده در View (مثلا Text یک Button) و View Model (مثل متن هشدار Alert Dialog) 3- بحث تقویم شمسی، قمری و میلادی در صورت لزوم. همه کنترلها در Xamarin Forms ...
فیلدهای استاتیکی که در سطح یک کلاس تعریف میشوند، برای نگهداری دادههایی به کار میروند که بین همهی اشیاء ساخته شدهی از آن کلاس مشترک هستند. لذا برای دستیابی به آنها، نیاز به ساختن شیءای از آن کلاس نبوده و از طریق خود کلاس در دسترس خواهند بود. اما نکتهای در مورد فیلدهای استاتیک وجود دارد و آن هم ترتیب مقدار دهی به آنها است که در این مجال قصد دارم به آن بپردازم.
در یک کلاس همانطور که میتوانیم متد استاتیک و یا پراپرتی استاتیک ...
یک پیاده سازی از کلاس، میتواند به طور ضمنی شامل دو یا چند نوع (Type) باشد. یکی از سادهترین راههای پیاده سازی این حالت، استفاده از فیلدهایی برای نگهداری نوع اصلی دادهی کلاس است که اصطلاحا Type code نیز نامیده میشوند. به طور مثال پیاده سازی زیر را در نظر بگیرید. به طور مثال در کلاس بالا یک کارمند میتواند فروشنده یا مهندس باشد. پیاده سازی بالا این مورد را با استفاده از دو فیلد نشان دادهاست که در صورت true بودن، مقدار هریک از ...
در این قسمت قصد بررسی کامپوننتهای فوق العادهی Syncfusion را داریم. احتمالا Syncfusion را با کتابهای Succinctly Series آن می شناسید. این شرکت برای Xamarin Forms نزدیک به 130 کامپوننت، شامل موارد کار با دیتا، اعم از فرمهای Data Entry ،Data Grid و ListView را نوشته که در کنار کنترلهای کار با فایلهای Office-PDF و همچنین گزارشات و چارتها و سایر کنترلهای آن، نیاز هر برنامهای را برآورده میکند. یکی از چند ده کتاب Xamarin Forms نیز ...
در قسمت قبلی، به Bindingها پرداختیم و در این قسمت قصد بررسی Triggers و موارد پیشرفتهتر در Bindings را داریم. در مثالهای قسمت قبل علاوه بر Bind کردن View به View Model، مثالی را داشتیم که در آن View به View بایند شده بود (Text یک Label به Text یک Entry بایند شده بود، به شکلی که هر آنچه که در Entry تایپ میشد، در همان لحظه روی Label نیز دیده میشد). خب در آن مثال، Text در هر دو کنترل از یک جنس بود (string). اما اگر بخواهیم مثلا زمان ...
زمانیکه متدی یک لیست (collection) را بر میگرداند، بهتر است این لیست، نسخهای فقط خواندنی باشد. برای توضیح بیشتر این موضوع میتوان به کلاس زیر و نحوهی بازسازی آن رجوع کرد. در کلاس Person فرضی، متدی مسئولیت دریافت لیست درسهای آن شخص را بر عهده دارد. متد دیگری نیز مسئولیت ثبت کردن آنها را بر عهده دارد. توجه کنید متد دریافت لیست درس ها، لیستی قابل ویرایش (افزودن یا حذف کردن) را بر میگرداند. در پیاده سازی ابتدایی، متدهای getter ...
در قسمتهای قبل یاد گرفتید که چطور View و View Model را در متد RegisterTypes در App.xaml.cs به یکدیگر وصل کرده و به آنها یک اسم دهید و با Navigation Service آنها را در حالتهای مختلف مثل Navigation Page و Master Detail و Popup و ... باز کنید و بین صفحات جابجا شوید. در Viewها دو مورد را به صورت ابتدایی توضیح دادیم، Binding و Command . در این قسمت وارد جزئیات میشویم. Command قطعهای کد در View Model است (عموما یک متد ...
BitDatePicker یک Date Picker، برای استفاده در برنامههایی مبتنی بر زمارین فرم (Android - iOS - UWP) است. مهمترین ویژگی ها: پشتیبانی از تمامی Calendar System هایی که noda time ساپورت میکند؛ اعم از شمسی، قمری، میلادی و ... پشتیبانی از تمامی Locale هایی که NET. پشتیبانی میکند؛ اعم از فارسی، عربی، انگلیسی و ... قابلیت ارائه Template سفارشی شده برای UI سازگار شده با MVVM بر روی گیت هاب یک نمونه کد که در آن ...
تا اینجا نحوهی اجرای برنامهها، وب سرورها و حتی بانکهای اطلاعاتی را توسط داکر بررسی کردیم. در این قسمت میخواهیم یک برنامه و بانک اطلاعاتی مخصوص آنرا داخل یک کانتینر اجرا کنیم و برای این منظور از ابزار ساده کنندهی docker-compose استفاده خواهیم کرد.
docker-compose چیست؟
فرض کنید برنامهی ما، از یک قسمت منطق خود برنامه و قسمت دیگر بانک اطلاعاتی آن تشکیل شدهاست. در این حالت برای توزیع آن توسط کانتینرها، نیاز به د ...
در نسخههای قبل از Angular CLI 6.0، صرفا امکان Bundle کردن جداگانهی ماژولهایی که در قسمت loadChildren مرتبط با تنظیمات مسیریابی ذکر شده بودند، وجود داشت. بنابراین در برخی از شرایط اگر نیاز به امکان بارگذاری ماژولی به صورت Lazy load بود، باید از سیستم مسیریابی استفاده میشد یا اینکه با یکسری ترفند، CLI و Webpack را مجبور به ساخت فایل chunk جداگانه برای ماژول مورد نظر میکردید. از زمان انتشار Angular CLI 6.0 امکان Lazy loading ...