这是一款模块化mvc框架。
框架有如下几个特点,如果下面特点是您正需要的,那么十分推荐您使用本框架。
1、本框架提供模块的热更新,也就是使用本框架可以不停机更新最新版本的模块。
2、易从单服务系统升级到多服务系统。在一些小公司,并不会提供给开发者多台服务器,这时候使用微服务的方案并不划算,但考虑到以后升级改造,又怕单服务不好升级,这时候模块化mvc架构就可以很好的满足这种需求了。
3、模块功能易增加与删除。在很多提供软件产品服务的公司,客户都需要有定制的功能,这时候就需要模块的易增删功能了。
ResumeML目录为.net5的mvc实现例子,是一个简历识别和后台管理系统的例子
MyAccess目录包含orm框架、json等
TemplateAction目录为mvc框架
TemplateAction.NetCore目录为mvc框架.net5支持库
需要至少vs2019 v16.10打开项目, 需要.net 5。 MZFrame.sln项目为.net framework使用示例 ResumeML/ResumeML.sln项目为.net5使用示例
.net5使用方法可查看ResumeML目录里的例子.
MVC视图语法说明
框架自动识别继承自TABaseController的控制器,其中模块名代表namespace,类名代表controller,方法名代表action。
视图代码应该用@{代码}或直接@代码然后换行的方式,
不推荐用标签的写法,只有在使用<m:def var="变量名"></m:def>定义变量时才推荐
- 变量定义
变量有两种写法$a和a
- 变量输出
@=a可不进行html编码,直接输出
@a输出经过html编码的字符串
- 函数定义
函数分为系统函数与自定义函数。
系统函数为TemplateAction.Label.TempFuns中定义好的函数
自定义函数为通过SetGlobal设置的函数
调用方法:@函数名(参数名)
- 循环语句for
for语句有两种写法for(($a,$i) in $b)和for($a in $b)
其中$a变量为集合$b的元素,$i变量为索引号,$b为集合,最后以end结尾
- 条件语句if、else if、else
示例:
@if(条件)
语句
@else if(条件)
语句
@else
语句
@end
条件语句最后以end结尾
- 条件循环语句while
指定条件正确则循环,以end结尾
- 中断语句break
在有end结尾的语句中都可以使用break提前中断执行
模块定义
每个模块下面要定义一个继承自IPluginConfig的类。
类中的void Configure(IServiceCollection services)方法里注册要给其它模块使用的实例。
类中的void Loaded(ITAApplication app, PluginObject plg)方法为模块初始化并加载完成后调用。
在热更新模块时旧的模块Unload方法会被调用,新的模块Loaded方法被调用。
模块使用
本框架只支持通过构造函数的方式注入。
模块编译后要放到主项目的Plugin文件夹下,您也可以直接在 生成=》输出目录 里直接设置输出到Plugin文件夹.
(1)简历自动分类
测试请求:http://127.0.0.1:880/Home/Index?paragraphdata=[%27%E6%9C%AC%E4%BA%BA%E4%BB%8E%E4%BA%8B%E8%AE%A1%E7%AE%97%E6%9C%BA%27,%27%E7%A6%8F%E5%BB%BA%E7%9C%81%E6%B3%89%E5%B7%9E%E5%B8%82%27,%27%E7%8E%8B%E6%9F%90%E6%9F%90%27,%27%E7%94%B7%27,%27%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%27]
返回结果:{"code":0,"message":"","data":{"TrueName":"王某某","Address":"福建省泉州市","HopePost":null,"Diploma":-1,"Gender":1,"Appraise":"本人从事计算机","WorkList":[{"CompanyName":null,"JobName":"软件开发","Remark":null}],"EduList":[]}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。