|
DTCMS Core 这个名字听起来像某个框架的代号,实际上它确实是一个 .NET Core 环境下的内容管理系统。我第一次接触它,是因为一个客户非要一个能跑在 Linux 上的老式 CMS——要求不高,能发文章、传图片、管用户就行。市面上的重型平台杀鸡用牛刀,WordPress 又过于臃肿,最后翻到了这个项目。 它的核心卖点其实很朴素:把传统 ASP.NET 时代的 DTCMS 移植到 .NET Core 上。这就像把一辆老式手动挡汽车改装成自动挡,发动机还是原来的,但传动系统焕然一新。代码里能看到很多熟悉的痕迹——比如数据访问层还是老一套的 ADO.NET 封装,没有花哨的 ORM。但恰恰是这种“土办法”,让它在低配服务器上跑得飞快,一个普通的双核 2G 内存机器,能扛住日均几万次请求。 有意思的是它的模板引擎。不是 Razor,不是 Blade,而是自己写的一套标签替换机制。模板文件里全是 { loop:article} 这样的占位符,像极了十年前织梦 CMS 的风格。新手会觉得落后,但老手会心一笑——这种设计让前端模板完全不依赖后端代码结构,换皮肤只需改 HTML 文件,连编译都不用。 让我印象最深的是它的权限系统。没有用微软那套复杂的 Identity Framework,而是自己实现了基于角色的菜单权限和按钮权限。每个后台菜单项对应一个权限码,用户组勾选即可。说实话,这套逻辑在 2024 年看起来有点“原始”,但客户反而更喜欢——因为他们的员工只需要培训五分钟就能上手,不用理解什么 Claim、Policy 之类的抽象概念。 不过它也有明显的短板。官方文档停留在“能用”的级别,很多高级功能得翻源码才能搞懂。比如它的多语言支持,实现方式是把所有语言包塞进一个 XML 文件里,更新翻译得手动编辑文件——这在微服务时代显得格格不入。另外,社区几乎不活跃,GitHub 上的 Issue 半年前就没人回复了。 但话说回来,如果你需要的是一个不需要高深技术就能维护的中小企业官网后台,DTCMS Core 反而比那些“现代化”框架更省心。它的代码结构直白到让人感动——一个 Controller 对应一个页面,一个 Model 对应一张表,没有任何 AOP 切面、事件总线之类的魔法。出了问题,打开 Visual Studio 按 F5 就能单步调试,根本不需要看日志猜来猜去。 我最后给那个客户部署的时候,特意在服务器上跑了 dotnet dtcms.dll,然后看着它像普通控制台程序一样启动,心里有种莫名的踏实感。这不就是工具的本质吗——不炫技,不画饼,把该干的活干好。在人人都在聊微服务、容器编排的今天,能有个让你专注业务逻辑的“笨”系统,反而是种奢侈。 |