عنوان:

‫پیاده‌سازی شناسه های قوی‌تایپ در .NET برای مدل‌های دامنه ایمن‌تر


نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۲ ۰۹:۳۵
آدرس: www.dntips.ir
در این مقاله، روشی برای محدود کردن برنامه از ارسال شناسه ها به صورت Interchangeable بین موجودیت‌ها ارائه شده است. این مشکل زمانی رخ می‌دهد که درخواست‌های کاربر غیرقابل پیش‌بینی هستند و ممکن است شناسه اشتباهی را برای یک موجودیت ارسال کنند. این امر می‌تواند منجر به مشکلات منطقی در برنامه شود، به خصوص زمانی که برنامه حاوی صدها موجودیت باشد. استفاده از انواع داده‌های ابتدایی (primitive data types) مانند int یا string برای نمایش داده‌های پیچیده، که به آن "وسواس ابتدایی" (Primitive obsession) گفته می‌شود، می‌تواند منجر به نقض پنهان کپسوله‌سازی شود. این امر نیاز به افزودن یک لایه اعتبارسنجی اضافی در کد دارد. برای موجودیت‌های خاص دامنه مانند URLها یا آدرس‌ها، می‌توان از موجودیت‌های متعلق (owned entities) استفاده کرد، اما برای تعریف هویت‌های خاص دامنه، به شناسه های قوی‌تایپ نیاز است. این مقاله با ایجاد یک برنامه کنسولی با پایگاه داده PostgreSQL، مشکل استفاده از شناسه های ابتدایی را نشان می‌دهد. مراحل ایجاد پروژه، نصب بسته‌های لازم (مانند Microsoft.EntityFrameworkCore و Npgsql.EntityFrameworkCore.PostgreSQL) و تعریف مدل‌ها (مانند Player، Team و PlayerTeam) به تفصیل شرح داده شده است. مدل‌ها شامل ویژگی‌هایی مانند Id، Name و روابط بین آن‌ها هستند. در نهایت، نحوه پیکربندی ApplicationDbContext برای استفاده از این مدل‌ها با EF Core توضیح داده شده است. این شامل تعریف DbSet برای هر مدل و Override کردن متد OnConfiguring برای اتصال به پایگاه داده PostgreSQL است. هدف از این رویکرد، بهبود امنیت و قابلیت نگهداری کد با استفاده از شناسه های قوی‌تایپ به جای شناسه های ابتدایی است.


مشاهده مطلب اصلی