eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
121 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
Test_Store.zip
حجم: 2.2M
بیایید هر بخش را به تفصیل بررسی کنیم تا مطمئن شویم که همه چیز به درستی تنظیم شده است:
blank solution : Test_Store │ ├── Folder: Doc │ ├── Folder: Src │ ├── Folder: Common │ │ └── library: Test_Store.Common │ │ │ ├── Folder: Core │ │ ├── library: Test_Store.Application │ │ └── library: Test_Store.Domain │ │ │ ├── Folder: Infrastructure │ │ ├── library: Test_Store.Infrastructure │ │ └── library: Test_Store.Persistence │ │ │ └── Folder: Presentation │ └── ASP.NET Core: EndPoint.Site │ └── Folder: Test توضیحات: 1. blank solution : Test_Store این پوشه اصلی پروژه شماست که سایر پوشه‌ها و کتابخانه‌ها در آن قرار دارند. 2. Folder: Doc این پوشه برای ذخیره مستندات پروژه، مانند راهنماها، مستندات طراحی و هر نوع اطلاعات مرتبط با پروژه، مورد استفاده می‌گیرد. 3. Folder: Src این پوشه شامل کد منبع (Source Code) پروژه است و به زیرپوشه‌های مختلف تقسیم شده است: 3-1. Folder: Common: شامل کتابخانه‌های مشترکی است که توسط سایر بخش‌های پروژه استفاده می‌شوند. - library: Test_Store.Common: شامل کدهای مشترک و ابزارهای کمکی که بین تمامی بخش‌های پروژه استفاده می‌شوند. 3-2. Folder: Core: شامل منطق کسب‌وکار و مدل‌های دامنه (Domain Models) پروژه است. - library: Test_Store.Application: شامل منطق کسب‌وکار و موارد استفاده (Use Cases) پروژه. - library: Test_Store.Domain: شامل مدل‌های دامنه و قوانین کسب‌وکار اصلی. 3-3. Folder: Infrastructure: شامل کدهای زیرساختی و سرویس‌هایی است که توسط پروژه استفاده می‌شوند. - library: Test_Store.Infrastructure: شامل پیاده‌سازی سرویس‌های زیرساختی مانند ارتباط با فایل سیستم، APIهای خارجی و غیره. - library: Test_Store.Persistence: شامل کدهای مربوط به ذخیره‌سازی داده‌ها، مانند DbContext و مدل‌های پایگاه داده. 3-4. Folder: Presentation: شامل لایه ارائه (Presentation Layer) پروژه است. - ASP.NET Core: EndPoint.Site: پروژه ASP.NET Core MVC که برای مدیریت رابط کاربری و APIهای وب استفاده می‌شود. 4. Folder: Test این پوشه می‌تواند شامل تست‌های واحد (Unit Tests) و یکپارچه (Integration Tests) باشد تا به بررسی و اعتبارسنجی عملکرد کدهای شما کمک کند.
Test_Store2.zip
حجم: 38.2M
زمان زیادی طول کشید تا کدها را برسی کنم و اشکالاتم را برطرف کنم من هم یاد می گیرم و به اشتراک می گذارم پیاده سازی قالب ادمین به پروژه آدرس پنل: localhost:7236/admin/users/index
Test_Store3.zip
حجم: 37M
پیاده سازی قالب فروشگاه
Find and Replace (یافتن و جایگزینی) یکی از ویژگی‌های بسیار مفید در Visual Studio است که به شما امکان می‌دهد تا به سرعت متنی خاص را در یک سند یا کل پروژه پیدا کرده و آن را با متنی دیگر جایگزین کنید. این ابزار به شما کمک می‌کند تا تغییرات مورد نظر خود را به سرعت و با دقت انجام دهید. نحوه استفاده از Find and Replace در Visual Studio: باز کردن ابزار Find and Replace: برای باز کردن پنجره Find and Replace، می‌توانید از کلیدهای Ctrl + F برای پیدا کردن متن و از Ctrl + H برای جایگزینی متن استفاده کنید. پیدا کردن متن در یک سند: پس از فشار دادن Ctrl + F، یک پنجره کوچک در بالای صفحه کد شما باز می‌شود. متن مورد نظر خود را در کادر Find what وارد کنید. می‌توانید از گزینه‌های مختلف برای جستجوی دقیق‌تر مانند Match case (تطبیق با حروف بزرگ و کوچک) و Match whole word (جستجوی کل کلمه) استفاده کنید. بر روی دکمه Find All کلیک کنید تا تمامی موارد پیدا شده در سند نمایش داده شوند. جایگزینی متن در یک سند: برای باز کردن پنجره Replace, کلیدهای Ctrl + H را فشار دهید. متن مورد نظر برای جستجو را در کادر Find what وارد کنید. متن جایگزین را در کادر Replace with وارد کنید. برای جایگزینی یک به یک، از دکمه‌های Replace و Find Next استفاده کنید. برای جایگزینی همه موارد در یک سند، روی دکمه Replace All کلیک کنید. مثال برای تغییر آدرس تصاویر: فرض کنید می‌خواهید تمامی آدرس‌های dist/img/ را به ~/admin/template/dist/img/ تغییر دهید. باز کردن فایل HTML: فایل HTML خود را در Visual Studio باز کنید. باز کردن پنجره Replace: کلیدهای Ctrl + H را فشار دهید. وارد کردن الگوهای جستجو و جایگزینی: در کادر Find what, متن src="dist/img/ را وارد کنید. در کادر Replace with, متن src="~/admin/template/dist/img/ را وارد کنید. جایگزینی در همان سند: برای جایگزینی یک به یک، از دکمه‌های Replace و Find Next استفاده کنید. برای جایگزینی همه موارد در همان سند، روی دکمه Replace All کلیک کنید. نتیجه‌گیری: با استفاده از ابزار Find and Replace در Visual Studio، می‌توانید به سرعت و به راحتی تغییرات گسترده‌ای را در یک سند یا کل پروژه اعمال کنید. این ابزار به شما کمک می‌کند تا کارهای تکراری را سریع‌تر انجام دهید و از ویرایش دستی کدها اجتناب کنید. برای اینکه ابزار Replace All فقط تغییرات را در همان سند انجام دهد و سراغ فایل‌های دیگر نرود، باید مطمئن شوید که گزینه‌های جستجو و جایگزینی به درستی تنظیم شده‌اند تا فقط در فایل جاری اعمال شوند. در ادامه روش انجام این کار در Visual Studio و Visual Studio Code توضیح داده شده است. استفاده از Find and Replace فقط در فایل جاری در Visual Studio باز کردن پنجره Replace: کلیدهای Ctrl + H را فشار دهید تا پنجره Find and Replace باز شود. تنظیمات جستجو و جایگزینی فقط در فایل جاری: در پنجره Find and Replace, مطمئن شوید که گزینه Look in: به Current Document (فایل جاری) تنظیم شده باشد. وارد کردن متن برای جستجو و جایگزینی: در کادر Find what, آدرس فعلی را وارد کنید، مانند dist/img/. در کادر Replace with, آدرس جدید را وارد کنید، مانند ~/admin/template/dist/img/. جایگزینی در فایل جاری: بر روی دکمه Replace All کلیک کنید تا تمام آدرس‌های قدیمی در فایل جاری با آدرس‌های جدید جایگزین شوند. استفاده از Find and Replace فقط در فایل جاری در Visual Studio Code (VS Code) باز کردن پنجره Replace: کلیدهای Ctrl + H را فشار دهید تا پنجره Replace در سمت چپ باز شود. تنظیمات جستجو و جایگزینی فقط در فایل جاری: در بالای پنجره Replace, مطمئن شوید که گزینه Open Editors انتخاب شده باشد. این گزینه به شما امکان می‌دهد که جایگزینی را فقط در فایل‌های باز اعمال کنید. وارد کردن متن برای جستجو و جایگزینی: در کادر Find, آدرس فعلی را وارد کنید، مانند dist/img/. در کادر Replace, آدرس جدید را وارد کنید، مانند ~/admin/template/dist/img/. جایگزینی در فایل جاری: بر روی آیکون Replace All (دکمه با دو فلش دایره‌ای شکل) کلیک کنید تا تمامی آدرس‌های قدیمی در فایل جاری با آدرس‌های جدید جایگزین شوند. نتیجه‌گیری با تنظیم دقیق گزینه‌های جستجو و جایگزینی، می‌توانید مطمئن شوید که تغییرات تنها در فایل جاری اعمال می‌شوند و فایل‌های دیگر تحت تأثیر قرار نمی‌گیرند.
Areas در ASP.NET Core MVC یک روش برای سازماندهی و مدیریت بخش‌های مختلف یک برنامه وب به صورت مجزا و مجزاست. با استفاده از Areas، می‌توانید برنامه خود را به بخش‌های کوچکتر و مجزا تقسیم کنید که هر یک دارای کنترلرها، ویوها و مدل‌های خود هستند. این ساختار به خصوص برای پروژه‌های بزرگ و پیچیده بسیار مفید است. تعریف و هدف Areas Areas به شما امکان می‌دهند تا بخش‌های مختلف برنامه خود را به صورت مجزا سازماندهی کنید. به عنوان مثال، می‌توانید یک Area برای بخش مدیریت (Admin) و یک Area برای بخش کاربران (User) ایجاد کنید. هر Area می‌تواند ساختار خود را داشته باشد و به صورت مستقل توسعه و مدیریت شود. نحوه استفاده از Areas در ASP.NET Core MVC 1. ایجاد Area برای ایجاد یک Area در پروژه ASP.NET Core MVC، مراحل زیر را دنبال کنید: 1. ایجاد پوشه Area: - در ریشه پروژه، یک پوشه به نام
Areas
ایجاد کنید. 2. ایجاد پوشه Area مشخص: - در داخل پوشه
Areas
, یک پوشه برای Area جدید خود ایجاد کنید. به عنوان مثال،
Admin
. 3. ایجاد پوشه‌های داخلی: - در داخل پوشه
Admin
, پوشه‌های
Controllers
,
Views
, و
Models
را ایجاد کنید. 2. ایجاد کنترلرها و ویوها در Area برای مثال، فرض کنید یک Area به نام
Admin
ایجاد کرده‌اید. اکنون می‌توانید کنترلرها و ویوها را در این Area ایجاد کنید. کنترلر در Area Admin: csharp using Microsoft.AspNetCore.Mvc; namespace YourProject.Areas.Admin.Controllers { [Area("Admin")] public class HomeController : Controller { public IActionResult Index() { return View(); } } } ویو در Area Admin: - یک پوشه به نام
Home
در مسیر
Areas/Admin/Views
ایجاد کنید. - یک فایل ویو به نام Index.cshtml در پوشه
Home
ایجاد کنید. 3. تنظیم مسیریابی برای Areas برای تنظیم مسیریابی برای Areas، باید کد زیر را در فایل Program.cs خود اضافه کنید: csharp app.MapControllerRoute( name: "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); این کد به ASP.NET Core می‌گوید که مسیرهای مربوط به Areas باید شامل نام Area باشند. مثال کامل از ساختار پروژه با Area فرض کنید شما یک Area به نام
Admin
و یک Area به نام
User
دارید. ساختار پروژه شما به این صورت خواهد بود: YourProject │ ├── Areas │ ├── Admin │ │ ├── Controllers │ │ │ └── HomeController.cs │ │ ├── Views │ │ │ └── Home │ │ │ └── Index.cshtml │ │ └── Models │ └── User │ ├── Controllers │ ├── Views │ └── Models ├── Controllers ├── Views ├── Models ├── wwwroot └── Program.cs مزایای استفاده از Areas 1. سازماندهی بهتر: تقسیم برنامه به بخش‌های مجزا و مستقل. 2. مدیریت آسان‌تر: امکان توسعه و نگهداری هر بخش به صورت مستقل. 3. کاهش پیچیدگی: جلوگیری از بروز تعارضات بین کنترلرها و ویوها در بخش‌های مختلف. نتیجه‌گیری Areas در ASP.NET Core MVC به شما کمک می‌کنند تا برنامه خود را به صورت منطقی و سازمان‌یافته مدیریت کنید. با استفاده از Areas، می‌توانید برنامه‌های بزرگ و پیچیده را به راحتی مدیریت و توسعه دهید.
برای تایپ کاراکترهای خاص مانند └, ├, و ─ در ویندوز، می‌توانید از کدهای Alt استفاده کنید. این کدها به شما اجازه می‌دهند تا با استفاده از ترکیب کلید Alt و یک کد عددی، کاراکترهای خاص را تایپ کنید. نحوه استفاده از کدهای Alt: فعال کردن Num Lock: مطمئن شوید که کلید Num Lock روی صفحه‌کلید شما فعال است. فشار دادن کلید Alt: کلید Alt را فشار دهید و نگه دارید. وارد کردن کد عددی: در حالی که کلید Alt نگه داشته‌اید، کد عددی مربوط به کاراکتر مورد نظر را روی صفحه‌کلید عددی وارد کنید. رها کردن کلید Alt: کلید Alt را رها کنید. کاراکتر مورد نظر باید ظاهر شود. کدهای Alt برای کاراکترهای خاص: └ (کد Alt: 192): Alt + 192 ├ (کد Alt: 195): Alt + 195 ─ (کد Alt: 196): Alt + 196 مثال: برای تایپ کاراکتر └: کلید Alt را نگه دارید. کد عددی 192 را روی صفحه‌کلید عددی تایپ کنید. کلید Alt را رها کنید. اگر از کیبورد فارسی استفاده می‌کنید: ممکن است کدهای Alt روی برخی از کیبوردهای فارسی کار نکند. در این صورت، می‌توانید از روش‌های دیگری مانند کپی و پیست استفاده کنید: کپی کردن کاراکتر: از اینجا کاراکترهای مورد نظر خود را کپی کنید: └, ├, ─. پیست کردن کاراکتر: در هر جایی که نیاز دارید، کاراکترها را پیست کنید. استفاده از ابزارهای آنلاین: همچنین می‌توانید از ابزارهای آنلاین برای پیدا کردن و کپی کردن کاراکترهای خاص استفاده کنید. وب‌سایت‌هایی مانند CopyChar یا Unicode-Table به شما اجازه می‌دهند تا کاراکترهای خاص را به راحتی پیدا کرده و کپی کنید. مثال در Notepad: YourProject │ ├── Areas │ ├── Admin │ │ ├── Controllers │ │ │ └── HomeController.cs │ │ ├── Views │ │ │ └── Home │ │ │ └── Index.cshtml │ │ └── Models │ └── User │ ├── Controllers │ ├── Views │ └── Models ├── Controllers ├── Views ├── Models ├── wwwroot └── Program.cs
برای دسترسی به فهرست کاراکترهای خاص و استفاده از آنها، شما می‌توانید از منابع مختلفی استفاده کنید. در ادامه فهرستی از منابع آنلاین برای کاراکترهای خاص و کدهای Alt آورده شده است: 1. وب‌سایت Unicode-Table https://symbl.cc Unicode-Table یک منبع عالی برای یافتن و کپی کردن کاراکترهای خاص به همراه کدهای Alt و اطلاعات بیشتر درباره هر کاراکتر. 2. وب‌سایت CopyChar https://copychar.cc CopyChar به شما اجازه می‌دهد تا به راحتی کاراکترهای خاص را جستجو کنید و آنها را کپی کنید. 3. فهرست کدهای Alt برای کاراکترهای خاص در ویندوز برای استفاده از کدهای Alt، می‌توانید از فهرست زیر استفاده کنید:
ساختار درختی پوشه و فایل Test_Store │ ├── Doc │ ├── Src │ ├── Common │ │ └── library: Test_Store.Common │ │ │ ├──── Core │ │ ├──── library: Test_Store.Application │ │ │ └── Interfaces │ │ │ └── Contexs │ │ │ └── IDataBaseCotex.cs │ │ └── library: Test_Store.Domain │ │ └── Entities │ │ └── Users │ │ ├── Role.cs │ │ ├── User.cs │ │ └── UserInRole.cs │ │ │ ├── Infrastructure │ │ ├── library: Test_Store.Infrastructure │ │ └── library: Test_Store.Persistence │ │ ├── Context │ │ │ └── DataBaseContext.cs │ │ └── Migrations │ │ ├── ......_Users.cs │ │ └── DataBaseContextModelSnapshot.cs │ │ │ └── Presentation │ └── ASP.NET Core: EndPoint.Site │ │ │ ├── Areas │ │ └── Admin │ │ ├── Controllers │ │ │ └── UsersController.cs │ │ ├── Views │ │ │ ├── Shared │ │ │ │ └── _AdminLayout.cshtml │ │ │ └── Users │ │ │ └── Index.cshtml │ │ └── Models │ ├── Controllers │ │ └── HomeController.cs │ ├── Views │ │ ├── Home │ │ │ ├── Index.cshtml │ │ │ └── Privacy.cshtml │ │ ├── Shared │ │ │ ├── _Layout.cshtml │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ └── Error.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── Models │ │ └── ErrorViewModel.cs │ ├── wwwroot │ │ ├── AdminTemplate │ │ ├── css │ │ ├── js │ │ ├── lib │ │ ├── SiteTemplate │ │ └── favicon.ico │ └── Program.cs │ └── Test نصب کتابخانه و پروژه‌ها را به هم مرتبط کرده‌ام EndPoint.Site packages Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SqlServer projects Test_Store.Application Test_Store.Persistence ----------------------------------- Test_Store.Persistence packages Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Relational projects Test_Store.Application Test_Store.Domain ---------------------------------------- presentation packages Microsoft.EntityFrameworkCore projects Test_Store.Domain -------------------------------------- Test_Store.Application packages Microsoft.EntityFrameworkCore projects Test_Store.Domain
IDataBaseCotex.cs استفاده از نام‌فضاها (Namespaces) csharp using Microsoft.EntityFrameworkCore; using Test_Store.Domain.Entities.Users; using Microsoft.EntityFrameworkCore;: این دستور به شما امکان می‌دهد تا از امکانات و کلاس‌های ارائه‌شده توسط Entity Framework Core استفاده کنید. using Test_Store.Domain.Entities.Users;: این دستور برای دسترسی به کلاس‌ها و موجودیت‌هایی که در نام‌فضای Test_Store.Domain.Entities.Users تعریف شده‌اند، استفاده می‌شود. تعریف اینترفیس IDataBaseContext اینترفیس IDataBaseContext وظایفی را برای تعامل با پایگاه داده تعریف می‌کند. این اینترفیس شامل متدها و پراپرتی‌های ضروری برای انجام عملیات CRUD و مدیریت تغییرات است. csharp namespace Test_Store.Application.Interfaces.Contexs { public interface IDataBaseContext { DbSet<User> Users { get; set; } DbSet<Role> Roles { get; set; } DbSet<UserInRole> UsersInRoles { get; set; } int SaveChanges(bool accaptAllChangesOnSuccess); int SaveChanges(); Task<int> SaveChangesAsync(bool accaptAllChangesOnSuccess, CancellationToken cancellationToken = new CancellationToken()); Task<int> SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken()); } } توضیحات اجزای اینترفیس DbSet<User> Users { get; set; }: یک مجموعه از موجودیت‌های User را نشان می‌دهد که از طریق اینترفیس IDataBaseContext قابل دسترسی و مدیریت هستند. DbSet<Role> Roles { get; set; }: یک مجموعه از موجودیت‌های Role را نشان می‌دهد. DbSet<UserInRole> UsersInRoles { get; set; }: یک مجموعه از موجودیت‌های UserInRole را نشان می‌دهد. int SaveChanges(bool accaptAllChangesOnSuccess);: این متد برای ذخیره تغییرات در پایگاه داده به‌صورت همزمان (synchronous) استفاده می‌شود. این متد دو پارامتر می‌پذیرد: bool acceptAllChangesOnSuccess: نشان‌دهنده اینکه آیا تمامی تغییرات باید با موفقیت اعمال شوند یا خیر. نوع بازگشتی int: تعداد رکوردهای تغییر یافته را برمی‌گرداند. int SaveChanges();: نسخه ساده‌تر متد SaveChanges بدون پارامتر. Task<int> SaveChangesAsync(bool accaptAllChangesOnSuccess, CancellationToken cancellationToken = new CancellationToken());: این متد برای ذخیره تغییرات به‌صورت غیر همزمان (asynchronous) استفاده می‌شود. این متد دو پارامتر می‌پذیرد: bool acceptAllChangesOnSuccess: نشان‌دهنده اینکه آیا تمامی تغییرات باید با موفقیت اعمال شوند یا خیر. CancellationToken cancellationToken: برای لغو عملیات استفاده می‌شود. نوع بازگشتی Task<int>: یک Task که تعداد رکوردهای تغییر یافته را برمی‌گرداند. Task<int> SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken());: نسخه ساده‌تر متد SaveChangesAsync بدون پارامتر acceptAllChangesOnSuccess. نتیجه‌گیری این کد به شما امکان می‌دهد تا تعاملات با پایگاه داده را به صورت استاندارد و قابل گسترش تعریف کنید. با استفاده از این اینترفیس می‌توانید تغییرات را ذخیره کنید و موجودیت‌ها را مدیریت کنید.