无题
DDD1、架构设计1.1 架构设计的问题和具体的代码编写不同,架构设计存在一定的主观因素,而且因行业、公司、团队的不同而不同,并没有哪个架构设计是绝对对的或错的,没有最好的架构,只有最适合的架构。但是不少技术人员在架构设计上容易犯“迷信大公司”“迷信流行技术”等错误。
有的人员在进行架构设计的时候,会说“某某大公司采用这样的架构”,言下之意就是“大公司都这样做,我们这样做肯定没错”,但是他并不了解那个大公司为什么采用这样的架构,自己所在的项目是否适合这样的架构
IT行业的发展瞬息万变,新技术层出不穷,很多技术人员出于个人兴趣、个人职业发展等考虑而选择一些流行的新技术,他们会把各种复杂的架构模式、高精尖的技术都加入架构中,这增加了项目的复杂度、延长了交付周期、增加了项目的研发成本。有些技术并不符合公司的情况,最后项目失败了,某些技术人员就拿着“精通某某流行技术”的简历去找下家了,给公司留下一地鸡毛。
因此,我们做架构设计的时候,一定要分析行业情况、公司情况、公司未来发展、项目情况、团队情况等来设计适合自己的架构,不能盲目跟风。
1.2 架构是进化而来的罗马不是一天建成的,大公司的复杂架 ...
无题
WPF和Win Form的差别就在于控件的创建
WPF程序的初始化XAML意义
123456789101112<Window x:Class="WPF01.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" MAXL控件的所有程序集 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 解析XAML的程序集 xmlns:local="clr-namespace:WPF01" ...
无题
Git1、简介Git就是一个分布式版本的控制工具软件。
工具软件:实现指定功能的软件,比如,说到下载,想到的就是迅雷,说到聊天,微信与qq
Git:可以管理软件开发项目中的源代码文件
版本控制:版本控制是一种记录文件内容变化,以便将来能够查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改的历史记录,从而让用户能够查看历史版本,方便版本切换。
为什么需要版本控制?
个人开发过渡到团队协作。
本次课程会讲解如下内容:
Git安装
Git 命令:讲解git中常用的命令
Git分支: 分支特性,分支创建,分支转换,分支合并,代码合并冲突解决
GitHub: 创建远程库,代码推送(Push), 代码拉取(Pull) (由于网络的原因,会出现无法链接,或者是链接比较慢的情况)
Gitee 码云(服务器在国内,国内的GitHub)
GitLab(公司自己搭建的项目管理的服务器)
官网:https://git-scm.com/
2、版本控制介绍(1)集中式版本控制工具
CVS,SVN,VSS
集中化的般般控制系统诸如CVS,SVN等,都有一个单一的集中管理的服务器,保存所有文件的 ...
无题
Redis1、Redis简介redis是一个键值对的数据库。
值不仅可以是字符串,也可以是其他的类型,例如List集合Hash类型等。
从以上存储的数据结构可以看出与传统的SQLServer还是有很大的区别的,没有表,字段等。
像这种键值对结构的数据库我们统称为nosql数据库。
2、什么是NoSqlSQL: 关系型数据库
NoSql非关系型数据库
以上图展示的就是关系性数据库中表与表之间的关系。(关联的),这里想删除编号为1的用户或者是编号为10的商品是不允许的。
而NoSql是没有上面这种非常强的关系,那么如果想展示这种关系,应该怎样处理呢?
NoSql是通过一个Josn嵌套的方式来组织对应的关系。
关系型数据库是通过sql语句进行查询,而且大部分的关系型数据库的sql语句基本上是一样的。
而不同的NoSQL查询的语句是不一样的。如下图所示:
对比Sql语句,NoSql查询语句都比较简单,但是缺点就是使用不同的NoSql数据库需要学习不同的语法。
还有一点不同的是关于事务的处理
sql关系型数据库都有事务的处理,满足ACID特性,但是NOSQL数据库,无法满足事务的AC ...
无题
委托事件反射
ADO和EF MVC
WinForm(膳御云台 2022.12-2023.5)主要模块构建WIn Form应用程序搭建了三层,并且将项目分为了如下几个模块:
1、会员管理模块
会员管理模块负责收集和管理会员信息,包括会员的消费记录和会员档案信息。
2、菜品类别模块
菜品类别模块管理菜品信息,包括菜品添加和删除,以及菜品分类。
3、库存管理模块
库存管理模块管理菜品库存总数和日期管理,还负责菜品的采购退货,避免菜品缺货或品质不达标。
4、订单管理模块
订单管理模块负责处理顾客的预定、点单、保存订单记录和历史订单查询。
5、财务管理模块
财务管理模块负责处理用户的结账、记录人员场地的开支、营销开支,制作每月报表和导出数据。
6、营销管理模块
营销管理模块根据市场情况和用户的历史消费记录制定营销计划,如优惠券、会员积分和会员促销活动。
我负责的模块会员管理模块、库存管理模块、订单管理模块
应用到的知识点
窗体传值
窗体传值简单来说就是拥有数据的窗体使用事件调用需要数据窗体的SetValue函数,将数据传给需要数据的窗体。比如说在顾客在加菜时 ...
无题
人力资源管理项目一、前端项目搭建1、搭建项目前的一些基本准备前端使用的是Vue3框架,所以开始先使用Vue脚手架来创建前端的项目。
确保在电脑中安装了对应的脚手架vue/cli
1npm install -g @vue/cli
当然,首先必须在电脑中安装node.js环境
查看node 和 npm的版本
12$ node -v #查看node版本$ npm -v #查看npm版本
**npm淘宝镜像**
npm是非常重要的npm管理工具,由于npm的服务器位于国外, 所以一般建议 将 npm设置成国内的淘宝镜像
设置淘宝镜像
12$ npm config set registry https://registry.npm.taobao.org/ #设置淘宝镜像地址$ npm config get registry #查看镜像地址
2、使用脚手架搭建Vue3开发环境在指定的目录下面执行
1vue create 项目名称
使用以上命令创建项目的时候,出现了如下错误
1vue : 无法加载文件 C:\XXX\AppData\Roaming\npm\vue.ps1,因为在此系统 ...
无题
Vue 核心技术一、Vue介绍1、Vue概念Vue 是一个 渐进式的 JavaScript 框架
官网地址: https://cn.vuejs.org/
渐进式的理解
渐进式:逐渐增强,Vue不强求你一次性在网站中运用学习所有的语法,可以学一点用一点
库和框架的理解
库:本质上是一些方法的集合。每次调用方法,实现一个特定的功能。
框架:是一套完整的解决方案。框架实现了大部分的功能,我们需要按照框架的规则写代码
2、Vue是一个MVVM的框架什么是MVVM呢?
M:Model数据模型(ajax获取到的数据)
V: View视图(页面)
VM:ViewModel 视图模型 (操作视图+模型)
在以前的开发中,我们只用到了View视图页面和Model数据,通过ajax请求获取到数据以后,在通过DOM的方式将数据渲染到View页面中。但是这种开发方式有一个问题,需要我们手动操作DOM,这样导致了开发效率比较低。
为了能够提高开发效率是否可以将DOM的操作做成自动的方式呢?也就是说,当数据变化了自动的渲染到页面中,不需要开发人员在操作DOM.
为了满足这个要求,出现了VM(ViewMode ...
无题
.Net Core Web Api1、什么是.Net Core ApiApi:Application Programming Interface,应用程序编程接口
前后端分离:
2、.Net Core Api 与 MVC开发区别返回数据格式不同,Api返回json格式。
MVC:返回整个html页面。
3、Api 项目创建在创建项目的时候,我们选择的是Asp.net Core Web Api 的项目。
在创建项目的时候把启用OpenAPI支持,这一个选项选中。
创建好的项目中有Controllers文件夹,但是没有Views文件夹,因为现在我们不需要操作视图。
因为,视图也就是我们所说的页面,都是有前端开发人员进行开发的,而我们作为服务端开发人员,不用关心页面的实现,
也就是说,我们服务端开发人员,只负责实现服务端的业务,并且向前端提供数据,前端页面应该怎样展示数据,服务端开发人员不用关心,都是有前端开发人员实现的。
当启动默认创建好的Api程序以后,会呈现出Swagger。
这是由于我们在创建项目的时候,选择了OpenAPI这个选项以后所提供的。
因为Api项目没有界面, ...
无题
定时任务框架Quartz.NET1、介绍Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔来调度作业.
官方学习文档:http://www.quartz-scheduler.net/documentation/index.html
安装包:
123<ItemGroup> <PackageReference Include="Quartz" Version="3.9.0" /> </ItemGroup>
Quartz主要有三部分组成任务(Job)、触发器(Trigger)和调度器(Schedule)
Job就是执行的作业,Job需要实现IJob接口,实现Execute方法。Job中执行的参数从Execute方法的参数中获取。
触发器常用的有两种:SimpleTrigger触发器和CronTrigger触发器。
SimpleTrigger触发器: 实现简单业务,如每隔几分钟,几小时触发执行, ...
无题
邮件发送1、找回密码/发送激活码 分析使用包<PackageReference Include="NETCore.MailKit" Version="2.1.0" />进行邮件的发送
2、定义邮件内容这里我们通过发送邮件的方式,找回密码。
在Cms.Entity项目中,创建Email文件夹,该文件中创建MailBox.cs,表示邮件内容
1234567891011121314151617181920212223242526namespace Cms.Entity.Email{ public class MailBox { /// <summary> /// 邮件正文 /// </summary> public string? Body { get; set; } /// <summary> /// 邮件抄送给谁 /// </summar ...