✅ تست راحت تر کد های سی شارپ با 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
✅ تست کد های #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 کدهک
آموزش Select با قابلیت جستجو
با استفاده از کتابخانه ی Select2 می توانید در میان گزینه ها جستجو کنید. این قابیلت زمانی که تعداد آیتمهای لیست زیاد باشد مانند اسامی استانها یا شهرها به کار می آید. در این ویدیو نحوه ی فارسی کردن و استفاده از Bootstrap به صورت راست به چپ هم آموزش داده شده است.
https://codehaks.com/go/sel
با استفاده از کتابخانه ی Select2 می توانید در میان گزینه ها جستجو کنید. این قابیلت زمانی که تعداد آیتمهای لیست زیاد باشد مانند اسامی استانها یا شهرها به کار می آید. در این ویدیو نحوه ی فارسی کردن و استفاده از Bootstrap به صورت راست به چپ هم آموزش داده شده است.
https://codehaks.com/go/sel
This media is not supported in your browser
VIEW IN TELEGRAM
❇️ رو نمایی از قابلیت جدید GitHub به نام Codespaces و Discussions
🔸این قابلیت عملا یک IDE مدرن (مشابه VSCode) توی Browser به همراه امکاناتی از جلمه (Intellisense و Run و Debug و Test و...) در اختیارتون میذاره. از این پس واسه توسعه کد ریپازیتوری هاتون میتونین بدون نیاز به Clone کردن، اون رو توی مروگر توسط این IDE توسعه بدین.
این قابلیت که هم اکنون به صورت beta منتشر شده، برای همگان دردسترس نیست و برای استفاده از آن باید درخواست Early Access ثبت کنید
🔹همچنین قابلیت جدید دیگری به نام GitHub Discussions معرفی شده که مشابه Forum یا Q&A بوده محلی برای گفتگو و پرسش و پاسخ حول مسائل فنی مخصوص یک ریپازیتوری هست (که تاکنون این گفتگو ها معمولا توی Issue ها و Pull Request ها به صورت پراکنده و غیر یکپارچه دیده میشد) و به نظر میرسه برای رسیدن به چیزی مشابه StackOverflow ایجاد شده
این قابلییت هم اکنون برای تعداد محدودی از ریپازیتوری ها (مانند react-table) اعمال شده و برای همگان دردسترس نیست .
https://github.com/features/codespaces
___________________
@DotNetZoom
🔸این قابلیت عملا یک IDE مدرن (مشابه VSCode) توی Browser به همراه امکاناتی از جلمه (Intellisense و Run و Debug و Test و...) در اختیارتون میذاره. از این پس واسه توسعه کد ریپازیتوری هاتون میتونین بدون نیاز به Clone کردن، اون رو توی مروگر توسط این IDE توسعه بدین.
این قابلیت که هم اکنون به صورت beta منتشر شده، برای همگان دردسترس نیست و برای استفاده از آن باید درخواست Early Access ثبت کنید
🔹همچنین قابلیت جدید دیگری به نام GitHub Discussions معرفی شده که مشابه Forum یا Q&A بوده محلی برای گفتگو و پرسش و پاسخ حول مسائل فنی مخصوص یک ریپازیتوری هست (که تاکنون این گفتگو ها معمولا توی Issue ها و Pull Request ها به صورت پراکنده و غیر یکپارچه دیده میشد) و به نظر میرسه برای رسیدن به چیزی مشابه StackOverflow ایجاد شده
این قابلییت هم اکنون برای تعداد محدودی از ریپازیتوری ها (مانند react-table) اعمال شده و برای همگان دردسترس نیست .
https://github.com/features/codespaces
___________________
@DotNetZoom
✅ اضافه شدن قابلیت Decompile کد های #C در VSCode
قابلیت Decompilation به افزونه مخصوص سی شارپ (OmniSharp) در VSCode اضافه شد. این امکان به واسطه کتابخانه قدرتمند ILSpy انجام شده
🔰برای فعال سازی اون کافیه
1️⃣ افزونه OmniSharp بروزرسانی بشه (با باز شدن VSCode خودش چک میکنه اگه ورژن جدید داشته باشه Update میکنه - بعدشم باید یه بار باز و بسته کنین VSCode رو)
2️⃣ سپس روی یه کلاسی که سورسش رو ندارین راست کلیک کنین و گزینه "Go to Definition" رو انتخاب کنین (بار اول یه سوال میپرسه که گزینه Yes رو انتخاب کنین)
3️⃣ و تامام، لذت ببرین
🔻در صورتی که براتون کار نکرد از بروز بودن OmniSharp و VSCode مطمئن بشین و شایدم لازم باشه این قابلیت رو دستی فعال کنین
____________________
@DotNetZoom
قابلیت Decompilation به افزونه مخصوص سی شارپ (OmniSharp) در VSCode اضافه شد. این امکان به واسطه کتابخانه قدرتمند ILSpy انجام شده
🔰برای فعال سازی اون کافیه
1️⃣ افزونه OmniSharp بروزرسانی بشه (با باز شدن VSCode خودش چک میکنه اگه ورژن جدید داشته باشه Update میکنه - بعدشم باید یه بار باز و بسته کنین VSCode رو)
2️⃣ سپس روی یه کلاسی که سورسش رو ندارین راست کلیک کنین و گزینه "Go to Definition" رو انتخاب کنین (بار اول یه سوال میپرسه که گزینه Yes رو انتخاب کنین)
3️⃣ و تامام، لذت ببرین
🔻در صورتی که براتون کار نکرد از بروز بودن OmniSharp و VSCode مطمئن بشین و شایدم لازم باشه این قابلیت رو دستی فعال کنین
____________________
@DotNetZoom
Forwarded from Software Philosophy
یکی از ابزارهای قدرتمند برای Monitor کردن پروژههای .NET ، .NET Core و ASP.NET Core استفاده از Application Insight است. این کتابخانه تمام اطلاعات مورد نیاز برای مانیتور کردن یک برنامه را در اختیار شما قرار میدهد. مثلا وقتی که Api مربوط به پرداخت Call میشود، درApplication Insights علاوه بر اینکه اطلاعات خود Request ثبت میشود اطلاعات عملیات وابسته به این درخواست هم ثبت میشود مثل Query های که به دیتایس زده شده یا Request هایی که به درگاه پرداخت فرستاده شدهاند.
هرچند مشکلی که وجود دارد این است که اطلاعات در Azure ذخیره میشوند.
برای حل این مشکل و «استفاده از Appliction Insights بدون داشتن اکانت Azure»، میتوانید از کتابخانه Microsoft Diagnostics EventFlow استفاده کنید.
این کتابخانه تمام اطلاعات خروجی Application Insight (هم اطلاعات مستقیم و هم اطلاعات وابسه به یک درخواست) را جمع آوری میکند و در خروجیهای مختلفی مثل Elasticsearch ذخیره میکند.
این کتابخانه همچین میتواند اطلاعات را از Serilog, Log4net, Nlog و... خوانده و در Elasticsearch, Splunk, Sql Server ذخیره کند یا به صورت Json به یک URL که شما مشخص میکنید بفرستد.
https://github.com/Azure/diagnostics-eventflow
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#افشین_علیزاده (http://ow.ly/l7cA30m3OQ9)
کانال تلگرام:
@SoftwarePhilosophy
___
هرچند مشکلی که وجود دارد این است که اطلاعات در Azure ذخیره میشوند.
برای حل این مشکل و «استفاده از Appliction Insights بدون داشتن اکانت Azure»، میتوانید از کتابخانه Microsoft Diagnostics EventFlow استفاده کنید.
این کتابخانه تمام اطلاعات خروجی Application Insight (هم اطلاعات مستقیم و هم اطلاعات وابسه به یک درخواست) را جمع آوری میکند و در خروجیهای مختلفی مثل Elasticsearch ذخیره میکند.
این کتابخانه همچین میتواند اطلاعات را از Serilog, Log4net, Nlog و... خوانده و در Elasticsearch, Splunk, Sql Server ذخیره کند یا به صورت Json به یک URL که شما مشخص میکنید بفرستد.
https://github.com/Azure/diagnostics-eventflow
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#افشین_علیزاده (http://ow.ly/l7cA30m3OQ9)
کانال تلگرام:
@SoftwarePhilosophy
___
GitHub
GitHub - Azure/diagnostics-eventflow: Microsoft Diagnostics EventFlow
Microsoft Diagnostics EventFlow. Contribute to Azure/diagnostics-eventflow development by creating an account on GitHub.
❇️ معرفی برنامه Fiddler Everywhere
به تازگی شرکت Telerik نسخه Cross-Platform برنامه محبوب Fiddler رو تحت عنوان Fiddler Everywhere منتشر کرده
این برنامه خیلی سبک و ساده تر هست و بعضی از امکانات نسخه اصلی رو نداره ولی امکانات اصلی و مهمش رو داره از جمله :
🔸قابلیت Traffic Inspector : امکان مشاهده و بررسی Request ها و Response ها
🔹قابلیت API Composer : امکان ارسال درخواست HTTP با مشخصات و اطلاعات سفارشی
🔸قابلیت Auto Responder : امکان پاسخ دهی خودکار به یه سری درخواست ها با شرایط مشخص (مثلا واسه وقتی خوبه که یه API گرفتین که پیاده کنین ولی هربار نمیخواین به سایت اصلی Request بفرستین؛ با این قابلیت میتونین یه پاسخ ساختگی واسه اون درخواست تعریف کنین و براحتی تست هاتون رو انجام بدین)
🔰لینک دانلود
https://www.telerik.com/download/fiddler/fiddler-everywhere-windows
توضیحات بیشتر
https://www.telerik.com/blogs/from-fiddler-classic-to-fiddler-everywhere
___________________
@DotNetZoom
به تازگی شرکت Telerik نسخه Cross-Platform برنامه محبوب Fiddler رو تحت عنوان Fiddler Everywhere منتشر کرده
این برنامه خیلی سبک و ساده تر هست و بعضی از امکانات نسخه اصلی رو نداره ولی امکانات اصلی و مهمش رو داره از جمله :
🔸قابلیت Traffic Inspector : امکان مشاهده و بررسی Request ها و Response ها
🔹قابلیت API Composer : امکان ارسال درخواست HTTP با مشخصات و اطلاعات سفارشی
🔸قابلیت Auto Responder : امکان پاسخ دهی خودکار به یه سری درخواست ها با شرایط مشخص (مثلا واسه وقتی خوبه که یه API گرفتین که پیاده کنین ولی هربار نمیخواین به سایت اصلی Request بفرستین؛ با این قابلیت میتونین یه پاسخ ساختگی واسه اون درخواست تعریف کنین و براحتی تست هاتون رو انجام بدین)
🔰لینک دانلود
https://www.telerik.com/download/fiddler/fiddler-everywhere-windows
توضیحات بیشتر
https://www.telerik.com/blogs/from-fiddler-classic-to-fiddler-everywhere
___________________
@DotNetZoom
Forwarded from کدهک
در این ویدیو یک Select با جستجوی افزایشی از طریق AJAX پیاده می کنیم که اطلاعات بیش از 4 میلیون ردیف را فیلتر میکند و سپس پرفورمنس SQL و Redis را مقایسه می کنیم.
https://codehaks.com/go/rds
https://codehaks.com/go/rds
❇️ معرفی 20 کتاب برتر برای برنامه نویسان NET.
اگه اهل کتابخوندن هستین لیست زیر بهترین و محبوبترین کتابهای برنامه نویسی مناسب برای برنامه نویسان دات نت هست
🔰ASPNET Core
💎Pro ASP.NET Core MVC 2
💎ASP.NET Core in Action
💎Programming ASP.NET Core
💎C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development
🔰EF Core
💎Entity Framework Core in Action
🔰C# and .NET
💎C# in Depth 4th Edition
💎C# 7.0 in a Nutshell
💎CLR via C#, 4th Edition
🔰Testing
💎The Art of Unit Testing: with examples in C# 2nd Edition
💎Unit Testing Principles, Practices, and Patterns
🔰Software Architecture and Principles
💎Microsoft .NET - Architecting Applications for the Enterprise
💎Software Architecture with C# 8 and .NET Core 3
💎Dependency Injection Principles, Practices, and Patterns
—————
💎Patterns of Enterprise Application Architecture
💎Refactoring: Improving the Design of Existing Code
💎Head First Design Patterns
💎Soft Skills: The software developer's life manual
💎The Clean Coder
💎Clean Code
💎Clean Architecture
🔰من لینک آمازون کتاب ها رو قرار دادم و بهتره که حامی قانون کپی رایت باشیم هرچند اونایی که میخوان رایگان دانلود کنن به هرحال راهشو بلدن
____________________
@DotNetZoom
اگه اهل کتابخوندن هستین لیست زیر بهترین و محبوبترین کتابهای برنامه نویسی مناسب برای برنامه نویسان دات نت هست
🔰ASPNET Core
💎Pro ASP.NET Core MVC 2
💎ASP.NET Core in Action
💎Programming ASP.NET Core
💎C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development
🔰EF Core
💎Entity Framework Core in Action
🔰C# and .NET
💎C# in Depth 4th Edition
💎C# 7.0 in a Nutshell
💎CLR via C#, 4th Edition
🔰Testing
💎The Art of Unit Testing: with examples in C# 2nd Edition
💎Unit Testing Principles, Practices, and Patterns
🔰Software Architecture and Principles
💎Microsoft .NET - Architecting Applications for the Enterprise
💎Software Architecture with C# 8 and .NET Core 3
💎Dependency Injection Principles, Practices, and Patterns
—————
💎Patterns of Enterprise Application Architecture
💎Refactoring: Improving the Design of Existing Code
💎Head First Design Patterns
💎Soft Skills: The software developer's life manual
💎The Clean Coder
💎Clean Code
💎Clean Architecture
🔰من لینک آمازون کتاب ها رو قرار دادم و بهتره که حامی قانون کپی رایت باشیم هرچند اونایی که میخوان رایگان دانلود کنن به هرحال راهشو بلدن
____________________
@DotNetZoom
✅ چرا نوع های double و float برای محاسبات اعشاری با دقت بالا مناسب نیست
نوع های float و double بر مبنای عدد 2 عمل میکنن و برای محاسبات اعدادی که بر منبای عدد 10 نیاز داریم گزینه مناسبی نیستند
این رفتار نه تنها در سی شارپ بلکه در تمام زبان های برنامه نویسی وجود داره
اطلاعات بیشتر:
▪️Why not use Double or Float to represent currency?
▪️Float or double?
🔰 نتیجه :
🔸از نوع های double و float (معادل کلاس Single) برای محاسبه های اعشاری با دقت بالا استفاده نکنید
🔹همیشه به جای double و float از نوع decimal استفاده کنید مگر خلافش ثابت بشه!
__________________
@DotNetZoom
نوع های float و double بر مبنای عدد 2 عمل میکنن و برای محاسبات اعدادی که بر منبای عدد 10 نیاز داریم گزینه مناسبی نیستند
این رفتار نه تنها در سی شارپ بلکه در تمام زبان های برنامه نویسی وجود داره
اطلاعات بیشتر:
▪️Why not use Double or Float to represent currency?
▪️Float or double?
🔰 نتیجه :
🔸از نوع های double و float (معادل کلاس Single) برای محاسبه های اعشاری با دقت بالا استفاده نکنید
🔹همیشه به جای double و float از نوع decimal استفاده کنید مگر خلافش ثابت بشه!
__________________
@DotNetZoom
✅ آموزش معماری تمیز (Clean Architecture) + سورس کد بهترین پیاده سازی ها
اکثر مقالاتی که این معماری رو به صورت کلی و انتزاعی توضیح دادند ممکنه برنامه نویس رو به خوبی شیرفهم نکنه مخصوصا وقتی با مفاهیمی آشنا میشن که شاید تا قبل نمیشناختین یا معادلی براش توی ذهنتون ندارین مثل Interactor و Interface Adapters و Drivers!
این موضوع حتی برای منبع اصلی Clean Artchiture یعنی مقاله شخص Robert C Martin (معروف به Uncle Bob) هم صدق میکنه هرچند که خیلی جامع و کامل توضیح داده ولی برای یه برنامه نویس سی شارپی ممکنه مبهم به نظر بیاد، مادامی که پیاده سازی عملی ازش رو نبینه.
همچنین خیلی از مقاله ها با دخیل کردن بیش از حد مورادی چون DDD و CQRS و ...، فهم اصل موضوع Clean Architecture رو برای مخاطب سخت میکنن.
🔸مقاله زیر خیلی ساده و روان و البته مختصر و مفید به توضیح معماری تمیز پرداخته و در آخر هم رفرنس های خوبی رو معرفی میکنه که پیشنهاد میکنم حتما ببینیدشون
https://www.dandoescode.com/blog/clean-architecture-an-introduction/
🔹و اما بریم سر اصل مطلب یعنی پیاده سازی؛ پیاده سازی های مختلفی از این معماری وجود داره توی اینترنت و گیتهاب که هرکس معمولا بنا به فهم و سلیقه خودش اومده یه پروژه ای ساخته که بعضا اشتباه هم هستند و صرفا اسم Clean Architecture رو به دوش میکشند
1️⃣ بهترین پیاده سازی هایی که من دیدم به ترتیب اینا هستند
https://github.com/jasontaylordev/CleanArchitecture
🔰آموزش ویدئویی این مورد توی یوتیوب هم هست که برای درک بهتر خیلی بهتون کمک میکنه
https://www.youtube.com/watch?v=5OtUm1BLmG0
https://jasontaylor.dev/clean-architecture-getting-started/
2️⃣ پیاده سازی بعدی توسط ardalis تهیه شده و ویدئو اش هم توی یوتیوب قرار داده شده
https://github.com/ardalis/CleanArchitecture
3️⃣ پیاده سازی بعدی هم خوبه و توضیحات بیشترش توی wiki خود ریپازیتوری و پست های وبلاگ نویسنده (1 و 2 و 3) + پلی لیست ویدئو هاش تو یوتیوب خود نویسنده قرار داده شده
https://github.com/ivanpaulovich/clean-architecture-manga
4️⃣ و در اخر پیاده سازی زیر که به همراه پست بلاگ نویسنده قرار داده شده
https://github.com/mmacneil/CleanAspNetCoreWebApi
________________
@DotNetZoom
اکثر مقالاتی که این معماری رو به صورت کلی و انتزاعی توضیح دادند ممکنه برنامه نویس رو به خوبی شیرفهم نکنه مخصوصا وقتی با مفاهیمی آشنا میشن که شاید تا قبل نمیشناختین یا معادلی براش توی ذهنتون ندارین مثل Interactor و Interface Adapters و Drivers!
این موضوع حتی برای منبع اصلی Clean Artchiture یعنی مقاله شخص Robert C Martin (معروف به Uncle Bob) هم صدق میکنه هرچند که خیلی جامع و کامل توضیح داده ولی برای یه برنامه نویس سی شارپی ممکنه مبهم به نظر بیاد، مادامی که پیاده سازی عملی ازش رو نبینه.
همچنین خیلی از مقاله ها با دخیل کردن بیش از حد مورادی چون DDD و CQRS و ...، فهم اصل موضوع Clean Architecture رو برای مخاطب سخت میکنن.
🔸مقاله زیر خیلی ساده و روان و البته مختصر و مفید به توضیح معماری تمیز پرداخته و در آخر هم رفرنس های خوبی رو معرفی میکنه که پیشنهاد میکنم حتما ببینیدشون
https://www.dandoescode.com/blog/clean-architecture-an-introduction/
🔹و اما بریم سر اصل مطلب یعنی پیاده سازی؛ پیاده سازی های مختلفی از این معماری وجود داره توی اینترنت و گیتهاب که هرکس معمولا بنا به فهم و سلیقه خودش اومده یه پروژه ای ساخته که بعضا اشتباه هم هستند و صرفا اسم Clean Architecture رو به دوش میکشند
1️⃣ بهترین پیاده سازی هایی که من دیدم به ترتیب اینا هستند
https://github.com/jasontaylordev/CleanArchitecture
🔰آموزش ویدئویی این مورد توی یوتیوب هم هست که برای درک بهتر خیلی بهتون کمک میکنه
https://www.youtube.com/watch?v=5OtUm1BLmG0
https://jasontaylor.dev/clean-architecture-getting-started/
2️⃣ پیاده سازی بعدی توسط ardalis تهیه شده و ویدئو اش هم توی یوتیوب قرار داده شده
https://github.com/ardalis/CleanArchitecture
3️⃣ پیاده سازی بعدی هم خوبه و توضیحات بیشترش توی wiki خود ریپازیتوری و پست های وبلاگ نویسنده (1 و 2 و 3) + پلی لیست ویدئو هاش تو یوتیوب خود نویسنده قرار داده شده
https://github.com/ivanpaulovich/clean-architecture-manga
4️⃣ و در اخر پیاده سازی زیر که به همراه پست بلاگ نویسنده قرار داده شده
https://github.com/mmacneil/CleanAspNetCoreWebApi
________________
@DotNetZoom
Forwarded from کدهک
اضافه شدن GUI لینوکس به ویندوز
ابزار Windows Subsystem For Linux به کاربران ویندوز امکان میدهد برنامه های لینوکس را در ویندوز اجرا کنند اما این موضوع فقط محدود به اپلیکیشن هایی بود که رابط کاربری نداشتند و فقط در خط فرمان کار می کردند.
مایکروسافت در بیلد 2020 اعلام کرد به زودی پشتیبانی از رابط کاربری لینوکس هم به WSL اضافه میشود تا امکان استفاده از اپ هایی که رابط کاربری دارند ممکن شود. تصویر نمونه ی اجرای برنامه مدیریت فایل GNOME را در محیط ویندوز 10 نشان میدهد.
همچنین Docker Desktop در نسخه ی بعدی از WSL2 استفاده خواهد کرد که نیاز به Hyper-V را از بین میبرد و سرعت اجرای آن را افزایش میدهد. با این تغییر امکان اجرای Docker در نسخه ی Windows Home هم ممکن میشود.
نسخه ی WSL2 از آپدیت ماه جاری در ویندوز قرار میگیرد.
ابزار Windows Subsystem For Linux به کاربران ویندوز امکان میدهد برنامه های لینوکس را در ویندوز اجرا کنند اما این موضوع فقط محدود به اپلیکیشن هایی بود که رابط کاربری نداشتند و فقط در خط فرمان کار می کردند.
مایکروسافت در بیلد 2020 اعلام کرد به زودی پشتیبانی از رابط کاربری لینوکس هم به WSL اضافه میشود تا امکان استفاده از اپ هایی که رابط کاربری دارند ممکن شود. تصویر نمونه ی اجرای برنامه مدیریت فایل GNOME را در محیط ویندوز 10 نشان میدهد.
همچنین Docker Desktop در نسخه ی بعدی از WSL2 استفاده خواهد کرد که نیاز به Hyper-V را از بین میبرد و سرعت اجرای آن را افزایش میدهد. با این تغییر امکان اجرای Docker در نسخه ی Windows Home هم ممکن میشود.
نسخه ی WSL2 از آپدیت ماه جاری در ویندوز قرار میگیرد.
Forwarded from کدهک
محیط طراحی WinForm برای NET Core
در آپدیت 16.07 که امروز منتشر شد امکان استفاده از محیط طراحی فرم های ویندوز به دات نت Core اضافه شده است.
برای استفاده از این قابلیت باید ابتدا Visual Studio را به آخرین نسخه آپدیت کنید سپس در تنظیمات Tools > Options > Environment > Preview
گزینه ی Use the preview Windows Forms designer for .NET Core apps را تیک بزنید.
در آپدیت 16.07 که امروز منتشر شد امکان استفاده از محیط طراحی فرم های ویندوز به دات نت Core اضافه شده است.
برای استفاده از این قابلیت باید ابتدا Visual Studio را به آخرین نسخه آپدیت کنید سپس در تنظیمات Tools > Options > Environment > Preview
گزینه ی Use the preview Windows Forms designer for .NET Core apps را تیک بزنید.
Forwarded from کدهک
اولین نسخه ی Windows Terminal منتشر شد
ابزار Windows Terminal از سال گذشته در وضعیت پیش نمایش بود اما امروز نسخه ی 1.0 آن رسما منتشر شد.
به عنوان یک دولوپر همیشه نیاز به اجرای دستورات در خط فرمان دارید و در گذشته ابزاری مانند CMD و Powershell این امکان را فراهم می کردند. اما Windows Terminal تلاش میکند تمامی نیازمندی های شما را در یک محل جمع کند.
در Windows Terminal می توانید چند تب باز کنید و همزمان روی Ubuntu یا Powershell کار کنید یا یک تب را با استفاده از قابلیت Pane به چند بخش تقسیم کنید.
ویندوز ترمینال برای نمایش متن از GPU استفاده میکند و اینکار سرعت نمایش اطلاعات را بسیار افزایش میدهد همچنین امکان نمایش تصویر و آیکون در محیط ترمینال را فراهم میکند.
ابزار Windows Terminal از سال گذشته در وضعیت پیش نمایش بود اما امروز نسخه ی 1.0 آن رسما منتشر شد.
به عنوان یک دولوپر همیشه نیاز به اجرای دستورات در خط فرمان دارید و در گذشته ابزاری مانند CMD و Powershell این امکان را فراهم می کردند. اما Windows Terminal تلاش میکند تمامی نیازمندی های شما را در یک محل جمع کند.
در Windows Terminal می توانید چند تب باز کنید و همزمان روی Ubuntu یا Powershell کار کنید یا یک تب را با استفاده از قابلیت Pane به چند بخش تقسیم کنید.
ویندوز ترمینال برای نمایش متن از GPU استفاده میکند و اینکار سرعت نمایش اطلاعات را بسیار افزایش میدهد همچنین امکان نمایش تصویر و آیکون در محیط ترمینال را فراهم میکند.
خب رویداد Microsoft Build 2020 هم برگذار شد و شاهد کلی خبر جذاب و هیجان انگیز بودیم
جو اینجا خیلی خودمونی نیس و گرنه میگفتم فی الواقع پشمی بهم نمونده! اینقدر که فیچر جدید اومد بیرون و چیز جدید release شد
متاسفانه این چند روز خیلی درگیر بودم و فرصت نکردم براش مطلب تهیه کنم. از طرفی کانال دوست و برادر (کدهک) زحمتشو کشیده که باهاتون به اشتراک گذاشتمش
حالا اگه فرصت شد بعدا جزئیات بیشتری از این خبرای جذاب خواهم نوشت
نظراتتون رو هم زیر پست حتما میخونم. 👇
جو اینجا خیلی خودمونی نیس و گرنه میگفتم فی الواقع پشمی بهم نمونده! اینقدر که فیچر جدید اومد بیرون و چیز جدید release شد
متاسفانه این چند روز خیلی درگیر بودم و فرصت نکردم براش مطلب تهیه کنم. از طرفی کانال دوست و برادر (کدهک) زحمتشو کشیده که باهاتون به اشتراک گذاشتمش
حالا اگه فرصت شد بعدا جزئیات بیشتری از این خبرای جذاب خواهم نوشت
نظراتتون رو هم زیر پست حتما میخونم. 👇
Forwarded from کدهک
دور 19 تک امپاور
هفته آینده نتایج دور 19م بنچمارک تک امپاور رسما اعلام میشود. اما تویتر Techempower پیش نمایشی از نتایج بدست آمده را امروز منتشر کرد که نشان میدهد ASP NET Core در رتبه ی 6 سریعرین فریم ورکهای وب قرار گرفته است.
دسته بندی جدید Composite شامل وزن گیری و بررسی همه ی تست ها می شود که هدفش مقایسه همه ی عواملی است که میتواند در سریعتر اجرا شدن یک اپلیکیشن وب تاثیر گذار باشد.
فریم ورک ASP NET Core در حالی در ردیف ششم قرار گرفته که در مقایسه با ردیف های بالاتر امکانات بسیار بیشتری دارد و کد نویسی با آن به مراتب از زبانهایی مثل RUST یا C و ++C ساده تر است.
همچنین در تست Plaintext آمار خیره کننده 7 میلیون RPS بدست آمده است که برای زبانی مانند سی شارپ که دارای GC است یک دست آورد بزرگ محسوب میشود.
هفته آینده نتایج دور 19م بنچمارک تک امپاور رسما اعلام میشود. اما تویتر Techempower پیش نمایشی از نتایج بدست آمده را امروز منتشر کرد که نشان میدهد ASP NET Core در رتبه ی 6 سریعرین فریم ورکهای وب قرار گرفته است.
دسته بندی جدید Composite شامل وزن گیری و بررسی همه ی تست ها می شود که هدفش مقایسه همه ی عواملی است که میتواند در سریعتر اجرا شدن یک اپلیکیشن وب تاثیر گذار باشد.
فریم ورک ASP NET Core در حالی در ردیف ششم قرار گرفته که در مقایسه با ردیف های بالاتر امکانات بسیار بیشتری دارد و کد نویسی با آن به مراتب از زبانهایی مثل RUST یا C و ++C ساده تر است.
همچنین در تست Plaintext آمار خیره کننده 7 میلیون RPS بدست آمده است که برای زبانی مانند سی شارپ که دارای GC است یک دست آورد بزرگ محسوب میشود.
Forwarded from کدهک
تخفیف 50 درصدی ویژه عید فطر
امروز می توانید برای مدت محدود دوره جامع آموزش ASP NET Core کدهک را با تخفیف 50 درصدی تهیه کنید.
این دوره شامل بیش از 30 ساعت آموزش تخصصی از مقدماتی تا پیشرفته است و به مباحث مختلف توسعه وب با ASP NET Core می پردازد.
علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.
کد تخفیف : fetr
http://codehaks.com/go/sale
امروز می توانید برای مدت محدود دوره جامع آموزش ASP NET Core کدهک را با تخفیف 50 درصدی تهیه کنید.
این دوره شامل بیش از 30 ساعت آموزش تخصصی از مقدماتی تا پیشرفته است و به مباحث مختلف توسعه وب با ASP NET Core می پردازد.
علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.
کد تخفیف : fetr
http://codehaks.com/go/sale
✅ استفاده از قابلیت CI/CD گیتهاب به نام Github Actions
برای Build و توزیع خودکار پروژه های NET Core.
🔸سایت گیتهاب بخشی به نام GitHub Actions دارد که امکانات CI/CD را به صورت رایگان برای شما فراهم میکند. توسط این بخش می توانید پروژه خود را (مثلا بعد از هر Push یا Pull Request) به صورت خودکار Build کرده، Test های آن را اجرا کنید و از آن Publish بگیرید (البته امکانات بسیار زیادی دارد و این فقط یک مثال بود)
https://www.dotnettips.info/post/3103
🔻یادتون باشه حتما نظرات پایین صفحه رو هم بخونین که نکات مهمی توش هست
🔹مثلا کتابخانه EasyCompressor علاوه بر Build و Test خودکار، Nuget Package های خود را به ازای هر Commit ایی که Tag عددی با فرمت مشخص (مثلا 1.2.1) به سایت nuget.org آپلود میکند
https://github.com/mjebrahimi/EasyCompressor
🔻 فایل yaml. آن را میتوانید در این مسیر مشاهده کنید
________________
@DotNetZoom
برای Build و توزیع خودکار پروژه های NET Core.
🔸سایت گیتهاب بخشی به نام GitHub Actions دارد که امکانات CI/CD را به صورت رایگان برای شما فراهم میکند. توسط این بخش می توانید پروژه خود را (مثلا بعد از هر Push یا Pull Request) به صورت خودکار Build کرده، Test های آن را اجرا کنید و از آن Publish بگیرید (البته امکانات بسیار زیادی دارد و این فقط یک مثال بود)
https://www.dotnettips.info/post/3103
🔻یادتون باشه حتما نظرات پایین صفحه رو هم بخونین که نکات مهمی توش هست
🔹مثلا کتابخانه EasyCompressor علاوه بر Build و Test خودکار، Nuget Package های خود را به ازای هر Commit ایی که Tag عددی با فرمت مشخص (مثلا 1.2.1) به سایت nuget.org آپلود میکند
https://github.com/mjebrahimi/EasyCompressor
🔻 فایل yaml. آن را میتوانید در این مسیر مشاهده کنید
________________
@DotNetZoom
❇️ نتایج نظرسنجی StackOverflow 2020 منتشر شد
🔰 طی این نظرسنجی که بیش از 65 هزار برنامه نویس در اون شرکت کردند
فریمورک ASP.NET Core با 70.7 درصد، جایگاه اول رو در محبوب ترین فریمورک های وب کسب کرده.
https://insights.stackoverflow.com/survey/2020
____________________
@DotNetZoom
🔰 طی این نظرسنجی که بیش از 65 هزار برنامه نویس در اون شرکت کردند
فریمورک ASP.NET Core با 70.7 درصد، جایگاه اول رو در محبوب ترین فریمورک های وب کسب کرده.
https://insights.stackoverflow.com/survey/2020
____________________
@DotNetZoom
✅ بلاخره پس از مدت ها انتظار، Round 19 سایت Techempower منتشر شد
🥇در این بنچمارک ASP.NET Core جایگاه اول و سریع ترین فریم ورک وب را در خصوص تست Plain Text کسب کرد. 🎉⚡️🔥
تست Plain Text صرفا یک پاسخ Hello World را در ازای درخواست بر میگرونه و عملا خیلی قابل استناد نیست چون بدیهیه که یه پروژه واقعی، فقط Hello World چاپ نمیکنه!
ولی همین نتیجه هم قدرت ASP.NET Core رو نسبت به سایر رقبا به رخ میکشه😎✌️
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext
__________________
@DotNetZoom
🥇در این بنچمارک ASP.NET Core جایگاه اول و سریع ترین فریم ورک وب را در خصوص تست Plain Text کسب کرد. 🎉⚡️🔥
تست Plain Text صرفا یک پاسخ Hello World را در ازای درخواست بر میگرونه و عملا خیلی قابل استناد نیست چون بدیهیه که یه پروژه واقعی، فقط Hello World چاپ نمیکنه!
ولی همین نتیجه هم قدرت ASP.NET Core رو نسبت به سایر رقبا به رخ میکشه😎✌️
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext
__________________
@DotNetZoom