.net
文章平均质量分 88
Tomato_SY
Learn the new and summarize the old
展开
-
c# 压缩DataTable
@Tomato总结一下c#两种不同压缩方式的效率文章目录1、需求2、分析3、解决问题3.1、BinaryFormatter序列化3.2、转为XML4、总结4.1、简单DataTable4.2、复杂DataTable5、完整工具类官方文档1、需求在前置机端数据传输到平台库的过程中,为了保证传输的稳定性和大数据量,决定放弃以往数据库直连的方式,将存储数据的DataTable直接转化为二进制序列byte[]并压缩为数据包,上传至服务器。然后在服务器上面解压缩包,将数据存到到服务器数据库原创 2021-07-27 15:13:08 · 772 阅读 · 0 评论 -
调用企业微信JS-SDK
@Tomatoc# 这里以c# MVC为例,引用JS-SDK,注入应用的权限,并作一个打开微信对话窗口Demo文章目录1、效果图2、开发流程2.1、设置应用可信域名2.2、引入js2.3、注入应用的权限3.4、 调用打开会话接口3、完整代码4、注意事项官方文档1、效果图通过URL --> 打开指定人对话窗口2、开发流程官方文档2.1、设置应用可信域名所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),且可信域名必须有ICP备案且在管理端验证域名归属。验证原创 2021-06-28 13:46:23 · 2864 阅读 · 2 评论 -
c# 生成、识别二维码
@Tomatoc# 这里以winform为例,窗体内拉入,textBox1、button1、button2、pictureBox1 4个控件文章目录1、引用包2、生成二维码3、识别二维码1、引用包引用NuGetThoughtWorks.DLL [如果一张图片中有多个二维码或者没有二维码 读取会出错 会进入catch]ZXing [把图片中的所有二维码的内容读取出来]2、生成二维码String --> QrCodeImgif (textBox1.Text.原创 2021-06-23 09:42:37 · 3468 阅读 · 0 评论 -
前后端联调总结
@Tomato由于之前后端都有涉猎,所以对于前后端在接口对接时产生的许许多多的摩擦有一些自己的看法在此整理一些问题排查的思路这里后端已WebApi举例 , 前端以VUE+ElementUI举例文章目录1、为什么需要联调2、如何有效的联调2.1、自测2.2、快速定位问题2.3、责任边界2.4、及时反馈3、真正的联调4、友情建议4.1、远离关键路径,合理调配时间4.2、把握全局进度,提高整体效率4.3、积极沟通交流,主动推进联调1、为什么需要联调联调就是后端不好好写单元测试与集成测试原创 2021-06-16 16:21:08 · 13200 阅读 · 0 评论 -
客户端热更新
@Tomato动态表 动态查询文章目录介紹1、说明2、为什么要做热更新3、如何实现热更新3.1、下载补丁包3.2、定时更新程序介紹1、说明什么是热更新:eg:客户端程序运行时自动更新版本2、为什么要做热更新当一个客户端程序发布之后,突然发现了一个严重bug需要进行紧急修复,或者需要进行版本迭代,这时候公司各方就会忙得焦头烂额:重新打包、测试、换包、提示用户升级、用户下载、覆盖安装。3、如何实现热更新拿一个学校常用的数据同步软件来举例。当数据结构发生变化的时候,这个原创 2021-06-16 15:11:48 · 798 阅读 · 0 评论 -
C# 实用语法特性
@Tomato现在是 2021 年,相信 C# 7.0 以前的版本大家都应该没有什么问题,在这里我们主要讲解大家C# 7.0、8.0 以及 9.0 的语法特性。考虑到文章篇幅有限,这里选取的都是博主个人比较喜欢的语法特性文章目录C# 7.01、元组和弃元2、更多的 expression-bodied 成员3、out变量不用再单独声明4、模式匹配4、引发表达式C# 8.0默认接口方法异步流索引和范围C# 9.0Record模式匹配增强C# 7.01、元组和弃元元组:这个概念乍听起来可能会有一点陌生原创 2021-02-19 16:46:54 · 193 阅读 · 0 评论 -
C# 新建快捷代码
@Tomato你不得不知道的代码编写技巧文章目录1、自定义代码段2、自定义新建模板3、直接使用模板项目1、自定义代码段工作中有不少代码相似度较高,我们可以像配置快捷键一样,快速敲出常用代码段参考2、自定义新建模板工作中有不少类文件代码相似度较高,我们可以像创建模板一样创建文件,省去相似代码3、直接使用模板项目工作中我们会把所有共同的基础模块提出来,作为一个项目模板,这个时候新建项目的时候只需要将模板拷贝出来,然后更改掉项目名称就好了将模板项目拷贝出来,然后用VS原创 2020-12-31 15:18:48 · 252 阅读 · 0 评论 -
动态表 动态查询
@Tomato动态表 动态查询文章目录介紹动态表1、说明2、使用范围3、实现动态查询1、说明2、使用范围3、实现介紹动态表1、说明动态表:大多数情况下我们的表结构都是固定的,但是当客户逻辑变更频繁且数据结构并不复杂的情况下,我们可以通过动态配置表来减少代码量和版本迭代次数2、使用范围举个栗子:老师的项目表新增频繁 ( 导致每次都需要重新写一套表的增删改查)但是功能大同小异(只是给不同的表打分,也只会有2张表的连接)3、实现新增项目表(主要是表名称、表原创 2020-12-31 14:19:04 · 1267 阅读 · 0 评论 -
T4代码自动生成
@TomatoExcel + c# + sqlserver代码自动生成目录文章目录介紹方法1方法2介紹需求:Excel数据库设计效果:自动生成sqlserver:数据库,代码:Model、Repository、Service、WebApi 固定常用的5个方法方法1c# NPOI获取Excel信息c# 通过Excel信息 连接数据库新建表c# 通过Excel信息 循环生成Model、Repository、Service、WebApi代码方法2c# NPOI获取原创 2020-12-28 13:46:43 · 578 阅读 · 0 评论 -
C# 使用枚举
@Tomato.NET小结目录文章目录1、使用的枚举的好处2、举个栗子3、工具类1、使用的枚举的好处可减少由数字转置或键入错误引起的错误。以后更改值很容易。使代码更易读,这意味着代码中发生错误的概率降低。确保向前兼容性。使用枚举可减少将来有人更改与成员名称对应的值时代码出错的概率。2、举个栗子// 新建枚举类public enum TestEnum{ [Description("洋文")] Tomato = 1, [Description("中文原创 2020-09-30 16:34:20 · 285 阅读 · 0 评论 -
使用视图的好处
@Tomato.NET小结目录文章目录1、介绍2、优点2.1、查询一年级班级,然后循环查出里面姓名为张三的学生2.2、先查出所有符合条件的班级和学生,然后通过内存去比对2.3、直接编写SQL2.4、查询新建学生内联视图,新建ViewModel,映射视图字段查询1、介绍视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变原创 2020-07-21 16:42:29 · 851 阅读 · 0 评论 -
.NET小结
@Tomato.NET小结目录文章目录1、Lamdba1.1、Any1.2、连表查询1.3、获取树结构1、LamdbaLambda表达式实际上是一种匿名函数,在Lambda表达式中可以包含语句以及运算等操作。并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。使用Lambda表达式可大大减少代码量,使得代码更加的优美、简洁,更有可观性。eg:list.RemoveWhere(r=>r.Year = 2000)list.RemoveAll(r原创 2020-07-09 08:56:41 · 614 阅读 · 0 评论 -
常用的文件操作
@Tomato主要使用NPOI对word、excel、压缩包做一些流操作目录文章目录WORD模板替换WORD模板替换public BaseResultModel<string> WordReplace(string vchYear, string vchMonth){ try { Dictionary<string, string> dic = new Dictionary<string, string>{原创 2020-06-19 17:32:07 · 367 阅读 · 0 评论 -
问题记录
@Tomatoc#笔记目录文章目录common useAppDomain实现"热插拔"事务webClient读取js 、 Json 内容Excel操作导入压缩包图片{"对象必须实现 IConvertible。"}common use//预览版aa??=bb;postMan (对外参数接口最好为可空类型)Api参数为(Guid Id)传入有Id,没有值 --...原创 2020-04-23 10:45:46 · 630 阅读 · 0 评论 -
Maven 和 Nuget
@Tomato文章目录nuget概述maven概述maven下载安装maven获取方式nuget概述1、微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展。2、在使用Visual Studio开发基于.NET Framework的应用时,NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。3、通过NuGet你可以很容易的访问到其他开发者发布的软...原创 2020-04-22 16:20:54 · 3339 阅读 · 0 评论 -
Log4j
@Tomato文章目录介绍WebApi配置1、引用DLL2、添加数据库表3、添加Log4net.confg4、添加LogWriter.cs5、程序启动时读取log4net的配置文件6、调用Java配置1、Log4j导包2、Log4j配置3、Log4j使用介绍介绍参考程序打出日志,方便调试监控WebApi配置1、引用DLLlog4net.dllTGLog.dll2、添加数据库表...原创 2020-04-22 16:12:14 · 180 阅读 · 0 评论 -
Swagger配置
@TomatoSwagger使用介绍文章目录介绍WebApi配置1、WebApi项目中引入2、添加实现了ISwaggerProvider接口的类3、添加功能性js文件4、修改项目的“XML文档文件”属性5、修改SwaggerConfig.cs6、配置完成结构图7、 本地运行Swagger有注释,发布项目没有注释Java配置Maven 导包Swagger配置文件图示介绍介绍参考无需编写wo...原创 2020-04-26 08:53:17 · 323 阅读 · 0 评论 -
记录一些部署的问题
@Tomato记录一些部署的问题目录文章目录发布注意发布项目新开端口MIME文件限制服务器对带有sql语句的json拦截MVC路有前缀和webapi路由冲突发布前端不显示查看脚本错误是否是es5报错IIS上传文件,上传文件大小404,筛选也是404dynamic类型在不同服务器不同版本无用服务器上Server.MapPath默认取c盘的wwwrootWebApi发布注释不显示发布注意发...原创 2020-01-09 09:53:04 · 853 阅读 · 0 评论 -
WebApi默认不开启Session
在MVC的WebApi中默认是没有开启Session会话支持的。需要在Global中重写Init方法来指定会话需要支持的类型public override void Init() { PostAuthenticateRequest += MvcApplication_PostAuth...转载 2018-05-19 14:28:46 · 501 阅读 · 0 评论 -
c#中List<Object>取出对应的值----dynamic
c#中List取出对应的值----dynamic List types = new List(); types.Add(new { ID = item.ID, Name = item.Name, ExpireEndDate = Convert.ToDateTime(startDate).AddDays(1) }); dynamic temp = types[i]; int te原创 2018-01-10 15:44:39 · 27116 阅读 · 0 评论 -
.net之DBHelper -- 2015年学生时代的必背
Web.config 极简版 public class DBHelper { public static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //第一行第一列原创 2018-01-11 10:18:36 · 380 阅读 · 0 评论