همیشه فرض بر این است که مدیر سیستم، فردی است امین و درستکار. این شخص/اشخاص کارهای شبکه، پشتیبانگیری، نگهداری و امثال آنرا انجام داده و از سیستمها محافظت میکنند. اکنون این سناریوهای واقعی را درنظر بگیرید:
- پس از خداحافظی با شرکتی که در آن کار میکردی، شخصی با پوزخند به شما میگوید که «میدونستی در برنامهی حق و دستمزد شما، بچههای ادمین شبکه، دیتابیس برنامه رو مستقیما دستکاری میکردند و تعداد ساعات کاری بیشتری رو وارد میکردند ...
از نگارش ASP.NET Core Identity 2.1 به بعد، ویژگی جدید ProtectedPersonalData در تعاریف موجودیت کاربران سیستم مشاهده میشود: public class IdentityUser<TKey> where TKey : IEquatable<TKey>
{
[ProtectedPersonalData]
public virtual string UserName { get; set; }
[ProtectedPersonalData]
public virtual string Email { get; set; }
این ویژگی در حقیقت یک نشانهگذار است. کار آن اعلام نیاز به ذخیره ساز ...
فرض کنید قصد داریم متد « SeedDatabaseWithAdminUserAsync » را توسط روش جدید « مقدار دهی اولیهی بانک اطلاعاتی توسط Entity framework Core » بازنویسی کنیم. در ادامه مراحل اینکار را مرور خواهیم کرد.
اضافه کردن نقش پیشفرض Admin
اولین تغییری که در اینجا مورد نیاز است، افزودن نقش پیشفرض Admin است. برای این منظور توسط یک IEntityTypeConfiguration جدید، تنظیمات موجودیت سفارشی Role برنامه را به نحو زیر انجام می ...
قابلیت مقدار دهی اولیهی بانک اطلاعاتی (data seeding) توسط اجرای کدهای Migrations و متد DbMigrationConfiguration.Seed آن، در حین انتقال از EF 6x به EF Core ناپدید شده بود که مجددا با ارائهی EF Core 2.1 به نحو کاملا متفاوتی توسط یک Fluent API، در متد OnModelCreating قابل تعریف و استفادهاست. کلاسهای موجودیتهای مثال جاری
برای توضیح قابلیت جدید مقدار دهی اولیهی بانک اطلاعاتی در +EF Core 2.1، از کلاسهای موجودیتهای ذیل ...
از EF Core 2.1 به بعد، قابلیت جدیدی تحت عنوان «تبدیلگرهای مقدار»، به آن اضافه شدهاست. برای مثال در EF Core، زمانیکه اطلاعات Enums، در بانک اطلاعاتی ذخیره میشوند، معادل عددی آنها درج خواهند شد. اگر علاقمند باشید تا بجای این مقادیر عددی دقیقا همان رشتهی تعریف کنندهی Enum درج شود، میتوان یک «تبدیلگر مقدار» را برای آن نوشت. برای مثال در موجودیت Rider زیر، خاصیت Mount از نوع یک enum است. public class Rider
{
public int Id { ge ...
در مطلب « ارتقاء به ASP.NET Core 1.0 - قسمت 7 - کار با فایلهای config
» با مقدمات کار با فایلهای تنظیمات برنامه و تامین کنندههای مختلف آنها آشنا شدیم. در این مطلب قصد داریم یک نمونهی سفارشی تامین کنندههای تنظیمات برنامه را بر اساس دریافت و ذخیره سازی اطلاعات در بانک اطلاعاتی، تهیه کنیم.
ساختار موجودیت تنظیمات برنامه
تنظیمات برنامه با هر قالبی که تهیه شوند، دست آخر به صورت یک <Dictionary<s ...
یکی از مزایای کار با ORMها، امکان تعویض نوع بانک اطلاعاتی برنامه، بدون نیازی به تغییری در کدهای برنامه است. برای مثال فرض کنید میخواهید با تغییر رشتهی اتصالی برنامه، یکبار از بانک اطلاعاتی SQL Server و بار دیگر از بانک اطلاعاتی کاملا متفاوتی مانند SQLite استفاده کنید. در این مطلب نکات استفادهی از چندین نوع بانک اطلاعاتی متفاوت را در برنامههای مبتنی بر EF Core بررسی خواهیم کرد.
هر بانک اطلاعاتی باید Migration و Context خاص خ ...
بعد از انتشار نسخه اولیه زیرساخت DNTFrameworkCore ، در این مطلب قصد دارم قالب تهیه شده برپایه زیرساخت مذکور را معرفی کنم. در این قالب سیستم اعتبارسنجی کاربران مبتنیبرJWT نیز تدارک دیده شده است. نصب قالب پروژه از طریق نیوگت ابتدا برای نصب قالب تهیه شده از طریق نیوگت، دستور زیر را اجرا کنید: dotnet new --install DNTFrameworkCoreTemplateAPI::* حال برای ایجاد اولین پروژه، دستور زیر را ...
پس از معرفی DNTFrameworkCore ، طراحی موجودیتهای سیستم و پیادهسازی DTOها، اعتبارسنجها و سرویسهای متناظر آنها، در این مطلب روش پیاده سازی CRUD API یکسری موجودیت فرضی را با استفاده از امکانات این زیرساخت بررسی خواهیم کرد. برای شروع لازم است بسته نیوگت زیر را نصب کنید: PM> Install-Package DNTFrameworkCore.Web همچنین برای اعمال خودکار مهاجرتهای بانک اطلاعاتی، بسته نیوگت زیر را نصب کنید: PM> Install- ...
در قسمت قبل سناریوهای مختلف مرتبط با طراحی موجودیتهای سیستم را بررسی کردیم. در این قسمت به طراحی DTOهای متناظر با موجودیتها به همراه اعتبارسنجهای مرتبط و در نهایت به پیاده سازی سرویسهای CRUD آنها خواهیم پرداخت. قراردادها، مفاهیم و نکات اولیه
برخلاف بسیاری از طراحیهای موجود، بر فراز هر موجودیت اصلی (منظور AggregateRoot) باید یک DTO که از این پس با عنوان Model از آنها یاد خواهیم کرد، تعریف شود. هیچ ...