基于ABP做一个简单的系统——实战篇:1.项目准备
现阶段需要做一个小项目,体量很小,业务功能比较简单,就想到用最熟悉的.net来做,更何况现在.net core已经跨平台,也可以在linux服务器上部署。所以决定用.net core 3.1+mysql。为了起步更容易,用最新的abpV3(2020.6.4)来写,这样管理端也有了,api也有了,上手速度极快。不用最新的volo.abp的原因是,感觉,恩,纯粹是感觉,才更新到2.9版本,怕项目过程中遇到坑比较耗时间解决,就还是用原来的abp吧。
之前用abp写微服务框架的时候,.net core还处于2.1版本,现在已经都已经到3.1了。我的想法是基于.net core 3.1版本的abp,重新理一遍abp的相关知识,项目完成后把公共部分抽取出来开源。当然现在需求已经整理的差不多了,马上就要开始编码了。是不是少了点什么?恩,代码生成器,不管怎么样开发这种业务系统,代码生成器是必需品,不然手工重复的创建文件,复制粘贴,修改命名能把人整死。所以期间我也会把代码生成器发布出来,并等待合适的时机开源(主要是我好多年前写的东西,需要优化一下代码结构)
整个项目流程:后台框架选型->需求分析->原型设计->管理系统编码->小程序端编码
第一天,从官网下载了模板,先把他从sql server改为mysql,这个我在另一个博客已经写过一遍,下次搬过来。
这次遇到几个问题:
1.因为一开始没有mysql服务器,就用mssql做测试,结果一直GetAll接口报错
先查看日志:
'OFFSET' 附近有语法错误。
在 FETCH 语句中选项 NEXT 的用法无效。
关键字 'AS' 附近有语法错误。
想到数据库版本是mssql 2008 r2,可能是语法不被支持。后来看到这篇文章,猜想得到验证。
https://www.cnblogs.com/Zev_Fung/p/12034658.html
2.改为mysql后一直提示
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datetime2(6) NOT NULL,
`CreatorUserId` bigint NULL,
`DeleterUserId` bi' at line 3
解决方法是:把migrations文件夹下所有文件都要删除再add-migration,update-database,一开始没注意ModelSnapshot这个文件,一定要把这个也删掉,坑了我好久。
基于ABP做一个简单的系统——实战篇:1.项目准备的更多相关文章
- 基于ABP做一个简单的系统——实战篇:2.代码生成器
上一篇正说着呢,代码生成器就来了. 1.适用于ABP官网的Startup Template V3.x的包含了登录.用户等页面的MPA应用模板2.当前view仅支持文本框生成,远期规划根据字段类型生成不 ...
- 基于ABP做一个简单的系统——实战篇:4.基于富文本编辑器,Razor模板引擎生成内容并导出Word 填坑记录
起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的 ...
- 使用React并做一个简单的to-do-list
1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其virtual ...
- 用Qt写软件系列三:一个简单的系统工具(上)
导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统 ...
- Jmeter初步使用二--使用jmeter做一个简单的性能测试
经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...
- HTTP lab01 做一个简单的测试用 web页面
做一个简单的测试用 web页面 1.安装httpd服务 yum install httpd 安装完httpd服务后,系统就自动生成了/var/www/html目录 创建一个 ...
- 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截
程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构 .要想在之后的江湖历练中通关,数据结构必不可少. ...
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
随机推荐
- React实践debug:JSX输出的限制(存疑)
今天在练习React构建组件的时候遇到一个问题. 由于文档中反复提倡将组件尽可能按功能单位分解复用.在练习用React做一个todolist时候,我把todolist分解成两部分: class Tod ...
- 2-SAT问题简述
前置知识 强连通分量 k-SAT问题 k-SAT问题中的SAT意思就是(stability),也就是适应性问题.本意是给出n个变量,每一个变量有k个状态,并且也给出一些约束条件,要求你求出是否存在每一 ...
- Spring Cloud Alibaba入门实战之nacos(一)
Spring Cloud Alibaba入门实战之nacos(一) 前情介绍 Spring Cloud Alibaba 是阿里巴巴提供的新一代的微服务解决方案,相信会有越来越多采用微服务架构的公司 ...
- Blazor WebAssembly 船新项目下载量测试 , 仅供参考.
前言: 昨天 Blazor WebAssembly 3.2 正式发布了. 更新 VS2019后就能直接使用. 新建了两个PWA项目, 一个不用asp.net core (静态部署), 一个使用as ...
- vue + typescript,定义全局变量或者方法
众所周知,在 vue中,如果想定义一个全局变量的方法很简单,直接在 vue的原型上挂载属性或者方法即可. 但是,加上了typescript之后, Vue.prototype.$xxx = xxx 这 ...
- H3C S5500三层交换机划分Vlan与H3C路由组网
基本属性: vlan特性:三层互通,两层隔离.三层交换机不同vlan之间默认是互通的,两次交换机不同vlan是隔离的. vlan IP:就是定义一个vlan下所有机器的网关地址,该vlan下的机器网关 ...
- poj3648 2-SAT进阶 记录点拓扑
Wedding Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10556 Accepted: 3220 Specia ...
- win-sudo插件解决Git bash 执行脚本报错问题 bash: sudo: command not found
Windows git bash 默认没有sudo命令,可以添加win-sudo插件实现该功能 curl -s https://raw.githubusercontent.com/imachug/wi ...
- python 串口 透传
python正常情况通过串口 serial 传输数据的时候,都是以字符串的形式发送的 str = ‘abcd’ ser.write(str.encode())#直接发送str报错,需要发送byte类 ...
- Java——XML基础知识
XML大小写敏感,不可省略结束标签,可以标签自闭合<img />,属性值必须用引号括起来.CDATA部分用<![CDATA[ ]]>来限定界限,它们是字符数据的一种特殊形式.可 ...