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

阿里巴巴上怎样做自己的网站安阳信息港网站

阿里巴巴上怎样做自己的网站,安阳信息港网站,wordpress更改了数据库密码,建昌县城乡规划建设局网站友情提示#xff1a;这篇有点长#xff0c;有点绕#xff0c;加油#xff01;上一篇文章#xff0c;简单的说明了一下.net项目模板的创建#xff0c;主要是通过在项目文件*.csproj同目录下添加.template.config文件夹和里面的template.json#xff0c;再用dotnet new -i… 友情提示这篇有点长有点绕加油上一篇文章简单的说明了一下.net项目模板的创建主要是通过在项目文件*.csproj同目录下添加.template.config文件夹和里面的template.json再用dotnet new -i来安装项目模板的本篇继续深入。首先定个小目标实现一个web api项目模板可以选择引入NLog库选择引入Dapper库同时希望可以选择用户权限认证方式这里假设是三种无固定角色自定义策略还可以在创建项目时输入文本信息比如作者信息上面这些输入项都是通过模板参数来实现的。其实仔细分析一下是三类参数1、判断类就是用不用这个三方库2、选择类三种授权方式中选一种3、输入文本类。同时在上一篇文章中我们是直接用源码生成模板的问题来了不可能让大家都用源码来生成本地模板这里如果能打成个包大家使用就简单多了确实微信把模板项目生成一个nupkg包可以上传到nuget.org上供其他人使用。那接来看实现步骤吧。为了大家有直观的感受我先把创建项目时需要用户录入的参数展示出来这次先看模板文件1、template.json在项目文件夹下的.template.config目录下{$schema: http://json.schemastore.org/template,author: 桂素伟,classifications: [ Common, 桂素伟模板, WebAPI, C#9 ],identity: GSW Nuget,name: GSW Nuget,shortName: GSWNuget,tags: {language: C#,type: project},sourceName: GSWNuget,symbols: {Author: {type: parameter,datatype: text,defaultValue: ,replaces: author,description: 作者},UseNLog: {type: parameter,datatype: bool,defaultValue: true,description: 是否使用NLog},UseDapper: {type: parameter,datatype: bool,defaultValue: true,description: 是否使用Dapper},AuthType: {type: parameter,datatype: choice,defaultValue: None,choices: [{choice: None,description: None},{choice: Role,description: Role},{choice: policy,description: Policy}]},None: {type: computed,value: (AuthType \None\)},Role: {type: computed,value: (AuthType \Role\)},Policy: {type: computed,value: (AuthType \Policy\)}},sources: [{modifiers: [{condition: (!UseNLog),exclude: [ NLog.config ]}]}] } sourceName: GSWNuget是项目名称。symbols下是配置模板参数UseDapperUseNLog是bool类型 让创建项目的人员来选择是否引入这些三方包。Author是输入文本类型其中的replate是要把项目文件中的所有author换成用户输入项目所以这个名称最好命名的不要那么通用。AuthType是选择权限的验证规划这里还在下面增加了三个选择项的运算结果项bool类型 NoneRolePolicy是通过用户的选择来决定具体的值。UseNLog虽然是个bool类型但是他的用途特殊在了json文件的后面有个sources这个的作用是决定NLog.config文件显示不显示在用户的项目中决定文件的存留与否。2、ide.host.json为了在IDE中显示这些值供用户输入还需要在template.json同目录下创建一个ide.host.json文件这个文件的作用就是在ide中把用户录入项友好的提示给用户同时准备了一个icon.png来给这个项目模板来充当图标它的存放位置与ide.host.json在同一级。{$schema: http://json.schemastore.org/vs-2017.3.host,icon: icon.png,symbolInfo: [{id: UseNLog,name: {text: Use NLog},isVisible: true},{id: Author,name: {text: Author},isVisible: true}, {id: UseDapper,name: {text: Use Dapper},isVisible: true}, {id: AuthType,isVisible: true}] } 3、创建web api项目GSWNuget围绕着上面三个需求展开先看program.cs文件/*********************************作者author********************************/ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; #if (UseNLog) using NLog.Web; #endifnamespace GSWNuget {public class Program{#if (UseNLog)public static void Main(string[] args){var logger NLogBuilder.ConfigureNLog(nlog.config).GetCurrentClassLogger();try{logger.Debug(init main);CreateHostBuilder(args).Build().Run();}catch (Exception exception){logger.Error(exception, Stopped program because of exception);throw;}finally{NLog.LogManager.Shutdown();}}public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup();}).ConfigureLogging(logging {// logging.ClearProviders();// logging.SetMinimumLevel(LogLevel.Trace);}).UseNLog(); #elsepublic static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup();}); #endif} } #if  #endif 是判断用户的输入决定用户项目走的分支这里是NLog的引入与不引入的分类其实不有一个点NLog的库要不要restore这个在项目文件中再说。再有一个是author最终会被展示图的GuiSuWei那个文本替换。再看一下GSWNuget.csproj同样是#if但需要在!-- --中毕竟是xml。Project SdkMicrosoft.NET.Sdk.WebPropertyGroupTargetFrameworknet5.0/TargetFrameworkVersion2.0.0/Version/PropertyGroupItemGroup!--#if (UseDapper)PackageReference IncludeDapper Version2.0.78 /#endif--PackageReference IncludeSwashbuckle.AspNetCore Version5.6.3 /PackageReference IncludeNLog.Web.AspNetCore Version4.12.0 //ItemGroup /Project 再看一下starup.cs/*********************************作者author********************************/ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks;namespace GSWNuget {public class Startup{public Startup(IConfiguration configuration){Configuration configuration;}public IConfiguration Configuration { get; }public void ConfigureServices(IServiceCollection services){ #if Nonevar authType None; #endif #if Rolevar authType Role; #endif #if Ployvar authType Ploy; #endifservices.AddControllers();services.AddSwaggerGen(c {c.SwaggerDoc(v1, new OpenApiInfo { Title GSWNuget, Version v1 });});}public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();app.UseSwagger();app.UseSwaggerUI(c c.SwaggerEndpoint(/swagger/v1/swagger.json, GSWNuget v1));}app.UseHttpsRedirection();app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints {endpoints.MapControllers();});}} } 其中的 #if None  #if Role#if Policy是选择后结果的分支对应。再看一下appsettings.json在appsettings中是在//后用#if{#if(UseDapper)//Dapper: dapper config,#endif#if(UseNLog)//LogConfig: log config,#endifLogging: {LogLevel: {Default: Information,Microsoft: Warning,Microsoft.Hosting.Lifetime: Warning}},AllowedHosts: * } 到这里项目基本准备完毕接下来就要打包成nupkg这里要用到nuget.exe(这里下载 https://www.nuget.org/downloads)通过命令把模板项目GSWNuget生成nupkgnuget.exe生成nupkg时需要一个配置文件GSWNuget.nuspec这个文件与GSWNuget项目目录在同一级别。?xml version1.0 encodingutf-8? package xmlnshttp://schemas.microsoft.com/packaging/2012/06/nuspec.xsdmetadataidGSWNuget/idversion0.0.1/versiondescription这是我用来生成Nuget格式的Templage。/descriptionauthors桂素伟/authorslicense typeexpressionMIT/licensepackageTypespackageType nameTemplate //packageTypes/metadatafilesfile srcGSWNuget\**\*.* excludeGSWNuget\**\bin\**\*.*;GSWNuget\**\obj\**\*.* targetContent //files /package 接下来执行命令 .\nuget.exe pack .\GSWNuget.nuspec -OutputDirectory .\nupkg会在nupkg下生成GSWNuget.1.0.0.nupkg文件安装GSWNuget项目模板 dotnet new -i GSWNuget.1.0.0.nupkg这里在我们的项目模板中会增加一个GSWNuget类型的项目模板。接下来是享受成果的时候了打开vs新建项目搜索GSW就可以新建自己模板的项目了。这里可以测试一下不同的选择生成的是不是想要的结果找时间做一个自己真正项目模板再分享给大家。
http://wiki.neutronadmin.com/news/188268/

相关文章:

  • 新乡网站建设设计快速做网站哪家好
  • 兴义市住房和城乡建设网站月销售wordpress 首页静态化
  • 检察内网门户网站建设泉州 网站制作
  • 一学一做教育视频网站有哪些内容自己做网站需要下载什么软件
  • 什么网站可以做告白的网页网站标题关键词堆砌
  • wordpress mould郑州网站优化推广培训
  • 小程序启动失败天津seo霸屏
  • 网站开发页面适应高度深圳品牌折扣店
  • 公司注销 网站备案做红包图片的网站
  • 网站开发投入产出分析网址大全2345一下
  • 云霄城乡建设局网站网络推广服务商排名
  • 怎么看网站空间wordpress忘记管理员
  • 网站建设客户沟通广州网站建设藤虎网络
  • 机械加工分类网站建设 seo结构
  • 做的比较好的官方网站WordPress 08影院源码
  • 做一个网站一般需要多少钱全国目前最火的加盟店
  • 网站目录怎么做301跳转怎么找客户渠道
  • 网站开发的前后端是哪些微信app下载安装到手机上
  • 通辽市城乡建设局网站菜鸟教程网站建设
  • 网站性能优化方法域名与ip地址的关系
  • 江苏做网站的公司有哪些做临床研究在哪个网站注册
  • 国外网站 dns网站聚合优化
  • anydrag建站专家网站建设系统wordpress搭建网盘
  • 网站通栏设计素材网站建设实验目的
  • 上海汽车网站建设10种营销方法
  • wordpress建博客网站旅游网站建设价格
  • 网站媒体给房开做内容推广徐州市新沂市建设局网站
  • 在微信上做彩票网站有哪些公司建设网站的案例分析
  • 网站建设运营服务商网站源码和模板的区别
  • 动漫制作专业什么电脑最适合如何做好网站针对搜索引擎的seo