企业网站设计与管理系统,国外画册设计网站,合肥专业网站优化哪家好,wordpress个人展示这两天比较忙#xff0c;周末也在加班#xff0c;所以更新的就慢了一点#xff0c;不过没关系#xff0c;今天我们就进行千呼万唤的系统开发框架的设计。不知道上篇关于架构设计的文章大家有没有阅读#xff0c;如果阅读后相信一定对架构设计有了更近一部的理解#xff0… 这两天比较忙周末也在加班所以更新的就慢了一点不过没关系今天我们就进行千呼万唤的系统开发框架的设计。不知道上篇关于架构设计的文章大家有没有阅读如果阅读后相信一定对架构设计有了更近一部的理解如果你没有阅读也希望大家能好好阅读一下其实说白了架构是为了应对软件系统复杂度而提出的一个解决方案架构设计的最终目的也就是为了让复杂的问题简单化今天我们就结合架构设计的思想来进行我们的CMS实战项目的架构设计接着再设计下开发框架吧。如果你有其他看法或者见解欢迎加入我们的实战项目交流群637326624 跟大伙共同交流本文已收录至《.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划》作者依乐祝原文地址写在前面仔细想想我们的这个极简CMS系统可以说很简单简单到都无须进行特殊的架构设计只需按照你所熟悉的编码方式直接进行快速的编码实现即可如果做得好的话访问量上来了你再加一个缓存处理完全能够支撑一定的并发如下图所示我们前期先进行单体架构的实现等后期分布式系列实战课程的时候再讲解如何进行分布式微服务架构的实现。看到没有标准的单体架构只是在数据库层之前加了一个缓存的设计来应对一些并发的情况既然架构设计确定了那么我们就进行开发框架的搭建吧如果架构的复杂点的话可能涉及到数据库集群站点集群及负载均衡可是我们完全没必要那样玩一个阶段设计一个阶段的架构要知道天猫也不是刚开始就架构的这么完善支持这么高的并发的而是经过这么多次双十一的考验之后慢慢完成到今天这个能够支持每秒这么次并发的说白了架构是一个演变的过程而并非设计的越复杂越完善就表示架构设计的就越好的有点拗口自己理解下而要结合实际让需求来驱动架构。在分析设计阶段需要考虑一定的人力与时间去跳出代码总揽全局为业务和IT技术之间搭建一座桥梁。CMS系统开发框架话不多数先看下我的项目结构截图吧本来想进行很复杂的框架的实现的仿照DDD的思想进行开发框架的搭建后来想想何必呢这么简单的系统搞得那么复杂严重影响开发效率反而得不尝试。后来经过深思熟虑后精简精简再精简斟酌斟酌再斟酌后就有了上面这样的项目结构。乍一看10个项目是不是吓得马上就要关闭网页了呢下面我会给你详细讲解每一个项目的作用以及所要实现的功能。其实明眼人一看这个结构就已经知道了每个模块所要实现的功能了这样的分层设计可谓简单的都不需要我过多介绍你都能明白每一个项目是用来干什么的明白人也可以进行项目的再度融合甚至简单粗暴的合并到一个项目里面不过本人更喜欢这种分层的设计感觉结构更清晰。可是我这里还是要啰嗦两句给你介绍下既然微软已经在前两天将正式版的.NET Core SDK升级到了2.2的版本那么我们的CMS系统就用.NET Core2.2进行搭建吧当然你在练习的时候也可以使用2.1进行没有强制要求。注意ASP.NET Core2.2对VisualStudio有一定的要求必须是2017的高版本才能用。其目前的版本是15.8.4 总之尽量不要低于我这个版本我正准备升级呢UI用户UI层这个就是我们CMS系统所要呈现的用户界面而我们得CMS系统又包含后台管理模块以及前台网站模块因此这个解决方案文件夹下面有两个ASP.NET Core网站项目留个思考题给你吧猜猜看哪个项目是后台管理模块哪个项目是前台网站模块呢把你的答案写在留言区或者加群跟大伙讨论下吧Application应用层这个层提供对用户界面的接口访问用户界面层的两个模块如果想跟数据库交互都需要通过这个层来进行。这个应用层起到用户界面跟数据库操作进行解耦的作用。Repositonry仓储层这个层主要就是跟数据库的交互了任何跟数据库有关的操作都在这层来进行实现看了上面的图相信你已经猜到了前期我只是实现SqlServer的仓储实现至于其他数据库的实现你只需要再建一个Czar.Cms.Repository.数据库名 的仓储实现就可以了这里我们也是采用依赖抽象而不依赖具体实现所以方便后期的扩展。Entity实体对象层这个层感觉有点多余完全可以把这个界面融合到其他层但是我并没有这样做目的也是让结构更清晰更容易理解。这里有两个项目相信一路看教程过来的朋友一定还记得我的第二篇文章《.NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了 》中用的是ViewModel而不是直接用实体对象了因为实际引用中可能我们页面中需要的数据跟我们数据库中的数据并不完全一样的而且有时候我们页面中可能包含了更多地信息这时候我们怎么往视图中传递数据呢这时候我们就有了ViewModel的概念。比方说我们的有一个订单详细页要同时显示订单的信息以及订单对应的商品列表这时候怎么办呢我们用一个ViewModel包含了订单实体并且包含了商品的列表就可以更方便的把数据传递到视图里面了Infrastructure基础设施层这个层也是我们代码的核心层了我们会在这里实现很多我们通用的方法比方说帮助类对字符串String进行一些扩展序列化与反序列化HTTP请求过滤器日志功能中间件的扩展等等。总之这个里面包含了Czar.Cms的所有核心。Test测试层这个层不用多说了吧就是对系统进行测试的里面包含单元测试以及集成测试相信通过我上面的介绍你一定会感觉到这个CMS系统的开发框架的层次非常清晰了吧其实作为新手时期的我也是看到项目太多的话就从心里面害怕其实大伙大可不必看到让你害怕的事情就要勇敢的面对它战胜它一定要跳出自己的舒适区。GitHub与码云上的项目开源地址今天我们搭建的这个项目的结构我已经同步更新到Github以及码云上了有兴趣的朋友可以下载查看觉得不错的欢迎StarGitHubhttps://github.com/yilezhu/Czar.Cms码云https://gitee.com/yilezhu/Czar.Cms如果你觉得这个系列对您有所帮助的话欢迎以各种方式进行支持最简单有效的就是博客园给个推荐GitHub给个Star。同时今天我申请了一个DotNetCore实战的订阅号有兴趣的朋友可以微信关注下总结本文我首先带着大家理解了一下架构设计的目的以及架构设计的演变性。接着对我们这个ASP.NET Core的CMS实战项目进行了开发框架的设计。并对每个项目的所要实现的功能以及各自的职责进行了相关的介绍相信你已经能够清楚的明白了这个架构的思想到此设计篇已经结束接下来就让我们进行真正的项目开发吧即开发篇的开始相关文章.NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划.NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了.NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入.NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了.NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用.NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程.NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程.NET Core实战项目之CMS 第九章 设计篇-白话架构设计原文地址:https://www.cnblogs.com/yilezhu/p/10094357.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com