当前位置: 首页 > news >正文

网站推广营销活动快速建站服务器

网站推广营销活动,快速建站服务器,南昌建站软件,品牌网是什么网站上一篇文章(https://www.cnblogs.com/meowv/p/12896898.html)已经成功将博客项目跑起来了#xff0c;那么本篇主要是将之前遗留的问题解决#xff0c;现在的代码看起来可能还是比较混乱#xff0c;有大量与之无关的代码存在里面#xff0c;对于强迫症患者来说真的是零容忍。… 上一篇文章(https://www.cnblogs.com/meowv/p/12896898.html)已经成功将博客项目跑起来了那么本篇主要是将之前遗留的问题解决现在的代码看起来可能还是比较混乱有大量与之无关的代码存在里面对于强迫症患者来说真的是零容忍。在程序员界总有一批强迫症患者他们希望自己写的代码看起来尽量的完美无瑕疵。完善与美化直奔主题首先将各项目层的项目文件(.csproj)打开格式化一下没有引用Import Project..\..\common.props /这句代码的也加一下这里其实就是将公共属性拿出来没什么特殊的。common.props中的代码也非常简单主要是禁用当开启输出XML的时候没有给代码进行summary注释产生的警告其实这些大可不必为之折腾不影响项目的成功运行。如果您觉得没啥必要完全可以跳过此小节看最后。.Application.Application层现在只引用Volo.Abp.Identity.Application包和依赖.Application.Caching、.Application.Contracts、.Domain.Shared三个项目。//Meowv.Blog.Application.csproj Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupItemGroupPackageReference IncludeVolo.Abp.Identity.Application Version2.7.0 /ProjectReference Include..\Meowv.Blog.Application.Caching\Meowv.Blog.Application.Caching.csproj /ProjectReference Include..\Meowv.Blog.Application.Contracts\Meowv.Blog.Application.Contracts.csproj /ProjectReference Include..\Meowv.Blog.Domain.Shared\Meowv.Blog.Domain.Shared.csproj //ItemGroup/Project .Application.Caching.Application.Caching层看名字就知道我准备用它来处理缓存这里会用到两个包Volo.Abp.Caching、Microsoft.Extensions.Caching.Redis不管三七二十一新建一个模块类MeowvBlogApplicationCachingModule.cs依赖于AbpCachingModule和我们的MeowvBlogDomainModule模块(此时还没添加)using Volo.Abp.Caching; using Volo.Abp.Modularity;namespace Meowv.Blog.Application.Caching {[DependsOn(typeof(AbpCachingModule)// ...)]public class MeowvBlogApplicationCachingModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){base.ConfigureServices(context);}} } //Meowv.Blog.Application.Caching.csproj Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupItemGroupPackageReference IncludeMicrosoft.Extensions.Caching.Redis Version2.2.0 /PackageReference IncludeVolo.Abp.Caching Version2.7.0 /ProjectReference Include..\Meowv.Blog.Application.Contracts\Meowv.Blog.Application.Contracts.csproj /ProjectReference Include..\Meowv.Blog.Domain.Shared\Meowv.Blog.Domain.Shared.csproj /ProjectReference Include..\Meowv.Blog.ToolKits\Meowv.Blog.ToolKits.csproj //ItemGroup/Project .Application.Contracts删掉里面所有文件.Application.Contracts层我不准备按照abp那样来做此层我只想用来放我们的传输对象(DTO)添加项目引用Domain.Shared同时开启输出XML文件到我们.HttpApi.Hosting输出XML很简单在 Visual Studio 中对着项目 右键属性生成输出然后选择XML文档文件默认为一个物理路径我们将其改为相对路径..\Meowv.Blog.HttpApi.Hosting\Meowv.Blog.Application.Contracts.xmlXML输出到.HttpApi.Hosting层。也可以直接修改项目文件实现如下//Meowv.Blog.Application.Contracts.csproj Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupPropertyGroup Condition$(Configuration)|$(Platform)Debug|AnyCPUDocumentationFile..\Meowv.Blog.HttpApi.Hosting\Meowv.Blog.Application.Contracts.xml/DocumentationFile/PropertyGroupItemGroupProjectReference Include..\Meowv.Blog.Domain.Shared\Meowv.Blog.Domain.Shared.csproj //ItemGroup/Project .Domain.Domain层为我们的实体领域模型不需要引用其它层只添加包Volo.Abp.Identity.Domain同时也输出一下XML文件XML文件的作用后续Swagger会用的。//Meowv.Blog.Domain.csproj Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupPropertyGroup Condition$(Configuration)|$(Platform)Debug|AnyCPUDocumentationFile..\Meowv.Blog.HttpApi.Hosting\Meowv.Blog.Domain.xml/DocumentationFile/PropertyGroupItemGroupPackageReference IncludeVolo.Abp.Identity.Domain Version2.7.0 /ProjectReference Include..\Meowv.Blog.Domain.Shared\Meowv.Blog.Domain.Shared.csproj //ItemGroup/Project 删掉此层所有文件不要忘了添加模块类MeowvBlogDomainModule.cs它依赖AbpIdentityDomainModule模块using Volo.Abp.Identity; using Volo.Abp.Modularity;namespace Meowv.Blog.Domain {[DependsOn(typeof(AbpIdentityDomainModule))]public class MeowvBlogDomainModule : AbpModule{} } 此时上面.Application.Caching中可以将MeowvBlogDomainModule加上了。//MeowvBlogApplicationCachingModule.cs ...[DependsOn(typeof(AbpCachingModule),typeof(MeowvBlogDomainModule))]public class MeowvBlogApplicationCachingModule : AbpModule{...} ... .Domain.Shared.Domain.Shared层相当于.Domain的一个扩展一样这里放一下项目用到的枚举、公共常量等内容需要引用我们的.Domain项目Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupItemGroupProjectReference Include..\Meowv.Blog.Domain\Meowv.Blog.Domain.csproj //ItemGroup/Project 还是要新增一个模块类MeowvBlogDomainSharedModule.cs它依赖AbpIdentityDomainSharedModule模块//MeowvBlogDomainSharedModule.cs using Volo.Abp.Identity; using Volo.Abp.Modularity;namespace Meowv.Blog.Domain {[DependsOn(typeof(AbpIdentityDomainModule))]public class MeowvBlogDomainModule : AbpModule{} } .EntityFrameworkCore.EntityFrameworkCore层同样的先删掉默认生成的文件。它主要是集成了EF Core自定义仓储。详细可以看看abp文档https://docs.abp.io/zh-Hans/abp/latest/Repositories它支持多种数据库 MySQL、SqlServer、PostgreSql、Sqlite等如果你有用到MongoDB则需要新建一个项目单独实现。可以看官方文档有时间可以分享具体方法本项目用不到。https://docs.abp.io/zh-Hans/abp/latest/MongoDB为了方便大家我把以上4种主流数据库都集成到项目中添加包Volo.Abp.EntityFrameworkCore.MySQL.PostgreSql、.Sqlite、.SqlServer同时引用.Domain.Shared项目//Meowv.Blog.EntityFrameworkCore.csproj Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupItemGroupPackageReference IncludeVolo.Abp.EntityFrameworkCore.MySQL Version2.7.0 /PackageReference IncludeVolo.Abp.EntityFrameworkCore.PostgreSql Version2.7.0 /PackageReference IncludeVolo.Abp.EntityFrameworkCore.Sqlite Version2.7.0 /PackageReference IncludeVolo.Abp.EntityFrameworkCore.SqlServer Version2.7.0 /ProjectReference Include..\Meowv.Blog.Domain.Shared\Meowv.Blog.Domain.Shared.csproj //ItemGroup/Project 新建一个模块类MeowvBlogFrameworkCoreModule.cs依赖MeowvBlogDomainModule和数据库模块//MeowvBlogFrameworkCoreModule.cs using Meowv.Blog.Domain; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.MySQL; using Volo.Abp.EntityFrameworkCore.PostgreSql; using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.EntityFrameworkCore.SqlServer; using Volo.Abp.Modularity;namespace Meowv.Blog.EntityFrameworkCore {[DependsOn(typeof(MeowvBlogDomainModule),typeof(AbpEntityFrameworkCoreModule),typeof(AbpEntityFrameworkCoreMySQLModule),typeof(AbpEntityFrameworkCoreSqlServerModule),typeof(AbpEntityFrameworkCorePostgreSqlModule),typeof(AbpEntityFrameworkCoreSqliteModule))]public class MeowvBlogFrameworkCoreModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){}} } .EntityFrameworkCore.DbMigrations.EntityFrameworkCore.DbMigrations层主要做数据库迁移用code-first方式创建数据库表先删掉默认生成的文件目前还用不上后面讲。.ToolKits.ToolKits层是我们手动创建的项目我主要用它来包装一些扩展方法公共的工具类。Swagger登场做.net core开发的相信Swagger的使用大家应该都很熟悉了不做过多的介绍今天只先将其用上看看效果。我单独为Swagger新建了一个项目Meowv.Blog.Swagger其实大可不必直接写在.HttpApi.Hosting中也是一样的。添加Volo.Abp.AspNetCore和Swashbuckle.AspNetCore包引用实体层.Domain。//Meowv.Blog.Swagger.csproj Project SdkMicrosoft.NET.SdkImport Project..\..\common.props /PropertyGroupTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroupItemGroupPackageReference IncludeVolo.Abp.AspNetCore Version2.7.0 /PackageReference IncludeSwashbuckle.AspNetCore Version5.4.1 /ProjectReference Include..\Meowv.Blog.Domain\Meowv.Blog.Domain.csproj //ItemGroup/Project 添加模块类MeowvBlogSwaggerModule.cs依赖MeowvBlogDomainModule模块并且重写ConfigureServices和OnApplicationInitialization方法不知道这是什么的可以看文档https://docs.abp.io/zh-Hans/abp/latest/Module-Development-Basics然后新建一个扩展类MeowvBlogSwaggerExtensions.cs编写两个扩展方法AddSwagger和UseSwaggerUI。在AddSwagger方法中引用我们的XML文件配置接口的名称版本以及描述信息在UseSwaggerUI方法中使用SwaggerUI代码如下//MeowvBlogSwaggerExtensions.cs using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.OpenApi.Models; using System; using System.IO;namespace Meowv.Blog.Swagger {public static class MeowvBlogSwaggerExtensions{public static IServiceCollection AddSwagger(this IServiceCollection services){return services.AddSwaggerGen(options {options.SwaggerDoc(v1, new OpenApiInfo{Version 1.0.0,Title 我的接口啊,Description 接口描述});options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, Meowv.Blog.HttpApi.xml));options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, Meowv.Blog.Domain.xml));options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, Meowv.Blog.Application.Contracts.xml));});}public static void UseSwaggerUI(this IApplicationBuilder app){app.UseSwaggerUI(options {options.SwaggerEndpoint($/swagger/v1/swagger.json, 默认接口);});}} } 随后便可以在模块MeowvBlogDomainModule中引用了//MeowvBlogSwaggerModule.cs using Meowv.Blog.Domain; using Microsoft.AspNetCore.Builder; using Volo.Abp; using Volo.Abp.Modularity;namespace Meowv.Blog.Swagger {[DependsOn(typeof(MeowvBlogDomainModule))]public class MeowvBlogSwaggerModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){context.Services.AddSwagger();}public override void OnApplicationInitialization(ApplicationInitializationContext context){context.GetApplicationBuilder().UseSwagger().UseSwaggerUI();}} } 最后在.HttpApi.Hosting层的的启动模块中引用一下。//MeowvBlogHttpApiHostingModule.cs ...[DependsOn(typeof(AbpAspNetCoreMvcModule),typeof(AbpAutofacModule),typeof(MeowvBlogHttpApiModule),typeof(MeowvBlogSwaggerModule),typeof(MeowvBlogFrameworkCoreModule))]public class MeowvBlogHttpApiHostingModule : AbpModule{...} ... Ctrl Shift B生成解决方案CtrlF5打开 .../swagger/index.html 看看效果上面有一个坑没有填不知道大家发现了没有Meowv.Blog.HttpApi.xml没有生成启动是是会报错的大家按照之前的方法自行生成XML即可。棒预期已经达到了。Swagger之所以想单独创建一个项目是因为还涉及到很多内容如接口分组、JWT授权、还有Swagger文档描述信息的Filter等。项目中还剩下.BackgroundJobs层没有处理此层准备集成Hangfire做一个定时任务处理的后面会慢慢用起来的。现在再回头看看项目是不是很清爽? 没有乱七八糟的东西有的只是我们需要的。此时的层级目录以供参考。项目中可能有许多不是很合理的地方请酌情参考。因为大佬们都不愿意出来分享所以我们渣渣只能做到这种程度如果有错误欢迎指正谢谢。开源地址https://github.com/Meowv/Blog/tree/blog_tutorial
http://www.zqtcl.cn/news/130044/

相关文章:

  • 哈尔滨网站建设效果好网站改版 影响google 404跳首页
  • 廊坊网站推广的公司如何做1个手机网站
  • 网站index.php被修改南京cms建站系统
  • 淘宝网站模板是什么做的北海建设厅网站
  • 我想建个网站想做电商应该怎么入门
  • 广州番禺网站制作推广网站建设徐州百度网络网站
  • 有没有个人做网站的新网站做seo 的效果
  • 做网站和app哪个简单旅游资讯网站建设方案
  • 网站建设考级百度怎样可以搜到自己的网站
  • 自助建站免费自助建站网站广州企业网站
  • 常德论坛尚一网唐山seo网络推广
  • 网站建设预付流程网站设计风格的关键词
  • 常德网站制作怎么做自己的网页
  • 做的网站为什么图片看不了wordpress循环该分类子分类
  • 源码出售网站怎么做一个产品的网络营销方案
  • 安丘营销型网站建设国外教育网站模板
  • 做网站案例百度小说排行榜前十
  • 东昌网站建设公司上传到网站去的文档乱码
  • 如何制作自己的网站链接教程网络营销seo招聘
  • 网站制作资料收集wordpress资源网模板
  • 随州网站设计开发服务做网站制作步骤
  • 东莞凤岗做网站黄山旅游攻略住宿
  • 网站开发常用插件免费库存管理软件哪个好
  • 河池网站开发工程师招聘网如何做品牌运营与推广
  • 做网站运营难吗零基础网站建设教程
  • 深圳蚂蚁网络网站建设wordpress电影主题
  • 网站域名收费吗搜索引擎不收录网站
  • 海兴网站建设价格wordpress替代软件
  • 做网站哪家服务器好小区物业管理系统
  • 上海推广网站公司网站建设首选