- 博客(77)
- 收藏
- 关注
原创 【23种GOF设计模式】C#代码完整案例详解--原型模式
来自:CCNetCore社区,一个关注.Netcore领域的社区团队。原型模式PrototypePattern原型模式PrototypePattern 创建型设计模式用于对象的创建,通常用于单例模式中。由于单例模式的对象始终为1个,又要用到单例模式又想每次调用有不一样的结果,可以使用原型模式。添加一个创建实例的方法即可。可通过内存复制或者with关键字进行浅拷贝可通过序列化再反序列化进行深度拷贝要区分一下值类型与引用类型。栈中存储变量,堆存储值。string是一个特殊的引用对象,每次赋值时
2022-01-28 21:41:46
434
1
原创 【23种GOF设计模式】C#代码完整案例详解--建造者模式
来自:CCNetCore社区,一个关注.Netcore领域的社区团队。建造者模式BuilderPattern建造者模式BuilderPattern 创建型设计模式用于更复杂的对象创建,通过类似与组装的方式进行构建。用户无需知道具体实现细节,只用按照每个提供好的方法进行组装调用即可。例如:一辆汽车由方向盘、轮胎、灯光进行构建,可将这些制作过程拆开,通过用户调用进行组装。当然,当零件过多的时候,更可以外面包一层,将多个组装方法放入即可。Program.csusing System;using Sy
2022-01-28 21:39:09
416
原创 【23种GOF设计模式】C#代码完整案例详解--抽象工厂
来自:CCNetCore社区,一个关注.Netcore领域的社区团队。抽象工厂AbstractFactory抽象工厂AbstractFactory 创建型设计模式用于复杂对象的创建,是工厂方法的进阶。只是将工厂方法再次继承一个抽象类,用抽奖类接受不同的工厂。Program.csusing FactoryPattern.Sanguosha.Interface;using System;using System.Collections.Generic;using System.Linq;usi
2022-01-27 15:49:25
319
原创 【23种GOF设计模式】C#代码完整案例详解--单例模式
来自:CCNetCore社区,一个关注.Netcore领域的社区团队。单例模式Singleton单例模式Singleton 创建型设计模式为了保证对象的唯一性,还可提高程序的性能。单例模式有3种实现方式每次创建时进行判断(需要双重判断)将对象放入静态构造函数种实例将对象放入静态字段中注意:单例模式并不能保证多线程的安全性,一万次并发中可能会错误50次左右Program.csusing System;using System.Collections.Generic;using Syst
2022-01-27 15:46:39
294
原创 【23种GOF设计模式】C#代码完整案例详解--简单工厂
来自:CCNetCore社区,一个关注.Netcore领域的社区团队。简单工厂SimpleFactory简单工厂SimpleFactory 创建型设计模式创建对象交由工厂的方法完成,通过枚举switch来进行判断创建什么对象。在一个简单工厂类中会实例化多个具体对象,其实也进行了高度耦合。那么创建对象可有以下方式:枚举,switch判断直接new实例化从配置文件中获取字符串,通过反射进行实例化对象注意:该简单工厂方法并未被23种GOF收录Program.csusing FactoryPat
2022-01-27 15:41:15
245
原创 【23种GOF设计模式】C#代码完整案例详解--工厂方法
来自:CCNetCore社区,一个关注.Netcore领域的社区团队。单例模式Singleton单例模式Singleton 创建型设计模式为了保证对象的唯一性,还可提高程序的性能。单例模式有3种实现方式每次创建时进行判断(需要双重判断)将对象放入静态构造函数种实例将对象放入静态字段中注意:单例模式并不能保证多线程的安全性,一万次并发中可能会错误50次左右Program.csusing System;using System.Collections.Generic;using Syst
2022-01-27 15:18:51
189
原创 【橙子日记40】从零开始的毕业设计
更新时间:2021年2月27日今天到学校了昨天发现的bug,今天基本已经解决网站发布地址https://jiftcc.com毕竟学生党,服务器不太行,加载速度比较慢,耐心等待即可测试账号学生:123456密码:123456另外,地图新型冠状病毒数据实时数据已经在昨天晚上实现。其中调用了:新浪的新冠数据接口和百度地图的经纬度接口我还只是一个学生,还有太多东西学习了。。。我发现自己的不足,我还需要更多的学习。经历本次项目之后,我确实学到了很多,关于分布式技术,后面有空的时候会把坑填上
2021-02-27 21:24:24
192
1
原创 【橙子日记39】从零开始的毕业设计
更新时间:2021年2月26日项目我先就这样了,其他的先留坑,之后再填由于后期我们给改了很多东西,现在可能会炸所以我们全部功能测试一下功能测试:验证码功能:昨天已经解决登录功能:测试通过账户功能:界面bug错误不通过更新通过试卷答题功能:通过文件作业提交功能:界面bug不通过提交文件错误不通过图片作业提交:水印通过(昨天晚上解决的)提交图片类型作业通过教师模块:删除课程操作:通过添加课程操作:添加成功,但是无法刷新,不通过修改课程操作
2021-02-26 15:22:33
134
原创 【橙子日记38】从零开始的毕业设计
更新时间:2021年2月25日项目发布设置后端启动端口:后端将会在44362端口开放先打包前后端文件前端:后端:上传至服务器:配置nginx:前端:然后重启一下nginx:nginx -s reload效果:不过说真的,服务器真的不行,加载老慢了!后端:启动一下:http://127.0.0.1:44362已经开放了现在需要nginx进行配置端口转发:注意,这里我们把数据从44362转发到了44366,等下我们前端也得改改重启nginx效果:
2021-02-26 00:56:53
140
原创 【橙子日记37】从零开始的毕业设计
更新时间:2021年2月25日由于快要发布linux操作系统我们是时候要转移数据库了sql转mysql数据库:由于我们使用的ef,更换数据库非常的简单我使用navicat,一键转换,然后自己微调由于sql的DateTime2类型,mysql不好对应,于是我都换成了string记得,创数据库的时候要把数据库字符集改成utf-8,不然可能输入不了中文依赖性更换:Pomelo,以前的全部都要替换掉我们只需要更换一下数据库连接字符串即可由于有之前的经验,很轻松,我们更换了mysql数据
2021-02-25 15:10:29
106
原创 【橙子日记36】从零开始的毕业设计
更新时间:2021年2月24日完善细节:信息界面优化:添加收缩菜单操作:主要都是前端优化:代码:封装圆饼图:<template> <div> <div ref="chart" :style="{ width: w+'px', height: h+'px' }"></div> </div></template><script>export default { props: ["my
2021-02-24 15:54:26
126
原创 【橙子日记35】从零开始的毕业设计
更新时间:2021年2月23日是时候要加快脚步了注册功能:后端: [HttpPost] public IActionResult Register([FromForm] string mail, [FromForm] string username, [FromForm] string pwd, [FromForm] string code) { string codeData = "abcd".ToUpper();
2021-02-23 19:23:04
130
原创 【橙子日记34】从零开始的毕业设计
更新时间:2021年2月22日今天来实现一个难点验证码问题普通的版本就是生成是一个图片,让你输入数字但是要作为我的毕业设计,那肯定不够要用就用高级的操作滑动验证码+选择文字验证码高级验证码:我曾经想过,是不是花点钱买第三方的验证码API当我看到腾讯云的费用是1000起步的时候,我放弃了。。。借鉴github的源码,我们自己弄一套出来后端:common新建2个处理验证码的工具类依赖注入,这里不用接口在处理登入控制器中添加API [HttpGet] [Rout
2021-02-22 19:03:07
192
原创 【橙子日记33】从零开始的毕业设计
更新时间:2021年2月20日实现课程,作业的修改,删除功能毕业设计看来看去,也就是看后端数据的增删改查增和查的功能已经实现了,现在实现修改和删除修改功能:修改和添加的框是几乎一样的,我们可以进行重用这里我们可以修改的是:开始时间,结束时间,作业名字修改前端api:调用:后端api:界面优化一下:我们测试一下效果:ok,一次就成功了!我们继续,删除功能:删除操作:删除相对于修改要比较简单点:删除要彻底删除,不仅要把work表中的数据删除还要删除学生作
2021-02-20 18:38:16
134
原创 【橙子日记32】从零开始的毕业设计
更新时间:2021年2月17日今天是作业模块最后一个内容:图片类型作业:这里我们是之前弄好的文件和图片是一个性质,所以添加作业可以直接公用,只用修改作业类型就可以现在我们主要是要弄,学生提交图片的功能为什么要把图片类型作业分来开呢?1:大部分作业只是一张截图2:我们要实现自动打水印的功能3:我们要实现图片自动识别,不能上传差距过大的图片api:进入页面跳转:注意,这里我们传过去的是workid,我们后端需要student_id提交数据:我们后端: [HttpPost
2021-02-18 23:57:49
140
原创 【橙子日记31】从零开始的毕业设计
更新时间:2021年2月15日真的,不知不觉竟然都到了31更!好家伙今天跟上上次的脚步,继续把试卷作业给完善一下昨天只能展示出来,今天要能提交功能试卷作业提交模块:思路:前端将传给后端后端根据列表里面的workid来判断是属于哪个作业在给对应的作业根据昨天提出来的算法进行计算分数打分我们现在把前端api弄下:后端测试:好像不能这样,只能接受到第一个值而已我就知道入宫我们改成这样:可以看出请求的3个数据是无序的,这样后端也肯定识别不了,我们再改一下:这种情况也是和
2021-02-16 19:44:08
106
原创 【橙子日记30】从零开始的毕业设计
更新时间:2021年2月14日今天任务:完成后端3种作业类型表实体(选择题,判断题,问答题)数据库设计思考了一下,这样弄是行不通的!教师创建作业,会在学生作业关系表种添加字段,代表,某个学生需要做什么作业后面的题目根据学生作业关系表中的workid分别去选择题表和判断题表和问答题表中找workid=workid的数据,然后分别展示出来哇!这个操作的话,数据量会非常非常大一开始我想着,只需要后端判断一下前端传过来的数据,根据数据来自动给分,但是明显有几个问题:教师批改作业:如果后端不保存
2021-02-14 20:57:57
164
原创 【橙子日记29】从零开始的毕业设计
更新时间今天开始进入本系统最核心的模块,有一定的难度思路想了很久,是一个比较大的工程在线作业模块:该模块分为3个部分:教师添加在线作业学生在线写作业教师批改在线作业没有打算弄的很复杂,还是那个原因:我很清楚的认知,这只是一个毕业设计而已。在之后的路上,可能与这些东西毫不相干。这只是一个毕业设计,只是证明大学没有浪费了,只能算是打发打发时间吧。由于在线作业不属于文件每个数据应该放到数据库中我们放3种题型做代表:单项选择题,判断题,问答题其他的,不打算弄,因为真的没那个必要,
2021-02-13 22:03:28
132
原创 【橙子日记28】从零开始的毕业设计
更新时间:2021年2月12日更新模块效果:前端代码:<template> <div class="block p-5"> <el-timeline> <el-timeline-item v-for="(activity, index) in activities" :key="index" :size="normal" :color="'#006eff'" :timestamp="act
2021-02-12 23:14:37
270
原创 【橙子日记27】从零开始的毕业设计
更新时间:2021年2月11日今天是除夕今天测试配置一下linux环境Linux:之前租过几年的腾讯云服务器现在还有一年过期撑到毕业还是问题不大的安装软件:有这3个就够了之前已经配置好了部分的环境现在我们准备一个静态网页,看看能不能发布出去之前安装mysql都已经配置好了,navcat也连接上了现在来配置一下nginx反向代理服务:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel先安装gcc p
2021-02-11 17:28:18
155
原创 【橙子日记26】从零开始的毕业设计
更新时间今天分配的任务有点多除此之外,我心血来潮,分析了一下csdn的评论机制花了几分钟看看能不能弄一个自动回复的机器人尝试CSDN自动回复csdn的评论都是post请求https://blog.csdn.net/phoenix/web/v1/comment/submit网址post请求添加内容和文章id即可伪造这个很容易的using System;using System.IO;using System.Net;using System.Text;namespace PostT
2021-02-10 21:21:11
131
1
原创 【橙子日记25】从零开始的毕业设计
更新时间想了想后面的工程还很多很多我们得改造改造才行继续扩展后端架构采用T4模板将添加模型的要手写的代码减到最少!扩展T4模板我们来理清一下,如果我们添加新的模型,需要手动添加哪些代码1:添加模型层这个没办法,无法自动生成的,无法使用T4模板2:Dal层:IDbSession:using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namesp
2021-02-09 15:15:13
121
5
原创 【橙子日记24】从零开始的毕业设计
更新时间终于到了核心的分数模块了分数模块有了之前的铺垫,现在弄分数模块很好实现的我们在student_work关系表中添加分数字段work_score:该次作业的分数work_score_time:教师批改的时间分数模块教师批改流程:添加作业时,将work_score设为-1,即教师没有批改当is_complete为true时,即学生完成了作业,进入教师批改作业的表中教师批改作业,即将work_score改成0-100,同时将work_score_time改为批改时间即可由于我们需要
2021-02-08 16:25:47
105
2
原创 【橙子日记23】从零开始的毕业设计
更新时间:2021年2月6日今天要弄干大事情!本期篇幅涉及到框架较难理解思路昨天晚上想了很久,分数模块是不是要创建一个分数表,然后将每次分数累加起来很明显,这种做法实在不符合c#的艺术如果我要知道总合的话,我第一个想到的是使用linq的分组累加语句目前,我们的dal只有增删改查和分页查询,这里涉及到其他的分组查询,我们需要给他额外写方法着务必要重改dal层,当然,如果想简单直接在basedal里面改即可,但是,很明显,这不优雅,这不是一个艺术那我们接下来要做的,是扩展三层架构的dal层
2021-02-06 16:44:55
135
2
原创 【橙子日记22】从零开始的毕业设计
更新时间:2021年2月5日今天来填个坑关于课程图标的上传操作:数据库添加logo字段,其实就是保存logo的文件名即可前端我直接放源码吧,因为改了很多很多次,中间的过程没有记录到(鬼知道我这里和bug磨时间磨了多久)<template> <!-- @click="intoMyWork(item.id)" --> <div id="home"> <div class="row"> <div class="c
2021-02-05 23:13:43
120
原创 【橙子日记21】从零开始的毕业设计
更新时间:2021年2月4日设计登入页面要求:主题为黑蓝色响应式布局登入,注册,忘记密码3个页面验证码功能邮箱功能方框采用尖脚,不需要圆弧成果:由于这种登入注册之类的界面网络上多如牛毛,我们只需面向复制粘贴的编程即可但前提是要完全理解,能随意修改登入界面:注册界面:忘记密码界面:目前这3个还是静态网页整体为暗黑色的主题,鼠标悬浮有变蓝色的特效另外声明:本系统不用于任何商业行为(那不废话)最终目的是写出一篇论文论文第一版名字我都想好了:《基于.Net5与V
2021-02-04 19:50:25
157
原创 【橙子日记20】从零开始的毕业设计
更新时间:2021年2月2日更新突破20了!今天把昨天的坑填一下评论模块界面优化昨天的坑开始优化!效果还是有的但是下面出了横向滚动条,我很不舒服f12看看是谁的问题我们测的上方标准的页头长度=760+20+20=800在显示讨论的地方,大小等于734+48+48=830这边多了2个为15padding那应该设置的饿padding应该为48-15=23不够即使设置了,也没什么效果这个地方,两边的间隙是15px应该整个页面都有点问题最终效果有一点知乎的风格把边
2021-02-02 23:56:04
104
原创 【橙子日记19】从零开始的毕业设计
更新时间:2021年2月1日二月了添加讨论区模块后端写入api前端写好相应代码注意几点要想知道作者是谁,需要后端通过教师id进行查询,很舒服的是,继承于我的基类控制器里面获取了教师iddatetime.now获取的时间精度太高了,没那个必要,默认是秒后面3位数,我们只要秒就够了前端记得加一个resp.flag 的else语句用来判断是否登入过期我们来查看一下前端api我总感觉。。。这样有点累赘,不够优雅,我也想想办法,看看能不能减少代码测试:后端:读取不到数据不过,我还
2021-02-01 23:54:59
163
3
原创 【橙子日记18】从零开始的毕业设计
更新时间:2021年1月30日作者心得不忘初心我这个是毕业设计始于毕业设计,终于毕业设计毕业设计=成果+论文+ppt+其他在我看来,成果要占主要地位的,其实不然,论文一样重要!目前这个东西,我们还没有动过一下今天特意查阅了我的教师资料的论文真的厉害他已然成为了我的榜样,向他学习考虑了很久,我也看过很多当代软件工程大学生的毕业论文主要大部分是做一个公司的管理系统,全程下来,全部都是表的增删改查,无限的复制粘贴,只是换个表名,使用的技术可能都比较落后,架构不够新颖,成果只能算一般,但论文
2021-01-30 20:24:42
224
4
原创 【橙子日记17】从零开始的毕业设计
更新时间:2021年1月29日今天负责echar模块之前:由于这个东西,学的不多,之前只是单一的放进去了而已现在我们要做的,是深度将他理解,把他封装!首页既然是首页自然要放点厉害的东西我有好几个打算放一个自转的地球,将新型冠状病毒分布弄上去放一个中国的地图,将新型冠状病毒分布弄上去制作一个3维的柱状图,将新型冠状病毒分布弄上去之前弄了一下第二种效果图:效果。。。只能说还不错吧,暂时这样,到时候再弄弄封装echars由于,我们会在很多页面用到饼图和柱线图,我们不可能说
2021-01-29 20:48:19
109
原创 【橙子日记16】从零开始的毕业设计
更新时间:2021年1月28日今天要做的事情比较少,主要是ui学生课程ui界面虽然说,搞ui要相对于其他简单的多但是花时间,是真的花啊其实我想过很久,这只是一篇毕业论本,一篇本科毕业论文,一篇不入流的本科毕业论文我要展示的,是我学到了多少。我学到了很多前端的知识,很多后端的知识,很多网络的知识等等这些我都能带入进我的毕业设计但是,ui这种东西。。。我实在技不如人搞设计,需要艺术细胞,我承认我的细胞更精通于逻辑之类的由于推推敲敲,不过中途倒没这么卡顿,最终半成品:这里是放学生选课的地
2021-01-28 23:56:36
129
原创 【橙子日记15】从零开始的毕业设计
更新时间:2021年1月27日昨天历经千辛万苦将系统进行了还原今天正式开始操作目标:登入,注册,退出登录,模块base控制器验证模块前端登入注册模块后端关于登入注册这种东西,已经不知道弄了多少次了,现在再弄,简直就是小菜一叠,进度进展的飞快,一步到位!登录,注册,退出处理控制器:using CC.GraduationProject.Common;using CC.GraduationProject.IBLL;using CC.GraduationProject.Model;usin
2021-01-27 21:25:27
156
原创 【橙子日记14】从零开始的毕业设计
更新时间:2021年1月26日今天绝对要更一篇!这是我强迫着我自己更新本篇!回顾昨天弄了身份验证服务,但是很明显有一个问题,就是。。无法区别教师和学生的区别关于这个,肯定难不倒我的我们在模型类添加了权限等级字段数据库也相应的自动添加。如果权限等级为0,那么为学生如果权限等级为1,那么为教师之前弄的前端,都是教师和学生混在一起弄的,没有权限等级的概念现在,有了登入和注册功能,我们来把这个数据变成动态,不要写死了思路在登入成功的时候,添加进身份认证即可增加一个base控制器。所有控
2021-01-26 21:23:39
139
原创 【橙子日记13】从零开始的毕业设计
更新时间:2021年1月25日我可从没说过日记是一日一更有空就更(其实昨天去吃了自助,晚上不想动了。。)登录模块做毕业设计,当然是要把自己会的东西放上去,如果像一般的做法,感觉挑战性不是很大,弄,就弄好点!弄就弄大点!淦!我们登录系统使用:ASP.NET Core Identity Entity Framework Core.进行身份验证宇宙无敌的vs直接管理NuGet包,进行安装模型层添加模型继承 IdentityUser上下文继承:IdentityDbContext
2021-01-25 21:48:02
194
原创 【橙子日记12】从零开始的毕业设计
更新时间:2021年1月23日今天去了乡下,很晚才回来留给我的时间不多,但是目标比较明确!将学生提交作业的模块弄好废话少说前端:模型已经更改前端需要传作业id,和文件其他后端自动获取。作业id传入钩子函数获取地址文件提交的两个方法前端就这样了后端:这里出了一个问题这条记录本来就是有的如果学生提交作业的话,是把 是否完成 改成1着不是添加操作,而是修改操作那我们必须给出他的主键很遗憾,我们这里并不知到学生作业关系表的id字段这里,也难不倒我们!我们有了作业
2021-01-23 21:16:03
121
原创 【橙子日记11】从零开始的毕业设计
更新时间:2021年1月22日今天报名了蓝桥杯我应该抽出毕业设计的一部分时间来练练很不幸的是只有c,c++,java,python本人虽都会一点皮毛,但接触的c#较多,其次是pyhton于是,我选择了python!从今天开始,每天做几道python的题目报名时间截至到3月,所以我的时间比较充足(其实不太想参加这一类的比赛,可能是我的薄弱区吧)(数据结构c#包装好了,算法简单的都百度,难的也基本用不上,导致现在不太行,外加使用python,莫名有点迷茫。。。)接下来的路完善细节:大部分
2021-01-22 20:11:53
117
原创 【橙子日记10】从零开始的毕业设计
更新时间:2021年1月21日震惊!我的日记突破十更了!!!今日目标:把昨天解决的bug用上教师添加作业模块完善开干!后端:id不用管课程id通过前端传过来教师工号登入之后存储开始时间、结束时间、作业名称,前端传过来作业文件名、路径通过表单进行提取先添加进入作业表:在把作业添加对应进,学生课程关系表中但是很尴尬的一面出现了:学生课程关系表中需要作业id字段,而作业id字段是根据标识列自动获取的!着就意味着,这种操作绝对不行,因为我不知道了作业的id字段了!不过,这个难
2021-01-22 01:00:53
141
2
原创 【橙子日记09】从零开始的毕业设计
更新时间:2021年1月20日目标:完成教师添加课程,添加作业的模块区分一下:教师添加课程:不用管学生课程关系表,因为是学生选教师课程,在选课的时候进行添加教师添加作业:这里就不一样了,这里不仅仅要在作业表中添加,还要在学生作业表中进行添加,因为选了这门课程的学生,他的所有作业一定会被接受前端:添加一个对话框,当点击添加课程就弹出效果api写好,和后端进行对应前端优化:我发现选择课程和选择作业,都是通过id进行查找,既然如此这里就不分教师和学生的区别,因为id已经进行筛选过
2021-01-20 22:39:20
112
原创 【橙子日记08】从零开始的毕业设计
更新时间:2021年1月19日不知不觉已经更新了8次了,更新次数都快两位数了。。。进度比我想想中的要快,预计100年完成,现在估计要50年吧,哈哈回顾上次我们写完了课程模块:学生选课学生查看自己课程教师查看自己的课程教师审批学生选择的课程这一次真正进入作业模块:学生点击课程后,查看该课程有什么作业学生点击某个作业后,查看该作业的内容学生提交作业教师查看自己有什么课程教师批改学生作业学生查看自己所有要完成的作业作业扩展:后期加入题目类型截图,文件,在线作业目前先完成文件操
2021-01-19 15:34:20
118
原创 【橙子日记07】从零开始的毕业设计
更新时间:2021年1月18日一觉起来,状态拉满废话少说,开干!昨天把学生选课的模块干了今天弄教师审批学生选课后端:写下两个方法:TeacherCurriculumApproval()//教师进行对学生申请的课程审批,同意是将结果改成1,0代表待处理,不同意删数据HandleCurriculumByIdList(List IdList,int is_result)//教师进行审批处理先把数据展示给教师,教师再进行处理为了能处理多个数据,传入参数用集合表示。并在业务逻辑层进行处理好处:
2021-01-18 16:22:54
117
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人