.NET | دات نت – Telegram
.NET | دات نت
286 subscribers
121 photos
7 videos
26 files
165 links
دنیای شگفت انگیز و جذاب دات نت رو زیر ذره‌بین می‌بریم و تجربه ها رو به اشتراک میذاریم

به جمع توسعه دهندگان دات نت خوش اومدی 🥰❤️


گروه: https://news.1rj.ru/str/dndevelopchat
Download Telegram
تاریخ سه شنبه ۲۰ آبان NET 10. به صورت رسمی معرفی میشه 🥳
7
این روزا تو شرکت کلی درگیر ریفکتور و ریرایت پروژه ها هستیم. خیلی وقتا داستان اینجوریه که پروژه فقط یه سری CRUD ساده روی چند تا انتیتی داره، ولی نوشتن همین CRUD ها کلی وقت میگیره.

کلی سرچ کردم و ابزارهای مختلف رو تست کردم ولی یک چیزی که بشه تو دل پروژه های بزرگ استفاده کرد پیدا نکردم.

یکی از بچه ها ایده جالبی داد و گفت خودمون بنویسیمش😄.

نتیجش شد ابزار FastCrud.

یه زیرساخت مینیمال توی .NET 9 که باهاش فقط کافیه انتیتی و چند تا کانفیگ تعریف کنی، بعد خودش برات کل CRUD رو با Pagination، Filtering، Sorting، Validation و Dto Mapping روی Minimal API بسازه. یه راحتی هم قابل شخصی سازی هست و میتونی کاستومش کنی.

مزیتش چیه؟

- سرعت توسعه چند برابر میشه.
- کد تکراری و خسته کننده حذف میشه.
- ساختار یکپارچه و قابل توسعه داری.
- فقط دیگه وقتت رو برای بخش های مهم پروژه میزاری.
- از همون اول با Swagger و داکیومنت آماده تحویل میگیری.

و اگه اینو نداشته باشی؟ خب باید هر بار از صفر همه چیز رو بنویسی، کلی وقت هدر میره، هر پروژه هم کد خودش رو داره و بعداً ریفکتورش کابوس میشه.

فعلاً این ابزار در حد دموی اولیه ست، ولی کار میکنه و خودم خیلی حال کردم باهاش.
دوست دارم شما هم تستش کنین و نظرتون رو بگین ✌🏻

اگر واسه شما هم جالب بود تو گیت هاب استار بدین.
https://github.com/ashkanRmk/FastCrud


🔗 LinkedIn Post
👍2👏1
دوره Git در Visual Studio رو میتونید از باگتو بصورت رایگان با کد تخفیف git داشته باشید.

https://bugeto.net/courses/git-in-visual-studio
4
مدیریت حافظه
‏⁧(Memory Management)‏


در زبان #C، مدیریت حافظه به‌صورت خودکار توسط زمان اجرای مشترک (Common Language Runtime یا CLR) انجام می‌شود.

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

این یعنی برنامه‌نویس دیگر نیازی ندارد خودش به‌صورت دستی حافظه اشیاء را آزاد کند — چیزی که در زبان‌هایی مثل ++C ضروری بود.

در ++C اگر فراموش می‌کردید حافظه‌ای را آزاد کنید، یا اشتباه آن را دوباره آزاد می‌کردید، برنامه‌تان با خطاهای خطرناک مثل اشاره‌گرهای نامعتبر (Dangling Pointers) روبه‌رو می‌شد. اما در #C این مشکل به‌طور کامل از بین رفته.

آیا در #C اصلاً اشاره‌گر (Pointer) وجود ندارد؟
خیر، زبان #C اشاره‌گرها را کاملاً حذف نکرده؛ فقط استفاده از آن‌ها را برای اکثر کارها غیر ضروری کرده است.

در برخی موارد خاص که:

✔️ عملکرد (Performance) خیلی حیاتی باشد

✔️ یا نیاز به تعامل با کد های Native یا کتابخانه‌های سطح پایین باشد

می‌توانید از اشاره‌گرها و مدیریت حافظه دستی استفاده کنید — اما فقط در بخش‌هایی از کد که با کلید واژه unsafe علامت‌گذاری شده‌اند.

بنابراین:

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

اما اگر لازم باشد، #C امکان نوشتن کد های سطح پایین و بهینه را هم در اختیار شما قرار می‌دهد — با آگاهی کامل و در محیطی ایزوله.

Joseph Albahari – C# 12 in a Nutshell
👍5👏2
@LinkedInLearning_ir - Networking on LinkedIn.pdf
1.9 MB
راهنمای شبکه‌سازی در لینکدین!
.NET | دات نت
درود دوستان، نظرتون درباره ترجمه این کتاب چیه؟ ترجمه بشه 👍 نشه 👎
📘 Task Programming in C# and .NET

یه خبر خوب! 🎉
شروع کردم به ترجمه‌ی این کتاب. که به صورت تخصصی وارد دنیای برنامه‌نویسی Task و async/await در #C و .NET میشه و منبع خیلی خوبی برای درک عمیق این مفاهیمه.
دو فصل هم ترجمه شده

لطفاً حمایت کنید.❤️

🔗 لینک
🔥9👏1
.NET | دات نت pinned «📘 Task Programming in C# and .NET یه خبر خوب! 🎉 شروع کردم به ترجمه‌ی این کتاب. که به صورت تخصصی وارد دنیای برنامه‌نویسی Task و async/await در #C و .NET میشه و منبع خیلی خوبی برای درک عمیق این مفاهیمه. دو فصل هم ترجمه شده لطفاً حمایت کنید.❤️ 🔗 لینک»
گلبم اکلیلی شد 😍😂
ممنونم از حمایت تون ❤️❤️❤️
7
ارائه بازخورد به‌عنوان بازبین 👩‍💻📝

قلدری و آزار در محیط‌های کاری می‌تواند مشکل‌ساز باشد و محیط‌های برنامه‌نویسی نیز از آن مستثنی نیستند. هیچ‌کس برنامه‌نویس مغروری را دوست ندارد که فکر می‌کند همه‌چیز را می‌داند. بنابراین، بازبین باید مهارت‌های نرم (Soft Skills) خوبی داشته باشد و دیپلماتیک باشد. به خاطر داشته باشید که برخی افراد به‌راحتی آزرده می‌شوند و ممکن است نظرات را اشتباه برداشت کنند. بنابراین، بدانید که با چه کسی سر و کار دارید و احتمال واکنش او چگونه است؛ این به شما کمک می‌کند تا روش و کلمات خود را با دقت انتخاب کنید.

به‌عنوان بازبین کد همتایان (Peer Code Reviewer)، مسئول هستید که نیازمندی‌ها را درک کرده و اطمینان حاصل کنید که کد مطابق با آن نیازمندی‌هاست. بنابراین، به دنبال پاسخ به این سوالات باشید:

✔️ آیا قادر به خواندن و درک کد هستید؟

✔️ آیا باگ‌های احتمالی قابل مشاهده است؟

✔️ آیا هرگونه Trade-off انجام شده است؟

✔️ اگر بله، دلیل انجام Trade-off چیست؟

آیا این Trade-off ها Technical Debt ایجاد می‌کنند که در ادامه پروژه باید مدنظر قرار گیرد؟

پس از اتمام بازبینی، سه نوع بازخورد برای انتخاب وجود دارد: مثبت، اختیاری و انتقادی:

بازخورد مثبت 🎉: شامل تقدیر از کارهای بسیار خوب برنامه‌نویس است و روحیه تیم را بالا می‌برد.

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

بازخورد انتقادی ⚠️: برای مشکلات شناسایی‌شده است که باید قبل از پذیرش کد و ارسال به تیم QA رفع شوند. در این نوع بازخورد، باید کلمات خود را با دقت انتخاب کنید و نظرات انتقادی را همراه با دلایل معتبر ارائه دهید.

Clean Code in C# by Jason Alls
👍2👏1
فیلترشکن Proxy Cloud

توسط یکی از دوستان ساخته شده، کاملا متن باز و برای تمامی دستگاه ها موجود.

استفاده کنید و از سرعت اش لذت ببرید 👌

https://github.com/code3-dev/ProxyCloud
1👏1
مایکروسافت تازه نسخه RC0 رو ریلیز کرده!
احتمالا بعد از ریلیز دات نت 10 شاهد ریلیز نسخه RTM خواهیم بود...

منبع خبر (بلاگ رسمی مایکروسافت):
https://techcommunity.microsoft.com/blog/sqlserver/announcing-sql-server-2025-release-candidate-0-rc0/4446235
👍1
بازم خبر خوب 😌🥳
3
دات نت باز هم غوغا کرده 👇
CSnake
اجرای کدهای پایتون در دات نت!


اگر امکان اجرای کدهای پایتون در همان پروسس دات نت وجود داشته باشد، یعنی تمام ۱.۵ میلیون مدل هوش مصنوعی که تا به حال روی HuggingFace قرار گرفته را میتوان با همان پرفورمنس و بدون نیاز به کشیدن لایه های REST در دسترس داشت.

پروژه CSnakes در واقع یک Source Generator و Runtime برای #C است که با بهره گیری از Python C-API امکان تولید خودکار کلاس های دات نت از اسکریپت های پایتون رو فراهم میکنه. شما فقط کافیه پکیج CSnakes.Runtime رو از NuGet نصب کنید و اسکریپت های پایتون تون رو به پروژه اضافه کنید تا بدون کوچک ترین overhead یا لایه اضافی، هر تابع پایتون به صورت یک متد native سی شارپ قابل فراخوانی باشه. این رویکرد، سرعت و مقیاس پذیری Enterprise دات نت رو با انعطاف پذیری و اکوسیستم غنی پایتون پیوند میزنه و توسعه اپلیکیشن های هوش مصنوعی و Data Science رو به سطحی جدید میرسونه.

کلکل هایی هم که این دونفر سر زبانهای #سی شارپ و #پایتون میکنن خیلی با مزهس!
ولی جدا از با مزگیش، یه تکنولوژی خیلی خفن به اسم CSnake رو دارن معرفی میکنن که باعث میشه کدهای پایتون به صورت in-process در دات نت ران بشن!
تو این ویدئو Scott Hanselman و Anthony Shaw در موردش صحبت میکنن. پیشنهاد میکنم حتما ببینیدش...
#csharp #python #machine_learning

https://lnkd.in/dtP_chkC


🔗 LinkedIn Post
4
کامنت‌های خوشبوکننده (Deodorant Comments)

وقتی یک کامنت با جملات زیبا و مثبت سعی دارد کدی ضعیف یا بد را توجیه کند، به آن کامنت خوشبوکننده گفته می‌شود.
اگر کد بد است، باید بازآرایی (Refactor) شود تا خوب شود و سپس کامنت حذف شود. اگر نمی‌دانید چگونه بازآرایی کنید، از دیگران کمک بگیرید. اگر کسی برای کمک در دسترس نیست، کد خود را در Stack Overflow قرار دهید. برنامه‌نویسان بسیار ماهری در آن سایت هستند که می‌توانند به شما کمک کنند، فقط قوانین انتشار را رعایت کنید!

Clean Code in C# by Jason Alls
👍4
using System;

Console.WriteLine(FeetToInches(30)); // 360
Console.WriteLine(FeetToInches(100)); // 1200

int FeetToInches(int feet)
{
int inches = feet * 12;
return inches;
}


متد ما شامل مجموعه‌ای از دستورات است که توسط یک جفت آکولاد احاطه شده‌اند. به این مجموعه، statement block گفته می‌شود.
یک متد می‌تواند داده ورودی را از فراخواننده دریافت کند با مشخص کردن parameters و داده خروجی را به فراخواننده برگرداند با مشخص کردن return type. متد FeetToInches ما یک پارامتر برای ورودی feet دارد و یک نوع بازگشتی برای خروجی inches:
int FeetToInches(int feet)
...


🟠 اعداد ۳۰ و ۱۰۰ مقادیری هستند که به متد FeetToInches ارسال شده‌اند و به آن arguments گفته می‌شود.

اگر یک متد ورودی دریافت نمی‌کند، از پرانتز خالی استفاده کنید. اگر هیچ مقداری باز نمی‌گرداند، از کلیدواژه void استفاده کنید:
using System;

SayHello();

void SayHello()
{
Console.WriteLine("Hello, world");
}

متدها یکی از انواع مختلف functions در سی شارپ هستند.
🎉 QrGen Pro 🎉

خوشحالم که پروژه جدیدم، QrGen، یک سرویس تحت وب برای ساخت سریع و آسان QR Code رو به پایان رسوندم.

قابلیتهای کلیدی:
ساخت QR Code با قابلیت شخصی سازی بالا و قرار دادن لگو
پنل کاربری کامل برای مدیریت و ذخیره QR Codeهای ساخته شده
ارائه REST API قدرتمند برای توسعهدهندگان تا بتوانند در اپلیکیشنهای خودشون استفاده کنند
توسعه یافته با Django به عنوان یک فریمورک امن برای بکاند

این پروژه ترکیبی از UX ساده و قابلیتهای فنی پیشرفته است.

🔗 برای تست نسخه لایو و ساخت QR کد خودتون، به [https://lnkd.in/dSdDWr2W] مراجعه کنید.
البته پروژه خوب Responsive نشده و داخل گوشی کمی مشکل داره. بهتر داخل سیستم باز کنید یا سایت روی حالت Desktop بزارید.

🔍 کدهای پشت این پروژه رو میتونید در [https://lnkd.in/dMS-29iQ] ببینید.


🔗 LinkedIn Post
👍1