تفاوت های بین Net framework. و NET Core.
در این مطلب سعی خواهیم کرد تفاوت های بین Net framework. و NET Core. را بررسی کنیم و مشاهده کنیم که هر کدام از این پلت فرم ها برای کدام دسته از برنامه نویس ها مناسب تر است.
شما برای پروژه های آینده کدامیک را انتخاب می کنید : .net framework یا .net core ؟ این سوالی است که شاید شما اخیرا از خود پرسیده باشید. در این مقاله ما این دو پلت فرم رو با هم مقایسه می کنیم و سعی می کنیم به نتیجه سوالمان برسیم.
دات نت فریموورک net framework: از برنامه های ویندوز و وب پشتیبانی می کند. امروزه شما می توانید با استفاده از windows forms ، wpf و uwp برنامه های تحت سیستم عامل ویندوز را ایجاد نمایید. و با استفاده از asp.net mvc برنامه های تحت وب را تولید کنید.
دات نت کور .net core : فریم ورک متن باز و کراس-پلت فرم جدیدی برای ایجاد برنامه هایی برای تمام سیستم عامل ها مانند مک ، لینوکس و ویندوز. .net core تنها uwp و asp.net core را پشتیبانی می کند. از uwp برای ایجاد برنامه هایی برای موبایل و ویندوز 10 استفاده می شود. از asp.net core برای ایجاد برنامه های تحت وب استفاده می شود.
دات نت فریم وورک .net framework :
وقت کافی برای یاد گرفتن یک تکنولوژی جدید رو ندارید
در حال حاضر بر روی یک برنامه قدیمی و گسترش آن کار می کنید
در حال کار با یک تیم از برنامه نویسان .net framework هستید و در حال اماده سازی یک نرم افزار هستید
نمیخواهید دائما درگیر ارتقا و تغییرات بستر های کاری باشد
برنامه هایی تولید می کنید که بر اساس ویندوز کلاینت و با استفاده از ویندوز فرم و یا wpf تولید می شوند
دات نت کور.net core :
شما میخواهید برنامه هایی تولید کنید که بر روی تمامی سیستم عامل ها (مک ، لینوکس و ویندوز و ویندوز) اجرا شوند.
از یادگیری تکنولوژی های جدید واهمه ای ندارید
میخواهید با .net جلو بروید و یاد بگیرید
عاشق پلت فرم های متن باز باشید.
@ArmanAbi
در این مطلب سعی خواهیم کرد تفاوت های بین Net framework. و NET Core. را بررسی کنیم و مشاهده کنیم که هر کدام از این پلت فرم ها برای کدام دسته از برنامه نویس ها مناسب تر است.
شما برای پروژه های آینده کدامیک را انتخاب می کنید : .net framework یا .net core ؟ این سوالی است که شاید شما اخیرا از خود پرسیده باشید. در این مقاله ما این دو پلت فرم رو با هم مقایسه می کنیم و سعی می کنیم به نتیجه سوالمان برسیم.
دات نت فریموورک net framework: از برنامه های ویندوز و وب پشتیبانی می کند. امروزه شما می توانید با استفاده از windows forms ، wpf و uwp برنامه های تحت سیستم عامل ویندوز را ایجاد نمایید. و با استفاده از asp.net mvc برنامه های تحت وب را تولید کنید.
دات نت کور .net core : فریم ورک متن باز و کراس-پلت فرم جدیدی برای ایجاد برنامه هایی برای تمام سیستم عامل ها مانند مک ، لینوکس و ویندوز. .net core تنها uwp و asp.net core را پشتیبانی می کند. از uwp برای ایجاد برنامه هایی برای موبایل و ویندوز 10 استفاده می شود. از asp.net core برای ایجاد برنامه های تحت وب استفاده می شود.
دات نت فریم وورک .net framework :
وقت کافی برای یاد گرفتن یک تکنولوژی جدید رو ندارید
در حال حاضر بر روی یک برنامه قدیمی و گسترش آن کار می کنید
در حال کار با یک تیم از برنامه نویسان .net framework هستید و در حال اماده سازی یک نرم افزار هستید
نمیخواهید دائما درگیر ارتقا و تغییرات بستر های کاری باشد
برنامه هایی تولید می کنید که بر اساس ویندوز کلاینت و با استفاده از ویندوز فرم و یا wpf تولید می شوند
دات نت کور.net core :
شما میخواهید برنامه هایی تولید کنید که بر روی تمامی سیستم عامل ها (مک ، لینوکس و ویندوز و ویندوز) اجرا شوند.
از یادگیری تکنولوژی های جدید واهمه ای ندارید
میخواهید با .net جلو بروید و یاد بگیرید
عاشق پلت فرم های متن باز باشید.
@ArmanAbi
#AspNetBoilerplate, #Template
Boilerplate ASP .NET
یکی از کارهایی که در توسعه ی نرم افزار باید انجام داد، آغاز و پایه ریزی یک اپلیکیشن جدید است. پیاده سازی معماری برای توسعه ، اضافه نمودن ابزارهای مناسب ، ایجاد لایه بندی مطابق با معماری مربوطه و ... همه کارهایی است که برای ایجاد هر اپلیکیشن جدید "تکرار" می کنیم. (اختراع چرخ )
بسیاری از شرکت های بزرگ، برای جلوگیری از این تکرار، معمولا با صرفِ زمان و هزینه ی نسبتا زیاد، فریم ورک اختصاصی خود را یکبار می نویسند و تعداد دفعات از آن استفاده می کنند. اما شرکت ها و یا تیم های کوچک که نمی توانند متقبل این هزینه شوند، با کپی کردن بخش های مختلف از اپلیکیشن های موجود، سعی در پایه ریزی و آغاز اپلیکیشن جدید خود می کنند.
اما، فریم ورک های از پیش آماده ی بسیار خوبی برای این کار وجود دارد که برخی خیلی پیشرفته تر و تمپلیتی برای شروع اپلیکیشن شما را نیز ایجاد می کنند. در این صورت، تنها کاری که باید انجام دهید تعریف entity ها و مدل ها رعایت قراردادهاست تا به صورت خودکار تمامی لایه ها در دسترس قرار گیرد و تنها کار شما با UI باشد.
این فریم ورک ها معمولا از آخرین تکنولوژی ها (ASP .NET)، بهترین سولوشن ها (best practies)، پرکاربردترن روش های توسعه (Domain Driven Design) ، تزریق وابستگی(dependency injection)، معروف ترین ORM ها (EF و NHibernate) ، قابلیت های اعتبارسنجی، ثبت وقایع کاربران، مدیریت خطاها و ... به صورت تو کار بهره میبرد و حتی میتونید Single-Page با معماری انگولار را انتخاب کنبد و یا Multi-Page هم دارید.
لینک زیر سایت اختصاصی این فریم ورک است:
http://www.aspnetboilerplate.com/
داشتن راهنما و داکیومنت کامل از ویژگیهای این شرکت است.
@ArmanAbi
Boilerplate ASP .NET
یکی از کارهایی که در توسعه ی نرم افزار باید انجام داد، آغاز و پایه ریزی یک اپلیکیشن جدید است. پیاده سازی معماری برای توسعه ، اضافه نمودن ابزارهای مناسب ، ایجاد لایه بندی مطابق با معماری مربوطه و ... همه کارهایی است که برای ایجاد هر اپلیکیشن جدید "تکرار" می کنیم. (اختراع چرخ )
بسیاری از شرکت های بزرگ، برای جلوگیری از این تکرار، معمولا با صرفِ زمان و هزینه ی نسبتا زیاد، فریم ورک اختصاصی خود را یکبار می نویسند و تعداد دفعات از آن استفاده می کنند. اما شرکت ها و یا تیم های کوچک که نمی توانند متقبل این هزینه شوند، با کپی کردن بخش های مختلف از اپلیکیشن های موجود، سعی در پایه ریزی و آغاز اپلیکیشن جدید خود می کنند.
اما، فریم ورک های از پیش آماده ی بسیار خوبی برای این کار وجود دارد که برخی خیلی پیشرفته تر و تمپلیتی برای شروع اپلیکیشن شما را نیز ایجاد می کنند. در این صورت، تنها کاری که باید انجام دهید تعریف entity ها و مدل ها رعایت قراردادهاست تا به صورت خودکار تمامی لایه ها در دسترس قرار گیرد و تنها کار شما با UI باشد.
این فریم ورک ها معمولا از آخرین تکنولوژی ها (ASP .NET)، بهترین سولوشن ها (best practies)، پرکاربردترن روش های توسعه (Domain Driven Design) ، تزریق وابستگی(dependency injection)، معروف ترین ORM ها (EF و NHibernate) ، قابلیت های اعتبارسنجی، ثبت وقایع کاربران، مدیریت خطاها و ... به صورت تو کار بهره میبرد و حتی میتونید Single-Page با معماری انگولار را انتخاب کنبد و یا Multi-Page هم دارید.
لینک زیر سایت اختصاصی این فریم ورک است:
http://www.aspnetboilerplate.com/
داشتن راهنما و داکیومنت کامل از ویژگیهای این شرکت است.
@ArmanAbi
#telegram , #telegramDeveloper , #webhook ,#telegramWebApi
اگه توی پروژه ای ، نیاز دارید از تلگرام استفاده کنیدو هنوز کاری نکردید، یا علاقهمند به کار روی هسته تلگرام هستید؛
یک کتابخونه به نام net.telegram.core رو از ناگت دانلود کنید و به reference های پروژتون اضافه کنید.
وقتی به رفرنساتون اضافه شد، روی رفرنسی که دانلود شده دوبار کلیک کنید تا صفحه object browser براتون باز بشه.
توی این صفحه میتونید با انتخاب telegram.net.core اون کلاس ها و توابع رفرنستون رو ببینید. ببینید مثلا برای اتورایز کردن یک شماره، ارسال پیام، حذف پیام، اضافه کردن یک شماره به کنتکتتون، بررسی اینکه آیا یک شماره عضو تلگرام هست یا نه و... باید از چه تابعی استفاده کنید.
تقریبا تمام توابع بر اساس کاری که میکنه، نام گذاری شده و مثه، لایبرریای دیگه دات نت برای کار با telegram api هیچ نکته نامفهوم و مبهمی نداره.
پیشنیازهای کار روی پروژه ها،
تسلط به background workerها یا threadها یا task یا asynchronousها توی #c هستش.
@ArmanAbi
اگه توی پروژه ای ، نیاز دارید از تلگرام استفاده کنیدو هنوز کاری نکردید، یا علاقهمند به کار روی هسته تلگرام هستید؛
یک کتابخونه به نام net.telegram.core رو از ناگت دانلود کنید و به reference های پروژتون اضافه کنید.
وقتی به رفرنساتون اضافه شد، روی رفرنسی که دانلود شده دوبار کلیک کنید تا صفحه object browser براتون باز بشه.
توی این صفحه میتونید با انتخاب telegram.net.core اون کلاس ها و توابع رفرنستون رو ببینید. ببینید مثلا برای اتورایز کردن یک شماره، ارسال پیام، حذف پیام، اضافه کردن یک شماره به کنتکتتون، بررسی اینکه آیا یک شماره عضو تلگرام هست یا نه و... باید از چه تابعی استفاده کنید.
تقریبا تمام توابع بر اساس کاری که میکنه، نام گذاری شده و مثه، لایبرریای دیگه دات نت برای کار با telegram api هیچ نکته نامفهوم و مبهمی نداره.
پیشنیازهای کار روی پروژه ها،
تسلط به background workerها یا threadها یا task یا asynchronousها توی #c هستش.
@ArmanAbi
راهاندازی Angular نسخه ۴ درون ASP.NET Core و در محیط Visual Studio 2017
قبل از هر چیز، لازم به ذکر است که هر چند که فریمورک انگیولار از نسخه ۲ به بعد نسبت به نسخه ۱ تفاوتهای اساسی کرده است، ولی جالب اینجاست که نام این فریمورک نیز تغییر کوچکی داشته که لازم میدانم قبل شروع بحث آنرا به شما عزیزان خاطرنشان کنم. تا قبل از نسخه ۲، نام این فریمورک AngularJS بود که بعد از آمدن نسخه ۲ و بعد از آن، نام این فریمورک به Angular تغییر یافت. در ضمن بد نیست دوستان در جریان باشند که بعد از نسخه ۲ مستقیما نسخه ۴ Release گردید و نسخه ۳ وجود ندارد!
برای راهاندازی Angular و یا AngularJS در محیط Visual Studio 2015 و Visual Studio 2017 و در بسترهای ASP.NET MVC و ASP.NET MVC Core روشهای زیادی تاکنون اعلام شده است. ولی امروز میخواهم یکی از راحتترین و مطمینترین روشها را به شما عزیزان آموزش دهم.
۱. ابتدا Visual Studio 2017 را نصب نمایید.
۲. با استفاده از دستور ذیل در محیط Cmd کلیه Template های مناسب ASP.NET Core را نصب میکنیم.
?> dotnet new —install Microsoft.AspNetCore.SpaTemplates::*
۳. حال پوشهای که میخواهید پروژه جدید خودتان را در آن بسازید (MY_ASP_NET_CORE)، ایجاد کرده و وارد آن شده و در محیط Cmdt دستور ذیل را بنویسید:
?\MY_ASP_NET_CORE> dotnet new angular
۴. با دستور فوق، تعدادی فایل و پوشه ایجاد میگردد.
۵. حال در محیط Windows Explorer وارد پوشه مذکور شده و بر روی فایل MY_ASP_NET_CORE.csproj که ایجاد شده است، Double Click نمایید.
۶. پس از ورود به محیط Visual Studio به طور اتوماتیک تمامی Module هایی که در داخل فایل package.json نوشته شده است به صورت اتوماتیک Download شده و در داخل پوشهای به نام node_modules قرار میگیرند.
۷. ممکن است که نسخه درج شده از Angular در فایل package.json قدیمیتر از آخرین نسخه باشد. در داخل فایل package.json برای تمام خطوط مربوط به Angualr نسخه ۴.۱.۲ درج گردیده، در حالی که در سایت Angular.io آخرین نسخه ۴.۲.۶ اعلام شده است. برای حل این مشکل، ابتدا در داخل فایل package.json تمام اعداد ۴.۱.۲ مربوط به Module های Angular را به عدد ۴.۲.۶ تغییر داده و سپس با Mouse بر روی فایل package.json رفته و کلید سمت راست ماوس را زده و گزینه Restore Packages را انتخاب میکنیم، تا مجددا از طریق اینترنت نسخههای مورد نظر ما را Download کرده و Replace نماید.
#Angular_4
#Angular
#MvcCore
#Mvc_Core
#Angular_In_Mvc
@ArmanAbi
قبل از هر چیز، لازم به ذکر است که هر چند که فریمورک انگیولار از نسخه ۲ به بعد نسبت به نسخه ۱ تفاوتهای اساسی کرده است، ولی جالب اینجاست که نام این فریمورک نیز تغییر کوچکی داشته که لازم میدانم قبل شروع بحث آنرا به شما عزیزان خاطرنشان کنم. تا قبل از نسخه ۲، نام این فریمورک AngularJS بود که بعد از آمدن نسخه ۲ و بعد از آن، نام این فریمورک به Angular تغییر یافت. در ضمن بد نیست دوستان در جریان باشند که بعد از نسخه ۲ مستقیما نسخه ۴ Release گردید و نسخه ۳ وجود ندارد!
برای راهاندازی Angular و یا AngularJS در محیط Visual Studio 2015 و Visual Studio 2017 و در بسترهای ASP.NET MVC و ASP.NET MVC Core روشهای زیادی تاکنون اعلام شده است. ولی امروز میخواهم یکی از راحتترین و مطمینترین روشها را به شما عزیزان آموزش دهم.
۱. ابتدا Visual Studio 2017 را نصب نمایید.
۲. با استفاده از دستور ذیل در محیط Cmd کلیه Template های مناسب ASP.NET Core را نصب میکنیم.
?> dotnet new —install Microsoft.AspNetCore.SpaTemplates::*
۳. حال پوشهای که میخواهید پروژه جدید خودتان را در آن بسازید (MY_ASP_NET_CORE)، ایجاد کرده و وارد آن شده و در محیط Cmdt دستور ذیل را بنویسید:
?\MY_ASP_NET_CORE> dotnet new angular
۴. با دستور فوق، تعدادی فایل و پوشه ایجاد میگردد.
۵. حال در محیط Windows Explorer وارد پوشه مذکور شده و بر روی فایل MY_ASP_NET_CORE.csproj که ایجاد شده است، Double Click نمایید.
۶. پس از ورود به محیط Visual Studio به طور اتوماتیک تمامی Module هایی که در داخل فایل package.json نوشته شده است به صورت اتوماتیک Download شده و در داخل پوشهای به نام node_modules قرار میگیرند.
۷. ممکن است که نسخه درج شده از Angular در فایل package.json قدیمیتر از آخرین نسخه باشد. در داخل فایل package.json برای تمام خطوط مربوط به Angualr نسخه ۴.۱.۲ درج گردیده، در حالی که در سایت Angular.io آخرین نسخه ۴.۲.۶ اعلام شده است. برای حل این مشکل، ابتدا در داخل فایل package.json تمام اعداد ۴.۱.۲ مربوط به Module های Angular را به عدد ۴.۲.۶ تغییر داده و سپس با Mouse بر روی فایل package.json رفته و کلید سمت راست ماوس را زده و گزینه Restore Packages را انتخاب میکنیم، تا مجددا از طریق اینترنت نسخههای مورد نظر ما را Download کرده و Replace نماید.
#Angular_4
#Angular
#MvcCore
#Mvc_Core
#Angular_In_Mvc
@ArmanAbi
Web Devs
QRCoder.dll
ایجاد QRCode در MVC:
1-ابتدا QRCode.dll را از همین کانال دانلود کنید و به References ها پروژه اضافه کنید.
2- یک کلاس برای تولید تصویر QRCode بصورت زیر مینویسیم
3-سپس مقداری که میخوایین بعد از اسکن نمایش داده شود را در یک متغیر استرینگ میریزیم مثل مثال زیر :
4- بعد از اینکه مقدار مورد نظر را در متغیر استرینگ قرار دادید (مثلا متغیر QrContent) انرا به متد generate پاس دهید و مقدار برگشتی از متد از نوع Bitmap میباشد که بنده در پروژه خودم به آرایه ای از بایت ها تبدیل کردم :
5-و در اخر در ویو المان مورد نظر بصورت زیر تعرف می شود :
#QRCoder
#QRCode
#GenerateQrCode_In_Mvc
1-ابتدا QRCode.dll را از همین کانال دانلود کنید و به References ها پروژه اضافه کنید.
2- یک کلاس برای تولید تصویر QRCode بصورت زیر مینویسیم
public partial class GenerateQRCode
{
public GenerateQRCode()
{
}
public Bitmap generate(string text)
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.L);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
return qrCodeImage;
}
public Image GetImageQrCode(string text)
{
return (Image)generate(text);
}
}
3-سپس مقداری که میخوایین بعد از اسکن نمایش داده شود را در یک متغیر استرینگ میریزیم مثل مثال زیر :
Hotel: APRILIS HOTEL
Booking Date: 2017-07-09
Booking Name: Mr asd ads
Check-in date: 2017-09-15
Check-out date: 2017-09-16
Room 1
—-------------------
Confirmation Reference: HTL-AE2-136124863
Room Type: Connection Room (2 standard Rooms)
Board: Breakfast
Passengers : Mr asd ads
—-------------------
Room 2
—-------------------
Confirmation Reference: HTL-AE2-136124873
Room Type: Connection Room (2 standard Rooms)
Board: Breakfast
Passengers : Ms asd ads,Mr asd asd
—-------------------
4- بعد از اینکه مقدار مورد نظر را در متغیر استرینگ قرار دادید (مثلا متغیر QrContent) انرا به متد generate پاس دهید و مقدار برگشتی از متد از نوع Bitmap میباشد که بنده در پروژه خودم به آرایه ای از بایت ها تبدیل کردم :
var model = bookingService.GetById(id);
var _imageQr = QRCode.generate(model.DataToString());
model.QRCodeImage = _imageQr.ToByteArray(ImageFormat.Jpeg);
5-و در اخر در ویو المان مورد نظر بصورت زیر تعرف می شود :
<img id="QrCode" src="@String.Format("data:image/png;base64,{0}", Convert.ToBase64String(Model.QRCodeImage))" width="180px" >
#QRCoder
#QRCode
#GenerateQrCode_In_Mvc