Forwarded from کدهک
طبق نظرسنجی Stack overflow در ۲۰۲۱ برای پنجمین سال متوالی Redis محبوب ترین دیتابیس انتخاب شده است.
همچنین امسال PostgreSql از MongoDb عبور کرد و در جایگاه دوم قرار گرفت.
همچنین امسال PostgreSql از MongoDb عبور کرد و در جایگاه دوم قرار گرفت.
Forwarded from DotNetZoom (Ali)
✅ 10 افزونه برتر که یک Github-باز باید اونا رو داشته باشه
1️⃣ Enhanced GitHub
کاربردی ترین و پر فیچر ترین افزونه گیتهاب که کلی قابلیت و بهبود رو به صفحات گیتهاب شما اضافه میکنه و کارکردن با اون رو خیلی راحت تر (این یکی جزء باید های منه)
2️⃣ GitHub Hovercard
یه افزونه باحال و فوق العاده مفید که باعث میشه وقتی موس تون رو روی لینک یه issue یا commit یا repo یا user میگیرین، یه پیش نمایش از اون به صورت hover card نمایش داده بشه
3️⃣ File Icons for GitHub and GitLab
یه افزونه خیلی باحال که کنار فایل های ریپازیتوری، آیکون مخصوص بهش رو نمایش میده
4️⃣ Octotree
یه افزونه باحال و کاربردی که میاد فایل ها و فولدر های ریپازیتوری تون رو به صورت درختی (tree) نمایش میده (مثل پنجره Solution Explorer در VS)
5️⃣ GitHub Isometric Contributions
یه افزونه باحال که میاد و Contribution Graphs یا همون نمودار مشارکت های شخص رو به صورت 3 بعدی و ملموس تر نشون میده
6️⃣ Sourcegraph
یه افزونه کاربردی که امکان Go to definition و Find references رو به کد های ریپازیتوری اضافه میکنه و توسطش میتونین ببینین کجا این کلاس یا متد تعریف شده و کجا های دیگه ازش استفاده شده
7️⃣ GitHub Writer
این افزونه به شما این امکان رو میده که موقع نوشتن متن Issue و Pull Request و Comment بتونین از امکانات یک rich-text editor (مانند CKEditor) استفاده کنین
8️⃣ Git History Browser Extension
یه افزونه باحال که به شما این امکان رو میده بتونین تاریخچه تغییرات و Commit های یه فایل رو به شکلی زیبا تر و ملموس تر ببینین.
9️⃣ GitZip for github
بعضی وقتا لازم میشه صرفا یه سری فایل یا پوشه خاص رو از یه مخزن دانلود (نه کل مخزن رو که ممکنه خیلی حجیم باشه). این افزونه کاربردی به شما اجازه میده که Folder یا File هایی از یک ریپازیتوری گیتهاب رو به دلخواه در قالب یک فایل Zip دانلود کنین
🔟 Refined GitHub
اینم مثل همون اولی میمونه و کلی قابلیت و بهبود باحال و کاربردی به صفحات ریپازیتوری اضافه میکنه و کار کردن با اونها رو خیلی راه دست تر
🔸به شخصه این لیست جز باید های منه و خیلی سال هست که ازشون استفاده میکنم و بسیار راضی ام. واسه دیدن اطلاعات بیشتر در مورد قابلیت هاشون حتما لینک هاشون رو ببینید. در ضمن این افزونه ها برای روی مروگر Chrome هستند و قاعدتا روی Edge هم قابل نصب هستند
__________________
@DotNetZoom
1️⃣ Enhanced GitHub
کاربردی ترین و پر فیچر ترین افزونه گیتهاب که کلی قابلیت و بهبود رو به صفحات گیتهاب شما اضافه میکنه و کارکردن با اون رو خیلی راحت تر (این یکی جزء باید های منه)
2️⃣ GitHub Hovercard
یه افزونه باحال و فوق العاده مفید که باعث میشه وقتی موس تون رو روی لینک یه issue یا commit یا repo یا user میگیرین، یه پیش نمایش از اون به صورت hover card نمایش داده بشه
3️⃣ File Icons for GitHub and GitLab
یه افزونه خیلی باحال که کنار فایل های ریپازیتوری، آیکون مخصوص بهش رو نمایش میده
4️⃣ Octotree
یه افزونه باحال و کاربردی که میاد فایل ها و فولدر های ریپازیتوری تون رو به صورت درختی (tree) نمایش میده (مثل پنجره Solution Explorer در VS)
5️⃣ GitHub Isometric Contributions
یه افزونه باحال که میاد و Contribution Graphs یا همون نمودار مشارکت های شخص رو به صورت 3 بعدی و ملموس تر نشون میده
6️⃣ Sourcegraph
یه افزونه کاربردی که امکان Go to definition و Find references رو به کد های ریپازیتوری اضافه میکنه و توسطش میتونین ببینین کجا این کلاس یا متد تعریف شده و کجا های دیگه ازش استفاده شده
7️⃣ GitHub Writer
این افزونه به شما این امکان رو میده که موقع نوشتن متن Issue و Pull Request و Comment بتونین از امکانات یک rich-text editor (مانند CKEditor) استفاده کنین
8️⃣ Git History Browser Extension
یه افزونه باحال که به شما این امکان رو میده بتونین تاریخچه تغییرات و Commit های یه فایل رو به شکلی زیبا تر و ملموس تر ببینین.
9️⃣ GitZip for github
بعضی وقتا لازم میشه صرفا یه سری فایل یا پوشه خاص رو از یه مخزن دانلود (نه کل مخزن رو که ممکنه خیلی حجیم باشه). این افزونه کاربردی به شما اجازه میده که Folder یا File هایی از یک ریپازیتوری گیتهاب رو به دلخواه در قالب یک فایل Zip دانلود کنین
🔟 Refined GitHub
اینم مثل همون اولی میمونه و کلی قابلیت و بهبود باحال و کاربردی به صفحات ریپازیتوری اضافه میکنه و کار کردن با اونها رو خیلی راه دست تر
🔸به شخصه این لیست جز باید های منه و خیلی سال هست که ازشون استفاده میکنم و بسیار راضی ام. واسه دیدن اطلاعات بیشتر در مورد قابلیت هاشون حتما لینک هاشون رو ببینید. در ضمن این افزونه ها برای روی مروگر Chrome هستند و قاعدتا روی Edge هم قابل نصب هستند
__________________
@DotNetZoom
Google
Enhanced GitHub
Display repo size, size of each file, download link and option to copy file contents
Forwarded from DotNetZoom (Ali Abdolmaleki)
❇️ دیباگ بهتر در Visual Studio با 3 ترفند
بعضی وقتا پیش میاد که خطا تو کد هاتون رخ میده ولی Exception ایی نشون داده نمیشه. یا جزئیات کاملی از علت خطا در Exception رخ داده نشون داده نمیشه و...
در اینجا میخوایم با اعمال 3 تنظیم در Visual Studio، بتونیم خطا ها رو بهتر Debug کنیم
مراحل زیر رو انجام بدید تا به هنگام وقوع Exception، اجرای کد سر همون خطی که exception اصلی رخ داده متوقف بشه و علت رو پیدا کنید و نیز جزئیات بیشتری از خطا ها براتون نمایش داده بشه
1️⃣ از پنجره Exception Settings توی VisualStudio گزینه زیر رو به صورت کامل تیک بزنید
Common Language Runtime Exceptions
این باعث میشه "هر" نوع خطایی رخ بده Exception اش رو ببینیم
2️⃣ وارد تنظیمات VS بشین و از "غیر فعال" بودن گزینه Enable Just My Code اطمینان پیدا کنید
Tools > Options > Debugging > General
این باعث میشه هر خطایی (نه صرفا در کد های شما) حتی در library های دیگه رخ بده Exception اش رو ببینیم (اطلاعات بیشتر)
3️⃣ وارد تنظیمات VS بشین و از "فعال" بودن گزینه Suppress JIT optimization اطمینان پیدا کنید
Tools > Options > Debugging > General
این باعث میشه JIT Optimization انجام نشه و جزئیات و اطلاعات بیشتری از Exception ها نمایان بشن
در نهایت کدتون رو اجرا کنید در این صورت اگر هر Exception ایی رخ بده نمایش داده میشه و بعد میتونین توسط Call Stack سلسله مراتب متد های فراخوانی کننده رو ببینید و متوجه بشید علت اصلی خطا کجاست
🔰نکته:
وقتی تنظیمات بالا رو انجام میدید بعضی وقتا ممکنه Exception هایی که در کد های داخلی خود Framework و کتابخانه های BCL دات نت رخ میده و حتی Exception های "هندل شده" هم الکی نمایش داده بشه. که میتونید اون ها رو رد کنید و در نظر نگیرید یا توی پنجره Exception Settings (ترفند اول) راست کلیک کنین و گزینه "Restore Defaults" رو بزنین
🔰توی لینک زیر میتونین تکنیک های بیشتری رو هم ببینین
7 Debugging Techniques you should know in C# .NET
____________________
@DotNetZoom
بعضی وقتا پیش میاد که خطا تو کد هاتون رخ میده ولی Exception ایی نشون داده نمیشه. یا جزئیات کاملی از علت خطا در Exception رخ داده نشون داده نمیشه و...
در اینجا میخوایم با اعمال 3 تنظیم در Visual Studio، بتونیم خطا ها رو بهتر Debug کنیم
مراحل زیر رو انجام بدید تا به هنگام وقوع Exception، اجرای کد سر همون خطی که exception اصلی رخ داده متوقف بشه و علت رو پیدا کنید و نیز جزئیات بیشتری از خطا ها براتون نمایش داده بشه
1️⃣ از پنجره Exception Settings توی VisualStudio گزینه زیر رو به صورت کامل تیک بزنید
Common Language Runtime Exceptions
این باعث میشه "هر" نوع خطایی رخ بده Exception اش رو ببینیم
2️⃣ وارد تنظیمات VS بشین و از "غیر فعال" بودن گزینه Enable Just My Code اطمینان پیدا کنید
Tools > Options > Debugging > General
این باعث میشه هر خطایی (نه صرفا در کد های شما) حتی در library های دیگه رخ بده Exception اش رو ببینیم (اطلاعات بیشتر)
3️⃣ وارد تنظیمات VS بشین و از "فعال" بودن گزینه Suppress JIT optimization اطمینان پیدا کنید
Tools > Options > Debugging > General
این باعث میشه JIT Optimization انجام نشه و جزئیات و اطلاعات بیشتری از Exception ها نمایان بشن
در نهایت کدتون رو اجرا کنید در این صورت اگر هر Exception ایی رخ بده نمایش داده میشه و بعد میتونین توسط Call Stack سلسله مراتب متد های فراخوانی کننده رو ببینید و متوجه بشید علت اصلی خطا کجاست
🔰نکته:
وقتی تنظیمات بالا رو انجام میدید بعضی وقتا ممکنه Exception هایی که در کد های داخلی خود Framework و کتابخانه های BCL دات نت رخ میده و حتی Exception های "هندل شده" هم الکی نمایش داده بشه. که میتونید اون ها رو رد کنید و در نظر نگیرید یا توی پنجره Exception Settings (ترفند اول) راست کلیک کنین و گزینه "Restore Defaults" رو بزنین
🔰توی لینک زیر میتونین تکنیک های بیشتری رو هم ببینین
7 Debugging Techniques you should know in C# .NET
____________________
@DotNetZoom
Telegram
Attach Files
Forwarded from کدهک
Forwarded from TondTech
ما در Khanoumi.com به یک Devops Engineer در تیم مون نیاز داریم
خیلی خوب میشه که تجربه کار در تیم هایی با تعداد کاربر آنلاین بالا داشته باشه و یه Team Player خوب باشه
شرح نیازمندی های ما به شکل زیر هست :
- تعامل با تیم توسعه
- تسلط بر مفاهیم لود بالانس و HA
- تجربه عملیاتی Swarm یا Kubernetes
- تسلط بر Gitlab و CI/CD
- توانایی استقرار Automation
- مهارت برنامه نویسی یا Scripting
- تسلط بر سرویس های مانیتورینگ و TSDB
- تسلط بر سرویس های Queuing
- آشنایی با مفاهیم میکرو سرویس
- آشنایی با متدولوژی چابک
- آشنایی با توزیعهای لینوکس به خصوص Ubuntu و Debian
- آشنایی با وبسرورها
- تسلط به محیط Bash و Shell Scripting
- آشنایی با مفاهیم امنیتی سرورهای لینوکسی
- تسلط بر ابزارهای Deploy مانند Gitlab-CI, Ansible, Vagrant, Jenkins و ..
- مسلط به داکر
- مسلط به کوبرنتیز
- دانش قوی در زمینه نصب CI/CD
- دانش کار با سیستم های نظارت
در صورتی که دوست دارید هم تیمی ما باشید حتما رزومه تون رو از طریق لینک زیر ارسال کنید
و یا به خود من در لینکدین یا تلگرام پیام بدین
https://lnkd.in/eH969_JU
خیلی خوب میشه که تجربه کار در تیم هایی با تعداد کاربر آنلاین بالا داشته باشه و یه Team Player خوب باشه
شرح نیازمندی های ما به شکل زیر هست :
- تعامل با تیم توسعه
- تسلط بر مفاهیم لود بالانس و HA
- تجربه عملیاتی Swarm یا Kubernetes
- تسلط بر Gitlab و CI/CD
- توانایی استقرار Automation
- مهارت برنامه نویسی یا Scripting
- تسلط بر سرویس های مانیتورینگ و TSDB
- تسلط بر سرویس های Queuing
- آشنایی با مفاهیم میکرو سرویس
- آشنایی با متدولوژی چابک
- آشنایی با توزیعهای لینوکس به خصوص Ubuntu و Debian
- آشنایی با وبسرورها
- تسلط به محیط Bash و Shell Scripting
- آشنایی با مفاهیم امنیتی سرورهای لینوکسی
- تسلط بر ابزارهای Deploy مانند Gitlab-CI, Ansible, Vagrant, Jenkins و ..
- مسلط به داکر
- مسلط به کوبرنتیز
- دانش قوی در زمینه نصب CI/CD
- دانش کار با سیستم های نظارت
در صورتی که دوست دارید هم تیمی ما باشید حتما رزومه تون رو از طریق لینک زیر ارسال کنید
و یا به خود من در لینکدین یا تلگرام پیام بدین
https://lnkd.in/eH969_JU
Forwarded from کدهک
Forwarded from کدهک
Forwarded from کدهک
Forwarded from Software Philosophy
کنفرانس NET. Conf هر سال خبرهای هیجانانگیزی داره. امسال هم NET. خبر های خوب و جذابی داره که قراره ۱۸ تا ۲۰ آبان برگزار بشه.
ما در «کانال فلسفه نرمافزار» به همراه بچههای «ملکرادار» تصمیم گرفتیم که دور هم جمع شویم و امسال این کنفرانس رو با هم ببینیم و در مورد فیچرهای جدید هم گپ و گفتی داشته باشیم.
این دورهمی به صورت Watch party و روی Microsoft Teams برگزار میشود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال میشیم با ما همراه بشید.
برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید.
من (مهران داودی) هم به همراه بچههای این کانال هم تو این دورهمی هستیم.
ما در «کانال فلسفه نرمافزار» به همراه بچههای «ملکرادار» تصمیم گرفتیم که دور هم جمع شویم و امسال این کنفرانس رو با هم ببینیم و در مورد فیچرهای جدید هم گپ و گفتی داشته باشیم.
این دورهمی به صورت Watch party و روی Microsoft Teams برگزار میشود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال میشیم با ما همراه بشید.
برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید.
من (مهران داودی) هم به همراه بچههای این کانال هم تو این دورهمی هستیم.
Forwarded from کدهک
نسخه نهایی NET 6.0 منتشر شد.
نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توسعه دهندگان می توانند تا سه سال بدون مهاجرت به نسخه بعدی همچنان آپدیت های آن را دریافت کنند.
به همراه این نسخه سی شارپ 10 و اف شارپ 6 هم منتشر شده است.
به گفته مایکروسافت این نسخه سریعترین نسخه دات نت تا به امروز است و می توانید از همین حالا شروع به استفاده از آن کنید.
با توجه به پایان پشتیبانی دات نت 5 در چند ماه آینده پروژه های دات نت 5 باید هرچه سریعتر به نسخه 6 آپدیت شوند.
میتوانید نسخه جدید را از لینک زیر دانلود کنید یا Visual Studio را به آخرین نسخه آپدیت کنید.
https://dotnet.microsoft.com/download
نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توسعه دهندگان می توانند تا سه سال بدون مهاجرت به نسخه بعدی همچنان آپدیت های آن را دریافت کنند.
به همراه این نسخه سی شارپ 10 و اف شارپ 6 هم منتشر شده است.
به گفته مایکروسافت این نسخه سریعترین نسخه دات نت تا به امروز است و می توانید از همین حالا شروع به استفاده از آن کنید.
با توجه به پایان پشتیبانی دات نت 5 در چند ماه آینده پروژه های دات نت 5 باید هرچه سریعتر به نسخه 6 آپدیت شوند.
میتوانید نسخه جدید را از لینک زیر دانلود کنید یا Visual Studio را به آخرین نسخه آپدیت کنید.
https://dotnet.microsoft.com/download
Forwarded from Software Philosophy
همه چیز در مورد NET Core 6.
دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد.
در واقع شما میتوانید با نصب ویژوال استودیو همزمان NET Core 6. را هم نصب کنید.
اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET Core 6. افتاده و آپدیت ها چه چیز هایی هستند؟
بررسی فیچر های جدیدی که با NET Core 6. ارائه شده:
1 - Looking inside ConfigurationManager in .NET 6
2 - Comparing WebApplicationBuilder to the Generic Host
3 - Exploring the code behind WebApplicationBuilder
4 - Building a middleware pipeline with WebApplication
5 - Supporting EF Core migrations with WebApplicationBuilder
6 - Supporting integration tests with WebApplicationFactory in .NET 6
7 - Analyzers for ASP.NET Core in .NET 6
8 - Improving logging performance with source generators
9 - Source generator updates: incremental generators
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد.
در واقع شما میتوانید با نصب ویژوال استودیو همزمان NET Core 6. را هم نصب کنید.
اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET Core 6. افتاده و آپدیت ها چه چیز هایی هستند؟
بررسی فیچر های جدیدی که با NET Core 6. ارائه شده:
1 - Looking inside ConfigurationManager in .NET 6
2 - Comparing WebApplicationBuilder to the Generic Host
3 - Exploring the code behind WebApplicationBuilder
4 - Building a middleware pipeline with WebApplication
5 - Supporting EF Core migrations with WebApplicationBuilder
6 - Supporting integration tests with WebApplicationFactory in .NET 6
7 - Analyzers for ASP.NET Core in .NET 6
8 - Improving logging performance with source generators
9 - Source generator updates: incremental generators
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
Microsoft
Download .NET 6.0 (Linux, macOS, and Windows) | .NET
.NET 6.0 downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of applications.
Forwarded from Software Philosophy
اضافه شدن قابلیت Temporal Table به EF Core 6
➖ مایکروسافت در سال 2016 قابلیت Temporal Table که با نام System-Versioned نیز شناخته میشود را به SQL Server اضافه کرد.
➖ این قابلیت امکان این را فراهم میکند که تغییرات مربوط به دیتاهای هر جدول را ذخیره سازی کنیم.
➖ این امکان برای مانیتورینگ و همچنین برگرداندن دادههای حذف شده مفید است ولی باید در نظر داشت که این امکان باعث بالارفتن سریع حافظه دیتابیس میشود.
➖ مایکروسافت در آخرین ورژن EF Core یعنی EF Core 6 این قابلیت را فراهم کردهاست که به واسطه EF هم بتوانیم از این قابلیت SQL استفاده کنیم.
برای این که جدول مورد نظر از این ویژگی برخوردار باشد باید توسط Fluent Api این کار را انجام دهیم:
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
➖ مایکروسافت در سال 2016 قابلیت Temporal Table که با نام System-Versioned نیز شناخته میشود را به SQL Server اضافه کرد.
➖ این قابلیت امکان این را فراهم میکند که تغییرات مربوط به دیتاهای هر جدول را ذخیره سازی کنیم.
➖ این امکان برای مانیتورینگ و همچنین برگرداندن دادههای حذف شده مفید است ولی باید در نظر داشت که این امکان باعث بالارفتن سریع حافظه دیتابیس میشود.
➖ مایکروسافت در آخرین ورژن EF Core یعنی EF Core 6 این قابلیت را فراهم کردهاست که به واسطه EF هم بتوانیم از این قابلیت SQL استفاده کنیم.
برای این که جدول مورد نظر از این ویژگی برخوردار باشد باید توسط Fluent Api این کار را انجام دهیم:
modelBuilderجهت کسب اطلاعات بیشتر در مورد این ویژگی و نحوه استفاده از آن میتوانید از این لینک استفاده کنید.
.Entity<Product>()
.ToTable("Products", b => b.IsTemporal());
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
MSSQLTips.com
Introduction to SQL Server Temporal Tables
Temporal tables is a new feature introduced with SQL Server 2016 and allow automatic history tracking of data in a table.
Forwarded from Software Philosophy
انتقال داده ها به واسطه Azure Service Bus
امروزه سرعت انتقال دادهها از اهمیت بالایی برخوردار است. برای مثال فرض کنید پروژه شما شامل ۲ اپلیکیشن مجزا از هم است که هر دوی آنها از یک دیتابیس مشترک برای دادههای خود استفاده میکنند. اپلیکیشن ۱ بر روی دادهها تغییراتی انجام میدهد و اپلیکیشن ۲ از این تغییرات استفاده میکند.
در حالت عادی اپلیکیشن ۲ برای استفاده از دادههایی که قبلا توسط اپلیکیشن ۱ لود شده بود بایستی یک بار دیگر کوئریای بر روی دیتابیس بزند و دیتاها را مجدد لود کند.
اما این روش دوباره کاری است و بهینه نیست.
یک راه حل بهتر استفاده از message broker ها است. تعریف خیلی ساده آن هم مفهوم صف است. یک صف (Queue) که خارج از اپلیکیشنهای ما قرار دارد.
برای مثال Apache Kafka٬RabbitMQ٬Google Cloud Pub/Sub و ... از جمله معروفترین message broker موجود هستند.
یکی از بهترین message broker های موجود٬ Azure Service Bus است.
این سرویس قابلیتهایی فراتر از یک صف معمولی دارد، که از جمله مهمترین آنها میتوانیم به قابلیت جلوگیری از ارسال دادههای تکراری و استفاده چندین subscriptions از یک topic را نام ببریم.
البته به صورت پیشفرض (پلن رایگان) از Topic نمیتوانیم استفاده کنیم و صرفا از همان مفهوم Queue میشود استفاده کرد.
در این ویدیو نحوه استفاده از Azure Service Bus آموزش داده شده است.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
امروزه سرعت انتقال دادهها از اهمیت بالایی برخوردار است. برای مثال فرض کنید پروژه شما شامل ۲ اپلیکیشن مجزا از هم است که هر دوی آنها از یک دیتابیس مشترک برای دادههای خود استفاده میکنند. اپلیکیشن ۱ بر روی دادهها تغییراتی انجام میدهد و اپلیکیشن ۲ از این تغییرات استفاده میکند.
در حالت عادی اپلیکیشن ۲ برای استفاده از دادههایی که قبلا توسط اپلیکیشن ۱ لود شده بود بایستی یک بار دیگر کوئریای بر روی دیتابیس بزند و دیتاها را مجدد لود کند.
اما این روش دوباره کاری است و بهینه نیست.
یک راه حل بهتر استفاده از message broker ها است. تعریف خیلی ساده آن هم مفهوم صف است. یک صف (Queue) که خارج از اپلیکیشنهای ما قرار دارد.
برای مثال Apache Kafka٬RabbitMQ٬Google Cloud Pub/Sub و ... از جمله معروفترین message broker موجود هستند.
یکی از بهترین message broker های موجود٬ Azure Service Bus است.
این سرویس قابلیتهایی فراتر از یک صف معمولی دارد، که از جمله مهمترین آنها میتوانیم به قابلیت جلوگیری از ارسال دادههای تکراری و استفاده چندین subscriptions از یک topic را نام ببریم.
البته به صورت پیشفرض (پلن رایگان) از Topic نمیتوانیم استفاده کنیم و صرفا از همان مفهوم Queue میشود استفاده کرد.
در این ویدیو نحوه استفاده از Azure Service Bus آموزش داده شده است.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
Docs
Introduction to Azure Service Bus - Azure Service Bus
This article provides a high-level overview of Azure Service Bus, a fully managed enterprise integration serverless message broker.
Forwarded from Software Philosophy
امکانات LINQ در NET 6.
✅ ۱- امکان مشخص کردن مقدار پیشفرض در OrDefault*
✅۲- متدهای جدید با مدل By*:
- MinBy
- MaxBy
- DistinctBy
- ExceptBy
- IntersectBy
- UnionBy
✅۷- جلوگیری از شمارش تایپهای غیر Enumerable:
https://raygun.com/blog/linq-net-6-improvements/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
✅ ۱- امکان مشخص کردن مقدار پیشفرض در OrDefault*
var item1 = list1.FirstOrDefault(i => i == 4, -1);➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
// -1
var item2 = list2.SingleOrDefault(i => i == "Item2", "Not found");
// Not found
✅۲- متدهای جدید با مدل By*:
- MinBy
- MaxBy
- DistinctBy
- ExceptBy
- IntersectBy
- UnionBy
List<Product> products = new()✅۳- متد کاربردی Chunk :
{
new() { Name = "Product1", Price = 100 },
new() { Name = "Product2", Price = 5 },
new() { Name = "Product3", Price = 50 },
};
Product theCheapestProduct = products.MinBy(x => x.Price);
Product theMostExpensiveProduct = products.MaxBy(x => x.Price);
Console.WriteLine(theCheapestProduct);
// Output: Product { Name = Product2, Price = 5 }
Console.WriteLine(theMostExpensiveProduct);
// Output: Product { Name = Product1, Price = 100 }
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
IEnumerable<int> numbers = Enumerable.Range(1, 505);✅۴- تابع Zip
IEnumerable<int[]> chunks = numbers.Chunk(100);
foreach (int[] chunk in chunks)
{
Console.WriteLine($"{chunk.First()}...{chunk.Last()}");
}
// Output:
// 1...100
// 101...200
// 201...300
// 301...400
// 401...500
// 501...505
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
int[] numbers = { 1, 2, 3, 4, };✅۵- پشتیبانی از Index در تابع ElementAt :
string[] months = { "Jan", "Feb", "Mar" };
string[] seasons = { "Winter", "Winter", "Spring" };
var test = numbers.Zip(months).Zip(seasons);
foreach ((int, string, string) zipped in numbers.Zip(months, seasons))
{
Console.WriteLine($"{zipped.Item1} {zipped.Item2} {zipped.Item3}");
}
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
IEnumerable<int> numbers = new int[] { 1, 2, 3, 4, 5 };✅۶- پشتیبانی از Range در تابع Take :
int last = numbers.ElementAt(^0);
Console.WriteLine(last); // 5
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
var taken1 = numbers.Take(2..4);➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
✅۷- جلوگیری از شمارش تایپهای غیر Enumerable:
numbers.TryGetNonEnumeratedCount(out int count)➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
https://raygun.com/blog/linq-net-6-improvements/
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
Raygun Blog
A look at the upcoming improvements to LINQ in .NET 6
The upcoming release of .NET 6 brings a number of really interesting features, including a suite of new LINQ capabilities.