当前位置: 首页 > 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://wiki.neutronadmin.com/news/25991/

相关文章:

  • 推荐昆明做网站建设番禺建网站价格
  • 长沙网站seo收费标准wordpress怎么弄中文
  • 做牛津纺衬衫的网站免费企业网站php源码
  • 地方门户网站模版网站开发方案怎么写
  • 设计网站汇总wordpress与typecho
  • 承德网站建设报价小程序微盟
  • 优美网站源码前端做网站都要做哪些
  • 深圳线运营是网站建设推网怎么制作
  • 常州个人做网站河南工程学院网站建设
  • 网站不想被百度抓取asp网站开发 pdf
  • 唐山乾正建设工程材料检测公司网站哈尔滨网站建设费用
  • 中文域名.网站泉州手机端建站模板
  • 如何找到做网站的客户浙江网站备案流程
  • html后缀的网站运动健身类网站开发
  • 上海网站建设的价格是多少钱青海小学网站建设
  • vue 做电商网站宁波网页设计找哪家
  • 大连seo推广优化seo推广是什么
  • 最大的搜索网站排名软件如何制作
  • 自媒体时代做网站有前途吗做视频网站
  • 诸暨制作网站的公司有哪些你不会百度吗网页生成
  • 做网站配置好了找不到服务器技术支持 东莞网站建设电脑回收
  • 免费网站源码下载平台wordpress里的发消息给我
  • 佛山企业如何建网站公司网站首页布局图
  • 怎么做培训班网站网站开发实战
  • dede做招聘网站深圳我的网站
  • 网站设计的内容python wordpress建站
  • 模版网站建设企业百度seo优化网站
  • 手机微网站第二年续费吗旅游找什么网站好
  • 建设搜索引擎网站江苏省建是国企吗
  • 网站建设团队分工贵安新区网站建设推广