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

自建购物网站多少钱广东网站备案系统

自建购物网站多少钱,广东网站备案系统,wordpress 国产评论插件,整网站代码 带数据 免费 下载文章目录 前言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.pierceye.com/news/848487/

相关文章:

  • 学交互设计网站企业网站建设要多久
  • 免费情感网站哪个好有没有帮忙做标书的网站
  • 申请域名需要多久大连seo顾问
  • 舟山外贸建站公司做文案选图片素材的网站
  • 网站开发从何学起公司网站在哪里做
  • 无锡网站制作哪家有名金华安全网站建设怎么收费
  • dw做响应式网站重庆黄埔建设集团网站
  • 做系统那个网站好wordpress添加返回顶部
  • 站网站推广汕头网站建设和运营
  • 免费注册网页的网站中原彼得堡航空学院网站的建设
  • 青岛高端网站制作公司可做笔记的阅读网站
  • 区网站建设有域名后怎样做网站
  • 加强网站基础建设推广app的平台
  • 全球访问量最大的网站排名中国贸易公司100强
  • 衡水市网站制作有没有专门做儿童房的网站
  • 网站建设如何做报价网络工程师考试时间
  • wordpress建公司网站ftp转换wordpress
  • 网站开发 公司简介网站开发工具有哪些
  • 阿里云备案 网站备案域名购买河南洛阳网络公司
  • 工会网站建设请示怎么做属于自己的售卡网站
  • 怎么用ftp工具上传网站源码极速网站建设定制多少钱
  • 文山网站建设哪家好网站开发需要会的东西
  • ie9网站后台编辑器网络公司办公室图片
  • 山西格泰网站建设空间商网站
  • 做网站建设哪家便宜python 做电商网站
  • 网站项目ppt怎么做网络销售推广平台
  • 网站推广营销策略一级a做爰片免费网站 小说
  • 音乐网站排名室内设计基础知识点
  • 毕业设计音乐网站开发背景网站内容怎么修改
  • 风琴折叠图片效果网站宁波seo托管公司