- 博客(50)
- 资源 (7)
- 收藏
- 关注
原创 杨中科 ASP.NET 日志系统
1、日志级别:Trace<Debug<Information<Warning < Error < Critical2、日志提供者(LoggingProvider):把日志输出到哪里。控制台、文件、数据库等。3、.NET的日志非常灵活,对于业务代码只要注入日志对象记录日志即可,具体哪些日志输出到哪里、什么样的格式、是否输出等都有配置或者初始化代码决定。
2024-02-19 08:29:44 695
原创 杨中科 ASP.NET DI综合案例
关注于接口,而不是关注于实现,各个服务可以更弱耦合的协同工作。在编写代码的时候,我们甚至都不知道具体的服务是什么。第三方DI容器:Autofac等。Autofac优点:支持属性注入基于名字注入、基于约定的注入等。
2024-02-16 22:43:10 891
原创 杨中科 .netcore 依赖注入
生活中的“控制反转”:自己发电和用电网的电。依赖注入(Dependency Injection,Dl)是控制反转:(Inversion of Control,l0c)思想的实现方式。依赖注入简化模块的组装过程,降低模块之间的耦合度。
2024-02-16 16:00:46 1471
原创 杨中科 配置系统
1、传统Web.config配置的缺点,之前DI讲到过2、为了兼容,仍然可以使用Web.config和ConfigurationManager类,但不推荐。3、.NET 中的配置系统支持丰富的配置源,包括文件(json、xml、ini等)、注册表、环境变量、命令行、Azure Key Vault等,还可以配置自定义配置源。画以跟踪配置的改变,可以按照优先级覆盖。
2024-02-06 11:24:48 697
原创 杨中科 ASP.NETCORE 高级14 SignalR
1、需求:Web聊天;站内沟通。2、传统HTTP:只能客户端主动发送请求3、传统方案:长轮询(Long Polling)。缺点是?(1.客户端发送请求后,服务端要等到有数据返回,返回数据后,才方法连接。2.或者是每秒向服务器发送消息,询问是否有数据返回)一台服务器,能处理得并发量是有限的,这种方式就会很消耗资源。
2024-02-05 17:17:55 989
原创 杨中科 EFCORE 第六部分 一对多关系配置
1、所谓“关系数据库”2、复习:数据库表之间的关系: 一对一、一对多、多对多。3、EF Core不仅支持单实体操作,更支持多实体的关系操作。4、三部曲:实体类中关系属性;FluentAPI关系配置;使用关系操作。
2024-01-16 17:25:59 945
原创 杨中科 EFCORE 第五部分 同样的Linq 被不同数据据翻译为不同SQL
同样的C#语句在不同数据库中被EF Core翻译成不同的SQL语句。
2024-01-15 17:21:52 599
原创 杨中科 EFCORE 第四部分 命令详解56-61
1、使用迁移脚本,可以对当前连接的数据库执行编号更高的迁移,这个操作叫做“向上迁移” (Up),也可以执行把数据库回退到旧的迁移,这个操作叫“向下迁移(Down)2、除非有特殊需要,否则不要删除Migrations文件夹下的代码。3、进一步分析Migrations下的代码。分析Up、Down等方法。查看Migration编号。4、查看数据库的_EFMigrationsHistory表: 记录当前数据库曾经应用过的迁移脚本,按顺序排列示例:程序结构Person 类主程序类。
2024-01-14 21:42:54 952
原创 杨中科 EFCORE 第三部分 主键
1、EF Core支持多种主键生成策略:自动增长;Guid;Hi/Lo算法等。2、自动增长。优点:简单;缺点: 数据库迁移以及分布式系统中()比较麻烦;并发性能差(long、int等类型主键,默认是自增。因为是数据库生成的值,所以SaveChanges后会自动把主键的值更新到Id属性。试验一下。场景: 插入帖子后,自动重定向帖子地址。3、自增字段的代码中不能为Id赋值,必须保持默认值0.否则运行的时候就会报错示例:SaveChanges后会自动把主键的值更新到Id属性。
2024-01-14 15:27:02 417
原创 杨中科 EFCore 第二部分 实体配置
主要规则:1:表名采用DbContext中的对应的DbSet的属性名。2:数据表列的名字采用实体类属性的名字,列的数据类型采用和实体类属性类型最兼容的类型。3:数据表列的可空性取决于对应实体类属性的可空性。4:名字为Id的属性为主键,如果主键为short,int 或者long类型,则默认采用自增字段,如果主键为Guid类型则默认采用默认的Guid生成机制生成主键值。
2024-01-14 10:55:44 758
原创 杨中科 .NETCORE EFCORE 第一部分 基本使用
1、说明: 本课程需要你有数据库、SOL等基础知识。让开发者用对象操作的形式操作关系数据库3、有哪些ORM: EF core(官方推荐)、Dapper、SqlSugar、FreeSql等。
2024-01-13 21:59:44 1021
原创 杨中科 .NETCORE 异步编程
异步点餐的优点:能同时服务异步点餐一定会提升点餐速度吗?答案理所当然:不能图片美化服务例子服务器能够同时服务的请求数量有限处理完成后再回调,异步回调通知的。就可以同时处理更多的请求传统多线程开发太麻烦。C#关键字;async、await不等于“多线程。
2024-01-11 20:36:19 1245
原创 杨中科 .NETCORE NuGet
使用这个开发包Entity Framework Core用户可以使用LINQ语句删除或者更新多条数据库记录,操作只执行一条SQL语句并且不需要首先把实体对象加载到内存中。这个开发包支持Entity Framework Core 5.0以及更高版。操作说明:第一步https://www.nuget.org 精准搜索合适与不知道什么样的软件包,可以解决你的问题。【注意】查看是否支持你的版本。
2024-01-11 16:30:35 775
原创 杨中科 .NET项目结构及程序发布
【总结】:framework项目中,所有文件必须显示的添加到项目文件中。没有添加到该文件的内容,是不属于该项目的。在framework中,是无法双击打开csproj文件的,只能通过打开项目文件位置,找到该文件打开修改,独立:直接生成的包里面,就包含了 .netcore的运行时环境。但是在 .net core中,所有的文件都默认属于项目文件,除非你移除了。在 .netcore中就能直接双击项目文件,在vs打开csproj文件。编译的时候就完成JIT的优化,启动运行速度更快,但是编译速度减慢。
2024-01-11 14:55:56 446
原创 杨中科 ASP.NET Core 中的依赖注入的使用
1、在ASP.NET Core项目中一般不需要自己创建ServiceCollection、IServiceProvider。1、把Action用到的服务通过Action的参数注入,在这个参数上标注[FromServices]。2、一般不需要,只有调用频率不高并且资源的创建比较消耗资源的服务才FromServices]3、只有Action方法才能用[FromServices]普通的类默认不支持。若很多方法中,只有这一个方法使用到了 testService。思考:如何在使用到这个方法的时候,才去构造它。
2024-01-09 15:06:10 689
原创 杨中科 ASP.NET Core前后端分离开发
2、主流的“前后端分离”: 前端开发人员和后端开发人员分别负责前端和后端代码的开发,各自在自己的项目中进行开发,后端人员只写Web API接口页面由前端人员负责。,可以针对性运维 (扩容等缺点: 对团队的沟通能力要求更高,提前沟通好接口和通知接口变更,不利于SEO (可以用“服务器端渲染”SSR),对运维要求更高。1、传统MVC开发模式: 前后端的代码被放到同一个项目中,前端人员负责编写页面的模板,而后端开发人员负责编写控制器和模型的代码并且“套模板”。3、在views文件夹下创建Login.vue文件。
2024-01-08 22:38:03 1854
原创 杨中科 ASP.NETCore WebAPI 控制器及返回值、参数问题
4、Web API中的Action方法的返回值同样支持IActionResult类型,不包含类型信息,因此Swagger等无法推断出类型,所以推荐用ActionResult,它支持类型转换,从而用起来更简单。1、在[HttpGet]、[HttpPost]等中使用占位符,比如[schoolName},捕捉路径中的内容,从而供Action方法的参数使用。2、捕捉的值会被自动赋值给Action中同名的参数如果名字不一致,可以用[FromRoute(Name=“名字”)]
2024-01-08 20:09:05 1165
原创 杨中科 ASP.NETCore Rest
1、Web API两种风格: 面向过程(RPC) 、面向REST (REST)2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll、/Persons/GetBvld?
2024-01-05 19:09:28 806
原创 杨中科 ASP.NETCore开发效率利器 HOT RELOAD
代码发生比较重大的变化时,比如新增、删除方法,给方法增加参数等等。3、方法2: .NET 6开始的Hot Reload(热重载)正常修改代码后 不重启,是无法看到新的数据展示在页面。1、困惑:修改了服务器端的代码,必须重新运行程序。缺点:不是以调试的方式 生成项目,无法使用断点操作。发现此时,不需要重启项目,便可以得到最新的结果。2.如果不太需要断点调试:开始执行不调试方式。2、方法1: [启动 (不调试) ]1.如果需要经常设置断点:热重载。点机保存之后,便能自动刷新。
2024-01-04 20:35:39 686
原创 杨中科 ASP.NET MVC
1、ASP.NET Core是.NET中做Web开发的框架2、ASP.NET Core MVC 传统MVC项目,前后端都做在一起3、ASP.NET Core Web API: 前后端分离、多端开发。(是属于MVC中的一部分)4、ASPNET Core MVC其实包含Web API,不过日常一般看成两个东西5、侧重Web API6、需要你有Html、JavaScript的基础,需要了解Http协议。
2024-01-04 11:02:47 959
原创 杨中科 .NET Core 第一部分.NET Standard
1)不讲C#基础语法和NET基础类库(不需要学过ASPNET等)。需要懂HTML、JavaScript、数据库等。控制台是没有 .NET Standard(他只是标准不是实现).NET Core 跨平台程序。.NET Framework Windows 程序。.NET Standard 上述两者 遵从的标准。在添加 .NET Framework程序。新建.NET Standard 类库。.NET5 开始上述统称为 .NET。运行.NET Framework。
2024-01-03 21:37:07 723
原创 杨中科.NET Core 教程 第一部分-2- .NET Core的重要问题
用Mono,.NET Framework程序可以直接运行在Linux下。有了Mono,为啥微软还搞.NET Core?尽管绝大部分用法都没变,但是.NET Core不是 .NET Framework的升级版,无法直接升级。1、带着手铐脚镜长大的ASP.NET MVC。Mono在移动端单纯,到了服务器端就走不动了。2、ASP.NET底层不支持很好的单元测试。3、ASP.NET和IS深度耦合。1、系统级别的安装,互相影响。4、ASP.NET资源消耗大。
2024-01-03 20:06:30 579
原创 C# 进阶语法,Linq入门到详解
LINQ (Language Integrated Query) 即语言集成查询–用来作查询一些操作类库主要负责对象的查询。1、LINQ to Objects 主要负责对象的查询2、LINQ to XML 主要负责XML的查询。3、LINQ to ADO.NET 主要负责数据库的查询。linq核心就是对数据源的操作学linq另外的知识点非常重要–扩展方法。
2024-01-03 16:30:51 469
原创 C# 语法进阶 委托
特性:特性是让我们的类,方法,属性,参数 之类的。在不修改源码的情况下,产生了更多功能,或者其他功能(打一个标签就生成了新的功能,本质他其实就是AOP的另一种 实现方式。【2】 在定义事件类的外部不能调用事件,另外事件就是在委托的前面增加一个event 关键字。【4】给委托传递相同的方式时, 生成的委托实列也是相同的(也就是同一个委托)【1】 在定义事件类的外部,他是不能使用=号来操作,只能使用+=委托是一个引用类型,其实他是一个类,保存方法的指针。【2】带返回值的多播委托只返回最后一个方法的值。
2024-01-02 20:32:17 1414
原创 C# 反射 入门到详解
首先看一张流程图反射最最要的关注的地方 就在metadata 元数据元数据:描述DLL/EXE文件中有什么内容点击生成之后,就会在文件中生成DLL/EXE文件点击打开文件夹在bin/Debug 文件下就会生成该文件exe/dll文件的区别:最主要的区别就是exe文件有入口metadata(元数据):描述exe/dll文件的一个数据清单反射(Reflection):就是来获取和操作metadata数据【反射使用情况】1.更新程序时。(自己的DLL)
2023-12-28 17:57:09 996
原创 建造者模式-遇见狂神说
创建型模式:(省去new对象,帮助我们更好的创建对象)单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式结构型模式:设配器模式、桥接模式、装饰模式、组合模式、、外观模式、亨元模式、代理模式行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式建造者模式建造者模式也属于创建型模式,他提供了一种创建对象的最佳方式。定义:将一个复杂对象的构建与他的表示分离,使同样的构建过程可以创建不同的表示主要作用:在用户不
2022-04-12 17:31:38 340
原创 JWT 简要
jwttoken是安装一定规则生成字符串,包含用户信息。规则是怎么样的的,不一定一般采用通用的规则,官方规则JWTjwt就是给我们规定好了规则,使用jwt规则可以生成字符串,包含用户信息Internet服务无法与用户身份验证分开。一般过程如下:用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。服务器向用户返回session_id,session信息都会写入到用户的Cookie。用户的每个后续请求都将通过在Cookie中取出session_id
2022-04-11 15:50:05 653
原创 SpringSecurity
SpringSecurity安全简介在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应
2022-04-11 15:36:41 122
原创 java finally关键字
finally{}中的语句是一定会执行的,那么这个可能正常脱口而出就是return之前,return之后可能就出了这个方法了,鬼知道跑哪里去了,但更准确的应该是在return中间执行,请看下面程序代码的运行结果:public class Demo2 { public static void main(String[]args) { System.out.println(test()); } static int test() { int x
2022-02-15 16:58:19 226
原创 遇见狂神说SpringBoot笔记
准备工作我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。我的环境准备:java version “1.8.0_181”Maven-3.6.1SpringBoot 2.x 最新版开发工具:IDEACtrl+N按名字搜索类Ctrl+Shift+N按文件名搜索文件Ctrl+F/Ctrl+Shift+F按照文本的内容查找Shift+Shift搜索任何东西
2022-01-23 12:20:32 3727
原创 mybatis配置错误记录
一、org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.MapperRegistry是什么?在核心配置文件中注册mappers二、java.lang.ExceptionInInitializerError导致该问题的原因有很多(1)配置文件没有注册 在mybatis-config中配置UserMapper.xml
2021-11-22 22:48:15 224
原创 uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deploye
出现uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application而后台没有报错是来自于使用了<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>–%><%@ taglib uri=“http://java.sun.c
2021-10-21 15:12:28 229
原创 java二维数组的理解,锯齿二维数组赋值 ,foreach的理解及输出方式
Java采用“数组的数组”声明多维数组,一个二维数组是由多个一维数组构成的。如下int mytwo[][]=new int[3][4];上述创建的二维数组mytwo就是由三个长度为4的一维数组mytwo[0],mytwo[1],mytwo[2]构成的。其地址引用如下2.构成二维数组的一位数组不必有相同的长度,在创建二维数组时可以分别指定构成该二维数组的一维数组的长度,例如:int a[][]=new int[3][];创建了一个二维数组a,a由三个一维数组a[0],a[1],a[2]构成,
2021-04-21 20:08:10 255
原创 关于安装Maven重启后,控制台不能识别mvn命令
解决此问题的方法为在系统变量中设置好Maven后接下来再path编辑中将M2_Home上移到%SystemRoot%\system32后面即可
2021-04-21 19:11:16 316
原创 Unity制作moba游戏小地图,在小地图上拖拽查看相应位置
制作一个moba 游戏的小地图首先创建如下图所示画布结构并做相应参数设置接下来就是代码环节using System.Collections;using System.Collections.Generic;using UnityEngine;// This script should be attached to the minimap RawImage.using Uni...
2020-10-07 20:36:17 277
原创 C#多态的记录
using System;namespace Retunrn1{ class Program { //抽象类 abstract class Dynamic { //抽象方法 abstract public int AbstrTest(); public abstract int Test(); public virtual void cho
2020-05-12 13:11:28 108
游标、事务、锁 .pptx
2020-09-15
使用三层架构,数据库,构建的携程登录、注册jsp网站
2019-03-14
bootstrap 栅格
2019-03-10
php 开发的考试系统
2019-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人