#زنگ_تفریح
"موزیک برای برنامه نویس ها" نام سایتی است که درآن انواع موزیک های مناسب جهت افزایش تمرکز در حین برنامه نویسی وجود دارد
http://musicforprogramming.net/
________________
@DotNetZoom
"موزیک برای برنامه نویس ها" نام سایتی است که درآن انواع موزیک های مناسب جهت افزایش تمرکز در حین برنامه نویسی وجود دارد
http://musicforprogramming.net/
________________
@DotNetZoom
Forwarded from Software Philosophy
سی شارپ 9 و بهبود pattern matching:
یکی از برتری های ویژوال بیسک نسبت به سی شارپ, موضوع pattern matching بود (البته قبل از سی شارپ 8).
از سی شارپ 8 به بعد ماکروسافت تمهیدات خاصی در جهت بهبود pattern matching در سی شارپ در نظر گرفت.👇👇
یکی از جالب ترین (و جذاب ترین) این موارد, بهبود در جملات شرطی است که در سی شارپ 9 به آن پرداخته شده است.
برای اطلاع از دیگر ویژگی های سی شارپ 9 می توانید از این لینک استفاده کنید.
جزئیات بیشتر را میتوانید در لینک زیر مطالعه کنید:
https://blog.miguelbernard.com/c-9-0-improved-pattern-matching/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (http://bit.ly/2IVjfYD)
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از برتری های ویژوال بیسک نسبت به سی شارپ, موضوع pattern matching بود (البته قبل از سی شارپ 8).
از سی شارپ 8 به بعد ماکروسافت تمهیدات خاصی در جهت بهبود pattern matching در سی شارپ در نظر گرفت.👇👇
یکی از جالب ترین (و جذاب ترین) این موارد, بهبود در جملات شرطی است که در سی شارپ 9 به آن پرداخته شده است.
if(s is not string)خواندن عبارت ابتدایی بسیار آسان تر از عبارت دوم است.
// is way more easier to read than
if(!(s is string))
Person p = new Person();و هچنین نوشتن این عبارات باعث زیباتر و خواناتر شدن کد میشود.
var a = p.Weight switch
{
< 150 => "light"
>= 150 and < 200 => "normal"
not null => "unknown"
null => "error"
};
برای اطلاع از دیگر ویژگی های سی شارپ 9 می توانید از این لینک استفاده کنید.
جزئیات بیشتر را میتوانید در لینک زیر مطالعه کنید:
https://blog.miguelbernard.com/c-9-0-improved-pattern-matching/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (http://bit.ly/2IVjfYD)
کانال تلگرام:
@SoftwarePhilosophy
___
رمزنگاری JWT و افزایش امنیت آن در ASP.NET Core
توکن JWT در حالت عادی به صورت Base64 کدگذاری(Encoding) میشه که این نوع Encoding به راحتی قابل رمزگشایی و خواندنه (امنیت در برابر خوانده شدن نداره).
در این مقاله میخوایم توکن JWT رو رمزنگاری کنیم و اون رو به Json Web Encryption (به اختصار JWE) تبدیل کنیم و امنیتش رو بالا ببریم
https://www.dotnettips.info/post/2992
مثال کامل و قابل اجرا در ریپازیتوری گیتهاب:
https://github.com/mjebrahimi/Jwt-Encryption-AspCore
____________
@DotNetZoom
توکن JWT در حالت عادی به صورت Base64 کدگذاری(Encoding) میشه که این نوع Encoding به راحتی قابل رمزگشایی و خواندنه (امنیت در برابر خوانده شدن نداره).
در این مقاله میخوایم توکن JWT رو رمزنگاری کنیم و اون رو به Json Web Encryption (به اختصار JWE) تبدیل کنیم و امنیتش رو بالا ببریم
https://www.dotnettips.info/post/2992
مثال کامل و قابل اجرا در ریپازیتوری گیتهاب:
https://github.com/mjebrahimi/Jwt-Encryption-AspCore
____________
@DotNetZoom
Forwarded from کدهک
برگزاری کارگاه آموزشی EF Core 5.0
در این دوره مباحث مقدماتی تا پیشرفته در EF Core آموزش داده میشود. دوره به صورت غیر حضوری برگزار میشود و همه قسمتها از پیش ضبط و قابل دانلود می باشد.
سرفصلها :
معرفی قابلیت های جدید
آموزش SQL Server و T-SQL
َشروع به کار با Code First
آموزش Fluent API
طراحی دیتابیس و ایجاد رابطه
خواندن و گزارش گیری از دیتابیس
کار با LINQ به صورت حرفه ای
ایجاد تغییرات در داده ها
کار با تراکنشها
رهگیری تغییرات
لوگ کردن و تست
پیاده سازی الگوی ریپوزیتوری و Unit Of Work
قابلیت های پیشرفته در EF Core
آموزش Dapper
شروع دوره : 1 آبان 99
مدت دوره : 20 ساعت
هزینه دوره : 400 هزارتومان
جهت ثبت نام با آی دی @codehak یا شماره 09380146555 تماس بگیرید.
در این دوره مباحث مقدماتی تا پیشرفته در EF Core آموزش داده میشود. دوره به صورت غیر حضوری برگزار میشود و همه قسمتها از پیش ضبط و قابل دانلود می باشد.
سرفصلها :
معرفی قابلیت های جدید
آموزش SQL Server و T-SQL
َشروع به کار با Code First
آموزش Fluent API
طراحی دیتابیس و ایجاد رابطه
خواندن و گزارش گیری از دیتابیس
کار با LINQ به صورت حرفه ای
ایجاد تغییرات در داده ها
کار با تراکنشها
رهگیری تغییرات
لوگ کردن و تست
پیاده سازی الگوی ریپوزیتوری و Unit Of Work
قابلیت های پیشرفته در EF Core
آموزش Dapper
شروع دوره : 1 آبان 99
مدت دوره : 20 ساعت
هزینه دوره : 400 هزارتومان
جهت ثبت نام با آی دی @codehak یا شماره 09380146555 تماس بگیرید.
❇️ برنامه ASP.NET Core مدیریت پارکینگ مبتنی بر DDD و CQRS و Event Sourcing و ...
✔️ ASP.NET Core
✔️ EntityFramework Core
✔️ Domain Driven Design (#DDD)
✔️ #Microservices
✔️ #RabbitMQ
✔️ #Service_Mesh
✔️ #CQRS
✔️ #Event_Sourcing
✔️ #Eventual_Consistency
✔️ #Docker & #Kubernetes Support
🔰مخزن پروژه :
https://github.com/EdwinVW/pitstop
____________________
@DotNetZoom
✔️ ASP.NET Core
✔️ EntityFramework Core
✔️ Domain Driven Design (#DDD)
✔️ #Microservices
✔️ #RabbitMQ
✔️ #Service_Mesh
✔️ #CQRS
✔️ #Event_Sourcing
✔️ #Eventual_Consistency
✔️ #Docker & #Kubernetes Support
🔰مخزن پروژه :
https://github.com/EdwinVW/pitstop
____________________
@DotNetZoom
GitHub
GitHub - EdwinVW/pitstop: This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious…
This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concep...
🔸سال 93 یه پلاگین بررسی متن و پیشنهاد دهنده سئو واسه ASP MVC نوشتم (مشابه Yoast واسه WordPress) که خیلی باحال بود
🔹چند روز پیش به NETStandard آپدیتش کردم و گذاشتمش گیتهابم
https://github.com/mjebrahimi/DNZ.SEOChecker
🔰پ.ن:
1️⃣ الان دیگه قصد نگهداری و ریفکتورش رو ندارم، فقط گذاشتم بمونه به یادگار و شاید بررسی سورس کدش به درد کسی بخوره
2️⃣ اینو باید همون سالها اوپن سورسش میکردم، من اشتباه کردم، شما این اشتباهو تَکرار نکنین :)
________________
@DotNetZoom
🔹چند روز پیش به NETStandard آپدیتش کردم و گذاشتمش گیتهابم
https://github.com/mjebrahimi/DNZ.SEOChecker
🔰پ.ن:
1️⃣ الان دیگه قصد نگهداری و ریفکتورش رو ندارم، فقط گذاشتم بمونه به یادگار و شاید بررسی سورس کدش به درد کسی بخوره
2️⃣ اینو باید همون سالها اوپن سورسش میکردم، من اشتباه کردم، شما این اشتباهو تَکرار نکنین :)
________________
@DotNetZoom
❇️ معرفی MagicOnion : یک فریمورک Realtime مبتنی بر gRPC و MessagePack
این فریمورک با استفاده از قابلیت HTTP/2 Streaming مبتنی بر gRPC و بهره گیری از MessagePack برای Serialization (همراه با LZ4 integration) بستری قدرتمند را برای ارتباطات Realtime فراهم میکند.
🔸یکی از مزایای این فریمورک عدم نیاز به فایلهای .proto مخصوص gRPC است چرا که از interface های سی شارپی برای به اشتراک گذاری امضای Endpointهای موجود بین Server و Client استفاده میکند.
🔹یکی از دیگر مزایای آن پشتیبانی از Swagger و داشتن Json Gateway توکار متبنی بر HTTP/1 است که به کمک آن میتوان به صورت Json/RESTful نیز APIها را فراخوانی کرد.
🔸همچنین این فریمورک از OpenTelemetry پشتیبانی کرده و میتوانید از برنامههای مانیتورینگ مانند Prometheus و StackDriver و Zipkin و... بر روی پروژه خود استفاده کنید و یا توسط Grafana یک داشبورد مانیتورینگ ویژوال و Realtime ایجاد کنید.
🔹این فریمورک ابزار مناسبی جهت ارتباطات بین Microserviceها میباشد.
🔸همچنین جایگزین مناسبی برای سرویسهای API based مانند ASP.NET Core WebAPI و WCF بوده و نیز جایگزین مناسبی برای SignalR و Socket.io جهت ارتباطات Realtime میباشد.
🔰ریپازیتوری MagicOnion
https://github.com/Cysharp/MagicOnion
اطلاعات بیشتر
https://medium.com/@neuecc/magiconion-unified-realtime-api-engine-for-net-core-and-unity-21e02a57a3ff
___________
@DotNetZoom
این فریمورک با استفاده از قابلیت HTTP/2 Streaming مبتنی بر gRPC و بهره گیری از MessagePack برای Serialization (همراه با LZ4 integration) بستری قدرتمند را برای ارتباطات Realtime فراهم میکند.
🔸یکی از مزایای این فریمورک عدم نیاز به فایلهای .proto مخصوص gRPC است چرا که از interface های سی شارپی برای به اشتراک گذاری امضای Endpointهای موجود بین Server و Client استفاده میکند.
🔹یکی از دیگر مزایای آن پشتیبانی از Swagger و داشتن Json Gateway توکار متبنی بر HTTP/1 است که به کمک آن میتوان به صورت Json/RESTful نیز APIها را فراخوانی کرد.
🔸همچنین این فریمورک از OpenTelemetry پشتیبانی کرده و میتوانید از برنامههای مانیتورینگ مانند Prometheus و StackDriver و Zipkin و... بر روی پروژه خود استفاده کنید و یا توسط Grafana یک داشبورد مانیتورینگ ویژوال و Realtime ایجاد کنید.
🔹این فریمورک ابزار مناسبی جهت ارتباطات بین Microserviceها میباشد.
🔸همچنین جایگزین مناسبی برای سرویسهای API based مانند ASP.NET Core WebAPI و WCF بوده و نیز جایگزین مناسبی برای SignalR و Socket.io جهت ارتباطات Realtime میباشد.
🔰ریپازیتوری MagicOnion
https://github.com/Cysharp/MagicOnion
اطلاعات بیشتر
https://medium.com/@neuecc/magiconion-unified-realtime-api-engine-for-net-core-and-unity-21e02a57a3ff
___________
@DotNetZoom
GitHub
GitHub - Cysharp/MagicOnion: Unified Realtime/API framework for .NET platform and Unity.
Unified Realtime/API framework for .NET platform and Unity. - Cysharp/MagicOnion
🔸سال 94 یه مجموعه کامپوننت از روی پلاگین های معروف جاوااسکریپتی برای ASP MVC نوشتم که در اون زمان به خاطر امکاناتش جز شاهکارام محسوب میشد و تو این سال ها هم خیلی کارمو راه انداخت
کامپوننت هاش از جمله:
- Select2
- CKEditor
- DataTables
- iCheck
- DateRangePicker (with jalaali support)
- SweetAlert
- Noty
- Toaster
- And ...
🔹چند روز پیش اون رو به NET Core 3.1 آپدیت کردم و گذاشتمش گیتهابم
https://github.com/mjebrahimi/DNZ.MvcComponents
🔰پ.ن:
1️⃣ الان دیگه قصد نگهداری و ریفکتورش رو ندارم، فقط گذاشتم بمونه به یادگار و شاید بررسی سورس کدش به درد کسی بخوره
2️⃣ اینو باید همون سالها اوپن سورسش میکردم، من اشتباه کردم، شما این اشتباهو تَکرار نکنین :)
________________
@DotNetZoom
کامپوننت هاش از جمله:
- Select2
- CKEditor
- DataTables
- iCheck
- DateRangePicker (with jalaali support)
- SweetAlert
- Noty
- Toaster
- And ...
🔹چند روز پیش اون رو به NET Core 3.1 آپدیت کردم و گذاشتمش گیتهابم
https://github.com/mjebrahimi/DNZ.MvcComponents
🔰پ.ن:
1️⃣ الان دیگه قصد نگهداری و ریفکتورش رو ندارم، فقط گذاشتم بمونه به یادگار و شاید بررسی سورس کدش به درد کسی بخوره
2️⃣ اینو باید همون سالها اوپن سورسش میکردم، من اشتباه کردم، شما این اشتباهو تَکرار نکنین :)
________________
@DotNetZoom
✅ آخرت سرعت در عملیات Linq با کتابخانه LinqFaster !
این کتابخانه با استفاده از تکنولوژی SIMD (ساده بگم : پردازش برداری موازی و فوق سریع) و پردازش موازی با Multi-Threading اومده و متد های کمکی مشابه ایی نوشته که عملیات Linq رو با سرعت بالا و مصرف حافظه کمتر انجام میده.
فقط کافیه بنچمارک رو توی تصویر ببینین :)
LinqFaster
متدهای کمکی Linq با پرفرمنس بالا
https://www.nuget.org/packages/LinqFaster/
LinqFaster.SIMD
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD
https://www.nuget.org/packages/LinqFaster.SIMD/
LinqFaster.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.Parallel/
LinqFaster.SIMD.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD و پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.SIMD.Parallel/
لینک ریپازیتوری :
https://github.com/jackmott/LinqFaster
#Linq #Performance
__________________
@DotNetZoom
این کتابخانه با استفاده از تکنولوژی SIMD (ساده بگم : پردازش برداری موازی و فوق سریع) و پردازش موازی با Multi-Threading اومده و متد های کمکی مشابه ایی نوشته که عملیات Linq رو با سرعت بالا و مصرف حافظه کمتر انجام میده.
فقط کافیه بنچمارک رو توی تصویر ببینین :)
LinqFaster
متدهای کمکی Linq با پرفرمنس بالا
https://www.nuget.org/packages/LinqFaster/
LinqFaster.SIMD
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD
https://www.nuget.org/packages/LinqFaster.SIMD/
LinqFaster.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.Parallel/
LinqFaster.SIMD.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD و پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.SIMD.Parallel/
لینک ریپازیتوری :
https://github.com/jackmott/LinqFaster
#Linq #Performance
__________________
@DotNetZoom
❇️ کتابخانه ای جهت پیاده سازی Unobtrusive Ajax در ASP.NET Core
قبلا توی MVC5 میتونستیم توسط Ajax.BeginForm و Ajax.ActionLink براحتی فرم ها و لینک های Ajax ایی درست کنیم که بهش Unobtrusive Ajax هم میگفتند.
🔸متاسفانه این امکان (Ajax Helper ها) توی ASP.NET Core حذف شدند و قرار هم نیست اضافه بشند. البته همچنان میشه از Unobtrusive Ajax استفاده کرد ولی باید دستی بنویسیم و attribute هاش رو به تگ form اضافه کنیم.
مقاله زیر آموزش کاملش رو به همراه نکات خوبی ارائه داده.
https://www.dotnettips.info/post/2518
🔹اخیرا اما برای مهاجرت پروژه ای که با MVC5 نوشته شده بود و زیاد از Ajax.BeignForm استفاده کرده بود به ASP.NET Core، خیلی به این امکان نیاز داشتم و دیدم که کسی تا حالا کتابخونه ای برای این کار نزده.
پس دست به کار شدم و نتیجه اش شد یه کتابخونه خیلی کامل و با امکاناتی بیش از پیش از جمله:
1- اگر از قابلیت Ajax Helper ها استفاده کنین به صورت خودکار فایل جاوااسکریپت Unobtrusive Ajax رو توی Layout شما تزریق میکنه و در صورت عدم استفاده اون رو تزریق نمیکنه. پس هم فایل js اضافی تو صفحه لود نمیشه و هم نگرانی بابت فراموش کردنش نخواهید نداشت
2- به صورت پیشفرض از یک جاوااسکریپ Embed شده استفاده میکنه ولی میتونین تنظیم کنین که از CDN (وبسایت cdnjs) استفاده کنه
3- با Upload فایل ها سازگاره
4- به صورت خودکار ForgeryToken رو ارسال میکنه و با [AntiForgeryTokenValidation] سازگاره
5- دارای اتریبیوت [AjaxOnly] برای محدودیت گذاری روی اکشن ها هست
6- دارای اکسنشن متد httpRequest.IsAjaxRequest() هست تا بتونین براساس اون تصمیم بگیرین PartialView برگردونین یا Json
دارای چندین متد overload اضافی هست برای راحتی بیشتر
▪️تفاوت این کتابخونه با jQuery Ajax اینه که در عمل خود این کتابخونه هم از jQuery Ajax استفاده میکنه ولی برای جا هایی که سفارشی سازی خاصی لازم ندارید استفاده از ajax رو خیلی ساده تر میکنه.
▪️توی صفحه اصلی ریپازیتوریش طریقه استفادش رو کامل توضیح دادم اما اگه خواستین میتونین پروژه رو دانلود/clone کنین و پروژه demo رو اجرا کنین تا چندتا از sample هاش رو ببینین
https://github.com/mjebrahimi/AspNetCore.Unobtrusive.Ajax
__________________
@DotNetZoom
قبلا توی MVC5 میتونستیم توسط Ajax.BeginForm و Ajax.ActionLink براحتی فرم ها و لینک های Ajax ایی درست کنیم که بهش Unobtrusive Ajax هم میگفتند.
🔸متاسفانه این امکان (Ajax Helper ها) توی ASP.NET Core حذف شدند و قرار هم نیست اضافه بشند. البته همچنان میشه از Unobtrusive Ajax استفاده کرد ولی باید دستی بنویسیم و attribute هاش رو به تگ form اضافه کنیم.
مقاله زیر آموزش کاملش رو به همراه نکات خوبی ارائه داده.
https://www.dotnettips.info/post/2518
🔹اخیرا اما برای مهاجرت پروژه ای که با MVC5 نوشته شده بود و زیاد از Ajax.BeignForm استفاده کرده بود به ASP.NET Core، خیلی به این امکان نیاز داشتم و دیدم که کسی تا حالا کتابخونه ای برای این کار نزده.
پس دست به کار شدم و نتیجه اش شد یه کتابخونه خیلی کامل و با امکاناتی بیش از پیش از جمله:
1- اگر از قابلیت Ajax Helper ها استفاده کنین به صورت خودکار فایل جاوااسکریپت Unobtrusive Ajax رو توی Layout شما تزریق میکنه و در صورت عدم استفاده اون رو تزریق نمیکنه. پس هم فایل js اضافی تو صفحه لود نمیشه و هم نگرانی بابت فراموش کردنش نخواهید نداشت
2- به صورت پیشفرض از یک جاوااسکریپ Embed شده استفاده میکنه ولی میتونین تنظیم کنین که از CDN (وبسایت cdnjs) استفاده کنه
3- با Upload فایل ها سازگاره
4- به صورت خودکار ForgeryToken رو ارسال میکنه و با [AntiForgeryTokenValidation] سازگاره
5- دارای اتریبیوت [AjaxOnly] برای محدودیت گذاری روی اکشن ها هست
6- دارای اکسنشن متد httpRequest.IsAjaxRequest() هست تا بتونین براساس اون تصمیم بگیرین PartialView برگردونین یا Json
دارای چندین متد overload اضافی هست برای راحتی بیشتر
▪️تفاوت این کتابخونه با jQuery Ajax اینه که در عمل خود این کتابخونه هم از jQuery Ajax استفاده میکنه ولی برای جا هایی که سفارشی سازی خاصی لازم ندارید استفاده از ajax رو خیلی ساده تر میکنه.
▪️توی صفحه اصلی ریپازیتوریش طریقه استفادش رو کامل توضیح دادم اما اگه خواستین میتونین پروژه رو دانلود/clone کنین و پروژه demo رو اجرا کنین تا چندتا از sample هاش رو ببینین
https://github.com/mjebrahimi/AspNetCore.Unobtrusive.Ajax
__________________
@DotNetZoom
GitHub
GitHub - mjebrahimi/AspNetCore.Unobtrusive.Ajax: 💻 Unobtrusive Ajax Helpers (like MVC5 Ajax.BeignForm and Ajax.ActionLink) for…
💻 Unobtrusive Ajax Helpers (like MVC5 Ajax.BeignForm and Ajax.ActionLink) for ASP.NET Core - mjebrahimi/AspNetCore.Unobtrusive.Ajax
✅ بررسی اجمالی معماری ASP.NET Core
🔸توی این اسلاید خیلی زیبا، خلاصه و مفید معماری ASP.NET Core رو نشون میده و باعث میشه دید خوبی از اجزای مختلف این فریمورک و طرز کارکردشون پیدا کنید.
https://speakerdeck.com/davidfowl/asp-dot-net-core-architecture-overview
🔹این اسلاید توسط David Fowler، معمار تیم ASP.NET ماکروسافت تهیه شده. بقیه اسلاید های ایشون رو هم از لینک زیر میتونین ببینین که واقعا آموزنده هست.
https://speakerdeck.com/davidfowl
__________________
@DotNetZoom
🔸توی این اسلاید خیلی زیبا، خلاصه و مفید معماری ASP.NET Core رو نشون میده و باعث میشه دید خوبی از اجزای مختلف این فریمورک و طرز کارکردشون پیدا کنید.
https://speakerdeck.com/davidfowl/asp-dot-net-core-architecture-overview
🔹این اسلاید توسط David Fowler، معمار تیم ASP.NET ماکروسافت تهیه شده. بقیه اسلاید های ایشون رو هم از لینک زیر میتونین ببینین که واقعا آموزنده هست.
https://speakerdeck.com/davidfowl
__________________
@DotNetZoom
✅ تست کد های #C به صورت آنلاین
توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین
🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/
🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/
🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن
🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp
🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
@DotNetZoom
توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین
🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/
🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/
🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن
🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp
🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
@DotNetZoom
Telegram
Attach Files
Forwarded from کدهک
رویداد NET Conf تا کمتر از 24 ساعت دیگر برگزار میشود.
قرار است در این رویداد نسخه نهایی دات نت 5 به همراه EF Core 5.0 عرضه شود.
این رویداد به مدت سه روز برگزار میشود و به معرفی آخرین قابلیت های Visual Studio و دات نت ، زبان سی شارپ و ... می پردازد.
https://www.dotnetconf.net
قرار است در این رویداد نسخه نهایی دات نت 5 به همراه EF Core 5.0 عرضه شود.
این رویداد به مدت سه روز برگزار میشود و به معرفی آخرین قابلیت های Visual Studio و دات نت ، زبان سی شارپ و ... می پردازد.
https://www.dotnetconf.net
Forwarded from کدهک
وضعیت جاری دات نت
نسخه 4.8 فقط باگ فیکس خواهد داشت و دیگر قابلیت جدید به آن اضافه نمیشود. این نسخه برای سالهای آینده همچنان پشتیبانی میشود.
نسخه نهایی 5.0 امروز منتشر شد. این نسخه پشتبانی موقت(یک ساله) داره و بعد از ارائه نسخه 6 دیگر پشتیبانی نخواهد شد. نسخه 6 پشتیبانی بلند مدت (LTS) خواهد داشت.
قرار بود Mono/Xamarin در نسخه 5.0 یکپارچه سازی شود ولی با توجه به کرنا انتقال آن ممکن نشده و به نسخه 6.0 دات نت موکول شده است.
قرار نیست Web Formو Workflowو WCF به دات نت جدید منتقل شوند.
نسخه 4.8 فقط باگ فیکس خواهد داشت و دیگر قابلیت جدید به آن اضافه نمیشود. این نسخه برای سالهای آینده همچنان پشتیبانی میشود.
نسخه نهایی 5.0 امروز منتشر شد. این نسخه پشتبانی موقت(یک ساله) داره و بعد از ارائه نسخه 6 دیگر پشتیبانی نخواهد شد. نسخه 6 پشتیبانی بلند مدت (LTS) خواهد داشت.
قرار بود Mono/Xamarin در نسخه 5.0 یکپارچه سازی شود ولی با توجه به کرنا انتقال آن ممکن نشده و به نسخه 6.0 دات نت موکول شده است.
قرار نیست Web Formو Workflowو WCF به دات نت جدید منتقل شوند.
✅ لیست مطالب مهم NET 5.0. و کنفرانس Net Conf.
ببینید دوستان حجم مطالب منتشر شده توی رویداد NET Conf. خیلی زیاده. قبلا هم بخشی از تغییرات رو دوستان به فارسی کار کردند و اگه پیگیر اخبار جدید دنیای دات نت تو این کانال یا کانالهای همکار بوده باشین احتمالا اون ها رو دیدن.
الان اما بهترین کار به نظرم اینه که این آخر هفته ایه رو بذارین و این مقالات رو مطالعه کنین، خودمم میخوام همین کارو بکنم.
واسه همین لیست کامل مطالب مهم دات نت 5.0 رو اماده کردم و امیدوارم براتون مفید واقع بشه (لیست رو هم آپدیت نگه اش میدارم)
انشالا اگه خودم یا بقیه دوستان مطلبی اماده کردیم حتما باهاتون به اشتراک میذارم. شاد و پیروز باشین 🌹
🔰 معرفی ها و Release های جدید
💎 Announcing .NET 5.0
https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
💎 Announcing ASP.NET Core in .NET 5
https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/
💎 Announcing the Release of EF Core 5.0
https://devblogs.microsoft.com/dotnet/announcing-the-release-of-ef-core-5-0/
💎 C# 9.0 on the record
https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
💎 Visual Studio 2019 v16.8 and v16.9 Preview 1 Release Today
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-8/
💎 Announcing the Release of the Git Experience in Visual Studio
https://devblogs.microsoft.com/visualstudio/announcing-the-release-of-the-git-experience-in-visual-studio/
💎 What’s new in .NET Productivity
https://devblogs.microsoft.com/dotnet/whats-new-in-net-productivity/
💎 Recapping Xamarin Highlights from .NET Conf 2020
https://devblogs.microsoft.com/xamarin/dotnetconf-2020-xamarin-recap/
💎 Windows Terminal Preview 1.5 Release
https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-5-release/
💎 Getting Started With NuGet 5.8
https://devblogs.microsoft.com/nuget/getting-started-with-nuget-5-8/
🔰 لیست تغییرات جدید
💎 What's new in .NET 5
https://docs.microsoft.com/en-us/dotnet/core/dotnet-five
💎 What's new in ASP.NET Core 5.0
https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-5.0
💎 What's New in EF Core 5.0
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/whatsnew
💎 What's new in C# 9.0
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9
🔰 راهنمای مهاجرت و break change ها
💎 Migrate from ASP.NET Core 3.1 to 5.0
https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50
💎 Breaking changes for migration from version 3.1 to 5.0
https://docs.microsoft.com/en-us/dotnet/core/compatibility/3.1-5.0
🔰 ویدئو های رویداد NET Conf.
💎 .NET Conf 2020 - Day 1/3
https://www.youtube.com/watch?v=mS6ykjdOVRg
💎 .NET Conf 2020 - Day 2/3
https://www.youtube.com/watch?v=Uq4qyHi3sYM
💎 مثال هایی از دات نت 5.0
https://gist.github.com/richlander/50c34a8714eb3436e5d9d4d5d420776e
💎 آموزش جامع سی شارپ 9.0 از وحید نصیری
https://www.dotnettips.info/learningpaths/details/101
🔰لازم به ذکره که NET 5.0. و ASP.NET Core 5.0 تغیرات شکننده (breaking changes) مهم و پرکاربردی نداشته و به راحتی میتونین پروژه هاتون رو از NET Core 3.1 به NET 5.0 آپگرید کنین و از پرفرمنس بیشتر و قابلیت های جدیدش لذت ببرین✌️
________________
@DotNetZoom
ببینید دوستان حجم مطالب منتشر شده توی رویداد NET Conf. خیلی زیاده. قبلا هم بخشی از تغییرات رو دوستان به فارسی کار کردند و اگه پیگیر اخبار جدید دنیای دات نت تو این کانال یا کانالهای همکار بوده باشین احتمالا اون ها رو دیدن.
الان اما بهترین کار به نظرم اینه که این آخر هفته ایه رو بذارین و این مقالات رو مطالعه کنین، خودمم میخوام همین کارو بکنم.
واسه همین لیست کامل مطالب مهم دات نت 5.0 رو اماده کردم و امیدوارم براتون مفید واقع بشه (لیست رو هم آپدیت نگه اش میدارم)
انشالا اگه خودم یا بقیه دوستان مطلبی اماده کردیم حتما باهاتون به اشتراک میذارم. شاد و پیروز باشین 🌹
🔰 معرفی ها و Release های جدید
💎 Announcing .NET 5.0
https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
💎 Announcing ASP.NET Core in .NET 5
https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/
💎 Announcing the Release of EF Core 5.0
https://devblogs.microsoft.com/dotnet/announcing-the-release-of-ef-core-5-0/
💎 C# 9.0 on the record
https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
💎 Visual Studio 2019 v16.8 and v16.9 Preview 1 Release Today
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-8/
💎 Announcing the Release of the Git Experience in Visual Studio
https://devblogs.microsoft.com/visualstudio/announcing-the-release-of-the-git-experience-in-visual-studio/
💎 What’s new in .NET Productivity
https://devblogs.microsoft.com/dotnet/whats-new-in-net-productivity/
💎 Recapping Xamarin Highlights from .NET Conf 2020
https://devblogs.microsoft.com/xamarin/dotnetconf-2020-xamarin-recap/
💎 Windows Terminal Preview 1.5 Release
https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-5-release/
💎 Getting Started With NuGet 5.8
https://devblogs.microsoft.com/nuget/getting-started-with-nuget-5-8/
🔰 لیست تغییرات جدید
💎 What's new in .NET 5
https://docs.microsoft.com/en-us/dotnet/core/dotnet-five
💎 What's new in ASP.NET Core 5.0
https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-5.0
💎 What's New in EF Core 5.0
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/whatsnew
💎 What's new in C# 9.0
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9
🔰 راهنمای مهاجرت و break change ها
💎 Migrate from ASP.NET Core 3.1 to 5.0
https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50
💎 Breaking changes for migration from version 3.1 to 5.0
https://docs.microsoft.com/en-us/dotnet/core/compatibility/3.1-5.0
🔰 ویدئو های رویداد NET Conf.
💎 .NET Conf 2020 - Day 1/3
https://www.youtube.com/watch?v=mS6ykjdOVRg
💎 .NET Conf 2020 - Day 2/3
https://www.youtube.com/watch?v=Uq4qyHi3sYM
💎 مثال هایی از دات نت 5.0
https://gist.github.com/richlander/50c34a8714eb3436e5d9d4d5d420776e
💎 آموزش جامع سی شارپ 9.0 از وحید نصیری
https://www.dotnettips.info/learningpaths/details/101
🔰لازم به ذکره که NET 5.0. و ASP.NET Core 5.0 تغیرات شکننده (breaking changes) مهم و پرکاربردی نداشته و به راحتی میتونین پروژه هاتون رو از NET Core 3.1 به NET 5.0 آپگرید کنین و از پرفرمنس بیشتر و قابلیت های جدیدش لذت ببرین✌️
________________
@DotNetZoom
.NET Blog
Announcing .NET 5.0 - .NET Blog
.NET 5.0 includes many enhancements, including single file applications, more capable JSON APIs, new versions of C
❇️ بلوغ System.Text.Json در دات نت 5.0
کتابخانه Json Serializer داخلی دات نت تحت عنوان System.Text.Json در NET Core 3.0 معرفی شد و به منظور پرفرمنس و یکپارچگی بیشتر، به عنوان سریالایزر پیشفرض ASP.NET Core 3.0 قرار گرفت و نیز برای استفاده از Json.NET که تا قبل از اون، سریالایزر پیشفرض ASP.NET Core بود، یک پکیج جداگانه اضافه شد تا بشه اون رو توی ASP.NET Core تنظیمش کرد.
🔸کتابخونه System.Text.Json اما، یک سری نواقص و مشکلات اساسی داشت که باعث میشد خیلی برای استفاده در محیط Production مناسب نباشه مثلا:
1️⃣ اگه 2تا شی داشته باشین که به هم دیگه دارن رفرنس میدن، موقع سریالایز با خطا مواجه میشدین (که اصطلاحا بهش Reference Loop یا Circular References میگن)
این یک امکان مهم و اساسی لازم برای سریالایز ها هست و متاسفانه نه تنها پشتیبانی نمیکرد بلکه راه حل workaround ایی هم نداشت!
2️⃣ مشکل بعدی اینکه مثلا اگه شما یه پروپرتی عددی به نام Age داشته باشین و سمت کلاینت مقدار json اش رو به صورت رشته ای (string) ارسال کنین به سرور (دقت کنید مقدار عددی داخل "" (Quote) محصور شده.)
3️⃣ مشکل بعدی اینکه اگه کلاس شما سازنده پیشفرض یا بدون پارامتر نداشت موقع Deserialize به خطا میخوردین؛ همچنین از Field ها و non-public Property ها هم پشتیبانی نمیکرد.
🔸خوشبختانه اما، در دات نت 5.0 تمامی این مشکل ها برطرف شده و به سطحی از پختگی و بلوغ رسیده که بشه بدون نگرانی ازش استفاده کرد. همچنین کلی بهبود پرفرمنسی و تعدادی فیچر جدید هم اضافه کرده از جمله:
✅ لیست بهبود ها و فیچر های جدید
✔️ بهبود پرفرمنسی 2.4 برابری در Serialize و 1.5 برابری در Deserialize (بنچمارک ها اینجا و اینجا)
✔️ برطرف شدن مشکل ReferenceLoopHandling (یا همون Circular References) به واسطه اضافه شدن تنظیم جدید
✔️ اضافه شدن پشتیبانی از Serialize و Deserialize مقادیر عددی به صورت string ایی توسط تنظیم جدید
✔️ پشتیبانی از Serialize و Desersialize مقادیر Field ها و non-public Properties توسط تنظیم جدید
✔️ پشتیبانی از Serialize و Desersialize نوع record معرفی شده در سی شارپ 9.0 (نمونه مثال)
✔️ پشتیبانی از immutable struct و اضافه شدن اتریبیوت [JsonConstructor] برای مشخص کردن سازنده پیشفرض جهت نمونه سازی به هنگام Deserializing (نمونه مثال)
✔️ بهبود پشتیبانی از نوع Dictionary<K,V> l برای کلید های غیر string ایی (نمونه مثال)
🔰اطلاعات بیشتر
▪️اگر دنبال مقاله فارسی هستین برای System.Text.Json که اکثر موارد مهم رو پوشش داده باشه، این مقاله رو پیشنهاد میکنم
▪️اینجا هم میتونین لیست Breake-Change های سریالایزر در دات نت 5.0 رو مطالعه کنین
و نهایتا اگه میخواین به زیر و بم System.Text.Json مسلط بشین بدون شک این 2تا لینک بهترین هستند
▪️داکیومنت مهاجرت از Newtonsoft.Json به System.Text.Json
▪️داکیومنت کامل استفاده از System.Text.Json
_______________
@DotNetZoom
کتابخانه Json Serializer داخلی دات نت تحت عنوان System.Text.Json در NET Core 3.0 معرفی شد و به منظور پرفرمنس و یکپارچگی بیشتر، به عنوان سریالایزر پیشفرض ASP.NET Core 3.0 قرار گرفت و نیز برای استفاده از Json.NET که تا قبل از اون، سریالایزر پیشفرض ASP.NET Core بود، یک پکیج جداگانه اضافه شد تا بشه اون رو توی ASP.NET Core تنظیمش کرد.
🔸کتابخونه System.Text.Json اما، یک سری نواقص و مشکلات اساسی داشت که باعث میشد خیلی برای استفاده در محیط Production مناسب نباشه مثلا:
1️⃣ اگه 2تا شی داشته باشین که به هم دیگه دارن رفرنس میدن، موقع سریالایز با خطا مواجه میشدین (که اصطلاحا بهش Reference Loop یا Circular References میگن)
این یک امکان مهم و اساسی لازم برای سریالایز ها هست و متاسفانه نه تنها پشتیبانی نمیکرد بلکه راه حل workaround ایی هم نداشت!
2️⃣ مشکل بعدی اینکه مثلا اگه شما یه پروپرتی عددی به نام Age داشته باشین و سمت کلاینت مقدار json اش رو به صورت رشته ای (string) ارسال کنین به سرور (دقت کنید مقدار عددی داخل "" (Quote) محصور شده.)
{
Age: "27"
}
تا قبل از این با Exception مواجه میشدین چرا که به صورت پیشفرض مقادیر عددی رو فقط میتونست به صورت عددی Serialize و Deserialize کنه. یعنی به این صورت{
Age: 27
}
البته این مشکل، راه حل workaround داشت که اینجا میتونین ببینین ولی به صورت پیشفرض این امکان رو نداشت3️⃣ مشکل بعدی اینکه اگه کلاس شما سازنده پیشفرض یا بدون پارامتر نداشت موقع Deserialize به خطا میخوردین؛ همچنین از Field ها و non-public Property ها هم پشتیبانی نمیکرد.
🔸خوشبختانه اما، در دات نت 5.0 تمامی این مشکل ها برطرف شده و به سطحی از پختگی و بلوغ رسیده که بشه بدون نگرانی ازش استفاده کرد. همچنین کلی بهبود پرفرمنسی و تعدادی فیچر جدید هم اضافه کرده از جمله:
✅ لیست بهبود ها و فیچر های جدید
✔️ بهبود پرفرمنسی 2.4 برابری در Serialize و 1.5 برابری در Deserialize (بنچمارک ها اینجا و اینجا)
✔️ برطرف شدن مشکل ReferenceLoopHandling (یا همون Circular References) به واسطه اضافه شدن تنظیم جدید
ReferenceHandler.Preserve (مشابه PreserveReferencesHandling.Ignore در Json.Net) (نمونه مثال)✔️ اضافه شدن پشتیبانی از Serialize و Deserialize مقادیر عددی به صورت string ایی توسط تنظیم جدید
NumberHandling ✔️ پشتیبانی از Serialize و Desersialize مقادیر Field ها و non-public Properties توسط تنظیم جدید
IncludeFields (نمونه مثال)✔️ پشتیبانی از Serialize و Desersialize نوع record معرفی شده در سی شارپ 9.0 (نمونه مثال)
✔️ پشتیبانی از immutable struct و اضافه شدن اتریبیوت [JsonConstructor] برای مشخص کردن سازنده پیشفرض جهت نمونه سازی به هنگام Deserializing (نمونه مثال)
✔️ بهبود پشتیبانی از نوع Dictionary<K,V> l برای کلید های غیر string ایی (نمونه مثال)
🔰اطلاعات بیشتر
▪️اگر دنبال مقاله فارسی هستین برای System.Text.Json که اکثر موارد مهم رو پوشش داده باشه، این مقاله رو پیشنهاد میکنم
▪️اینجا هم میتونین لیست Breake-Change های سریالایزر در دات نت 5.0 رو مطالعه کنین
و نهایتا اگه میخواین به زیر و بم System.Text.Json مسلط بشین بدون شک این 2تا لینک بهترین هستند
▪️داکیومنت مهاجرت از Newtonsoft.Json به System.Text.Json
▪️داکیومنت کامل استفاده از System.Text.Json
_______________
@DotNetZoom
✅ تست راحت تر کد های سی شارپ با C# Interactive
خیلی وقتا نیازمون میشه یه کد سی شارپ رو فقط تست کنیم. یه راهش اینه که یه اپ Console بسازیم ولی یه برنامه نویس خوب همیشه از ابزار های مناسب اون کار استفاده میکنه و برای اینکار ابزار های راحت تر و بهتری هم وجود داره، مثل C# Interactive
🔸این ابزار خیلی کار راه بندازه و زمانی که ویژوال استادیو جلوتون بازه بهترین انتخابه
این ابزار بهمون اجازه میده در لحظه یه کدی رو تست کنیم؛ نیاز به ساختن پروژه جدید نداره و لود خیلی سریعی داره؛ میتونیم dll رفرنس بدیم به کدمون یا یه فایل noscript ایی که قبلا نوشتیم رو load و اجرا کنیم و...
به این قابلیت C# REPL یا CSI هم میگن. همچنین توسط کامند csi توی کامند لاین هم قابل استفاده هست.
🔹کلا کار باهاش که خیلی راحته و بعد یه مدت به ابزار روزمره تون تبدیل میشه ولی فقط نکته رو بدونین (هرچند که توی 2تا لینک بالا کامل توضیح داده) اونم اینه که خیلی وقتا لازم میشه یه یه dll ایی رفرنس بدیم که قبلا رفرنس نبوده
مثلا میخواین با کلاس SqlConnection کار کنین، از اونجایی که "System.Data" به صورت پیشفرض رفرنس نشده شما فقط کافیه اونو با r# رفرنس کنین. همین. مثال:
https://dzone.com/articles/c-interactive-in-visual-studio
https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103
___________________
@DotNetZoom
خیلی وقتا نیازمون میشه یه کد سی شارپ رو فقط تست کنیم. یه راهش اینه که یه اپ Console بسازیم ولی یه برنامه نویس خوب همیشه از ابزار های مناسب اون کار استفاده میکنه و برای اینکار ابزار های راحت تر و بهتری هم وجود داره، مثل C# Interactive
🔸این ابزار خیلی کار راه بندازه و زمانی که ویژوال استادیو جلوتون بازه بهترین انتخابه
این ابزار بهمون اجازه میده در لحظه یه کدی رو تست کنیم؛ نیاز به ساختن پروژه جدید نداره و لود خیلی سریعی داره؛ میتونیم dll رفرنس بدیم به کدمون یا یه فایل noscript ایی که قبلا نوشتیم رو load و اجرا کنیم و...
به این قابلیت C# REPL یا CSI هم میگن. همچنین توسط کامند csi توی کامند لاین هم قابل استفاده هست.
🔹کلا کار باهاش که خیلی راحته و بعد یه مدت به ابزار روزمره تون تبدیل میشه ولی فقط نکته رو بدونین (هرچند که توی 2تا لینک بالا کامل توضیح داده) اونم اینه که خیلی وقتا لازم میشه یه یه dll ایی رفرنس بدیم که قبلا رفرنس نبوده
مثلا میخواین با کلاس SqlConnection کار کنین، از اونجایی که "System.Data" به صورت پیشفرض رفرنس نشده شما فقط کافیه اونو با r# رفرنس کنین. همین. مثال:
> #r "System.Data"
> using System.Data.SqlClient;
> var sql = new SqlConnection("myconn");
🔰یه بار این ویدئو یا مقاله زیر رو ببینین تا کامل متوجه طرز کارش بشینhttps://dzone.com/articles/c-interactive-in-visual-studio
https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/103
___________________
@DotNetZoom
Telegram
Attach Files
✅ معرفی محبوب ترین کتابخانه های "رایگان" کار با Excel در دات نت
یکی از محبوب ترین کتابخونه کار با اکسل در دات نت، کتابخونه EPPlus هست. این کتابخونه تا مدت زیادی رایگان بود ولی متاسفانه از نسخه 5 اش به بعد پولی شد و لایسنس لازم داره
در این شرایط همچنان میشه از آخرین نسخه قبل از 5 اش، یعنی 4.5.3.3 استفاده کرد که لایسنس نمیخواد ولی خب طبیعتا از آپدیت و بهبود های بعدیش محروم میمونید
در زمره بهترین کتابخونه های رایگان کار با اکسل میشه به موارد زیر اشاره کرد که اولی محبوب ترین هست و سه تای بعدی تقریبا تو یه مایه هستند. همشون هم NET Core. رو پشتیبانی میکنن
🔸 کتابخونه OpenXml
🔹 کتابخونه ExcelDataReader
🔸 کتابخونه NPOI
🔹 کتابخونه ClosedXML
از طریق لینک زیر میتونین محبوبیت (نمودار تعداد دانلود) این کتابخونه ها رو ببینین و با هم مقایسه کنین
https://nugettrends.com/packages?months=12&ids=DocumentFormat.OpenXml&ids=EPPlus&ids=ExcelDataReader&ids=NPOI&ids=ClosedXML
__________________
@DotNetZoom
یکی از محبوب ترین کتابخونه کار با اکسل در دات نت، کتابخونه EPPlus هست. این کتابخونه تا مدت زیادی رایگان بود ولی متاسفانه از نسخه 5 اش به بعد پولی شد و لایسنس لازم داره
در این شرایط همچنان میشه از آخرین نسخه قبل از 5 اش، یعنی 4.5.3.3 استفاده کرد که لایسنس نمیخواد ولی خب طبیعتا از آپدیت و بهبود های بعدیش محروم میمونید
در زمره بهترین کتابخونه های رایگان کار با اکسل میشه به موارد زیر اشاره کرد که اولی محبوب ترین هست و سه تای بعدی تقریبا تو یه مایه هستند. همشون هم NET Core. رو پشتیبانی میکنن
🔸 کتابخونه OpenXml
🔹 کتابخونه ExcelDataReader
🔸 کتابخونه NPOI
🔹 کتابخونه ClosedXML
از طریق لینک زیر میتونین محبوبیت (نمودار تعداد دانلود) این کتابخونه ها رو ببینین و با هم مقایسه کنین
https://nugettrends.com/packages?months=12&ids=DocumentFormat.OpenXml&ids=EPPlus&ids=ExcelDataReader&ids=NPOI&ids=ClosedXML
__________________
@DotNetZoom
❇️ فعال سازی سطح دوم کش روی EF Core توسط EFCoreSecondLevelCacheInterceptor
قبلا کتابخانه EFSecondLevelCache.Core رو معرفی کرده بودیم
توسط این کتابخانه میتونین کش سطح دوم (second level caching) رو روی EF Core فعال کنین. در واقع میتونین نتیجه کوئری هاتون رو کش کنین تا دفعه بعد، به جای دیتابیس، از کش خونده بشه.
این کتابخانه توسط وحید نصیری عزیز، مدیر سایت dotnettips.info نوشته شده است.
اکنون میخوایم کتابخانه جایگزین اون یعنی EFCoreSecondLevelCacheInterceptor رو معرفی کنیم
این کتابخونه هم مشابه قبلی هست و توسط وحید نصیری نوشته
🔰مزیت این کتابخونه نسبت به قبلی اینه که :
🔹کار باهاش ساده تره
🔸به دلیل استفاده از Interceptor پرفرمنس بالاتری داره
🔹یه سری از باگ ها و محدودیت هایی که قبلی داشت رو دیگه نداره
🔸و وابستگی به کتابخونه شخص ثالث برای Caching نداره و از Abstract های خود دات نت استفاده میکنه
🔰 نکته :
✔️اکیدا پیشنهاد میکنم اگه از قبلی استفاده میکردین، به پکیج جدید مهاجرت کنین (ضمن اینکه کتابخانه قلبی Archive شده و دیگر توسعه داده نمشه)
✔️کشینگ همیشه ازش به عنوان یه شمشیر "دو لبه" یاد میشه که اگه با علم کافی و به جا ازش استفاده نکنین و حواستون به Invalidate کردن ایتم های کش شده نباشه، سیستم رو دچاره مشکل میکنه
خوبی این کتابخونه اینه که بحث Invalidate کردن رو به صورت خودکار انجام میده و دیگه نگرانیی بابت اون نخواهید داشت، پس افرادی که توی این مبحث واقعا بزرگ (Caching) حرفه ای هم نیستن راحت تر میتونن تو پروژه هاشون ازش استفاده کنن
https://github.com/VahidN/EFCoreSecondLevelCacheInterceptor
___________________
@DotNetZoom
قبلا کتابخانه EFSecondLevelCache.Core رو معرفی کرده بودیم
توسط این کتابخانه میتونین کش سطح دوم (second level caching) رو روی EF Core فعال کنین. در واقع میتونین نتیجه کوئری هاتون رو کش کنین تا دفعه بعد، به جای دیتابیس، از کش خونده بشه.
این کتابخانه توسط وحید نصیری عزیز، مدیر سایت dotnettips.info نوشته شده است.
اکنون میخوایم کتابخانه جایگزین اون یعنی EFCoreSecondLevelCacheInterceptor رو معرفی کنیم
این کتابخونه هم مشابه قبلی هست و توسط وحید نصیری نوشته
🔰مزیت این کتابخونه نسبت به قبلی اینه که :
🔹کار باهاش ساده تره
🔸به دلیل استفاده از Interceptor پرفرمنس بالاتری داره
🔹یه سری از باگ ها و محدودیت هایی که قبلی داشت رو دیگه نداره
🔸و وابستگی به کتابخونه شخص ثالث برای Caching نداره و از Abstract های خود دات نت استفاده میکنه
🔰 نکته :
✔️اکیدا پیشنهاد میکنم اگه از قبلی استفاده میکردین، به پکیج جدید مهاجرت کنین (ضمن اینکه کتابخانه قلبی Archive شده و دیگر توسعه داده نمشه)
✔️کشینگ همیشه ازش به عنوان یه شمشیر "دو لبه" یاد میشه که اگه با علم کافی و به جا ازش استفاده نکنین و حواستون به Invalidate کردن ایتم های کش شده نباشه، سیستم رو دچاره مشکل میکنه
خوبی این کتابخونه اینه که بحث Invalidate کردن رو به صورت خودکار انجام میده و دیگه نگرانیی بابت اون نخواهید داشت، پس افرادی که توی این مبحث واقعا بزرگ (Caching) حرفه ای هم نیستن راحت تر میتونن تو پروژه هاشون ازش استفاده کنن
https://github.com/VahidN/EFCoreSecondLevelCacheInterceptor
___________________
@DotNetZoom
GitHub
GitHub - VahidN/EFCoreSecondLevelCacheInterceptor: EF Core Second Level Cache Interceptor
EF Core Second Level Cache Interceptor. Contribute to VahidN/EFCoreSecondLevelCacheInterceptor development by creating an account on GitHub.