آموزش ساخت API Gateway :
در این مقاله یاد میگیریم چطور یك دروازه برای ای پی آی ها بسازیم.
تصور كنید سه سرور داریم:
1: ای پی آی محصولات را هندل میكند
2: ای پی آی مشتریان را هدل میكن
3: سفارشات را هندل میكند
در حالت معمول باید با آدرس های متفاوت به هر سرور دسترسی پیدا كنیم مثلا:
Localhost:9000/Products/1
Localhost:9001/Customers/1
Localhost:9002/Orders/1
با استفاده از این مقاله تمامی ای پی آی ها با یك سرور در دسترس خواهند بود یعنی :
Localhost:9000/Product/1
Localhost:9000/Customer/1
Localhost:9000/Order/1
مشاهده مقاله:
http://www.c-sharpcorner.com/article/building-api-gateway-using-ocelot-in-asp-net-core/
@WebDevelopmentReferences
#ApiGateway #Ocelot #ASPNet_Core #ASPNet
در این مقاله یاد میگیریم چطور یك دروازه برای ای پی آی ها بسازیم.
تصور كنید سه سرور داریم:
1: ای پی آی محصولات را هندل میكند
2: ای پی آی مشتریان را هدل میكن
3: سفارشات را هندل میكند
در حالت معمول باید با آدرس های متفاوت به هر سرور دسترسی پیدا كنیم مثلا:
Localhost:9000/Products/1
Localhost:9001/Customers/1
Localhost:9002/Orders/1
با استفاده از این مقاله تمامی ای پی آی ها با یك سرور در دسترس خواهند بود یعنی :
Localhost:9000/Product/1
Localhost:9000/Customer/1
Localhost:9000/Order/1
مشاهده مقاله:
http://www.c-sharpcorner.com/article/building-api-gateway-using-ocelot-in-asp-net-core/
@WebDevelopmentReferences
#ApiGateway #Ocelot #ASPNet_Core #ASPNet
C-Sharpcorner
Building API Gateway Using Ocelot In ASP.NET Core
Ocelot is aimed at people using .NET running a micro services / service orientated architecture who need a unified point of entry into their system.
آموزش استفاده از گوگل ریكپچا در ASP.NET Core:
حتما در سایت های مختلف كپچا را دیده اید، زمان ثبت نام، ثبت نظر و یا ثبت هر فرمی.
به دو روش میتوانید از كپچا در سایت خود استفاده كنید:
1: خودتان دست به كار شده و یك تولید كنده كد كپچا بنویسید.
2: استفاده از كتابخانه های آماده.
در این مقاله یاد میگیریم چطور از كتابخانه ای كه گوگل به صورت رایگان در اختیار ما قرار داده استفاده كنیم.
مشاهده مقاله:
https://medium.com/@MoienTajik/google-recaptcha-in-asp-net-mvc-cf88b079dde
@WebDevelopmentReferences
#Google_ReCaptcha #ASPNET_Core #ASP
حتما در سایت های مختلف كپچا را دیده اید، زمان ثبت نام، ثبت نظر و یا ثبت هر فرمی.
به دو روش میتوانید از كپچا در سایت خود استفاده كنید:
1: خودتان دست به كار شده و یك تولید كنده كد كپچا بنویسید.
2: استفاده از كتابخانه های آماده.
در این مقاله یاد میگیریم چطور از كتابخانه ای كه گوگل به صورت رایگان در اختیار ما قرار داده استفاده كنیم.
مشاهده مقاله:
https://medium.com/@MoienTajik/google-recaptcha-in-asp-net-mvc-cf88b079dde
@WebDevelopmentReferences
#Google_ReCaptcha #ASPNET_Core #ASP
Medium
Google reCAPTCHA in ASP.NET MVC
reCAPTCHA is a free service that protects your website from spam and abuse.
حل مشكل چرخه حذف در DOTNET Core:
زمانی كه مدلها و روابط بین آنها مشخص می شود رابطه های یك به چند اگر با دقت مدیریت نشوند ممكن است خطرناك باشند، به صورت پیشفرض عمل حذف و به روز رسانی به صورت كسكید انجام می شود یعنی اگر یك والد را حذف كنید خودكار تمام فرزندهای آن نیز حذف می شوند، امری طبیعی است ولی مدیری را در نظر بگیرید كه به اشتباه یك دسته از دسته بندی های محصولات را حذف می كند!
در این گونه موارد برنامه نویس یا باید عمل كسكید را غیرفعال كنید و یا قبل از انجام عملیات حذف بررسی شود ركورد مورد نظر اگر دارای فرزند بود به كاربر هشدار داده شود و در صورت تایید حذف شود.
حالا میخواهیم حالت بدتر این موضوع را بررسی كنیم:
ممكن است اتفاق بیفتد كه سه جدول داریم به صورتی كه جدول اول با جدول دوم، جدول دوم با جدول سوم و جدول سوم با جدول اول رابطه یك به چند دارد.
حالا اگر حالت كسكسید فعال باشد اگر از یكی از جداول ركوردی حذف شود عمل حذف به صورت چرخه تمام اطلاعات هر سه جدول را حذف خواهد كرد!
وقتی روابط به این صورت باشند دات نت زمان به روز رسانی بانك اطلاعاتی (Migration) پیامی مبنی بر اینكه این روابط چرخه حذف بوجود می آورند بدهد و از به روزرسانی بانك جلوگیری كند، در حالی كه به این روابط نیاز داریم و در حین برنامه نویسی كنترل خواهیم كرد كه این چرخه هیچ وقت اتفاق نیفتد و قبل از حذف ركورد تعداد فرزندان اگر بیشتر از صفر بود ركورد حذف نشود.
ولی بازهم اجازه به روزرسانی داده نمی شود بخاطر اینكه ساختار روابط همچنان میگوید چرخه حذف داریم!
برای این كار باید در DbContext تنظیمات زیر را اعمال كنیم تا بفهمانیم عمل حذف به صورت كسكید انجام نشود و مدیریت آن به برنامه نویس داده شود(به زبان ساده تر خطرات چرخه حذف را خودم مدیریت می كنم).
میتوانیم این تنظیم را برای هر مدل انجام دهیم اما معمولا تعداد مدلها در برنامه زیاد هستند و اعمال تنظیمات برای هر مدل به صورت جدا هم زمان و هم كد بیشتری را میخواهد، قطعه كد زیر این تنظیمات را برای تمام روابط اعمال خواهد كرد:
protected override void OnModelCreating(ModelBuilder modelbuilder)
{
foreach (var relationship in modelbuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}
base.OnModelCreating(modelbuilder);
}
@WebDevelopmentReferences
#ASP_NET_CORE #EntityFramework #ASPNet
زمانی كه مدلها و روابط بین آنها مشخص می شود رابطه های یك به چند اگر با دقت مدیریت نشوند ممكن است خطرناك باشند، به صورت پیشفرض عمل حذف و به روز رسانی به صورت كسكید انجام می شود یعنی اگر یك والد را حذف كنید خودكار تمام فرزندهای آن نیز حذف می شوند، امری طبیعی است ولی مدیری را در نظر بگیرید كه به اشتباه یك دسته از دسته بندی های محصولات را حذف می كند!
در این گونه موارد برنامه نویس یا باید عمل كسكید را غیرفعال كنید و یا قبل از انجام عملیات حذف بررسی شود ركورد مورد نظر اگر دارای فرزند بود به كاربر هشدار داده شود و در صورت تایید حذف شود.
حالا میخواهیم حالت بدتر این موضوع را بررسی كنیم:
ممكن است اتفاق بیفتد كه سه جدول داریم به صورتی كه جدول اول با جدول دوم، جدول دوم با جدول سوم و جدول سوم با جدول اول رابطه یك به چند دارد.
حالا اگر حالت كسكسید فعال باشد اگر از یكی از جداول ركوردی حذف شود عمل حذف به صورت چرخه تمام اطلاعات هر سه جدول را حذف خواهد كرد!
وقتی روابط به این صورت باشند دات نت زمان به روز رسانی بانك اطلاعاتی (Migration) پیامی مبنی بر اینكه این روابط چرخه حذف بوجود می آورند بدهد و از به روزرسانی بانك جلوگیری كند، در حالی كه به این روابط نیاز داریم و در حین برنامه نویسی كنترل خواهیم كرد كه این چرخه هیچ وقت اتفاق نیفتد و قبل از حذف ركورد تعداد فرزندان اگر بیشتر از صفر بود ركورد حذف نشود.
ولی بازهم اجازه به روزرسانی داده نمی شود بخاطر اینكه ساختار روابط همچنان میگوید چرخه حذف داریم!
برای این كار باید در DbContext تنظیمات زیر را اعمال كنیم تا بفهمانیم عمل حذف به صورت كسكید انجام نشود و مدیریت آن به برنامه نویس داده شود(به زبان ساده تر خطرات چرخه حذف را خودم مدیریت می كنم).
میتوانیم این تنظیم را برای هر مدل انجام دهیم اما معمولا تعداد مدلها در برنامه زیاد هستند و اعمال تنظیمات برای هر مدل به صورت جدا هم زمان و هم كد بیشتری را میخواهد، قطعه كد زیر این تنظیمات را برای تمام روابط اعمال خواهد كرد:
protected override void OnModelCreating(ModelBuilder modelbuilder)
{
foreach (var relationship in modelbuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}
base.OnModelCreating(modelbuilder);
}
@WebDevelopmentReferences
#ASP_NET_CORE #EntityFramework #ASPNet
نام پكیج: KSBankMellat
توضیح :
اگر در پروژه دات نت كور خود نیاز به استفاده از درگاه پرداخت بانك ملت دارید حتما متوجه شده اید كه در ویژوال استادیو كد قسمتی برای اضافه كردن وب سرویس بانك ملت به پروژه ندارید!
با استفاده از این پكیج تمام متدهای وب سرویس در اختیار شما خواهد بود.
استفاده از این پكیج بسیار ساده است، تنها باید پكیج را نصب كرده و یك نمونه از كلاس PaymentGatewayClient بسازید و از متدها استفاده كنید:
var pgc = new PaymentGatewayClient();
var result = await pgc.bpPayRequestAsync(terminalId, userName, password, orderId, amout, localDate, localTime, additionalData, callBackUrl, payerId);
string[] resultArray = result.Body.@return.Split(",");
if(resultArray[0] == "0")
{ //Send user to gateway }
else
{ //Show error message }
آدرس پكیج در نوگت :
https://www.nuget.org/packages/KSBankMellat
آدرس گیت هاب:
https://github.com/A-Programmer/KSBankMellat
#ASP_Net_Core #ASPNet #Nuget_Package #BankMellat
@WebDevelopmentReferences
توضیح :
اگر در پروژه دات نت كور خود نیاز به استفاده از درگاه پرداخت بانك ملت دارید حتما متوجه شده اید كه در ویژوال استادیو كد قسمتی برای اضافه كردن وب سرویس بانك ملت به پروژه ندارید!
با استفاده از این پكیج تمام متدهای وب سرویس در اختیار شما خواهد بود.
استفاده از این پكیج بسیار ساده است، تنها باید پكیج را نصب كرده و یك نمونه از كلاس PaymentGatewayClient بسازید و از متدها استفاده كنید:
var pgc = new PaymentGatewayClient();
var result = await pgc.bpPayRequestAsync(terminalId, userName, password, orderId, amout, localDate, localTime, additionalData, callBackUrl, payerId);
string[] resultArray = result.Body.@return.Split(",");
if(resultArray[0] == "0")
{ //Send user to gateway }
else
{ //Show error message }
آدرس پكیج در نوگت :
https://www.nuget.org/packages/KSBankMellat
آدرس گیت هاب:
https://github.com/A-Programmer/KSBankMellat
#ASP_Net_Core #ASPNet #Nuget_Package #BankMellat
@WebDevelopmentReferences
GitHub
GitHub - A-Programmer/KSBankMellat: Using Bank Mellat SOAP in DotNet Core
Using Bank Mellat SOAP in DotNet Core. Contribute to A-Programmer/KSBankMellat development by creating an account on GitHub.
آموزش ساخت پكیج نیوگت:
حتما پیش آمده است كه قسمت هایی از پروژه های شما تكراری باشد و تنها از پروژه ای به پروژه دیگر كپی میكنید.
اولین راه حل كپی كردن كدها و فایلها می باشد ولی راه حل تمیز تری هم وجود دارد كه با استفاده از این راه دیگر حتی نیازی به كپی كردن هم ندارید، تنها كافیست قسمتهای تكراری را به صورت پكیج آماده كنید و هربار تنها زحمت نصب پكیج را بكشید.
در این مقاله آموزش پكیج كردن یك پروژه آموزش داده شده است:
https://garywoodfine.com/creating-nuget-package-net-core/
#ASPNet #NuGet
@WebDevelopmentReferences
حتما پیش آمده است كه قسمت هایی از پروژه های شما تكراری باشد و تنها از پروژه ای به پروژه دیگر كپی میكنید.
اولین راه حل كپی كردن كدها و فایلها می باشد ولی راه حل تمیز تری هم وجود دارد كه با استفاده از این راه دیگر حتی نیازی به كپی كردن هم ندارید، تنها كافیست قسمتهای تكراری را به صورت پكیج آماده كنید و هربار تنها زحمت نصب پكیج را بكشید.
در این مقاله آموزش پكیج كردن یك پروژه آموزش داده شده است:
https://garywoodfine.com/creating-nuget-package-net-core/
#ASPNet #NuGet
@WebDevelopmentReferences
Gary Woodfine
How to create nuget package .net core | Gary Woodfine
Tutorial on how to create a NuGet package using the .NET Core CLI, and then publish their NuGet package to the nuget.org site, including how to set up a CI/CD pipeline
تزریق وابستگی در دات نت كور:
در دات نت كور سیستم تزریق وابستگی به صورت توكار وجود دارد كه سریع و كم حجم می باشد و شما مجبور به استفاده از سایر IoC ها مثل Ninject, AutoFac و StructureMap نیستید.
به سه روش می توانید سرویس ها را تزریق كنید:
1. Transient:
در این حالت سرویس در هر فراخوانی اجرا می شود.
2. Scoped:
در این حالت سرویس در هر Request یك بار اجرا می شود.
3. Singleton:
در این حالت سرویس تنها در فراخوانی اول ایجاد می شود و دفعات بعد از همان سرویس استفاده می شود.
كنترلر ها در ASP Core به صورت Scoped تزریق می شوند تا اطلاعات یک HttpContext برای هر Request بازخوانی شود.
#ASP_Net_Core #ASPNet #Dependency_Injection
http://t.me/WebDevelopmentReferences
در دات نت كور سیستم تزریق وابستگی به صورت توكار وجود دارد كه سریع و كم حجم می باشد و شما مجبور به استفاده از سایر IoC ها مثل Ninject, AutoFac و StructureMap نیستید.
به سه روش می توانید سرویس ها را تزریق كنید:
1. Transient:
در این حالت سرویس در هر فراخوانی اجرا می شود.
2. Scoped:
در این حالت سرویس در هر Request یك بار اجرا می شود.
3. Singleton:
در این حالت سرویس تنها در فراخوانی اول ایجاد می شود و دفعات بعد از همان سرویس استفاده می شود.
كنترلر ها در ASP Core به صورت Scoped تزریق می شوند تا اطلاعات یک HttpContext برای هر Request بازخوانی شود.
#ASP_Net_Core #ASPNet #Dependency_Injection
http://t.me/WebDevelopmentReferences
Telegram
برنامه نویسی و طراحی
در این كانال نكات و كدهای برنامه نویسی و همینطور تجربه كاربری و طراحی به اشتراك گذاشته می شود.
مقداردهی دراپ دان لیست در ASP.NET Core :
حتما در پروژه ای كه با دات نت كور انجام می دهید پیش خواهد آمد كه دراپ دان لیستی را با واكشی از دیتابیس مقداردهی كنید مثل لیست دسته بندی های اخبار، لیست كشورها و....
برای این كار ابتدا به هر روشی كه كار میكنید لیست را از دیتابیس واكشی كرده سپس توسط ویوبگ به ویو ارسال می كنیم و در نهایت در سمت ویو لیست را درون یك دراپ دان لیست قرار می دهیم:
اكشن متد مورد نظر:
[HttpGet]
public ActionResult TestAction()
{
ViewBag.Categories = db.Categories.ToList();
return View();
}
سپس در ویو مربوطه كد زیر را می نویسیم:
<select asp-for="Menu.Id" asp-items="@(new SelectList(@ViewBag.Categories,"Id","Title"))">
<option disabled selected>Choose Category</option>
</select>
نكته: بنده در این مثال به صورت مستقیم به دیتابیس وصل شدم و لیست دسته ها را واكشی كردم كه قطعا برای كوتاه نویسی به این صورت انجام داده ام و در پروژه های اصلی باید لایه سرویس این كار را برای ما انجام دهد.
#DropDowList #DotNetCore #ASPNet
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
حتما در پروژه ای كه با دات نت كور انجام می دهید پیش خواهد آمد كه دراپ دان لیستی را با واكشی از دیتابیس مقداردهی كنید مثل لیست دسته بندی های اخبار، لیست كشورها و....
برای این كار ابتدا به هر روشی كه كار میكنید لیست را از دیتابیس واكشی كرده سپس توسط ویوبگ به ویو ارسال می كنیم و در نهایت در سمت ویو لیست را درون یك دراپ دان لیست قرار می دهیم:
اكشن متد مورد نظر:
[HttpGet]
public ActionResult TestAction()
{
ViewBag.Categories = db.Categories.ToList();
return View();
}
سپس در ویو مربوطه كد زیر را می نویسیم:
<select asp-for="Menu.Id" asp-items="@(new SelectList(@ViewBag.Categories,"Id","Title"))">
<option disabled selected>Choose Category</option>
</select>
نكته: بنده در این مثال به صورت مستقیم به دیتابیس وصل شدم و لیست دسته ها را واكشی كردم كه قطعا برای كوتاه نویسی به این صورت انجام داده ام و در پروژه های اصلی باید لایه سرویس این كار را برای ما انجام دهد.
#DropDowList #DotNetCore #ASPNet
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
Telegram
برنامه نویسی و طراحی
در این كانال نكات و كدهای برنامه نویسی و همینطور تجربه كاربری و طراحی به اشتراك گذاشته می شود.
#تگ_هلپر چیست؟
در ASP.NET Core امكان جدیدی معرفی شد به نام TagHelper كه اگر بخواهیم به صورت ساده توضیح دهیم، این امكان را برای ما فراهم می كند كه از المنت ها HTML در ویو استفاده می كنیم ولی در زمان اجرا این المنت تبدیل به كدهای نهایی می شود.
در طول انجام پروژه شاید ندانسته از این امكان استفاده می كردید زیرا به صورت پیش فرض یك سری تگ هلپرهایی توسط دات نت كور در اختیار ما قرار داده شده است و می توانیم تگ هلپر های اختصاصی نیز داشته باشیم.
به عنوان مثال زمانی كه یك تگ a را به صورت زیر می نویسید در اصل از تگ هلپر استفاده كرده اید:
<a asp-action="Index" asp-controller="Home">Home</a>
این مثال یك نمونه ساده از تگ هلپر بود كه استفاده كرده اید.
می توانیم تگ هلپر های اختصاصی خودمان را بنویسیم و در طول پروژه از آنها استفاده كنیم، به عنوان مثال در ادامه لینك آموزش ساخت تگ هلپری برای نمایش خط پیشرفت یا همان پراگرس بار را برای شما قرار داده ام.
حتی می توانید تگ هلپری داشته باشید كه دیتاسورس را به عنوان ورودی دریافت كرده و داده ها را صورت جدول برای ما نمایش بدهد.
یكی از مزیت های استفاده از تگ هلپر بالا بردن سرعت كدنویسی و استفاده چندبار از آن می باشد.
مقاله آموزش ساخت تگ هلپر اختصاصی در ASP.NET Core :
https://gist.github.com/A-Programmer/a37833e2c466eeef3657fe1b12af6d35
#ASP_Net_Core
#ASPNet
#TagHelper
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
در ASP.NET Core امكان جدیدی معرفی شد به نام TagHelper كه اگر بخواهیم به صورت ساده توضیح دهیم، این امكان را برای ما فراهم می كند كه از المنت ها HTML در ویو استفاده می كنیم ولی در زمان اجرا این المنت تبدیل به كدهای نهایی می شود.
در طول انجام پروژه شاید ندانسته از این امكان استفاده می كردید زیرا به صورت پیش فرض یك سری تگ هلپرهایی توسط دات نت كور در اختیار ما قرار داده شده است و می توانیم تگ هلپر های اختصاصی نیز داشته باشیم.
به عنوان مثال زمانی كه یك تگ a را به صورت زیر می نویسید در اصل از تگ هلپر استفاده كرده اید:
<a asp-action="Index" asp-controller="Home">Home</a>
این مثال یك نمونه ساده از تگ هلپر بود كه استفاده كرده اید.
می توانیم تگ هلپر های اختصاصی خودمان را بنویسیم و در طول پروژه از آنها استفاده كنیم، به عنوان مثال در ادامه لینك آموزش ساخت تگ هلپری برای نمایش خط پیشرفت یا همان پراگرس بار را برای شما قرار داده ام.
حتی می توانید تگ هلپری داشته باشید كه دیتاسورس را به عنوان ورودی دریافت كرده و داده ها را صورت جدول برای ما نمایش بدهد.
یكی از مزیت های استفاده از تگ هلپر بالا بردن سرعت كدنویسی و استفاده چندبار از آن می باشد.
مقاله آموزش ساخت تگ هلپر اختصاصی در ASP.NET Core :
https://gist.github.com/A-Programmer/a37833e2c466eeef3657fe1b12af6d35
#ASP_Net_Core
#ASPNet
#TagHelper
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
Gist
ساخت TagHelper اختصاصی در ASP.NET Core
پنج نكته برای ساخت API در ASP.NET Core:
در این مقاله به پنج نكته اشاره شده است كه در ساخت API در دات نت كور بهتر است رعایت كنیم.
لینك مقاله:
https://stormpath.com/blog/5-api-tips-dotnet-core
#API #ASP_Net_Core #ASPNet #Tips
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
در این مقاله به پنج نكته اشاره شده است كه در ساخت API در دات نت كور بهتر است رعایت كنیم.
لینك مقاله:
https://stormpath.com/blog/5-api-tips-dotnet-core
#API #ASP_Net_Core #ASPNet #Tips
Telegram: http://t.me/WebDevelopmentReferences
Instagram: http://instagram.com/sadin_k/
Twitter: http://twitter.com/MrSadin
Linkedin: http://linkedin.com/in/mrsadin
Stormpath User Identity API
5 Tips for Building an API in ASP.NET Core - Stormpath User Identity API
Microsoft’s .NET Web API Core makes it easy to build great APIs, but these tips can make your APIs even stronger and more scalable.
.NET Core is an open source, modular, high-performance implementation of .NET for creating Windows, Linux and Mac apps, improving upon the ageing .NET Framework that's tightly coupled to Windows.
The three main themes of .NET Core 3, Hunter said, are: desktop workloads and UI interop; artificial intelligence and machine learning; and Web app development productivity. The new support for desktop development with Windows Presentation Foundation (WPF) and Windows Forms (WinForms) has been a much-discussed feature of the upcoming .NET Core 3 offering, whose exact date is expected to be revealed at the Microsoft's Build developer conference.
Article: https://visualstudiomagazine.com/articles/2019/04/04/net-core-3.aspx?m=1
#ui #ux #design #windows #netcore #aspnetcore #microsoft #webdev #dev #development #aspnet #asp #code #programming #webdevelopment #windowsform
The three main themes of .NET Core 3, Hunter said, are: desktop workloads and UI interop; artificial intelligence and machine learning; and Web app development productivity. The new support for desktop development with Windows Presentation Foundation (WPF) and Windows Forms (WinForms) has been a much-discussed feature of the upcoming .NET Core 3 offering, whose exact date is expected to be revealed at the Microsoft's Build developer conference.
Article: https://visualstudiomagazine.com/articles/2019/04/04/net-core-3.aspx?m=1
#ui #ux #design #windows #netcore #aspnetcore #microsoft #webdev #dev #development #aspnet #asp #code #programming #webdevelopment #windowsform
Visual Studio Magazine
Scott Hunter Details 'What's Coming with .NET Core 3.0' -- Visual Studio Magazine
After this week's release of Visual Studio 2019, Microsoft exec Scott Hunter detailed many of the new features coming in .NET Core 3, already available as a preview in VS 2019 so developers can try it out (with a simple tweak).