بعد از ایجاد پروژه در Net. لازم بود برای من تا بتوانم از دستورات commandline برای مدیریت پروژه razor pageاستفاده کنم، بعد از جرای پروژه دو نوع دستور ره اجرا خواهم کرد دستوراتی که فقط لازم است یک بار اجرا کنم و دستوراتی که در هر پروژه اجرا میکنم
برای ایجاد پروژه در VS code من برای کل پروژه از کد های لینک صفحه زیر استفاده میکنم.
create project
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet tool install --global dotnet-ef
دو دستور بالا به صورت عمومی دو پکیج را نصب مبکند و در صورتی که یک بار نصب کنید برای دیگر پروژه ها نیاز نیست تا دوباره نصب کنبد.
برای ایجاد پروژه ها repo و models از نوع class library هستند پس برای ایجاد آنها دستور
Dotnet new classlib
استفاده میکنم و برای ایجاد پروژه وب :
dotnet new webapp
dotnet restore
در پروژه model این پکیجها را نصب میکنم
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore
dotnet add Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
البته یاد آوری کنم در پروژه ها از sqlserver استفاده میکنم به همین دلیل پکیج Sqlserver اضافه کردم
خود به صورت موازی پروژ ها را ه sln پروژه متصل میکنیم و به صورت سری model را یه repo و repo را به web وصل میکنیم
برای اضافه کردن همه پروژه ها به sln کد زیر استفاده کردم
dotnet sln todo.sln add **/*.csproj
برای اضافه کردن پروژه ها به صورت سری به هم از کد زیر استفاده میکنم
dotnet add reference ../Todo_Models/Todo_Models.csproj
در کد بالا من در پروژه repo هستم و پروژه model را به آن رفرنس دادم
و اگر در root پروژه باشم برای ارجاع از کد بالا با تغییر کوچکی استفاده خواهم کرد به صورت زیر خواهد بود
dotnet add Todo_Repo/todo_Repo.scproj reference ../Todo_Models/Todo_Models.csproj
و اگر در root پروژه هستید ازاین نمونه استفاده کنید(نمونه کد سایت ماکروسافت)
dotnet add app/app.csproj reference lib/lib.csproj
الیته میتوانید این کد را به صورت دستی به فایل پروژه های که قرار هست رفرنس را دریافت کند اضافه کنید
<ItemGroup>
<ProjectReference Include="..\Dach_Models\Dach_Models.csproj" />
</ItemGroup>
با استفاده از دستور کد زیر لیست تمام فایلخایی که میتوانید جهت Identity استفاده کنید را میبیند
dotnet aspnet-codegenerator identity -lf
Account._StatusMessage
Account.AccessDenied
Account.ConfirmEmail
Account.ConfirmEmailChange
Account.ExternalLogin
Account.ForgotPassword
Account.ForgotPasswordConfirmation
Account.Lockout
Account.Login
Account.LoginWith2fa
Account.LoginWithRecoveryCode
Account.Logout
Account.Manage._Layout
Account.Manage._ManageNav
Account.Manage._StatusMessage
Account.Manage.ChangePassword
Account.Manage.DeletePersonalData
Account.Manage.Disable2fa
Account.Manage.DownloadPersonalData
Account.Manage.Email
Account.Manage.EnableAuthenticator
Account.Manage.ExternalLogins
Account.Manage.GenerateRecoveryCodes
Account.Manage.Index
Account.Manage.PersonalData
Account.Manage.ResetAuthenticator
Account.Manage.SetPassword
Account.Manage.ShowRecoveryCodes
Account.Manage.TwoFactorAuthentication
Account.Register
Account.RegisterConfirmation
Account.ResendEmailConfirmation
Account.ResetPassword
Account.ResetPasswordConfirmation
dotnet add package Microsoft.AspNetCore.Identity.UI
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
dotnet aspnet-codegenerator identity -dc MyProject.Models.MyProjectContext --files "Account.Register;Account.Login;Account.Logout;Account.RegisterConfirmation"
add razor file in admin area with CRUD
dotnet aspnet-codegenerator razorpage -m Post -dc Devex.Model.DevexContext -udl -outDir Areas/admin/Pages/posts --referenceScriptLibraries