个人博客开篇:技术选型和项目结构

170 阅读3分钟

时光荏苒,距离毕业成为社畜过去已经快10年了,这些年里主要就是在就职的公司里面维护网站,技术栈主要是.net core,也粗粗地涉猎过几个前端框架。但由于不是大佬且没有恒心,基本没做成过一个保持更新的个人博客。最近网上看到一个好看的博客张洪Heo,心血来潮有准备启动自 博客计划。

项目架构

项目架构就是无架构。
好吧这是废话,无架构就是我的项目目录尽量简单,没有用到太多的编程思想。一句话概括就是.NET6 Razor Pages + Sqlsugar + Layui(后台界面) + Sass(样式) + Gulp(静态资源编译),纯纯服务端渲染 前后端不分离
如今前后端分离风头正盛,各类SPA、SSR、SSG框架百花齐放,就算是.NET栈也有新贵blazor(WebAssembly), 为什么我要用这些老技术呢?可能就是看山还是山吧:

  1. 工作中长期使用以node为基础的现代前端开发方式,让我对纷繁的npm库抱有一丝丝厌倦,每次起一个系项目都要安装一大堆的类库;并且还要给vscode安装各类前端插件比如格式化插件。 所以,这次我选择所有事情都在一个编辑器里搞定:Visual Studio,并且使用前后端不分离的开发模式。而对于前端开发,由于习惯了sass/less的树形语法,我会浅尝一下广袤node大海的一个边边:Gulp热编译sass和js。image.png
  2. 尽管SSR让前后端分离也能够对SEO更加友好,甚至这两年据说谷歌、百度等搜索引擎都能直接爬SPA站点了,但是个人认为服务端渲染还是SEO利好的不二选择,因为它够简单。
  3. Sqlsugar和Layui都是码云(Gitee)的GVP项目,相信单单GVP这个头衔就不用过多分析优缺点了。Sqlsugar一直稳稳的是国产数据库ORM大哥,写法和性能都很风骚;而Layui是后端程序员友好的返璞归真的经典WEB UI框架,当年因为树大招风官网被攻击无奈下线,贤心大大还煽情了一把。没想到蛰伏了1年之后涅槃重生,王者归来。重新上线官方文档,所以我这边用Layui来搞定博客后台,效率杠杠的。
  4. 更多原因以后再写吧

项目目录

下面是一个平平无奇的项目目录,基本上后面都是横向扩展,业务也不会太复杂所以够用了。

|-- Blog.Net                                               *博客web类库
    |-- wwwroot                                            *静态资源目录
    |-- Areas                                              *区域文件夹
    |-- Controllers                                        *接口
    |-- Extensions                                         *扩展方法文件夹
    |-- Pages                                              *raozr pages
    |-- Tencent                                            *腾讯云相关目录,由于深度用腾讯云,单开一个文件夹逼格很大
    |-- ViewComponents                                     *视图组件目录
    |-- appsettings.json                                   *.NET配置文件
    |-- CommonService.cs                                   *业务方法集合
    |-- gulpfile.js                                        *gulp脚本任务文件
    |-- package.json                                       *npm
    |-- Program.cs                                         *.NET启动文件
|-- Blog.Model                                             *实体相关类库
    |-- Constants                                          *常量
    |-- Dtos                                               *数据传输Model
    |-- Entities                                           *表映射Model
    |-- Enums                                              *枚举类
    |-- Options                                            *配置Options
|-- Dockerfile                                             *docker部署配置

开发运维

  • 使用git 作为版本管理,托管在Gitee
  • 构建部署用jenkins+docker+宝塔面板,也是个人开发者最常见的部署方式

码到这里准备结束了,就像主题写的,我没有用到什么新颖的技术,也没有能力自己设计漂亮的UI。仅是作为一次使用.NET开发博客的尝试,现在在社区也基本看不到用C#这个被现象级Diss的语言写的博客啥的,最多也就写接口,前端还是vuejs之类的做的。所以做一个.NET + html css js的博客就是我对C#这门语言不变的初心把~