🔻 #نکته_آموزشی #سی_شارپ
🔶️ برش یا Crop کردن یک تصویر (یک برش مستطیلی از تصویر)
private static Image cropImage(Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
✅ مثال از نحوه ی استفاده :
private void button1_Click(object sender, EventArgs e)
{
pictureBox2.Image = cropImage(pictureBox1.Image, new Rectangle(10,10,100,100));
}
🖥 @FunProGraming
🔶️ برش یا Crop کردن یک تصویر (یک برش مستطیلی از تصویر)
private static Image cropImage(Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
✅ مثال از نحوه ی استفاده :
private void button1_Click(object sender, EventArgs e)
{
pictureBox2.Image = cropImage(pictureBox1.Image, new Rectangle(10,10,100,100));
}
🖥 @FunProGraming
🔻 #نکته_آموزشی #سی_شارپ
🔶️ بدست آوردن مقدار یک Enum از عدد متناظر آن
public T NumToEnum<T>(int number)
{
return (T)Enum.ToObject(typeof(T), number);
}
✅ مثال - با فرض داشتن :
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
✅ میتوانیم بنویسیم :
int day = 3;
DaysOfWeek d = NumToEnum<DaysOfWeek>(day);
//d is now DaysOfWeek.Thursday
🖥 @FunProGraming
🔶️ بدست آوردن مقدار یک Enum از عدد متناظر آن
public T NumToEnum<T>(int number)
{
return (T)Enum.ToObject(typeof(T), number);
}
✅ مثال - با فرض داشتن :
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
✅ میتوانیم بنویسیم :
int day = 3;
DaysOfWeek d = NumToEnum<DaysOfWeek>(day);
//d is now DaysOfWeek.Thursday
🖥 @FunProGraming
🔷️ #SQLite :
✅ ذخیره و بازیابی اطلاعات یکی از نیازهای اساسی در هنگام برنامهنویسی سیستمهای مختلف است. برای این کار، بسته به نیازهای موجود ابزارها و روشهای مختلفی نیز وجود دارند. از روشهای ساده مانند نگهداری اطلاعات در یک فایل متنی تا استفاده از نرمافزارهای عظیم مانند Oracle.
✅ یکی از ابزارهای ذخیره و بازیابی اطلاعات، SQLite نام دارد. این نرمافزار مشهورترین سیستم ذخیره فایلی اطلاعات به شمار میرود. شهرت SQLite به دلیل پشتیبانی از انواع مختلف سیستمعاملها از جمله ویندوز، لینوکس، اندروید و...و همچنین رایگان و قدرتمند بودن آن است.
✅ در واقع SQLite با زبان C برنامهنویسی شده است و به طور پیوسته در حال بهبود و توسعه است. به همین دلیل سرعت و کارایی بسیار بالایی دارد. در نگارشهای جدید که در آینده منتشر خواهند شد، بهینهسازیهای گستردهای روی این سیستم به انجام رسیده است که سرعت عملکرد آن را بیش از پیش افزایش داده است.
✅ همچنین SQLite نرمافزاری با مجوز استفاده Public Domain است. به این معنی که حق مالکیتی ندارد و هر فرد یا سازمانی میتواند بدون هیچ محدودیتی از آن به هر شکلی استفاده کند.
🖥 @FunProGraming
✅ ذخیره و بازیابی اطلاعات یکی از نیازهای اساسی در هنگام برنامهنویسی سیستمهای مختلف است. برای این کار، بسته به نیازهای موجود ابزارها و روشهای مختلفی نیز وجود دارند. از روشهای ساده مانند نگهداری اطلاعات در یک فایل متنی تا استفاده از نرمافزارهای عظیم مانند Oracle.
✅ یکی از ابزارهای ذخیره و بازیابی اطلاعات، SQLite نام دارد. این نرمافزار مشهورترین سیستم ذخیره فایلی اطلاعات به شمار میرود. شهرت SQLite به دلیل پشتیبانی از انواع مختلف سیستمعاملها از جمله ویندوز، لینوکس، اندروید و...و همچنین رایگان و قدرتمند بودن آن است.
✅ در واقع SQLite با زبان C برنامهنویسی شده است و به طور پیوسته در حال بهبود و توسعه است. به همین دلیل سرعت و کارایی بسیار بالایی دارد. در نگارشهای جدید که در آینده منتشر خواهند شد، بهینهسازیهای گستردهای روی این سیستم به انجام رسیده است که سرعت عملکرد آن را بیش از پیش افزایش داده است.
✅ همچنین SQLite نرمافزاری با مجوز استفاده Public Domain است. به این معنی که حق مالکیتی ندارد و هر فرد یا سازمانی میتواند بدون هیچ محدودیتی از آن به هر شکلی استفاده کند.
🖥 @FunProGraming
🔷️ کاربرد #SQLite
✅ میدانیم SQLite یک سیستم ذخیره اطلاعات فایلی است بنابراین استفاده از آن در محیطهایی که مشتریان متعددی بخواهند از اطلاعات استفاده کنند ممکن است با مشکلاتی مواجه شود. در عوض در محیطهایی مانند نرمافزارهای موبایل و وبسایتهایی که بازدیدهای سنگین و زیادی نداشته باشند کارایی و عملکرد خوبی به دست خواهد آمد.
برخی از سیستمهای مدیریت محتوا مانند دروپال، گزینهی کاربرد SQLite برای طراحی سایت را در اختیار برنامهنویسان و صاحبان سایت قرار میدهند.
✅ بسیاری از نرمافزارهای شناختهشده در دنیا مانند موزیلا فایرفاکس، گوگل کروم، ویندوز ۱۰، اسکایپ و دراپباکس برای نگهداری بخشی از اطلاعات خود از SQLite استفاده میکنند.
🖥 @FunProGraming
✅ میدانیم SQLite یک سیستم ذخیره اطلاعات فایلی است بنابراین استفاده از آن در محیطهایی که مشتریان متعددی بخواهند از اطلاعات استفاده کنند ممکن است با مشکلاتی مواجه شود. در عوض در محیطهایی مانند نرمافزارهای موبایل و وبسایتهایی که بازدیدهای سنگین و زیادی نداشته باشند کارایی و عملکرد خوبی به دست خواهد آمد.
برخی از سیستمهای مدیریت محتوا مانند دروپال، گزینهی کاربرد SQLite برای طراحی سایت را در اختیار برنامهنویسان و صاحبان سایت قرار میدهند.
✅ بسیاری از نرمافزارهای شناختهشده در دنیا مانند موزیلا فایرفاکس، گوگل کروم، ویندوز ۱۰، اسکایپ و دراپباکس برای نگهداری بخشی از اطلاعات خود از SQLite استفاده میکنند.
🖥 @FunProGraming
🔷️ چرا #SQLite :
✅ مدیریت آسان
به دلیل استفاده از سیستم فایلی، نیازی به تنظیمات پیچیده و اساسی مانند بسیاری از DBMSهای دیگر ندارد. کافی است فایل پایگاه داده را در کنار نرمافزار قرار دهید و از آن استفاده کنید.
✅ امکانات پیشرفته SQLite با وجود کم حجم و سریع بودن دارای امکانات پیشرفتهای مانند Transactionها، جدولهای مستقر در حافظه، جستجوی متن Full Text و امکانات گستردهی دیگری است که گاهی به دلیل همین امکانات به صورت موازی در کنار سایر سیستمهای بانک اطلاعاتی مورد استفاده قرار میگیرد.
✅ آشنایی با IDEهای SQLite
برخی از موارد شناخته شده و رایگان که میتوانید برای این منظور استفاده نمایید عبارتند از:
SQLiteStudio
Database.NET
افزونه SQLite Manager برای فایرفاکس
DB Browser for SQLite
✅ پشتیبانی از زبانهای برنامه نویسی
تقریبا تمامی زبانهای برنامهنویسی از جمله php، C، Java، و Microsoft.NET به صورت مستقیم یا با استفاده از کتابخانههای جانبی امکانات ذخیره و بازیابی اطلاعات در جداول SQLite را برای برنامهنویسان فراهم میکنند.
🖥 @FunProGraming
✅ مدیریت آسان
به دلیل استفاده از سیستم فایلی، نیازی به تنظیمات پیچیده و اساسی مانند بسیاری از DBMSهای دیگر ندارد. کافی است فایل پایگاه داده را در کنار نرمافزار قرار دهید و از آن استفاده کنید.
✅ امکانات پیشرفته SQLite با وجود کم حجم و سریع بودن دارای امکانات پیشرفتهای مانند Transactionها، جدولهای مستقر در حافظه، جستجوی متن Full Text و امکانات گستردهی دیگری است که گاهی به دلیل همین امکانات به صورت موازی در کنار سایر سیستمهای بانک اطلاعاتی مورد استفاده قرار میگیرد.
✅ آشنایی با IDEهای SQLite
برخی از موارد شناخته شده و رایگان که میتوانید برای این منظور استفاده نمایید عبارتند از:
SQLiteStudio
Database.NET
افزونه SQLite Manager برای فایرفاکس
DB Browser for SQLite
✅ پشتیبانی از زبانهای برنامه نویسی
تقریبا تمامی زبانهای برنامهنویسی از جمله php، C، Java، و Microsoft.NET به صورت مستقیم یا با استفاده از کتابخانههای جانبی امکانات ذخیره و بازیابی اطلاعات در جداول SQLite را برای برنامهنویسان فراهم میکنند.
🖥 @FunProGraming
🔶️ زبان برنامه نویسی #Dart چیست؟
✅ زبان برنامه نویسی Dart یک زبان برنامه نویسی عمومی است که ابتدا توسط گوگل توسعه داده شد و بعد ها توسط Ecma (یک سازمان استاندارد برای سیستم های اطلاعاتی و ارتباطی) به تصویب رسید. از Dart برای ساخت وب، سرور و برنامه های کاربردی تلفن همراه استفاده می شود. این زبان رابط ها، مخلوط ها، کلاس های انتزاعی، اصطلاحات عمومی، تایپ استاتیک و سیستم نوع صدا را پشتیبانی می کند.
🖥 @FunProGraming
✅ زبان برنامه نویسی Dart یک زبان برنامه نویسی عمومی است که ابتدا توسط گوگل توسعه داده شد و بعد ها توسط Ecma (یک سازمان استاندارد برای سیستم های اطلاعاتی و ارتباطی) به تصویب رسید. از Dart برای ساخت وب، سرور و برنامه های کاربردی تلفن همراه استفاده می شود. این زبان رابط ها، مخلوط ها، کلاس های انتزاعی، اصطلاحات عمومی، تایپ استاتیک و سیستم نوع صدا را پشتیبانی می کند.
🖥 @FunProGraming
🔶️ سه راه اصلی برای اجرای کد های #Dart :
✅ کامپایل به عنوان جاوا اسکریپت
برای استفاده از مروگر، دارت متکی به یک کامپایلر منبع به جاوا اسکریپت است. با توجه به سایت پروژه Dart طراحی شده تا بتوان از آن برای نوشتن ابزار توسعه، توسعه نرم افزار مدرن و پیاده سازی با کارایی بالا استفاده کرد. در هنگام استفاده از یک کد دارت در یک مرورگر وب، کد با استفاده از کامپایلر Dart2js به جاوا اسکریپت وارد می شود. کامپایل به عنوان جاوا اسکریپت سازگار با تمام مروگر های اصلی است.
✅مستقل
کیت توسعه نرم افزار (SDK) دارت با یک Dart VM مستقل حمل می شود که اجازه می دهد کد Dart در محیط رابط خط فرمان اجرا شود. همان طور که ابزار زبان موجود در SDK Dart بیشتر در دارت نوشته شده است، Dart VM مستقل نیز بخش مهمی از SDK است. این ابزار شامل کامپایلرDart2js و مدیر بسته به نام pub است.
✅ پیش از زمان وارد شده
کد دارت می تواند به صورت اتوماتیک به کد ماشین (مجموعه دستور العمل های اصلی) تبدیل شود. برنامه های ساخته شده با Flutter (برنامه SDKتلفن همراه که با Dart ساخته شده است) خودکار به عنوان کد دارت به فروشگاه برنامه ها اعمال میشود.
🖥 @FunProGraming
✅ کامپایل به عنوان جاوا اسکریپت
برای استفاده از مروگر، دارت متکی به یک کامپایلر منبع به جاوا اسکریپت است. با توجه به سایت پروژه Dart طراحی شده تا بتوان از آن برای نوشتن ابزار توسعه، توسعه نرم افزار مدرن و پیاده سازی با کارایی بالا استفاده کرد. در هنگام استفاده از یک کد دارت در یک مرورگر وب، کد با استفاده از کامپایلر Dart2js به جاوا اسکریپت وارد می شود. کامپایل به عنوان جاوا اسکریپت سازگار با تمام مروگر های اصلی است.
✅مستقل
کیت توسعه نرم افزار (SDK) دارت با یک Dart VM مستقل حمل می شود که اجازه می دهد کد Dart در محیط رابط خط فرمان اجرا شود. همان طور که ابزار زبان موجود در SDK Dart بیشتر در دارت نوشته شده است، Dart VM مستقل نیز بخش مهمی از SDK است. این ابزار شامل کامپایلرDart2js و مدیر بسته به نام pub است.
✅ پیش از زمان وارد شده
کد دارت می تواند به صورت اتوماتیک به کد ماشین (مجموعه دستور العمل های اصلی) تبدیل شود. برنامه های ساخته شده با Flutter (برنامه SDKتلفن همراه که با Dart ساخته شده است) خودکار به عنوان کد دارت به فروشگاه برنامه ها اعمال میشود.
🖥 @FunProGraming
🔶️ برنامه های تلفن همراه بومی
✅ گوگل Flutter را برای توسعه برنامه های بومی موبایل در هر دوی Android و IOS معرفی کرد. Flutter یک برنامه SDK تلفن همراه است که با چارچوب، ویجت ها و ابزار ها کامل شده است و به توسعه دهندگان امکان راه اندازی برنامه های تلفن همراه را می دهد. Flutter یک نرم افزار منبع باز است که با زبان برنامه نویسی دارت نوشته شده و با Firebase و سایر نرم افزار های SDK موبایل کار می کند.
🖥 @FunProGraming
✅ گوگل Flutter را برای توسعه برنامه های بومی موبایل در هر دوی Android و IOS معرفی کرد. Flutter یک برنامه SDK تلفن همراه است که با چارچوب، ویجت ها و ابزار ها کامل شده است و به توسعه دهندگان امکان راه اندازی برنامه های تلفن همراه را می دهد. Flutter یک نرم افزار منبع باز است که با زبان برنامه نویسی دارت نوشته شده و با Firebase و سایر نرم افزار های SDK موبایل کار می کند.
🖥 @FunProGraming
🔻 #نکته_آموزشی #سی_شارپ
🔶️ بدست آوردن مقدار یک Enum از رشته متنی متناظر با آن
public static T StringToEnum<T>(string name)
{
return (T)Enum.Parse(typeof(T), name);
}
✅ مثال - با فرض داشتن :
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
✅ میتوانیم بنویسیم :
DaysOfWeek d = StringToEnum<DaysOfWeek>("Monday");
//d is now DaysOfWeek.Monday if(Enum.IsDefined(typeof(DaysOfWeek), "Katillsday"))
StringToEnum<DaysOfWeek>("Katillsday");
🖥 @FunProGraming
🔶️ بدست آوردن مقدار یک Enum از رشته متنی متناظر با آن
public static T StringToEnum<T>(string name)
{
return (T)Enum.Parse(typeof(T), name);
}
✅ مثال - با فرض داشتن :
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
✅ میتوانیم بنویسیم :
DaysOfWeek d = StringToEnum<DaysOfWeek>("Monday");
//d is now DaysOfWeek.Monday if(Enum.IsDefined(typeof(DaysOfWeek), "Katillsday"))
StringToEnum<DaysOfWeek>("Katillsday");
🖥 @FunProGraming
🔻 #نکته_آموزشی #سی_شارپ
🔶️ معرفی یک الگوی ساده از ژنریک سینگلتون
class GenericSingleton<T> where T : class, new()
{
private static T instance;
public static T GetInstance()
{
lock (typeof(T))
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
}
✅ مثال از نحوه ی استفاده :
AutoFactory autoF = GenericSingleton<AutoFactory>.GetInstance();
🖥 @FunProGraming
🔶️ معرفی یک الگوی ساده از ژنریک سینگلتون
class GenericSingleton<T> where T : class, new()
{
private static T instance;
public static T GetInstance()
{
lock (typeof(T))
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
}
✅ مثال از نحوه ی استفاده :
AutoFactory autoF = GenericSingleton<AutoFactory>.GetInstance();
🖥 @FunProGraming