三层我就不说了,主要是看框架思路可扩展。以前用FineUI开源版写过一版,修修改改自己用了,没有特意的整理,FineUIMVC开发还是比较快,移植了一下两天就弄完了,算是一个对新手有用的工具,先放出第一版发布版,没有源码但是有接口,也搭着好久没更新博客了(主要是MVC挺简单的没啥可写的...)所以在这详细说明下。
1.使用
加入了本地数据库,sqlite,主要记录下连接地址和接口地址,我本地Win10 64 环境 IIS发布后需要设置下32位兼容性:
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRjek1URXpNUzB5TURjMk1Ua3hNRGc1TG1wd1p3PT0uanBn.jpg?w=700&webp=1)
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRVMU9UQTROQzB5TWpJMk56QTFNVE11YW5Cbi5qcGc%3D.jpg?w=700&webp=1)
启动后就可以连接数据库了,目前支持SqlServer 和MySQL,配置地址和密码,测试下会有连接成功提示,连不上的话,就不知了。
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRZMU1EZ3hPUzB4TURRM01UUTJNVGMzTG1wd1p3PT0uanBn.jpg?w=700&webp=1)
单击数据库名,可以加载数据库表,选择要生成的表,点击选择按钮移动到右边,左侧表有个搜索功能,两个表交互是纯前端的,有用到的可以查看下源码
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRjeE5ESXdPUzB4TXpJNU16QXlOVFUxTG5CdVp3PT0uanBn.jpg?w=700&webp=1)
选择表的主键,主键影响增删改,处理的是int型,框架会自增长,到框架时再说。
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRjMU9UZzRNUzB4Tnprd09EWTROeTVxY0djPS5qcGc%3D.jpg?w=700&webp=1)
填写项目名称,框架默认了两个数据库帮助类,默认数据库访问类是项目只能有一个数据库类型的意思,生成模式传统和自定义,目前这个分类还没啥作用,就是自定义的时候除了主键都是string类型罢了(传统是按数据库类型),
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRnek1EYzBNQzA1TURBNE16VTFOekl1Y0c1bi5qcGc%3D.jpg?w=700&webp=1)
这时点击生成就可以生成项目了,项目地址在发布文件夹下,项目文件,时间加项目名称文件夹
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRnME9UZ3dNeTB4TXpJMU16STBOalUwTG1wd1p3PT0uanBn.jpg?w=700&webp=1)
2.框架
生成的代码框架是三成的小架子,没有前台,当然可以自己见模板,一会再说。拷贝到项目中就能直接用,用起来还是很方便的
BP,文件夹,按表生成,一个表一个三层,MySql和SQLserver的路由在Base/BPBase.cs中,通过Config/DataConfig.ini配置,代码看一眼注释应该都能看懂,不行打个断点走一遍。
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRreE1EUXlPQzB4TVRNME1qZzVNamt3TG1wd1p3PT0uanBn.jpg?w=700&webp=1)
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRrek1EazFPUzB5TVRRMU1USTRNalE0TG1wd1p3PT0uanBn.jpg?w=700&webp=1)
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl5TlRrME1UUXhNaTAxTnpFek1EQTFNVEl1YW5Cbi5qcGc%3D.jpg?w=700&webp=1)
3.模板和接口
为了保证灵活开放了模板和接口。详细介绍
模板文件就在发布文件的mould中,后缀名.codemod的是模板文件,可以直接用记事本打开,修改其中$$***$$就是要替换的动态字符了,所以生成代码一点不神秘很偷懒,后续我会把程序默认的字典说明加上,其实看模板也能看懂,没啥神奇的,不喜欢模板可以随便改。
标识符 | 说明 | 对应属性/来源 | 备注 |
$$namespace$$ | 项目名称/命名空间 | ModelHelp.MsCodeSetup.namespacestr | 前台填写 |
$$connectionString$$ | 数据库连接地址 | ModelHelp.MsCodeSetup.conStr | 前台生成 |
$$DbHelperMySQL$$ | MySQL帮助类 | ModelHelp.MsCodeSetup.mysqlclassname | 前台填写 |
$$DataAccessor$$ | SQL Server帮助类 | ModelHelp.MsCodeSetup.sqlclassname | 前台填写 |
$$ColunName$$ | Message字段(默认列名) | MsTableColumns.ColunMs | 数据库读取 |
$$ColunNotes$$ | 列字段说明 | MsTableColumns.ColunNotes | 数据库读取 |
$$tablename$$ | 表名 | MsTableColumns.TableName | 数据库读取 |
$$KEY$$ | 主键字段 | 作为参数传入 MsTableColumns | 数据库读取 |
$$KEYname$$ | 主键字段列名 | 作为参数传入 MsTableColumns.ColunName | 数据库读取 |
$$type$$ | 字段类型 | 根据列字段类型动态生成 | 数据库读取 |
$$MsContent$$ | 生成数据表实体时格式标记 | 见 MsTable.codemod 模板 | |
$$_ForMsToGetMs$$ | 生成selectSQL语句时的特殊标记 | 见 SQLTable.codemod 模板 | |
$$_ForCmToAddMs$$ | 生成insertSQL语句时的特殊标记 | 见 SQLTable.codemod 模板 | |
$$_ForMsToAddMs$$ | 生成insertSQL语句时的特殊标记 | 见 SQLTable.codemod 模板 | |
$$_ForMsToUpMs$$ | 生成updateSQL语句时的特殊标记 | 见 SQLTable.codemod 模板 |
再动态的生成可以使用接口配置
比如我新建个类库,引用CodeFactoryMVC.Main.dll
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl6TURBeU5qWXpNUzB4TlRjMU56QXpOall1Y0c1bi5qcGc%3D.jpg?w=700&webp=1)
Class1实现接口ICodeFactory,这样我就参与了生成过程,并继承所有配置参数,表名,数据库名,字段,字段备注...感动的我要掉眼泪了
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl6TURBMU5URXdNQzB4TkRjek1UYzFPRGN5TG1wd1p3PT0uanBn.jpg?w=700&webp=1)
生成该项目后,需要把dll放到模板生成的bin文件夹下,
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl6TURFeE1EVTROQzB4TXpRM056UTNOelF3TG5CdVp3PT0uanBn.jpg?w=700&webp=1)
在web上配置一下就可以用了,如果没效果的话,发给我、我调试...
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl6TURFeU56STFOaTB4TWpZM01EazRPVGt1YW5Cbi5qcGc%3D.jpg?w=700&webp=1)
下载地址
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOVEUwTVRBME1UWTNPQzB4TXpJMk5EYzVOalkzTG5CdVp3PT0uanBn.jpg?w=700&webp=1)
其他扩展
发布文件中还包括一个FineUIMVC的扩展,FineUIMVCEx.dll FineUIOvereide.js FineUIOvereide.css animate-3.5.2.min.css
前台的东西比较多,也藏不住,干脆就说明一下,如果觉得一些效果很合口味可以联系我 /阴险
另外这个项目还没做完,下载没有做,如果喜欢的话可以关注,发两个赞助二维码,也不知道会不会有人扫描(奈何我发什么都是企业级应用)
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl6TURRME9URXpNUzB4TVRNME56ZzJPRE0zTG5CdVp3PT0uanBn.jpg?w=700&webp=1)
![基于FineUIMVC的代码生成器(传统三层)v1.0 基于FineUIMVC的代码生成器(传统三层)v1.0](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRZV2RsY3pJd01UY3VZMjVpYkc5bmN5NWpiMjB2WW14dlp5ODBOVFEwT0RNdk1qQXhPREF4THpRMU5EUTRNeTB5TURFNE1ERXlOREl6TURRMU9UTTRNUzB5TWprd09EUXpNRGN1YW5Cbi5qcGc%3D.jpg?w=700&webp=1)