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

网站建设制作一个网站的费用做钉子出口哪个网站好

网站建设制作一个网站的费用,做钉子出口哪个网站好,遵义直播遵义新闻官网,国人在线做网站系列文章基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客#xff1f;基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目基于.NetCore开发博客项目 StarBlog - (3) 模型设计基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入基于.N… 系列文章基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目基于.NetCore开发博客项目 StarBlog - (3) 模型设计基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入基于.NetCore开发博客项目 StarBlog - (5) 开始搭建Web项目基于.NetCore开发博客项目 StarBlog - (6) 页面开发之博客文章列表基于.NetCore开发博客项目 StarBlog - (7) 页面开发之文章详情页面基于.NetCore开发博客项目 StarBlog - (8) 分类层级结构展示基于.NetCore开发博客项目 StarBlog - (9) 图片批量导入基于.NetCore开发博客项目 StarBlog - (10) 图片瀑布流基于.NetCore开发博客项目 StarBlog - (11) 实现访问统计基于.NetCore开发博客项目 StarBlog - (12) Razor页面动态编译基于.NetCore开发博客项目 StarBlog - (13) 加入友情链接功能基于.NetCore开发博客项目 StarBlog - (14) 实现主题切换功能基于.NetCore开发博客项目 StarBlog - (15) 生成随机尺寸图片基于.NetCore开发博客项目 StarBlog - (16) 一些新功能 (监控/统计/配置/初始化)前言最近好几天都忙着写代码没更新文章近期给博客增加了一些功能本文一次性介绍~新增的功能如下系统监控sentry、exceptionless、CLRStats访问统计配置管理初始化系统监控PS其实前面两篇关于日志收集工具介绍的文章也是为了给本文做铺垫系统监控这块包括日志收集、性能监测和系统状态监测。日志收集和性能监测我交给了ExceptionLess和Sentry这俩开源的工具可以很好的完成这些工作详情可以看我之前写的这俩篇文章Sentry的安装、配置、使用ExceptionLess的安装、配置、使用然后状态监测我是基于GitHub上的一个开源项目来魔改的CLRStats这个组件可以实时查看CPU、GC、线程的状态不过原版的实现是作为一个中间件嵌入AspNetCore项目并且访问的地址只能用Basic认证不适用。于是我把代码clone下来之后魔改了一下变成一个可以调用的服务并且重新写了API接口终于方便起来了~这个接口拿到的数据是这样的后续在管理后台里面做成可视化图表也比较方便。{server: {machineName: machineName,systemDateTime: 7/26/2022 11:30:22 PM},application: {cpu: {usagePercent: 0},gc: {gen0CollectCount: 24,gen1CollectCount: 23,gen2CollectCount: 22,heapMemory: 38328872,heapMemoryFormat: 36 M,isServerGC: true},thread: {availableCompletionPortThreads: 1000,availableWorkerThreads: 32766,usedCompletionPortThreads: 0,usedWorkerThreads: 1,usedThreadCount: 29,maxCompletionPortThreads: 1000,maxWorkerThreads: 32767}} }具体代码就不复制粘贴了我把它放在StarBlog.Contrib项目中作为一个独立的组件方便调用。访问统计虽然前面这篇文章有介绍访问统计的实现基于.NetCore开发博客项目 StarBlog - (11) 实现访问统计不过只是单纯讲了通过中间件实现访问记录这些数据存在数据库之后并没有被利用起来现在就实现了一些简单的统计目前主要实现了总览数据总访问、今日、昨日访问、趋势数据、指定日期统计这几个功能。逻辑代码在StarBlog.Web/Services/VisitRecordService.cs中总览数据代码在这PS我发现FreeSQL的ISelect对象在链式操作时候的行为很奇怪我知道是懒加载但是已经执行了.Count()似乎还没执行下一行调用的代码甚至会把前面的筛选条件加上无奈我之内在方法内又写了一个嵌套的方法……也就是这个GetQuerySet这点让我这种用习惯DjangoORM的人觉得很不适应 ..这个接口计算总访问量、今日访问量、昨日访问量方便做对比受知乎的创作者中心启发public object Overview() {ISelectVisitRecord GetQuerySet()  _repo.Where(a  !a.RequestPath.StartsWith(/Api));return new {TotalVisit  GetQuerySet().Count(),TodayVisit  GetQuerySet().Where(a  a.Time.Date  DateTime.Today).Count(),YesterdayVisit  GetQuerySet().Where(a  a.Time.Date  DateTime.Today.AddDays(-2).Date).Count(),}; }趋势数据也就是统计最近n天的访问量PSC#的日期处理还是比较舒服的public object Trend(int days  7) {return _repo.Where(a  !a.RequestPath.StartsWith(/Api)).Where(a  a.Time.Date  DateTime.Today.AddDays(-days).Date).GroupBy(a  a.Time.Date).ToList(a  new {time  a.Key,date  ${a.Key.Month}-{a.Key.Day},count  a.Count()}); }按日期统计这个简单粗暴不用多说public object Stats(DateTime date) {var data  _repo.Where(a  a.Time.Date  date.Date  !a.RequestPath.StartsWith(/Api));return new { Count  data.Count() }; }注意这里面所有的统计我都过滤了以/Api开头的地址因为我只需要统计博客前台的访问量就行了。配置管理博客还是有很多需要配置的东西比如说Host之前我是写在appsettings.json文件里的按理说也可以修改这文件之后也能hot reload不过问题是没法实现在管理后台中修改并保存所以我打算实现一个配置管理的功能一开始是把目光瞄准了KV数据库甚至要求找一个嵌入式的、C#实现的开源项目叠了这么多buff果然没找到合适的(不过前几天好像看到有个大佬发了篇文章介绍用C#手写一个KV数据库的大赞)于是还是用博客本身的数据来实现好了也不难老规矩继续写ServiceStarBlog.Web/Services/ConfigService.cs这里只把关键代码放出来完整代码可以看GitHubpublic class ConfigService {private readonly IConfiguration _conf;private readonly IBaseRepositoryConfigItem _repo;public ConfigItem? GetByKey(string key) {var item  _repo.Where(a  a.Key  key).First();if (item  null) {// 尝试读取初始化配置var section  _conf.GetSection($StarBlog:Initial:{key});if (!section.Exists()) return null;item  new ConfigItem { Key  key, Value  section.Value, Description  Initial };item  AddOrUpdate(item);}return item;}public ConfigItem AddOrUpdate(ConfigItem item) {return _repo.InsertOrUpdate(item);}public int? Update(string key, string value, string? description  default) {var item  GetByKey(key);if (item  null) return null;item.Value  value;if (description ! null) item.Description  description;return _repo.Update(item);}public string this[string key] {get {var item  GetByKey(key);return item  null ?  : item.Value;}set {var item  GetByKey(key) ?? new ConfigItem { Key  key };item.Value  value;AddOrUpdate(item);}} }这个ConfigService实现了索引器可以比较方便的实现配置的读取和保存比如这样var conf  xxx; // 注入 ConfigService // 读取配置 Console.WriteLine(conf[host]); // 修改配置 conf[host]  http://dealiaxy.com;同时我也写了几个接口可以通过HTTP的方式管理配置代码就不放了~初始化在我的设计中这个功能是依赖于配置管理的所以把配置管理做完之后我的初始化页面也做出来了看起来是这样的image也就是首次运行本项目的时候会进入这个页面目前的初始化配置就只有创建管理、设置Host两个后续应该会慢慢增加其他的后台是通过is_init这个字段来判断是否有初始化的直接上Controller代码[HttpGet] public IActionResult Init([FromServices] ConfigService conf) {if (conf[is_init]  true) {_messages.Error(已经完成初始化);return RedirectToAction(nameof(Index));}return View(new InitViewModel {Host  conf[host]}); }[HttpPost] public IActionResult Init([FromServices] ConfigService conf, [FromServices] IBaseRepositoryUser userRepo, InitViewModel vm) {if (!ModelState.IsValid) return View();// 保存配置conf[host]  vm.Host;conf[is_init]  true;// 创建用户// todo 这里暂时存储明文密码后期要换成MD5加密存储userRepo.Insert(new User {Id  Guid.NewGuid().ToString(),Name  vm.Username,Password  vm.Password});_messages.Success(初始化完成);return RedirectToAction(nameof(Index)); }同时还要实现一个View页面这个就比较简单代码不放了
http://www.zqtcl.cn/news/112623/

相关文章:

  • 自己做一元购网站烟台网站设计公司推荐
  • 有没有做彩票直播的网站成都十八个网红打卡地
  • 急求聊城网站建设网站服务器管理系统
  • 做网站需要什么许可证商场设计效果图
  • html网页制作视频windows优化大师有哪些功能
  • 国外建站主机帝国手机网站cms系统
  • 响应式网站建设哪家好网站空间支付方式
  • 腾讯广告建站工具贵州企业网站建设价格
  • 最新的网站建设架构wordpress管理员头像
  • 手机网站模版化工网站建设公司
  • 网站建设 会计分录北京网站建设主页
  • 北京市建设监理协会网站网站一般多少钱
  • 做网站零成本网站如何做成app
  • 建小网站多少钱深圳网站备案注销
  • 海淘网站是谁做的为该网站做自适应
  • php网站开发自学如何做x响应式网站
  • 吴忠网站建设公司随州网站建设优化推广渠道
  • dedecms 招聘网站网站建设市场调研报告
  • 建小网站多少钱做会计网站的流程
  • 为一个村做网站优秀文创产品设计案例及分析
  • 山东专业网站建设公司哪家好网站开发的薪资是多少
  • 无极在线网站播放烟台注册公司
  • 网站源文件修改科技网站欣赏
  • 关于h5的网站目录 首页 wordpress
  • 包头网站建设推广手机网站开发介绍
  • 网站推广设计用那种语言做网站比较好
  • 手机品牌网站如何做好网站内更新
  • 订餐网站模板下载毕业设计动漫网页设计
  • 网站阵地建设管理办法移动端网页界面设计
  • 网站和做游戏重庆市建设工程信息网安全监督特种人员