The Road 2 Financial Freedom (edit)

MIT License

https://lptech.asia/kien-thuc/cac-giay-phep-ma-nguon-mo-pho-bien

  • Được phát hành bởi Massachusetts Institute of Technology (MIT).
  • Nội dung license : https://opensource.org/licenses/MIT
  • Giấy phép MIT là loại giấy phép cho phép sử dụng mã nguồn tự do nhất, nó có thể kết hợp với các mã nguồn khác và đảm bảo tương thích theo điều kiện của mọi loại giấy phép khác.
  • Với giấy phép MIT bạn có thể sử dụng, sao chép, sửa đổi, hợp nhất, xuất bản, phân phối và/hoặc bán các bản sao của phần mềm mà không vi phạm bản quyền. Bạn chỉ cần tuân thủ điều kiện duy nhất sau:
    • Thông báo bản quyền và thông báo cho phép của phần mềm gốc sử dụng giấy phép MIT sẽ phải bao gồm trong tất cả các bản sao hoặc phần quan trọng của phần mềm.

Refer: https://manhng.com/tags/adminlte

And: https://github.com/ColorlibHQ/AdminLTE/releases

AdminLTE Template

https://marketplace.visualstudio.com/items?itemName=c0shea.AdminLTETemplate

https://github.com/c0shea/AdminLTE-Template/releases

https://github.com/c0shea/AdminLTE-Template

https://manhng.com/archive/adminlte/

Features:

+ Chat with Twiliohttps://github.com/TwilioDevEd/twiliochat-csharp

+ Chat with Signalrhttps://github.com/stackmanoj/chatapp

+ Chat with Signalr in ASP.NET Core 3.1: https://github.com/Ibro/SignalRSimpleChat

+ Dashboard with AdminLTEhttps://github.com/ColorlibHQ/AdminLTE/releases/tag/v2.4.9

Frameworks & Tools

+ Microsoft .NET Framework 4.5

+ ASP.NET MVC 5

+ Web API 2

+ Entity Framework 6.4.4

+ SQL Server 2008 R2

+ jQuery 3.3.1

+ Bootstrap 3.4.1

+ AdminLTE 2.4.9

+ IE 11

Samples

Menu - Sidebar - Dynamic - Permission

https://www.sitepoint.com/dynamic-menu-builder-bootstrap-3-item-link/

https://seegatesite.com/how-to-create-user-permissions-view-to-dynamic-sidebar-menu-adminlte/

https://seegatesite.com/creating-dynamic-sidebar-menu-with-mysql-and-adminlte-bootstrap-template/

https://seegatesite.com/create-dynamic-sidebar-multilevel-menu-in-adminlte-with-mysql-php-and-pdo/

https://stackoverflow.com/questions/17383447/how-to-make-dynamic-menu-based-on-role-in-nested-master-page-asp-net-mvc-4

  1. Create login page – Tutorial Build PHP Point Of Sale Part 1.
  2. Create Dynamic Menu and Dashboard Page -PHP Point Of Sale Tutorial Part 2.
  3. Create Master User Form – PHP Point Of Sale Tutorial Part 3
  4. Create Master Item / Product Form – PHP Point Of Sale Tutorial Part 4
  5. Create Sales Form / Point of sale – PHP Point Of Sale Tutorial Part 5

Treeview - jsTree

https://www.c-sharpcorner.com/article/c-treeview-to-mvc-razor-view/

Full Calendar

https://www.c-sharpcorner.com/article/asp-net-mvc5-full-calendar-jquery-plugin/

Dashboard Application

https://www.c-sharpcorner.com/article/dashboard-application-with-asp-net-mvc-5-and-jquery/

HTML - Navs - Tabs

https://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-navs.php

https://bootsnipp.com/tags/tabs

Fix errors

+ Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

Project Demo

https://drive.google.com/file/d/1KPBmXdsjX4o1cqnjJawTW66Buu-B6sfi/ (manhng83@gmail.com)

D:\Projects\TheRoadToFinacialFreedom\TheRoadToFinacialFreedom\TheRoadToFinacialFreedom.csproj

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{899B4AE5-B185-4ED7-A5E8-1841D9BF4F7C}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TheRoadToFinacialFreedom</RootNamespace>
<AssemblyName>TheRoadToFinacialFreedom</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Web" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.Services" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Reference Include="Antlr3.Runtime, Version=3.5.0.2, Culture=neutral, PublicKeyToken=eb42632606e9261f, processorArchitecture=MSIL">
<HintPath>..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure">
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.5.11\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="RouteJs, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RouteJs.Mvc5.2.2.0\lib\net45\RouteJs.dll</HintPath>
</Reference>
<Reference Include="RouteJs.Mvc5, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\RouteJs.Mvc5.2.2.0\lib\net45\RouteJs.Mvc5.dll</HintPath>
</Reference>
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
<HintPath>..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebHelpers.Mvc5, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WebHelpers.Mvc5.2.1.0\lib\net45\WebHelpers.Mvc5.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Global.asax" />
<Content Include="Web.config" />
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<Compile Include="Models\BaseEntity.cs" />
<Compile Include="Models\MyDbContext.cs" />
<Compile Include="Models\MyDBInitializer.cs" />
<Compile Include="Models\User.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />
<Content Include="Content\css\AdminLTE.css" />
<Content Include="Content\css\AdminLTE.min.css" />
<Content Include="Content\css\bootstrap-datepicker3.min.css" />
<Content Include="Content\css\bootstrap-select.css" />
<Content Include="Content\css\bootstrap-select.min.css" />
<Content Include="Content\css\bootstrap.min.css" />
<Content Include="Content\css\font-awesome.min.css" />
<Content Include="Content\css\icheck\aero.css" />
<Content Include="Content\css\icheck\aero.min.css" />
<Content Include="Content\css\icheck\blue.css" />
<Content Include="Content\css\icheck\blue.min.css" />
<Content Include="Content\css\icheck\green.css" />
<Content Include="Content\css\icheck\green.min.css" />
<Content Include="Content\css\icheck\grey.css" />
<Content Include="Content\css\icheck\grey.min.css" />
<Content Include="Content\css\icheck\minimal.css" />
<Content Include="Content\css\icheck\minimal.min.css" />
<Content Include="Content\css\icheck\orange.css" />
<Content Include="Content\css\icheck\orange.min.css" />
<Content Include="Content\css\icheck\pink.css" />
<Content Include="Content\css\icheck\pink.min.css" />
<Content Include="Content\css\icheck\purple.css" />
<Content Include="Content\css\icheck\purple.min.css" />
<Content Include="Content\css\icheck\red.css" />
<Content Include="Content\css\icheck\red.min.css" />
<Content Include="Content\css\icheck\yellow.css" />
<Content Include="Content\css\icheck\yellow.min.css" />
<Content Include="Content\css\skins\skin-black-light.css" />
<Content Include="Content\css\skins\skin-black-light.min.css" />
<Content Include="Content\css\skins\skin-black.css" />
<Content Include="Content\css\skins\skin-black.min.css" />
<Content Include="Content\css\skins\skin-blue-light.css" />
<Content Include="Content\css\skins\skin-blue-light.min.css" />
<Content Include="Content\css\skins\skin-blue.css" />
<Content Include="Content\css\skins\skin-blue.min.css" />
<Content Include="Content\css\skins\skin-green-light.css" />
<Content Include="Content\css\skins\skin-green-light.min.css" />
<Content Include="Content\css\skins\skin-green.css" />
<Content Include="Content\css\skins\skin-green.min.css" />
<Content Include="Content\css\skins\skin-purple-light.css" />
<Content Include="Content\css\skins\skin-purple-light.min.css" />
<Content Include="Content\css\skins\skin-purple.css" />
<Content Include="Content\css\skins\skin-purple.min.css" />
<Content Include="Content\css\skins\skin-red-light.css" />
<Content Include="Content\css\skins\skin-red-light.min.css" />
<Content Include="Content\css\skins\skin-red.css" />
<Content Include="Content\css\skins\skin-red.min.css" />
<Content Include="Content\css\skins\skin-yellow-light.css" />
<Content Include="Content\css\skins\skin-yellow-light.min.css" />
<Content Include="Content\css\skins\skin-yellow.css" />
<Content Include="Content\css\skins\skin-yellow.min.css" />
<Content Include="Content\css\skins\_all-skins.css" />
<Content Include="Content\css\skins\_all-skins.min.css" />
<Content Include="Content\fonts\fontawesome-webfont.eot" />
<Content Include="Content\fonts\fontawesome-webfont.svg" />
<Content Include="Content\fonts\fontawesome-webfont.ttf" />
<Content Include="Content\fonts\fontawesome-webfont.woff" />
<Content Include="Content\fonts\fontawesome-webfont.woff2" />
<Content Include="Content\fonts\FontAwesome.otf" />
<Content Include="Content\fonts\glyphicons-halflings-regular.eot" />
<Content Include="Content\fonts\glyphicons-halflings-regular.svg" />
<Content Include="Content\fonts\glyphicons-halflings-regular.ttf" />
<Content Include="Content\fonts\glyphicons-halflings-regular.woff" />
<Content Include="Content\fonts\glyphicons-halflings-regular.woff2" />
<Content Include="Content\img\user.jpg" />
<Content Include="Content\img\icheck\aero.png" />
<Content Include="Content\img\icheck\aero@2x.png" />
<Content Include="Content\img\icheck\blue.png" />
<Content Include="Content\img\icheck\blue@2x.png" />
<Content Include="Content\img\icheck\green.png" />
<Content Include="Content\img\icheck\green@2x.png" />
<Content Include="Content\img\icheck\grey.png" />
<Content Include="Content\img\icheck\grey@2x.png" />
<Content Include="Content\img\icheck\minimal.png" />
<Content Include="Content\img\icheck\minimal@2x.png" />
<Content Include="Content\img\icheck\orange.png" />
<Content Include="Content\img\icheck\orange@2x.png" />
<Content Include="Content\img\icheck\pink.png" />
<Content Include="Content\img\icheck\pink@2x.png" />
<Content Include="Content\img\icheck\purple.png" />
<Content Include="Content\img\icheck\purple@2x.png" />
<Content Include="Content\img\icheck\red.png" />
<Content Include="Content\img\icheck\red@2x.png" />
<Content Include="Content\img\icheck\yellow.png" />
<Content Include="Content\img\icheck\yellow@2x.png" />
<Content Include="Content\js\adminlte.js" />
<Content Include="Content\js\init.js" />
<Content Include="Content\js\plugins\bootstrap\bootstrap.js" />
<Content Include="Content\js\plugins\bootstrap\bootstrap.min.js" />
<Content Include="Content\js\plugins\bootstrap-select\bootstrap-select.js" />
<Content Include="Content\js\plugins\bootstrap-select\bootstrap-select.min.js" />
<Content Include="Content\js\plugins\datepicker\bootstrap-datepicker.js" />
<Content Include="Content\js\plugins\datepicker\bootstrap-datepicker.min.js" />
<Content Include="Content\js\plugins\fastclick\fastclick.js" />
<Content Include="Content\js\plugins\fastclick\fastclick.min.js" />
<Content Include="Content\js\plugins\icheck\icheck.js" />
<Content Include="Content\js\plugins\icheck\icheck.min.js" />
<Content Include="Content\js\plugins\inputmask\jquery.inputmask.bundle.js" />
<Content Include="Content\js\plugins\inputmask\jquery.inputmask.bundle.min.js" />
<Content Include="Content\js\plugins\jquery\jquery-3.3.1.js" />
<Content Include="Content\js\plugins\jquery\jquery-3.3.1.min.js" />
<Content Include="Content\js\plugins\moment\moment.js" />
<Content Include="Content\js\plugins\moment\moment.min.js" />
<Content Include="Content\js\plugins\slimscroll\jquery.slimscroll.js" />
<Content Include="Content\js\plugins\slimscroll\jquery.slimscroll.min.js" />
<Content Include="Content\js\plugins\validator\validator.js" />
<Content Include="Content\js\plugins\validator\validator.min.js" />
<Content Include="Views\web.config" />
<Content Include="Views\_ViewStart.cshtml" />
<Content Include="Views\Error\InternalServerError.cshtml" />
<Content Include="Views\Error\NotFound.cshtml" />
<Content Include="Views\Home\Index.cshtml" />
<Content Include="Views\Shared\_ControlSidebar.cshtml" />
<Content Include="Views\Shared\_Header.cshtml" />
<Content Include="Views\Shared\_Layout.cshtml" />
<Content Include="Views\Shared\_Sidebar.cshtml" />
</ItemGroup>
<ItemGroup>
<Compile Include="App_Start\BundleConfig.cs" />
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="Controllers\ErrorController.cs" />
<Compile Include="Controllers\HomeController.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target> -->
</Project>

Articles

https://codingblast.com/entity-framework-core-generic-repository/

https://code-maze.com/aspnetcore-webapi-best-practices/

https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96

https://thecodebuzz.com/filters-in-net-core-best-practices/

https://codingblast.com/asp-net-core-best-practices/

https://codingblast.com/asp-net-core-best-practices-2/