Code Wave Channel
3 subscribers
14 photos
5 links
It's all about Programming and IT


Contact: @AbnNajaf
Download Telegram
Channel created
Clean Architecture with .NET Core

یک آموزش ساده و روان برای یادگیری عمیق Clean architecture

- MediatR
- AutoMapper
- FluentValidation
- NUnit, FluentAssertions, Moq & Respawn


لینک مقاله:
https://jasontaylor.dev/clean-architecture-getting-started/


لینک گیت هاب:
https://github.com/jasontaylordev/CleanArchitecture


لینک یوتیوب:
https://youtu.be/5OtUm1BLmG0
اگر دنبال آموزش‌های معتبر هستی توی تمامی حوزه ها
و میخوای یک ریپو لینک تمامی این آموزش‌ها رو داشته باشه

حتما به ریپو mehdi hadeli عزیز سر بزن ❤️😉

https://awesome-architecture.com/

https://github.com/mehdihadeli/awesome-software-architecture
اگر علاقه مند به یادگیری عمیق Asp.Net Core هستید
و میخواهید یک road map خوب داشته باشین
تا هم سرفصل های خوبی رو بهتون معرفی کنه
هم Track progress رو داشته باشه

قطعا این سایت میتونه کمک کنه
https://roadmap.sh/aspnet-core
دستور ExcludeFromDescriptionAttribute برای حذف OpenAPI metadata استفاده میشود
و اگر مقدار true داشته باشد، هیچ metadata ای منتشر نمیشود.


کاربردش میتواند مثلا برای مخفی کردن endpoint از Swagger UI باشد 💥😉

کد نمونه Minimal API :
app.MapGet("/", () => "Code wave tests")
.ExcludeFromDescription();
OpenTelemetry Metrics in .NET 8

دو تا روش برای ارسال متریک ها (exporting metrics) وجود دارد
1- استفاده از OpenTelemetry Collector
2- ارسال دیتا بصورت مستقیم به back-end مورد نظر (مانند Prometheus, Jaeger, Zipkin, Elastic APM, ...)


یکی از مزیت های روش اول
برنامه ما برای ارسال metric ها فقط با OpenTelemetry Collector در ارتباط هست
و اگر برنامه ما روی چندین container اجرا باشد این یک مزیت جدی هست




مقاله برای روش اول:
https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-metrics-and-dotnet-part-1/


لینک گیت هاب:
https://github.com/karlospn/opentelemetry-metrics-demo
(داخل گیت هاب پیاده سازی کامل انجام شده و راه اندازی پروژه رو هم کامل توضیح داده)
یک مشکل رو مخ داریم، که زمانی که سیستم restart میشه و می‌خواییم پسورد رو وارد کنیم Num Lock کیبورد خاموش هست 😢😣

برای حلش می‌تونید مراحل زیر رو برین:
1- Press Win+R to open the Run dialog box.
2- Type regedit and hit Enter to open the Registry Editor.
3- Navigate to the following key:
HKEY_USERS\.Default\Control Panel\Keyboard

4- Double-click on the InitialKeyboardIndicators value on the right-hand side.
5- Change the value data to 2 to turn Num Lock on by default.
6- Click OK and close the Registry Editor and restart again.

😎😉
🔥1
Code Wave Channel
Photo
Shared Context between XUnit Tests in .Net8

ما در تست های خود نیاز داریم برخی از اشیاء یا تنظیمات را بین تست ها به اشتراک بگذاریم
مثلا تصور کنید برنامه ما برای اجرا نیاز به Sql Server, RabbitMq, MongoDb , ... دارد
نیاز هست یک بار این تنظیمات انجام شود و بین تمامی تست ها به اشتراک گذاشته شود.


در XUnit چند روش برای اینکار وجود دارد (Shared Context between Tests):

⚪️ Constructor and Dispose :
برای تمیز نگهداشت test context ها، با پیاده سازی Interface IDisposable اشیاء که بین تست‌های یک کلاس مشترک هستند در Constructor تعریف و در متد Dispose حذف میشوند.

⚪️ Class Fixtures:
به اشتراک گذاری اشیاء به ازای یک کلاس تست.
مثلا ما dbContext را با استفاده از Interface IClassFixture تعریف کنیم، به ازای هر کلاس تست یک نمونه جدید از dbContext خواهیم داشت.

⚪️ Collection Fixtures:
به اشتراک گذاری اشیاء بین چنین کلاس تست.
مثلا ما dbContext را با استفاده از Interface ICollectionFixture تعریف کنیم، به ازای تمامی Collection های هم نام یک نمونه از dbContext ایجاد میشوند و شیء dbContext بین چنین کلاس تست مشترک خواهد بود

⚪️ Assembly Fixtures:
اشتراک گذاری اشیاء بین تمام تست های یک Assembly




لینک مقاله:
https://xunit.net/docs/shared-context
👏1
📊 دسته‌بندی کلی: امنیت اطلاعات

🔒 1- رمزنگاری (Encryption)

فرآیندی برای تغییر اطلاعات به صورتی که فقط افراد مجاز بتوانند آن را بازخوانی و درک کنند. هدف اصلی رمزنگاری، حفظ محرمانگی داده‌ها در طول انتقال یا ذخیره‌سازی است.

🔐 رمزنگاری متقارن (Symmetric Encryption)
در این نوع رمزنگاری، یک کلید مشترک برای رمزگذاری و رمزگشایی استفاده می‌شود.

ویژگی‌ها:
سرعت بالا
نیاز به روش امن برای تبادل کلید مشترک

الگوریتم‌های مشهور:
AES (Advanced Encryption Standard)
DES (Data Encryption Standard)


🔐 رمزنگاری نامتقارن (Asymmetric Encryption)
این نوع رمزنگاری از دو کلید مجزا استفاده می‌کند: یک کلید عمومی برای رمزگذاری و یک کلید خصوصی برای رمزگشایی.

ویژگی‌ها:
امنیت بالا
نیازی به تبادل کلید مشترک نیست

الگوریتم‌های مشهور:
RSA (Rivest–Shamir–Adleman)
ECC (Elliptic Curve Cryptography)



🔍 2- هشینگ (Hashing)

فرآیندی برای تولید یک مقدار یکتا و ثابت (هش) از داده‌های ورودی به‌طوری که یک‌طرفه است و امکان بازگشت داده اولیه از مقدار هش وجود ندارد.

کاربردها:
ذخیره امن رمزهای عبور
بررسی یکپارچگی فایل‌ها و داده‌ها

الگوریتم‌های مشهور:
SHA-256 (Secure Hash Algorithm)
MD5 (Message Digest Algorithm)