IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登录,对方技术人员一头雾水不知道什么原因,后台日志没有任何错误信息.我临危受命,赶往该项目进行扑火工作,其实本来2天都可以解决的问题,让我花了5天解决.具体原因待我一一解释. 1,未掌握log日志的精髓 log日志的debug,info,error信息乱打,该用debug的用info,该用info的用…
如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不喜勿喷,或许对您有帮助. 在Visual Studio 2017配置支持C# 7+语法 心想都VS2017了肯定是支持C# 7+语法,然后接着将控制台程序修改为异步,然后告知于我不行,尼玛这不是扯淡了么,如下: public class Program { public static async T…
(六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择完全抛弃传统mvc模式,使用html + webapi模式.好处是前端完全复用,后端想换语言,翻译每个api接口即可. 3.个人最新的框架也是使用这种模式开发,后续会有文章对整个框架进行分析,详见签名信息. 4.Controller开发时,有几种不同的返回值模式,这里介绍两种常用的.个人使用的是模式…
原文:[SSRS]入门篇(六) -- 分组和总计 通过[SSRS]入门篇(五) -- 设置报表格式的设计,一份简单格式的报表已产生,如下图: 这节来说说分组和总计: 根据日期.订单对数据进行分组 添加订单总计 添加每日总计 添加总计 对数据进行分组: 1.单击"设计"选项页.(如果看不到"行组.列组"窗格,右键单击设计图画,选择"视图 -> 分组".) 2.从"报表数据"窗格把"Date"字段拖放到&…
原文:[SSRS]入门篇(一) -- 创建SSRS项目 在本篇中,您将学习如何在 SQL Server Data Tools (SSDT) 中创建报表服务器项目. 报表服务器项目用于创建在报表服务器中运行的报表. 1.单击“开始 --> 所有程序 --> Microsoft SQL Server 2012 ,然后单击“SQL Server Data Tools”: 打开SQL Data Tools的界面如下: 2.在“文件”菜单上,指向“新建”,然后单击“项目”. 3.选择"商业智能…
(十)Net Core项目使用Cookies 一.简介 1.Net Core可以直接使用Cookies,但是调用方式有些区别. 2.Net Core将Request和Response分开实现. 二.基本读写Cookies操作 1.写一个基本的读写操作Api,代码如下. 2.第一次访问,看效果. 3.第二次访问,看效果. api代码 public class OneController : Controller { public string GetString(string id) { Requ…
一张图搞定OAuth2.0   目录 1.引言 2.OAuth2.0是什么 3.OAuth2.0怎么写 回到顶部 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们. 一项新的技术,无非就是了解它是什么,为什么,怎么用.至于为什么,本篇文章不做重点探讨,网上会有各种文章举各种什么丢钥匙.发船票的例子供你去阅读,个人认为还是有些哗众取宠,没有聊到本质. 那我们就重点聊聊OAuth2.0是什么,…
一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择完全抛弃传统mvc模式,使用html + webapi模式.好处是前端完全复用,后端想换语言,翻译每个api接口即可. 3.个人最新的框架也是使用这种模式开发,后续会有文章对整个框架进行分析,详见签名信息. 4.Controller开发时,有几种不同的返回值模式,这里介绍两种常用的.个人使用的是模式二. 二.Net Core 的 Controller返回…
一.简介 1.因为Net Core默认是没有启动Session功能的,如果需要使用,需要通过代码开启. 2.本篇说明如果启用默认Session实现,即Session存到内存中. 3.本篇扩展说明如何用Redis做Sessoin服务器,实现分布式. 二.开启默认Session功能 1.编写一个api,先写Session,再读取Session返回. 2.Startup未启动Session功能,查看效果,报错. 3.在Startup中添加两处启用Session代码,查看效果,正常.这里有知识点,Use…
一.简介 1.本节主要说明入参的几种接收方式 二.不限定模式 1.定义一个id入参与一个model入参. 2.get\post分别查看访问效果. api代码 public class OneController : Controller { public string GetString(string id, Model model) { return string.Format("getid:{0},model(id:{1},name:{2})", id, model.ID, mod…
一.创建项目 1.如何创建项目,参照上一篇文章 二.程序包介绍 1.Net Core的程序包分前后端两种,后端用nuget,前端用bower. 2.与Net 不同,Net Core引用nuget包时,即使包里含有前端文件,也不会引入前端文件,仅引入dll. 3.css.js组件,通过bower引入. 三.nuget包引用 1.项目创建完成,已经默认引入AspNetCore.All包,展开可看到所有组件. 2.点击:依赖项 -> 管理Nuget程序包,进入管理界面. 3.查看:可以查看所有.已安装…
一.新建项目 1.选择菜单:文件 -> 新建 -> 项目 2.选择模板:NET Core -> ASP.NET Core Web 应用程序,输入名称 3.选择框架:ASP.NET Core 2.0 ,Web 应用程序 二.查看项目结构 1.直接看图,不再啰嗦 三.运行查看效果 1.运行:按F5键 或 点击 运行菜单 2.查看调试环境 3.查看运行效果…
一.简介 1.Net Core可以直接使用Cookies,但是调用方式有些区别. 2.Net Core将Request和Response分开实现. 二.基本读写Cookies操作 1.写一个基本的读写操作Api,代码如下. 2.第一次访问,看效果. 3.第二次访问,看效果. api代码 public class OneController : Controller { public string GetString(string id) { Request.Cookies.TryGetValue…
一.简介 1.说明Post,Get定义的区别. 2.说明如何路由定义. 二.Get.Post定义 1.api不定义访问方式时,同时支持get 和 post.如果定义某种方式,则仅支持某种方式.具体看代码及运行效果. 这里有个知识点,什么时候使用get,什么时候使用post,个人习惯能get则get,不能get则post,至于put,delete,从来不用. api代码 public class OneController : Controller { [HttpGet] public strin…
一.简介 1.Net Core默认无法访问静态文件,需要在Startup通过代码添加定义. 2.本文介绍两种静态文件目录实现方式. 二.启用默认目录 1.添加图片文件 2.测试访问结果(不能访问) 3.添加定义代码. 4.刷新图片查看结果(正常访问). 这里有个知识点,我一般使用浏览模式访问,而非F5运行,好处是可以修改代码,Net Core在修改代码之后,刷新访问会自动重新编译. 三.启用自定义目录 1.添加自定义目录代码(代码自行解读理解) 2.刷新上述图片访问.(运用上述知识点,理解这个操…
一.Startup介绍 1.Startup文件是Net Core应用程的启动程序,实现全局配置. 2.Net Core默认情况下,静态文件及Session都未启动,需要在Startup文件配置启动,否则无法使用. 二.启用Session,启用默认路由 1.启用Session:添加AddSession Services,添加UseSession(必须在UseMvc之前,否则会报错). 2.启用默认路由规则:用 app.UseMvcWithDefaultRoute() 替换 app.UseMvc()…
一.下载Visual Studio 2017 1.下载地址:https://www.visualstudio.com/zh-hans/downloads/ 2.选择要下载的版本 二.安装Net Core开发组件 1.选择"SP.NET和Web开发"工作负载  三.验证开发环境 1.文件->新建->项目 2.查看 NetCore项目模板 以上就是Net Core环境安装过程,个人使用的是企业版.…
一.简介 微软已经为net在iis中的部署提供了良好的支持,在IIS中部署NetCore是一件很容易的事. 二.在IIS中部署Net Core程序 1.微软官方文档有详细说明.进入 2.如果你已经熟悉iis部署过程,实际上可以把部署简化成两个步骤:一是安装捆绑包(安装过程就不用说了),二是创建站点. 3.创建站点时,站点应用程序池选择"无托管代码"即可(其它过程就不介绍了). 链接进入后到以下章节 点击进去后,到以下章节 安装过程就不用说了,创建站点如下一个差异. 三.更新Net Co…
一.简介 1.读取配置文件是开发过程中使用非常频繁的操作.属称”不能写死“ 二.NetCore读取配置文件 1.新建一个静态公共变量,属称单例. 2.在程序Startup启动时,将系统变量传递给单例. 3.添加配置信息.netcore配置文件是标准的json文件,子级读取用:隔开,请看示例. 4.在api中使用单例读取配置内容. 代码量少,直接贴图,不上代码了. 添加配置节 运行效果…
[ 前言]  Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. Spring Boot 特点: 优点: 1.创建独立的spring应用程序 2.嵌入的Tomcat.jetty或者Undertow,,无需部署war文件 3.简化了maven的配置 4.简化了使用Spring的过程 5.注解代替xml配置 缺点: 1. 将现…
(良心转载)原文地址:https://ken.io/note/dotnet-core-qucikstart-preface 一..NET Core的诞生 聊 .NET Core,就不得不说他的爸爸 .NET.当年Java刚刚兴起,如火如荼,微软也非常推崇Java,当时Windows平台的Java虚拟机就是微软按照JVM标准实现的,据说也是当时性能最好的Java虚拟机.但是微软也是有私心的,微软总想搞点Windows平台上的特性,有点想把Java绑定到Windows平台上的味道,另外Sun公司确实…
把electron发布的exe打包成setup安装程序,需要使用nsis软件, nsis打包的详细教程,可以参考我的这篇文章: win7下nsis打包exe安装程序教程…
struct和class的访问权限:结构体,类 struct和class 是相同的,唯一的而不同,就是默认权限,struct是public,class默认是private class Animal {public://如果不申明权限,默认是私有权限 ]; void eat() { cout << "age:" << name << endl; } }; struct Person1 { ]; void eat() { cout << &q…
原文:[SSRS]入门篇(七) -- 报表发布 完成[SSRS]入门篇(六) -- 分组和总计后,第一份简单的报表就已完成了,下面把报表发布到报表服务器上. (实际情况下,报表展示给用户未必是用报表服务器,而嵌入到原来的系统,如OA.CRM.ERP中,以链接形式打开.) 配置.启动报表服务: 1.打开Reporting Services 配置管理器: 2.服务器选择本机: 3.启动报表服务器: 4.设置Web服务URL,报表的URL地址是http://SOMEONE:80/ReportServe…
由于项目的需求,需要发布到Linux服务器上,在这里记录一下我发布的过程. 安装Linux 安装liunx系统很简单,网上也有很多教程,我是直接使用阿里云的CentOS 7.7 64位 部署环境 Linux - CentOS 7 安装 .Net Core 运行环境 发布项目 右键项目->发布->启动->选择文件夹 点击高级设置目标运行时 然后保存发布 把发布好的publish文件放入Linux系统 我这里使用的是 Xshell6 + WinSCP .Xshell 是一个终端模拟软件,Wi…
原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例数据库,讲下如何建立数据源:(AdventureWorks2012 下载) 1.解决方案资源管理器 ->右键选择共享数据源 ->添加新数据源: 2.在共享数据源属性窗口输入数据库名称:AdventureWorks2012:类型选择:Microsoft SQL Server:点击"编辑&q…
原文:[SSRS]入门篇(三) -- 为报表定义数据集 通过前两篇文件 [SSRS]入门篇(一) -- 创建SSRS项目 和 [SSRS]入门篇(二) -- 建立数据源 后, 我们建立了一个SSRS项目,并取得数据源,那么接下来做的就是知道报表要显示什么数据了,这一步可以通过建立数据集来实现. 1.解决方案资源管理器 ->右键选择共享数据集 ->添加新数据集: 2.在共享数据集属性窗口输入数据集名称:AdventureWorksDataset:数据源选择之前建立的:AdventureWorks…
原文:[SSRS]入门篇(四) -- 向报表添加数据 定义好数据集后 [SSRS]入门篇(三) -- 为报表定义数据集 ,就可以开始设计报表了,将要显示在报表的字段.文本框.图像和其他项从工具箱拖放到报表设计图画上,如下图: 1.打开在[SSRS]入门篇(一) -- 创建SSRS项目 建立的报表Sales Orders.rdl: 2.从工具箱把"表"拖放到"设计图画": 注:如果左边没有显示工具箱的话,可以通过"菜单 -> 视图 -> 工具箱&…
写在前面 上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CMS系统的后台管理界面的实现.但是奈何Vue实现的SPA有一定的门槛,不太适合新手朋友,所以为了照顾大多数人,我准备还是采用asp.net core mvc+html+js+css+layui这个传统的技术栈来实现.但是,不管怎么说我还是会把Vue的基本使用给大伙介绍一下! 当然,如果这篇文章我也是抱着学习的态度跟大家一起来了解V…
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9977862.html 写在前面 千呼万唤始出来,首先,请允许我长吸一口气!真没想到一份来自28岁老程序员的自白 这篇文章会这么火,更没想到的是张善友队长的公众号居然也转载了这篇文章,这就导致两天的时间就有两百多位读者朋友加入了.NET Core实战项目交流群(欢迎更多小伙伴进入交流.NET Core经验,群号:637326624)!这让我顿感亚历山大!我自己的文笔有多差我是知道的,所以就有点担心写不好…