DotNet | دات نت


Kanal geosi va tili: Eron, Forscha


تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book

🆔 @dotnetcode @hootanht

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Eron, Forscha
Statistika
Postlar filtri


Reload responses with other Copilot models on github.com - GitHub Changelog
https://github.blog/changelog/2025-04-08-reload-responses-with-other-copilot-models-on-github-com/

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻


مطمئناً! در دنیای پرشتاب امروز، یادگیری یک مهارت ارزشمند که می‌تواند درآمد شما را به طور چشمگیری افزایش دهد، یک مزیت بزرگ محسوب می‌شود. مقاله جدیدی در فوربس با عنوان "چگونه یک مهارت 100 هزار دلاری را در 90 روز در سال 2025 یاد بگیریم" منتشر شده است که دقیقاً به همین موضوع می‌پردازد. این مقاله راهنمایی است برای کسانی که به دنبال تغییر مسیر شغلی یا ارتقای مهارت‌های خود در مدت زمان کوتاه هستند و وعده می‌دهد که می‌توان در عرض تنها سه ماه، مهارتی را کسب کرد که ارزش سالانه 100 هزار دلار یا بیشتر را داشته باشد. اگر به دنبال یک تحول سریع و پربازده در زندگی حرفه‌ای خود هستید، این مقاله می‌تواند نقطه شروع بسیار خوبی برای شما باشد.

Https://www.forbes.com/sites/rachelwells/2025/03/31/how-to-learn-a-100000-skill-within-90-days-in-2025/

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻


ترند های گیت هاب اینجاست
https://github.com/trending

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻


آکادمی OpenAI (academy.openai.com) پلتفرم آموزشی جدید OpenAI برای یادگیری هوش مصنوعی، از مبتدی تا پیشرفته است.
مزایا:
* آموزش توسط متخصصان OpenAI
* محتوای متنوع و کاربردی
* ایجاد ارتباط با جامعه متخصصان
* دسترسی به آخرین دستاوردها
به طور خلاصه: آکادمی OpenAI، فرصتی عالی برای ارتقای دانش و مهارت‌های هوش مصنوعی است.

https://academy.openai.com

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻


سیستم Logging در NET.: از اشتباهات رایج تا بهترین روش‌ها

مقدمه
سلام دوستان! اینجا می‌خوایم در مورد Logging داخل برنامه‌های NET. صحبت کنیم. نکاتی که نیک چاپساس میگه رو به زبون ساده مرور می‌کنیم تا بتونید به راحتی سیستم‌های خودتون رو بهبود بدید.

اهمیت Logging
سیستم Logging به شما کمک می‌کنه تا:
- خطاها رو راحت‌تر پیدا کنید.
- رفتار برنامه رو زیر نظر داشته باشید.
- اطلاعات لازم برای رفع مشکلات رو جمع‌آوری کنید.

اما اگه درست انجام نشه، ممکنه:
- گزارش‌ها خیلی بزرگ و پیچیده بشن.
- نتونید مشکلات رو به درستی بفهمید.
- عملکرد برنامه تحت تاثیر قرار بگیره.

۸ قانون ساده Logging

قانون ۱: پیام یعنی الگوی پیام
به جای یه رشته ساده، پیام باید الگو باشه. اینجوری پیام‌ها مرتب‌تر و قابل فهم‌تر می‌شن.

قانون ۲: از درون‌یابی یا الحاق رشته دوری کن
این روش‌ها می‌تونن باعث کاهش سرعت برنامه بشن و اطلاعات مفید رو از بین ببرن.

قانون ۳: Logging ساختاریافته رو انتخاب کن
با استفاده از الگوهای پیام با پارامترهای مشخص:
- سرعت و کارایی بهتر می‌گیری.
- داده‌ها به صورت ساختاریافته ثبت می‌شن.
- خوانایی گزارش‌ها افزایش پیدا می‌کنه.

قانون ۴: از جعبه‌سازی غیرضروری دوری کن
قبل از اینکه هر مقداری رو ارسال کنی، ببین سطح گزارش فعاله یا نه تا از مشکلات عملکردی جلو گیری کنی.

قانون ۵: از Source Generator استفاده کن
این ابزار توی NET. بهت کمک می‌کنه تا:
- کد بهینه تولید بشه.
- از نوشتن کد اضافی جلوگیری بشه.
- گزارش‌های یکنواخت و ساختاریافته داشته باشی.

قانون ۶: پیچیدگی‌های غیرضروری رو کنار بگذار
همیشه سعی کن راه‌حل‌های ساده و قابل فهم انتخاب کنی تا همه راحت کار کنن.

قانون ۷: هشدار رو به عنوان سطح پیش‌فرض انتخاب کن
این کار باعث می‌شه:
- حجم گزارش‌ها کمتر بشه.
- تمرکز روی موارد مهم حفظ بشه.
(البته برای موارد خاص می‌تونی گزارش‌های اطلاعاتی هم فعال کنی.)

قانون ۸: فقط اطلاعات ضروری رو ثبت کن
تنها اون اطلاعاتی رو ثبت کن که واقعاً برای فهم داستان برنامه نیاز داری. اینجوری گزارش‌ها مرتب و مفید می‌مونن.

نتیجه‌گیری
سیستم Logging درست کلید موفقیت توی برنامه‌نویسه. با رعایت این ۸ قانون ساده، می‌تونی گزارش‌هایی داشته باشی که هم کارآمد باشن و هم بهت کمک کنن داستان برنامه‌ات رو بهتر بفهمی. فقط اطلاعات ضروری رو ثبت کن تا همه چیز مرتب و بهینه بمونه.


منابع
- ویدیوی اصلی
- مستندات NET. برای Logging

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻

401 0 21 15 6

Code With HSN dan repost
یکی از بهترین معماری های CA که DDD هم پیاده کرده درون خودش میتونید سورسش رو بخونید و ایده بگیرین ازش:
https://github.com/jasontaylordev/CleanArchitecture/

ضمنا برای عزیزان فریلنسر هم مناسبه چون فرانت هم داره با React


TondTech Team dan repost
برای یکی از چند تا شرکت بزرگ اکوسیستم، دوستانم در حال تیم سازی هستند. اگر در حوزه دات نت مید (d3 به بالا) تا تک لید هستید و دوست دارید این فرصت رو بررسی کنید، رزومه تون رو برام بفرستین

برای سنجش خودتون نگاهی به این فریم ورک بندازید:
https://github.com/jorgef/engineeringladders
@Merkousha


Be a .NET Hero dan repost
سلام دوستان

ما برای یک استارت آپ در حوزه فین تک در حال جذب نیروی Backend در 2 سطح Senior و Mid هستیم.
اگر دوست داشتید می تونید برام رزومه بفرستید که من معرفیتون کنم.

دارن کارشون رو from scratch بالا میارن.

1. Senior .NET Developer
2. .NET Developer

🪖 امکان ریموت ندارند

@thisisnabi


در طراحی API، صفحه‌بندی (Pagination) برای مدیریت داده‌های بزرگ و بهبود عملکرد بسیار مهم است. در اینجا شش تکنیک رایج برای صفحه‌بندی در API ها آورده شده است:


---

1. صفحه‌بندی بر اساس آفسِت (Offset-based Pagination)

در این روش از پارامترهای آفست (offset) و حد (limit) برای تعیین نقطه شروع و تعداد رکوردهایی که باید بازگردانده شوند، استفاده می‌شود.

مثال:

GET /orders?offset=0&limit=3

مزایا:

ساده برای پیاده‌سازی و فهم.


معایب:

برای آفست‌های بزرگ، ممکن است عملکرد کاهش یابد، زیرا باید رکوردهای زیادی را جستجو کرده و از آن‌ها عبور کنید.



---

2. صفحه‌بندی بر اساس کَرسور (Cursor-based Pagination)

در این روش از یک کرسور (یک شناسه منحصر به فرد) برای مشخص کردن موقعیت در دیتاست استفاده می‌شود. این کرسور معمولاً به صورت یک رشته رمزگذاری شده است که به یک رکورد خاص اشاره می‌کند.

مثال:

GET /orders?cursor=xxx

مزایا:

برای دیتاست‌های بزرگ کارآمدتر است، زیرا نیازی به جستجو و عبور از رکوردها نیست.


معایب:

پیچیده‌تر در پیاده‌سازی و درک.



---

3. صفحه‌بندی بر اساس صفحه (Page-based Pagination)

در این روش، شماره صفحه و اندازه هر صفحه مشخص می‌شود.

مثال:

GET /items?page=2&size=3

مزایا:

پیاده‌سازی و استفاده آسان است.


معایب:

مشابه صفحه‌بندی آفسِت، برای شماره صفحه‌های بزرگ ممکن است مشکلات عملکردی داشته باشد.



---

4. صفحه‌بندی بر اساس کلید (Keyset-based Pagination)

در این روش از یک کلید (معمولاً کلید اصلی یا یک ستون ایندکس‌شده دیگر) برای فیلتر کردن دیتاست استفاده می‌شود.

مثال:

GET /items?after_id=102&limit=3

مزایا:

برای دیتاست‌های بزرگ کارآمد است و مشکلات عملکردی آفسِت را برطرف می‌کند.


معایب:

نیاز به یک کلید منحصر به فرد و ایندکس‌شده دارد و پیاده‌سازی پیچیده‌تر است.



---

5. صفحه‌بندی بر اساس زمان (Time-based Pagination)

در این روش از تاریخ‌ و زمان برای صفحه‌بندی رکوردها استفاده می‌شود.

مثال:

GET /items?start_time=xxx&end_time=yyy

مزایا:

برای دیتاست‌هایی که بر اساس زمان مرتب شده‌اند مفید است. این روش از اضافه شدن رکوردهای جدید جلوگیری می‌کند.


معایب:

نیاز به یک تاریخ‌/زمان قابل اعتماد و ثابت دارد.



---

6. صفحه‌بندی ترکیبی (Hybrid Pagination)

در این روش از ترکیب چند تکنیک صفحه‌بندی برای بهره‌برداری از مزایای آن‌ها استفاده می‌شود.

مثال:

GET /items?cursor=abc&start_time=xxx&end_time=yyy

مزایا:

می‌تواند بهترین عملکرد و انعطاف‌پذیری را برای دیتاست‌های پیچیده ارائه دهد.


معایب:

پیاده‌سازی پیچیده‌تر است و نیاز به طراحی دقیق دارد.



---

این روش‌ها به شما کمک می‌کنند تا با توجه به نیازهای مختلف پروژه‌تان، صفحه‌بندی بهینه و کارآمدی در API ها پیاده‌سازی کنید.

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻

568 0 16 3 13

Be a .NET Hero dan repost
لابلای تموم خستگیاتون، این ویدیو رو هم ببینید.

https://www.youtube.com/watch?v=xtxfrxf0mfE

جذاب بود :)

کلا من مفاهیم فرایند توسعه نرم افزار و معماری نرم افزار رو خیلی دوست دارم از تجربیات دیگران استفاده کنم تا کتاب بخونم. (می دونمم کتاب از آسمون نیومده و بخشیش تجربه هست)
هر چند کتاب های پایه رو هم 4، پنج جلدی مطالعه کردم ولی خب این مدل کنفرانس ها بیشتر بهم حال میده.


در ادامه یک راهنمای کامل و بهبود یافته برای استفاده رایگان از Cursor ارائه شده است. لطفاً مراحل زیر را به ترتیب با دقت دنبال کنید:


---

گام ۱: خروج از حساب کاربری Cursor

1. خروج از حساب (Logout):
ابتدا از حساب کاربری Cursor خود خارج شوید. این کار تضمین می‌کند که تنظیمات قبلی یا اطلاعات ورود مانع روند ثبت‌نام جدید نشوند.


2. راه‌اندازی مجدد برنامه:
پس از خروج، برنامه Cursor را دوباره اجرا کنید تا مطمئن شوید در وضعیت خارج از حساب هستید.




---

گام ۲: اجرای PowerShell

1. باز کردن PowerShell:
برنامه Windows PowerShell را اجرا کنید. این محیط به شما امکان می‌دهد تا دستورات خط فرمان را وارد کرده و اسکریپت‌های لازم را اجرا کنید.


2. اجرای اسکریپت نصب:
در پنجره PowerShell، دستور زیر را وارد کنید:

irm https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/scripts/install.ps1 | liex

توضیح:

دستور irm مخفف Invoke-RestMethod است که فایل اسکریپت نصب را از گیت‌هاب دانلود می‌کند.

عملگر | خروجی دستور اول را به دستور دوم (که در اینجا liex است) می‌دهد.

با اجرای این دستور، اسکریپت نصب اجرا شده و فرآیند تنظیمات اولیه آغاز می‌شود.





---

گام ۳: ثبت‌نام جدید در Cursor

1. انتخاب گزینه ثبت‌نام:
پس از اجرای موفق اسکریپت، در منوی ارائه شده گزینه "Cursor New Register" را انتخاب کنید.


2. شروع فرآیند ثبت‌نام توسط ربات:
به محض انتخاب گزینه، ربات به صورت خودکار فعال شده و تلاش می‌کند شما را در سیستم ثبت کند.


3. نکات مهم در این مرحله:

فعال بودن فیلترشکن:
مطمئن شوید فیلترشکن (VPN) شما فعال است. این امر به دلیل محدودیت‌های جغرافیایی و دسترسی به سرورهای مورد نیاز ضروری است.

تأیید عدم ربات بودن:
قبل از کلیک روی دکمه مربوط به ربات، گزینه "من ربات نیستم" را فعال کنید. این اقدام از بروز خطاهای احتمالی در فرآیند ثبت‌نام جلوگیری می‌کند.





---

گام ۴: تکمیل ثبت‌نام و استفاده از Cursor

1. تغییر شناسه دستگاه:
پس از تکمیل فرآیند ثبت‌نام، شناسه (Machine ID) دستگاه شما تغییر می‌کند. این تغییر به معنای موفقیت‌آمیز بودن ثبت‌نام و فعال شدن خدمات رایگان Cursor است.


2. استفاده از نسخه جدید Cursor:
حالا می‌توانید از امکانات و ویژگی‌های جدید Cursor بهره ببرید.


3. پیشنهاد مهم:
توصیه می‌شود پس از تکمیل ثبت‌نام، از به‌روزرسانی (Update) خودداری کنید تا تنظیمات و دسترسی رایگان شما حفظ شود.




---

با دنبال کردن دقیق مراحل فوق، می‌توانید به راحتی از نسخه رایگان Cursor استفاده کرده و از امکانات آن لذت ببرید.

4.3k 0 253 10 3

Software Philosophy dan repost
آشنایی با Outbox Pattern و اهمیت آن در سیستم‌های توزیع‌شده

آیا تاکنون در توسعه‌ی یک سیستم توزیع‌شده با این دغدغه مواجه شده‌اید که هنگام ثبت تغییرات در پایگاه داده و هم‌زمان ارسال پیام (رویداد) به یک سرویس دیگر (مانند RabbitMQ یا Kafka)، ممکن است یکی از این مراحل با موفقیت انجام شود و دیگری با شکست روبه‌رو گردد؟ در چنین شرایطی، بخشی از داده‌ها به‌روز می‌شود اما سرویس‌های مصرف‌کننده از این تغییرات بی‌خبر می‌مانند و هماهنگی میان بخش‌های مختلف سیستم از بین می‌رود.

مشکل اصلی کجاست؟
به‌طور معمول، اگر در حین به‌روزرسانی یک موجودیت در پایگاه داده بخواهیم یک رویداد نیز به سیستم دیگری ارسال کنیم و مراحل دیتابیس و ارسال پیام در یک تراکنش مجزا یا به‌صورت ناهم‌زمان انجام شوند، احتمال از دست رفتن یا عدم ارسال پیام وجود دارد. این امر ممکن است به ناسازگاری در داده‌ها و عملکرد سرویس‌های وابسته منجر شود.

راه‌حل چیست؟
در اینجاست که الگوی Outbox وارد عمل می‌شود. این الگو پیش‌بینی می‌کند که ابتدا همه‌ی رویدادهایی که قرار است برای سیستم‌های دیگر ارسال شوند در جدولی اختصاصی (Outbox Table) در همان پایگاه داده‌ی اصلی ذخیره شوند. این کار هم‌زمان با تراکنش به‌روزرسانی سایر داده‌ها صورت می‌گیرد، به‌طوری‌که اگر عملیات اصلی موفق باشد، اطلاعات رویداد نیز قطعاً ثبت می‌شود.

سپس چه می‌شود؟
یک فرایند مجزا (Outbox Process) به‌طور مستمر این جدول را بررسی می‌کند و رویدادهای ثبت‌شده را به پیام‌رسان (Message Broker) ارسال می‌کند. در صورت موفقیت در ارسال، رکورد مربوطه از جدول Outbox حذف می‌شود و بدین ترتیب از ارسال مجدد ناخواسته جلوگیری می‌گردد. اگر هم پیام‌رسان در لحظه غیرفعال باشد یا خطایی رخ دهد، رکورد رویداد کماکان در پایگاه داده باقی می‌ماند تا در تلاش بعدی مجدداً ارسال شود.

مزایای Outbox Pattern
۱. جلوگیری از ناسازگاری داده‌ها: با انجام ثبت رویداد و تغییرات داده در یک تراکنش واحد، احتمال بروز تناقض در داده‌ها کاهش می‌یابد.
۲. اطمینان از عدم از دست رفتن رویدادها: حتی اگر زیرساخت ارتباطی یا پیام‌رسان موقتاً از دسترس خارج شود، پیام در Outbox محفوظ می‌ماند و پس از بازگشت سرویس، ارسال خواهد شد.
۳. مقیاس‌پذیری بالا: افزودن سرویس‌های جدید یا گسترش زیرساخت پیام‌رسانی تحت تأثیر این الگو به‌راحتی امکان‌پذیر است، چرا که شیوه‌ی ثبت و ارسال رویدادها مشخص و یکپارچه است.

در واقع Outbox Pattern راهکاری قدرتمند و مطمئن برای ساخت سیستم‌های توزیع‌شده و مبتنی بر رویداد است و کمک می‌کند دغدغه‌ی شکست ارسال پیام و ناسازگاری داده‌ها برطرف شود.

🔗 برای مطالعه بیشتر می‌توانید به این لینک مراجعه نمایید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#هوتن_همتی (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

___________


https://www.instructa.ai/en/ai-prompts/next-15-coding-standards

از این قسمت میتونین به Cursor یک سری Rule بدین و میتونین خودتون بر اساس پروژه هم Customize کنین، بعد از این به بعد توی جنریت کردن کد این نکات رو در نظر میگیره، مثلا قوانين که تو ESLint تعریف میکنین میتونین اینجا هم بیارین و ازش استفاده کنین خوبیش اینه به صورت General هم میتونین بزارین توی ریپو تا بقیه هم ازش استفاده کنن.


توی این لینک هم کلی Structure و پیاده سازی سرویس های مختلف دیگه هست که به نظرم جالبه میتونه کمک کنه.

https://www.instructa.ai/en/ai-prompts?framework=next

و اینم برای یک سری Rule های کار با Sonnet 3.7 هست :

https://www.instructa.ai/en/ai-prompts/claude-sonnet-37-best-practices


Be a .NET Hero dan repost
Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
1. Search

Let’s learn together and build something great ❤️

@thisisnabi_dev




Coding Interview Patterns: Nail Your Next Coding Interview

Coding interviews are tough, and they're only getting tougher, typically demanding months of preparation. What we all want is a way to master algorithms and data structures without having to spend countless hours sifting through endless, unfocussed resources. Introducing "Coding Interview Patterns," your complete guide to mastering the key patterns needed to ace your next coding interview.

What’s inside?
An insider’s perspective on what interviewers are truly looking for and why.
101 real coding interview problems with detailed solutions.
Intuitive explanations that guide you through each problem as if you were solving it in a live interview.
1000+ diagrams to illustrate key concepts and patterns.

Table of Contents
Chapter 1: Two Pointers
Chapter 2: Hash Maps and Sets
Chapter 3: Linked Lists
Chapter 4: Fast and Slow Pointers
Chapter 5: Sliding Windows
Chapter 6: Binary Search
Chapter 7: Stacks
Chapter 8: Heaps
Chapter 9: Intervals
Chapter 10: Prefix Sums
Chapter 11: Trees
Chapter 12: Tries
Chapter 13: Graphs
Chapter 14: Backtracking
Chapter 15: Dynamic Programming
Chapter 16: Greedy
Chapter 17: Sort and Search
Chapter 18: Bit Manipulation
Chapter 19: Math and Geometry




Big Archive for System Design – 2024 Edition (Completely Free) is now available!

The PDF contains 𝐀𝐋𝐋 of our technical posts with diagrams published in 2024.

What’s included in the PDF?

- REST API Vs. GraphQL
- Linux file system explained
- My recommended materials for cracking your next technical interview
- How Git Commands work
- Top 4 Most Popular Use Cases for UDP
- How Does a Typical Push Notification System Work?
- How can Cache Systems go wrong? 20
- REST API Cheatsheet
- Top 8 Programming Paradigms
- Data Pipelines
- API Vs SDK
- Key Use Cases for Load Balancers
- And many hundreds more


Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
ابزار /trae.ai یه IDE رایگان و جایگزین Cursor هست. به‌صورت کاملاً رایگان و بدون محدودیت به Cloud 3.7 دسترسی دارین!

https://www.trae.ai/


Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
“آنچه که در جستن آنی، آنی
وانچه که در طلب آنی، آنی”
- مولانا

20 ta oxirgi post ko‘rsatilgan.