全栈极简
将全栈进行到底。
展开
-
Git版本管理配置说明 - Visual Studio
然后切换到VS项目的Git界面,选择推送到指定的远程git仓库的名称origin即可。在源代码管理服务器新建文件夹,并配置共享访问权限Everyone(读取/写入)。因为我们只是在局域网中开发项目,暂时不推送到GitHub,所以切换到仅限本地。在VS中打开项目,点选Git更改,点击“创建Git仓库”,创建项目初始版本。增加了git版本管理之后,项目文件默认加锁。但此时文件的版本还是在本地,需要同步提交到服务器。需要安装两个客户端工具,方便进行Git版本管理。在本地访问这台服务器共享目录,确保正确打开。原创 2023-12-02 23:56:51 · 736 阅读 · 0 评论 -
WTM(基于Blazor)问题处理记录
这里的8018跟appsettings.json里的Domains节点下的server配置的端口号一致。经过测试,发现调试程序时能够访问得到里面的文件,但发布程序后不能得到里面的文件。初步判断,IIS的某些设置权限没有开放。这里面的server和serverpub节点下的Address地址中的端口号要跟发布到IIS中的端口号一致。一开始直接在本地映射一个网络驱动器,然后像本地磁盘一样访问共享文件夹里的文件,比如:Y:\。因为调试时启动的url的端口号跟发布的url的端口号不一致,需要设置成相同。原创 2023-11-30 21:30:29 · 722 阅读 · 0 评论 -
条码扫描枪识别错误问题处理
发现一个奇怪的现象,条码扫描枪在识别二维码内容时,出现异常,不能正确识别条码内容。如下图所示,每次扫描内容都不一样。解决办法:把远程连接工具-向日葵 关闭,即可恢复正常。...原创 2023-09-05 17:21:00 · 885 阅读 · 1 评论 -
ClickOnce发布
PS:但是ClickOnce部署技术也有一些缺陷,比如安装程序会默认安装到C盘下面很深的文件夹,不便于自行修改安装安装路径(可以通过VS自带打包工具实现)。点击“立即发布”,VS会自动将更新程序发布到设置的发布文件夹位置(默认publish文件夹),文件如下所示。安装模式和设置区域,可以设置一些更新策略。在客户端电脑点击“安装”,会自动下载setup.exe,点击安装即可。在运行程序的时候,会显示如下界面,自动下载更新后即可启动程序。在VS中右键项目属性,选择发布选项卡,打开如下图的界面。原创 2023-06-16 10:31:26 · 1059 阅读 · 0 评论 -
EF Core中Partition by实现
Partition by是SQL Server数据库中提供的分区函数,跟Group by不同的是,Partition by能够按照分区返回所有记录,而Group by只能返回一条记录。显然,CW048201和CW048202它们的最新状态都是取消报废状态,用Group By去获取单行数据是无法获取的。可以看出分区函数Partitiion By按照编码分为了两个部分并且每个部分按照时间降序排列,因此我们只需再加一个条件即可获取每个编码的最新数据。举个例子,有如下的数据库,需要找出每个唯一编号最新状态的数据。原创 2023-06-15 17:13:16 · 534 阅读 · 0 评论 -
给ASP.NET Core WebAPI添加Swagger支持
ASP.NET Core WebAPI是开发WebAPI接口的有利武器,且由于拥有.NET Core的基因支持跨平台,是当前.NET中开发接口的有利武器。但一般来说WebAPI接口开发完毕后,在发布前还需要测试。我们可以借助于外部的Fiddler等工具进行测试,但不太方便,尤其要进行接口传值时。那这个时候可以通过Swagger工具直接在Web网页中操作会极大的方便进行接口测试工作。操作步骤:...原创 2022-12-13 10:42:00 · 120 阅读 · 0 评论 -
识别条码时输入法自动切换问题—IMEMode
使用扫描枪扫描条码内容时会出现输入法切换导致条码内容输入错误的问题,这时可以通过设置接收条码内容控件的IMEMode属性轻松解决。比如:this.TextBox1.ImeMode = System.Windows.Forms.ImeMode.Disable;将ImeMode模式设置为禁用,输入法切换问题解决。参考资料:1. https://blog.csdn.net/yue1453...原创 2022-12-05 09:33:00 · 420 阅读 · 0 评论 -
ASP.NET Core Web API第一次请求慢的问题解决
一、问题现象:写了一个Android APP,服务接口是采用的ASP.NET Core Web API开发,数据库用的是EF.Core,使用过程中发现一个现象,首次在线登录的时候会出现超时的现象,我用OKHTTP设置连接超时时间为1min,还是连接不上。然后点开登录提示窗口,再次点击按钮登录即可快速响应。但如果中途有一段时间(大约20分钟)没有操作,再次点击登录则APP还是会出现超时现象。二...原创 2022-08-08 15:46:00 · 608 阅读 · 0 评论 -
ASP.NET Core 6.0 本地化
ASP.NET Core 6.0 本地化多语言/国际化/全球化&本地化,这些词汇表达的是同一个意思,即系统同时支持多种不同国家的语言,我们用本地化这个词来表达。在ASP.NET Core 6.0中可以很方便的做到,这篇博客也是记录一下主要的步骤,最后会放出一个demo供参考。注意我们的版本是.net Core 6.0,所以下面的步骤是基于这个版本。一、添加本地化服务builder.Services.AddLocalization(options => options.ResourcesP原创 2022-05-01 11:16:32 · 1071 阅读 · 2 评论 -
VS设置关闭Application Insights功能
在VS2022中调试ASP.NET Core应用时发现LayUI表格翻页时很卡(大约需要3-4秒),数据库没有问题。后来观察发现控制台输出dc.services.visualstudio.com/v2/track这个网址超时,心想我项目中没有引用这个网址。通过百度查到这是Application Insights,可以在VS2022里通过设置关闭这个功能。VS2022里关闭设置的路径:VS-工具...原创 2022-04-07 11:36:00 · 78 阅读 · 0 评论 -
EF Core中通过Fluent API配置一对一关系
继续配置实体之间的第三种关系,即一对一的关系。以考研报名为例,一个人有唯一的身份证号,在首次报名时会生成一个唯一的考试号,这样身份证号和考试号就是一对一的关系。同样提供ER图如下:Person类:public class Person{ public string PersonIdentityNum { get; set; } public string PersonName { get; set; } public virtual Exam Exam { get;原创 2022-04-06 13:59:06 · 901 阅读 · 0 评论 -
EF Core中通过Fluent API配置一对多关系
接上篇博客,继续演示Fluent API配置一对多的关系。以班级-学生为例,一个班级有多个学生,一个学生属于一个班级。ER图如下:同样的,我们需要准备好如上实体类。班级类:public class Class{ public int ClassId { get; set; } public string ClassName { get; set; } public virtual ICollection<Student> Students { get;原创 2022-04-06 13:57:47 · 706 阅读 · 0 评论 -
EF Core中通过Fluent API配置多对多关系
EF Core与EF不是完全一样的,官方文档列出了详细的差异比较,可以查阅:https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/。EF Core支持Code First模式生成数据库。这里以权限管理中的用户-角色-菜单的关系为例,演示一下EF Core中如何通过手动编写Fluent API来配置多对多的关系。测试环境:VS2022 / .NET 6.0 / EF Core 6.0假设我们已经设计好了数据库,并建立了主外键关联。如下图所示,一个用户可以对原创 2022-04-06 13:55:48 · 1295 阅读 · 0 评论 -
使用ML.NET实现健康码识别
ML.NET是微软提供的机器学习库,从VS2019开始直接集成在VS里,帮助.NET开发者快速开发自己的机器学习应用。目前ML.NET的资料已经非常丰富,开发者可以到其官网查阅相关资料。https://dotnet.microsoft.com/en-us/learn/ml-dotnet。本篇博客以健康码识别(绿码/黄码/红码)为例,看在.NET中如何使用ML.NET。一、准备工作启用ML.NET Model Builder。VS中工具-选项-预览功能,勾选Enable ML.NET Model Bui原创 2022-04-05 18:54:18 · 1849 阅读 · 0 评论 -
uniapp跨域调用ASP.NET Core Web API
Web API跨域支持因为浏览器有CROS(跨域资源共享)的问题,所以我们开发的Web API接口需要添加跨域功能。在Startup.cs的ConfigureServices方法里添加如下代码: //支持跨域services.AddCors(options =>{ options.AddPolicy("any", builder => { builder .AllowAnyOrigin()原创 2022-03-26 15:47:38 · 838 阅读 · 0 评论 -
企业微信自建应用开发
企业微信自建应用开发企业微信自建应用可以让用户开发自己的应用并集成在企业微信里面。我们借助于企业微信的各种接口实现各种个性化的功能,其中一个典型的功能就是要能够接收到用户的输入并根据用户的输入推送相关的信息给用户,本篇博客就来实现这个功能。准备工作:在企业微信管理后台创建自建应用并开启API接收功能并且要对我们开发的Web API接口进行测试,如果通过会显示如下的界面,否则提示“回调错误”接口测试工具微信提供了在线接口测试工具,地址:https://open.work.weixin.qq.原创 2022-03-15 21:11:53 · 4174 阅读 · 0 评论 -
企业微信接口上传临时素材
企业微信接口上传临时素材我们在企业微信里创建自建应用时,有时候需要根据用户的输入内容反馈对应的素材信息的功能,这时候就需要用到上传临时素材的接口。通过此接口可以上传临时文件(3天有效期),再配合自建应用就可以推送素材内容给用户。上传临时素材接口文档:https://developer.work.weixin.qq.com/document/path/90253,下面是测试通过的上传临时素材的完整代码:string corpId = "xxx"; //去企业微信后台管理页面获取string corp原创 2022-03-15 21:08:30 · 2607 阅读 · 0 评论 -
企业微信接口下载微盘文件
企业微信接口下载微盘文件在调试企业微信的下载微盘文件接口成功之后,再进一步下载文件时,发现一直返回 System.Net.WebException:“远程服务器返回错误: (564)。” 这样的错误。后来经过调试,发现改动两个地方即可完成企业微盘图片的下载。 注意代码中的注释部分,测试通过的完整代码如下://请求企业微盘图片//接口地址: https://developer.work.weixin.qq.com/document/path/93657#下载文件string url = @"xxx"原创 2022-03-15 21:05:57 · 5243 阅读 · 0 评论 -
Xamarin.Forms for iOS初体验
Xamarin.Forms for iOS初体验前言程序源码真机部署前言Xamarin是一个支持多平台的应用开发框架,它最大的特点就是可以使用C#开发Android/iOS app,并且共用一套C#代码就可以发布到多个不同的平台。Xamarin在2011年诞生,一开始是收费的,后来被微软收购之后免费开源,并直接集成到了Visual Studio里。但要说明的是Xamarin的生态一直没建立起来,用的人不多。并且之前了解到微软的计划是将Xamarin整合到MAUI,所以MAUI才是未来。在Mac里使用C原创 2022-03-15 20:54:11 · 3322 阅读 · 0 评论 -
通过P/Invoke控制继电器
关于P/Invoke不用多说,主要用途就是通过托管程序(比如C#)调用非托管程序(比如C++),这个技术主要用在通过C#控制硬件等操作。主要注意点就是要看C++函数原型以及参数说明,将C++参数类型转换为对应的C#参数类型,所以要求熟悉基本的C++程序。这里提供一个通过C#控制电磁继电器的程序片段,以供参考。功能截图:打开时,继电器上的小灯会亮起来;关闭时,继电器上的小灯会灭掉。代码片...原创 2020-03-08 10:03:00 · 44 阅读 · 0 评论 -
ASP.NET MVC+BUI实现表格的操作
在Web中基于表格的操作,比如添加行、单元格内容编辑等等功能,是完全基于js实现的。但如果程序员完全使用js或者jquery去编写表格控件,则会导致样式不统一,代码量较大等问题,尤其对于不太熟悉js的后端程序员来说,可能会是一个挑战。因此,网络上出现了很多基于表格操作的js控件,帮助程序员尤其是后端程序员也能够编写出漂亮的基于表格的应用。本篇博客以ASP.NET MVC+BUI为例,看如何实现基于...原创 2018-06-26 09:43:49 · 4314 阅读 · 0 评论 -
ASP.NET MVC实现Excel文件的上传下载
在应用系统开发当中,文件的上传和下载是非常普遍的需求。在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest、webclient等),而且多采用异步(xxxxAsync或async/await等)的方式实现。而在基于.NET的B/S架构的项目开发当中,虽然webform提供了上传控件(HttpPostFile),但用户体验并不好(页面刷新,如果上...原创 2018-06-26 09:38:56 · 3768 阅读 · 1 评论 -
ASP.NET MVC+HighCharts开发统计图表
HighCharts是开源的Web图表js组件,与D3.js一样,经常用于数据可视化。HighCharts图表类型丰富,功能非常强大,是很好的数据可视化解决方案,其官方网站为:http://www.hcharts.cn/,感兴趣的读者可以自行去下载HighCharts并按照给出的Example尝试着开发,基本上按照示例中的例子,把数据部分替换成自己想要展示的数据就可以了,非常容易上手。本篇博客将结...原创 2018-06-26 09:35:43 · 4072 阅读 · 0 评论 -
ASP.NET Core MVC+EF Core从开发到部署
笔记本电脑装了双系统(Windows 10和Ubuntu16.04)快半年了,平时有时间就喜欢切换到Ubuntu系统下耍耍Linux,熟悉熟悉Linux命令、Shell脚本以及Linux下的各种应用的安装、配置、运行。使用下来的感受是Linux确实相当好使,熟悉基本操作之后的工作的效率提升不是一星半点,况且现在Linux的使用面已经相当广泛,随着.NET的跨平台战略的落地实施(.NET Core)...原创 2018-06-25 14:38:33 · 12123 阅读 · 1 评论 -
ASP.NET MVC+Vue.js实现联系人管理
接触了一天vue.js,简单浏览了一本关于vue的电子书,就开始动手使用ASP.NET MVC和Vue.js开发一个联系人管理的小程序。先看一下这个联系人管理的小程序的界面,也就是我们大概要实现什么样的功能。上面截图可以看出,这是一个很简单的表格管理功能。我们先分析一下,上述有哪些功能需要实现:1、默认先加载出所有的联系人信息,有信息的行后面的操作那一栏,显示“修改”、“删除”,没...原创 2018-06-25 14:27:30 · 6461 阅读 · 0 评论 -
不规则的JSON解析(一)
现有如下数据结构:{ "orderId":"000001", "goodsId[0]":"001", "goodsId[2]":"002", "goodsId[3]":"003",}goodsId是无限延伸下去的,问如何解析。显然,定义类然后解析的思路肯定行不通,即使用dynamic(不需要定义实体类,直接取对应key的值),如:dynamic obj = JsonC...原创 2017-12-26 15:32:00 · 48 阅读 · 0 评论 -
C# 委托和事件
一、是什么1)委托包含对方法而不是方法名称的引用。使用委托可以在运行时动态设定要调用的方法,不知道方法名称,也可以调用方法,执行(或调用)一个委托将执行该委托引用的方法。2)委托将名称与方法的定义连接起来,即将方法的实现附加到该名称。这样便可以使用该名称调用特定的方法。但是,委托要求方法的实现和委托必须具有相同的方法签名(也就是说,他们应该具有相同数量/类型的参数),并有相同类型的返回值。...原创 2017-12-22 10:11:00 · 40 阅读 · 0 评论 -
C# IO流的操作(二)
文件在操作系统中是以二进制(01)的形式保存到磁盘上的,在C#程序当中,我们可以通过读取流将文件读取到byte[]当中(读到内存中),也可以通过写入流将byte[]写入文件(保存到磁盘上)。下面将演示一例文件与数据库结合的示例——将文件保存到数据库,再从数据库还原为文件。写入文件到数据库部分代码: /// <summary> /// 写入按钮事件 /// </summ...原创 2017-12-20 16:28:00 · 39 阅读 · 0 评论 -
C# 反射
反射是一种能够在运行时动态创建对象、调用对象属性、成员、方法、属性等的特性。通俗的讲,通过反射不需要添加引用DLL,就可以动态的给类的属性赋值,动态的调用里面的方法。我们在VS中给控件的属性赋值就是通过反射来完成的,此外在调用web服务时也可以通过反射去动态的创建代理对象,而不需要添加web引用,还有在开发插件化(多个DLL)的应用程序时,反射是一种很重要的机制。因此,反射提供了一种更加灵活的...原创 2017-12-08 13:50:00 · 40 阅读 · 0 评论 -
WinForm资源管理器开发(TreeView&ListView)
在C# WinForm开发当中,有三大View控件值得深入应用,分别为DataGridView、ListView、TreeView。如果这三大控件能够熟练的应用,其它的控件也就基本没有问题。所以这篇博客就用TreeView和ListView开发一个简易版的资源管理器,让C#新手能够快速的熟悉起WinForm的开发。该程序的截图如下:我的资源管理器实现了这么几个功能:1、左侧TreeVie...原创 2017-12-06 10:03:00 · 61 阅读 · 0 评论 -
C# 数组转json
////////试题信息/////////////////// 已知// h、d两个数组分别表示表头和内容// 要求// 编写函数一:rs2Array// 返回一个数组,每一项为一个对象。// 编写函数二:rs2MultiHash// 返回一个对象,内容是键值对。////////////////////////////////using System;using Syste...原创 2017-08-14 15:41:00 · 93 阅读 · 0 评论 -
jQuery跨域调用Web API
我曾经发表了一篇关于如何开发Web API的博客,链接地址:http://www.cnblogs.com/guwei4037/p/3603818.html。有朋友说开发是会开发了,但不知道怎么调用啊?那么这里我就演示一下如何进行跨域调用Web API,算是对上面博客的补充。因为在浏览器中是不允许跨域访问Web API的(为了安全),所以必须要对我们开发的Web API添加跨域功能。在Web A...原创 2017-07-17 11:28:00 · 35 阅读 · 0 评论 -
C#模拟登录后请求查询
需求是这样子的,想开发一个外挂程序,能够抓取别的系统的数据,从而实现数据验证。比如这样一个界面:使用Chrome浏览器分析http请求和响应过程以及页面的html代码,发现这是一个ajax请求,于是跟踪找到了具体的请求地址和查询时提交的数据。于是就可以请求这个地址,并且封装提交的数据进行http请求即可。但实验后发现,需要先登录系统然后才能进行查询请求。分析系统登录部分代码发现,仍...原创 2017-05-10 12:19:00 · 30 阅读 · 0 评论 -
asp.net 实现pdf、swf等文档的浏览
一、pdf的浏览可以借助于pdf.js插件完成,使用pdf.js的好处是不需要安装额外的插件(比如flash),是纯web的解决方案。插件的下载链接:http://mozilla.github.io/pdf.js/。通过pdf.js里面的示例代码可以看出,实际上浏览pdf文档是通过viewer.html实现的。在链接后面通过传入file参数,实现不同文档的浏览。比如如下的链接: <...原创 2017-04-10 10:17:00 · 79 阅读 · 0 评论 -
VS NuGet加载本地程序包
NuGet是VS中非常实用的一个工具,我们可以通过它在线安装想要的程序包,只要右键点击解决方案中的项目的引用,在弹出的菜单中选择“管理NuGet程序包”,然后就可以通过在线搜索找到想要添加的程序包,下载安装即可。NuGet会帮助我们自动添加相应的dll引用,修改config相应配置,非常方便的一个工具。但有时候我们网络会出现问题,导致在线浏览不了程序包,这时候我们可以通过下载nupkg文件,在本...原创 2017-04-06 11:48:00 · 47 阅读 · 0 评论 -
全排列组合算法
全排列组合算法方法:public static List<List<T>> FullCombination<T>(List<T> lstSource){ var n = lstSource.Count; var max = 1 << n;//1乘以2的n次方 var lstResult = new List&...原创 2017-03-16 14:56:00 · 36 阅读 · 0 评论 -
GDI+绘制半圆按钮
新建一个用户控件:public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } protected override void OnPaint(PaintEve...原创 2017-03-13 11:13:00 · 54 阅读 · 0 评论 -
ADO.NET基本操作(CRUD、Procedure、Transaction)
模型沿用上篇博客所提到的学生、教师、课程,以详细的代码进行演示。增删改查添加学生、教师、课程using System.Data.SqlClient;namespace Test{ class Program { static void Main(string[] args) { using (SqlConnec...原创 2016-09-10 17:18:00 · 30 阅读 · 0 评论 -
VS2015编译错误:调用的目标发生了异常--->此实现不是Windows平台FLPS验证的加密算法的一部分。...
在Win10下安装好几次VS2015(企业版)了,这次发生了一个奇怪的问题,错误截图如下:控制台、WPF等项目均有此错误!但是ASP.NET项目却可以编译运行!一开始还以为VS2015安装错误,修复安装VS重启系统后还是不行。然后尝试百度,结果解决方案清一色的是打开注册表:计算机\HEKY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa...原创 2016-09-02 14:39:00 · 37 阅读 · 0 评论 -
设置datagridview中button按钮的背景颜色
问题:DataGridViewButtonColumn()在datagridview中创建按钮列,如何设置按钮的背景颜色(不是单元格的背景颜色)。回答:可以在dataGridView1_CellPainting事件里面处理。private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEvent...原创 2016-07-05 10:50:00 · 35 阅读 · 0 评论