Web Devs
641 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
Channel created
تفاوت های بین Net framework. و NET Core.
تفاوت های بین 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
#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
#telegram , #telegramDeveloper , #webhook ,#telegramWebApi

اگه توی پروژه ای ، نیاز دارید از تلگرام استفاده کنیدو هنوز کاری نکردید، یا علاقه‌مند به کار روی هسته تلگرام هستید؛
یک کتابخونه به نام 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
Web Devs
QRCoder.dll
ایجاد QRCode در 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
Publish.rar
432.9 KB
ویندوز اپلیکیشن QrCode#
SHadow Properties :


properties فیلدهایی هستند که در کلاس خود وجود ندارند، اما تحت عنوان Entity Framework عمل می کنند. آنها می توانند در عملیات create/update و migrations و شرکت کنند. مایکروسافت دو سناریوی اصلی برای ویژگی های shadow properties پیش بینی می کند:

1-اجازه دادن به لایه دسترسی به داده ها برای کار با خواصی که نباید از طریق domain model به بقیه برنامه در معرض قرار گیرد
2-اجازه دادن به توسعه دهندگان به طور موثر افزودن خواص به کلاسی که کد منبع را ندارند

Shadow properties در رویداد OnModelCreating تعریف شده است که به عنوان یک روش قابل لغو در DBContext در معرض قرار می گیرد. در اینجا یک مثال از attach کردن یک پراپرتی از نوع DateTime به نام LastUpdated به Blog entity است.

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

    modelBuilder.Entity<Blog>().Property<DateTime>("LastUpdated");

}


یک استفاده معمول برای این ویژگی، هنگام انجام عملیات ذخیره، به طور خودکار Property LastUpdated را تنظیم می کند. برای انجام این کار، می توانید DBContext.ChangeTracker را برای دریافت لیستی از اشیاء DBEntry استفاده کنید. از آنجا می توانید نوشت:
foreach (var item in modifiedEntries)

{

    Item.Property("LastUpdated ").CurrentValue = DateTime.Now;

}


معمولا این کار با بالا بردن روش SaveChanges () در کلاس DBContext انجام می شود. با قرار دادن آن در اینجا، احتمال آن را برای بعضی، اما نه لزوما تمام مکان هایی که سوابق را بهروزرسانی می کنید، حذف می کنید.

در حالی که ChangeTracker برای تغییر رویدادهای ذخیره عالی است، زمانی که میخواهید به Shadow properties دسترسی پیدا کنید بدون استفاده از DBEntry به طور مستقیم وجود دارد. این را می توان با استفاده از عملکرد EF.Property به عنوان نشان داده شده در زیر انجام می شود:

EF.Property<DateTime>(entity, " LastUpdated ")





لینک فیلم آموزشی :
https://www.lynda.com/Entity-Framework-tutorials/Using-Shadow-Properties/510080/560683-4.html

#Shadow_Properties
#Mvc
#Entity_framework




@ArmanAbi