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

下载中心网站开发什么是互联网推广

下载中心网站开发,什么是互联网推广,怎么做抽奖网站,房地产设计师文章目录 前言Github项目地址#xff0c;包含模板文件后期思考补充项目设置编写失误环境visual studio 配置详细的配置看我这篇文章 Nuget 推荐NewtonSoft 成功Bogus 成功Github文档地址随机生成构造器生成构造器接口(推荐) 文件夹设置Nlog 成功#xff01;Nlog.configNlogHe… 文章目录 前言Github项目地址包含模板文件后期思考补充项目设置编写失误环境visual studio 配置详细的配置看我这篇文章 Nuget 推荐NewtonSoft 成功Bogus 成功Github文档地址随机生成构造器生成构造器接口(推荐) 文件夹设置Nlog 成功Nlog.configNlogHelper.csNloghelper使用测试 FreeSql 以Sqlite为例FreeSql官方文档sqlite3 安装CodeFrist则不需要安装。我这里用CodeFrist生成Sqlite数据库文件这里我取名为sqliteDb.dbNuget引入FreeSql核心和FreeSql的Sqlite支持FreeSqlHelper CodeFrist模式T_ModelBase 数据库基类Bogus随机生成T_Person数据库插入类我习惯用T开头带表数据库实体 连接插入查询测试使用 GD_Extension项目打包用于复用Icon封面准备visual studio 导出 Github项目地址包含模板文件总结 前言 我们学编程不要重复造工具。我之所以使用C# 开发Godot 而不是Unity。很大的原因就是Godot.NET 支持Nuget的导入因为Nuget是.NET Core 的第三方库。我也将Godot 的Visual Studio 项目的.NET 版本强制升级到的.NET Core 8.0版本目前还没有任何问题。 Github项目地址包含模板文件 Gclove2000/GodotNet_Csharp_IOC_SimpleTemplate 后期思考补充 我将项目分成3层从上到下是 Godot只是单纯挂载脚本GD_Program负责游戏逻辑GD_Extension通用的工具类 但是我后面想了一下游戏逻辑也有部分是可以通用的所以我感觉我的三层构造应该是存在过度封装了。两层封装说不定好一些。我后面打算先用两层封装好一点。等后面项目复杂度上来之后再细分好了。 项目设置 编写失误 我写到后面的时候发现Interfaces应当放在GD_Extension中。读者记得修改 环境 window 10.net core 8.0godot 4.2.1visual studio 2022 visual studio 配置 GD_Extesion:Godot工具类后面用于导出 Assests:资源文件夹Utils:工具类Interfaces接口类 GD_Program:Godot运行逻辑 SceneModels:场景脚本实际运行类IOC装配生成Services:服务类Program.cs:IOC容器位置 GodotGodot引擎生成解决方案 Scene:挂载脚本只用于建立脚本连接关系 详细的配置看我这篇文章 Godot 学习笔记(5)彻底的项目工程化解决GodotProjectDir is null工程化范例 Nuget 推荐 Nuget介绍Newtonsoft.Json高性能Json序列化库Bogus随机测试数据生成比如随机数据随机人民地名手机号账号密码Microsoft.Extensions.DependencyInjection微软IOC框架个人推荐Autofac第三方IOC 框架性能也不错Nlog日志管理FreeSql数据库ORM框架个人推荐SqlSugar数据库ORM框架一般来说够用了游戏开发也不是高频并发操作MiniExcelExcel ORM框架简易操作。建议使用CSVMicrosoft.AspNetCore.SignalR.Common微软开发即时通讯框架用于解决多人联网Grpc谷歌开发的即使通讯框架用于解决多人联网 NewtonSoft 成功 //以匿名对象为例 GD.Print(JsonConvert.SerializeObject(new {Name 小王,Age 24 }));Bogus 成功 Github文档地址 Bugous Github文档地址 随机生成 //以随机数为例 var faker new Faker(); for(var i 0; i 10; i) {GD.Print($Bogus,int 0-10:[{faker.Random.Int(0, 10)}]); }构造器生成 public class MyStudent {public int Id { get; set; }public string? Name { get; set; }public int Age { get; set; }/// summary/// 构建faker构造器/// /summarypublic static FakerMyStudent Faker new FakerMyStudent().RuleFor(tt.Id,ff.IndexFaker).RuleFor(tt.Name,ff.Name.FindName()).RuleFor(tt.Age,ff.Random.Int(10,30));}//以构造器为例 for (var i 0; i 10; i) {var stu MyStudent.Faker.Generate();GD.Print($Bogus:[{JsonConvert.SerializeObject(stu)}]); }构造器接口(推荐) 个人建议上个接口更规范一点 public interface IModelFakerT where T : class {public T FakerOne();public IEnumerableT FakeMany(int num); }public class MyStudent : IModelFakerMyStudent {public int Id { get; set; }public string? Name { get; set; }public int Age { get; set; }/// summary/// 构建faker构造器/// /summaryprivate FakerMyStudent faker new FakerMyStudent().RuleFor(t t.Id, f f.IndexFaker).RuleFor(t t.Name, f f.Name.FindName()).RuleFor(t t.Age, f f.Random.Int(10, 30));public MyStudent FakerOne(){return faker.Generate();}public IEnumerableMyStudent FakeMany(int num){return faker.Generate(num);} }文件夹设置 因为后面会涉及到文件夹的设置问题我这里简单说明一下 添加配置 Visual Studio C# 项目生成时复制项目资源目录到生成目录 Nlog 成功 Nlog.config ?xml version1.0 encodingutf-8 ? nlog xmlnshttp://www.nlog-project.org/schemas/NLog.xsdxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance targets!--将Debug导出为每小时一个--target namedebugxsi:typeFilefileName${basedir}/Logs/${date:formatyyyy}/${date:formatMM}/${date:formatdd}/${date:formatHH}.loglayout${date:formatyyyy-MM-dd HH\:mm\:ss} [${uppercase:${level}}] : ${message} /!--将Error导出为每天一个而且存放在一个Error文件夹中--target nameerrorxsi:typeFilefileName${basedir}/Logs/${date:formatyyyy}/${date:formatMM}/Error/${date:formatdd}.loglayout${date:formatyyyy-MM-dd HH\:mm\:ss} [${uppercase:${level}}] : ${message} //targetsruleslogger name*minlevelDebugwriteTodebug /logger name*minlevelErrorwriteToerror //rules /nlog NlogHelper.cs Godot的输出比较特别需要特别处理一下 public class NlogHelper {private Logger logger;public NlogHelper(){var url string.Format({0}Assests/NLog.config, AppDomain.CurrentDomain.BaseDirectory.ToString());GD.Print($Nlog加载完毕url地址为[{url}]);LogManager.Configuration new XmlLoggingConfiguration(url);logger NLog.LogManager.GetCurrentClassLogger();}public void Debug(string msg){GD.Print(msg);logger.Debug(msg);}public void Info(string msg){GD.Print($[info]:{msg});logger.Info(msg);}public void Error(string msg){GD.PrintErr(msg);GD.PushError(msg);logger.Error(msg);}public void Warning(string msg){GD.Print($[warning]:{msg});GD.PushWarning(msg);logger.Warn(msg);} }Nloghelper使用 测试 nlogHelper.Debug(Debug); nlogHelper.Info(Info); nlogHelper.Warning(Warning); nlogHelper.Error(Error);FreeSql 以Sqlite为例 FreeSql官方文档 FreeSql官方文档 sqlite3 安装CodeFrist则不需要安装。我这里用CodeFrist SQLite 安装 生成Sqlite数据库文件这里我取名为sqliteDb.db sqlite3 sqliteDb.db .open sqliteDb.dbNuget引入FreeSql核心和FreeSql的Sqlite支持 FreeSqlHelper CodeFrist模式 C# FreeSql使用基于Sqlite的DB Frist和Code First测试 T_ModelBase 数据库基类Bogus随机生成 /// summary /// 基类 /// /summary public abstract class T_ModelBase {/// summary/// 主键自增/// /summary[Column(IsPrimary true,IsIdentity true)]public long Id { get; set; }/// summary/// 创建时间/// /summarypublic DateTime CreateTime { get; set; } DateTime.Now;/// summary/// 更新时间/// /summarypublic DateTime UpdateTime { get; set; } DateTime.Now;/// summary/// 假删除/// /summarypublic bool IsDelete { get; set; } false;public DateTime DeleteTime { get; set; } }T_Person数据库插入类我习惯用T开头带表数据库实体 public class T_Person : T_ModelBase, IModelFakerT_Person {public int Age { get; set; }public string Name { get; set; }private FakerT_Person faker new FakerT_Person().RuleFor(t t.Id, f f.IndexFaker).RuleFor(t t.CreateTime, f f.Date.Between(new DateTime(2024, 1, 1), DateTime.Now)).RuleFor(t t.Name, f f.Name.FindName()).RuleFor(t t.Age, f f.Random.Int(10, 30));public IEnumerableT_Person FakeMany(int num){return faker.Generate(num);}public T_Person FakerOne(){return faker.Generate();} } 连接插入查询测试使用 var isConnect freeSqlHelper.SqliteDb.Ado.ExecuteConnectTest(10); GD.Print($数据库连接状态:[{isConnect}]);var insertLists new T_Person().FakeMany(10);var insertName freeSqlHelper.SqliteDb.Insert(insertLists).ExecuteAffrows(); GD.Print($数据库插入[{insertName}]行数据);var selectLists freeSqlHelper.SqliteDb.QueryableT_Person().OrderByDescending(tt.Id).Take(10).ToList();foreach (var item in selectLists) {GD.Print(JsonConvert.SerializeObject(item)); }GD_Extension项目打包用于复用 我写到后面的时候发现Interfaces应当放在GD_Extension中。读者记得修改 Icon封面准备 【VisualStudio 】VisualStudio2022 项目模板 准备一个Godot Icon的图片用于封面展示 visual studio 导出 Github项目地址包含模板文件 Gclove2000/GodotNet_Csharp_IOC_SimpleTemplate 总结 我这里就是简单引入了几个通用的Nuget这个我后期是会日常去维护的。这个就是我们的脚手架了。而且我在GD_Extension中尽量少的使用Godot的Api。基本只使用了Godot Api 的输出语句。所以这个随着Godot 版本的更新基本不需要大改。这个以后就是我们宝贵的Godot资源库了。
http://www.dnsts.com.cn/news/41043.html

相关文章:

  • 网站开发常用图标 图像东莞手机网站
  • 如何选择百度网站优化公司昆山高端网站建设
  • 北京建设局网站首页国外花型设计网站
  • 自己建设一个平台网站多少钱myeclipse做网站更改名字
  • 专门做985招聘信息的网站有什么做任务的网站
  • 巴中建设银行网站尼乐清网站建设
  • 手机商城+手机网站建设多少钱百度网盘网页版登录首页
  • 金华企业做网站十大广告联盟
  • 江西中耀建设集团有限公司网站广东监理建设协会网站
  • 网站的备案流程wordpress 动态缓存
  • 湖南网站建设设计网站的结构与布局优化
  • 语种网站建设个人可以建立网站吗
  • 最早的做团购的网站一般通过
  • 汕头网站制作找哪里广东传染病最新消息
  • 营销型网站案例游戏网站制作模板
  • logo网站有哪些专业创业服务平台网站建设需求
  • 制作网站后台网店美工的岗位职责
  • 自创网站南通丰汇建设有限公司公司网站
  • 西安北郊网站建设宁波网站建设团队哪家好
  • 建设专题网站网页版式设计案例
  • 太仓营销型网站建设动易网站 sql2005
  • 上饶市建设厅网站汶川县建设局网站
  • 外贸网站建设lanscend网页设计素材网站推荐
  • 开发网站比较好的公司免费源码大全无用下载
  • 佛山网站常见的问题深圳中国网站制作哪家公司好
  • 网站有哪些类型与网络公司洽谈做网站需要注意什么
  • ui做的好的公司网站做问卷调查用哪个网站好
  • 网站虚拟空间网站建设公司net2006
  • 闸北区网站建设网页厦门网站开发招聘
  • 上海建设工程检测登记的网站个体户做网站有用吗