在现代化开发工具链里面就包含了自动化的通讯工具,而日志写代码我是推到 Gitlab 平台上,我今天听了郭锐大佬的分享之后,感觉我现在的团队的自动化做的远远不够.我在他的课程上学到的最重要一句话就是做工具不是从零到一最难,有很多非常厉害好用的工具最后都没用上的原因是没有加入到开发链条上.所以我用最简单的工具做实践,在 Gitlab 上的代码审查每次都需要自己手动将代码审查链接发给对应的审查者,这样的效率很低,于是我就打通了通讯工具和代码平台之间的联系,开始一步步打造适合自己团队的工具 这只是一个简…
上一篇文章里最后在VS里测试是没有问题的,但是在Windows命令行模式下会报错. 首先用dotnet restore命令的时候会出现error: 然后用dotnet run会出现警告,但是依旧会成功启动: 此时访问http://localhost:5000/user/query/2  时会报错: 其实在VS中也是有提示的: 只不过在VS中调试是不会报错的,问题就出在依赖项上,可以看看project.json这个文件,所有的依赖项都在这里: { "dependencies": { &q…
开发环境:win7,vs2017,sqlserver2014 vs上建立一个asp.net core web项目和一个.net core的类库项目DBA 简单起见,在DBA项目中就一个类SqlServerManager: using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; us…
晚上在那里调程序,把mysql.data组件的nuget包进行了更新,前几天好好的程序,开始抛错,跟踪断点发现以下的异常: Unable to connect to any of the specified MySQL hosts. 一开始以为数据库出了错误,去检查数据库状态正常,用Mysql workbench在远程连接也正常.感觉有点奇怪. 又认真看了下,发现这个异常下面还有个提示: INNER EXCEPTION: Sequence contains more than one match…
网络上的docker容器总有一些不尽人意的感觉,这个时候,就需要自己diy一个自用的. 比如我们想在163的mysql 5.7内diy一下,结果发现,这个不带vim,我想改造一个自用的mysql镜像,内置一个vim 我们先拉去一下这个镜像 docker pull hub.c.163.com/library/mysql:5.7 改一个别名 docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7 后面就可以用mysql:5.7替代那个一长串的名称了…
一.连接字符串 在上二篇中,ASP.NET Core 应用程序连接字符串是写死在ConfigureServices代码中,下面介绍通过配置来实现.连接字符串可以存储在 appsettings.json.用户机密存储.其他配置源中. 下面示例演示appsettings.json 中存储的连接字符串,这样不管asp.net core在什么环境(Development.Staging .Production)都能调用该文件. "ConnectionStrings": { "Blog…
简介 日志组件,作为程序员使用频率最高的组件,给程序员开发调试程序提供了必要的信息.ASP.NET Core中内置了一个通用日志接口ILogger,并实现了多种内置的日志提供器,例如 Console Debug EventSource EventLog TraceSource Azure App Service 除了内置的日志提供器,ASP.NET Core还支持了多种第三方日志工具,例如 elmah.io Gelf JSNLog KissLog.net Loggr NLog Serilog 开…
本示例演示在ASP.NET 应用程序中使用EF CORE创建数据库并对其做基本的增删改查操作.当然我们默认你的机器上已经安装了.NET CORE SDK以及合适的IDE.本例使用的是Visual Studio Code. 创建一个ASP.NET Core 应用程序 如果你电脑上安装了VS2015或者更高版本,就可以使用项目模板创建一个ASP.NET Core application,或者可以使用命令行工具创建项目.在本例中我们将在Visual Studio Code 中使用命令行工具: 第一步:…
ASP.NET Core 程序启动过程如下 目录 Startup 类 Configure() 方法 中间件 使用中间件 Configure 方法 的参数 IApplicationBuilder Extension Methods(拓展方法)--微软提供的中间件 1, Startup 类 ASP.NET Core 应用使用 Startup 类,按照约定命名为 Startup . Startup 类: 可选择性地包括 ConfigureServices 方法以配置应用的服务. 必须包括 Config…
.NET Core 3.0 Preview 7现已推出,它包含一系列ASP.NET Core和Blazor的新更新. 以下是此预览中的新功能列表: 最新的Visual Studio预览包括.NET Core 3.0作为默认运行时 Visual Studio中的顶级ASP.NET核心模板 简化的网页模板 组件的属性splatting TypeConverters和泛型的数据绑定支持 阐明了哪些指令属性需要HTML vs C# EventCounters gRPC模板中的HTTPS gRPC客户端改…
1.ASP.NET Core 是一个跨平台的高性能开源框架,可以部署到Linux上,那项目部署在Linux上有哪些好处呢? 1.linux硬件需求小,大部分版本免费,成本低. 2.linux的用户管理严格,病毒难以破坏. 3.linux是模块化的,可裁减,出现问题只要关闭一个模块,windows只有微软自己才会裁减. 4.linux是多用户多进程系统,适合做服务器. 5.linux上还有一个最大的好处,可以使用docker容器,Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖…
引子 自从 2009 年开始在博客园写文章,这是目前我写的最长的一篇文章了. 前前后后,我总共花了 5 天的时间,每天超过 3 小时不间断写作和代码调试.总共有 8 篇文章,每篇 5~6 个小结,总截图数高达 60 多个. 俗话说,桃李不言下自成蹊. 希望我的辛苦和努力能得到你的认可,并对你的学习和工作有所帮助. 欢迎评论和  (这是一个可以点击的按钮,点击即可推荐本文!) 前言 这是一个系列教程,以自微软的官方文档为基础,与微软官方文档的区别主要有如下几点: 更通俗易懂的语言 从代码入手(而非…
最近在学习asp.net core,当然学习的目的是想了解一下,Asp.net core是否真的能够是先跨平台部署. 根据目前官网资料说明,asp.net core只有在Redhat 企业版上,才能够实现所有的功能.不过这个版本是收费的,可能不是大多数人的最佳选择. 笔者目前选择的实验环境是Ubuntu 16.4 和CentOS7这两个平台. 从长远角度来说,CentOS7维护周期长,更加适合企业生产环境.Ubuntu择以更加活跃的社区,更加快速的更新受到欢迎,不过他的维护周期一般只有2~3年,…
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布.我一直在想,怎么能够用这个地表最强IDE工具编写Angular4的Asp.Net Core项目.经过不屑的研究.终于的得到了一套很好的解决方案与大家分享. 文章转载请著名出处:http://www.cnblogs.com/smallprogram 我们的目的 随着Web技术的快速发展,新的技术层出…
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布.我一直在想,怎么能够用这个地表最强IDE工具编写Angular4的Asp.Net Core项目.经过不懈的研究.终于的得到了一套很好的解决方案与大家分享. 文章转载请著名出处:http://www.cnblogs.com/smallprogram 我们的目的 随着Web技术的快速发展,新的技术层出…
微软推出ASP.NET Core 2.0的一般可用性,并发布.NET Core 2.0.该公司还推出了其旗舰集成开发环境(IDE)的更新:Visual Studio 2017版本15.3和Visual Studio 2017 for Mac 7.1版本.ASP.NET是一个用于构建动态网站,Web应用程序和Web服务的服务器端Web应用程序框架..NET Core是一个免费的跨平台管理软件框架. ASP.NET Core 2.0具有.NET Core 2.0兼容性和Visual Studio 2…
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成.监控报警.以及扩容和高可用性的问题.是学习和探索的过程分享给大家,也欢迎同行的人交流. 先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例.这是第一步,通过此文您将了解如何将net core web api 运行在Docker…
相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab CI 持续集成 服务器版本 Ubuntu 16.04 LTS. 经过上面四篇博文中的相关安装和配置,我们主要完成了两个容器的创建和运行:gitlab和gitlab-runner(GitLab 站点和 GitLab CI 服务): $ docker ps CONTAINER ID IMAGE COMM…
上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本篇博文目的:项目中添加Dockerfile文件,使用 CI 脚本构建自定义镜像,推送到 Docker 私有仓库,然后在服务器上拉取镜像并创建相应容器,最后启动容器,完成发布和部署. 实现上面目的,大概有三种实现方式: GitLab Runner 不运行在 Docker 容器中:Executor 选择shell…
前言     在 .Net Core 2.2中 Microsoft.AspNetCore.App 默认内置了EntityFramework Core 包,所以在使用过程中,我们无需再从 NuGet 仓库单独应用 EFCore 包:本文并不打算深入的介绍 EFCore 的各种使用方式.原理解析,本文重点在于解决让初学者在10分钟内快速使用上 EFCore 的问题. 1. Code First 方式 EFCore 支持 Code First 方式,这个特性允许开发人员基于业务实体模型创建数据库 1.…
第一篇:把代码连接到容器 第二篇:定制Docker镜像 第三篇:发布镜像 Docker容器间的连接 Docker提供了两种方式可以用来做容器间的连接/通信: Legacy Linking:这种方式使用容器名进行连接,实际上它创建了一个桥接的网络,在这个网络里,容器间可以进行通信. 把容器添加到桥接网络:这种方式是创建了一个自定义的桥接网络,它的类型是isolated network(隔离网络),只有在这个网络里的容器才能互相通信. Legacy Linking Legacy Linking,也就…
和这种蛋糕一样,Docker的容器和镜像也是使用类似的分层文件系统构建而成的. 这样做的好处就是可以节省硬盘空间,也利于复用等等.因为Docker基于镜像创建容器的时候,其镜像是共享的:而且镜像里面的层如果已存在,也无需再下载. 下面拉取一个mongodb的镜像,拉取的过程中可以看到: 图中红框范围内的就是mongo镜像的不同分层,也就是镜像中的分层文件系统. 然而这些镜像层是只读的: 这样的限制多少看起来有点严格,如果你想使用该镜像读写数据库怎么办?或者记录Log到文件,或者在容器运行的时候替…
在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的. 比如访问百度,我们可以发现,图片.脚本这种都是从缓存(内存缓存/磁盘缓存)中加载的,而不是再去访问一次百度的服务器,这样一方面改善了响应速度,另一方面也减轻了服务端的压力. 但是,对于 WPF 和 UWP 开发来说,原生的 Image 控件是只有内存缓存的,并没有磁盘缓存的,所以一旦程序退出了,下次再重新启动程序的话,那还是得从服务器上面取图片的.因此,打造一个具备缓存(尤其是磁盘缓存)的 Image…
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况下,如何解决该问题?如果有几个外部的“临时”文件可用,但是仅有几百字节的内存,又该如何解决该问题? 分析 这仍然是<编程珠玑>中的一个问题.前面我们曾经提到过<位图法>,我们使用位图法解决了这个问题.32位整型最多有4294967296个整数,而很显然40亿个数中必然会至少缺一个.我们…
前段时间看文章了解到发邮件的SmtpClient已经过时了,微软官方推荐大家用其他解决方案,例如MailKit. https://docs.microsoft.com/zh-cn/dotnet/api/system.net.mail.smtpclient?view=netcore-2.2 SmtpClient Class 定义 命名空间: System.Net.Mail Assemblies: System.dll, netstandard.dll, System.Net.Mail.dll 警告…
文章简介  gitlab & gitlab-runner 简介 基于gitlab & gitlab-runner 的asp.net core webapi 极简持续集成实践 gitlab & gitlab-runner 简介 写在最前面,文中示例使用到了docker & docker-compose 相关知识,文中的gitlab server 以及 gitlab-runner都是使用docker容器,以及gitlab-runner的执行方式也是docker模式,相关内容不再…
Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1来实现API服务(优势:跨平台),其中此技术比较新颖,其中连接Oracle遇到各种困难(特别是资料较少,各个插件版本比较多,且依赖的版本也有要求),经过各种尝试,最终可以连接上Oracle数据库,此处仅仅是demo. 2.技术路线 2.1 Asp.net core 3.1 ASP.NET Core…
最近被安排开发文件存储微服务,要求是能够通过配置来无缝切换我们公司内部研发的文件存储系统,FastDFS,MongDb GridFS,阿里云OSS,腾讯云OSS等.根据任务紧急度暂时先完成了通过配置来无缝切换内部文件系统以及FastDFS.至于MongDb GridFS,阿里云OSS,腾讯云OSS等则后期需要的话再开发对应的提供者程序集合. 作者:依乐祝 首发公众号:DotNetCore实战 原文链接: https://www.cnblogs.com/yilezhu/p/12797543.htm…
上一篇,我们打造了一个简单的分析器,但是我们实际使用分析器就是为了对项目做分析检测,增加一些非语法的自检的 比如Asp.Net Core 3.0的替换依赖注入检测 设计分析 我们创建一个默认的Asp.Net Core 3.0的项目 打开Startup.cs 大致结构如下 我们要针对Startup分析,第一方法ConfigureServices的返回类型必须是void 这是Asp.Net Core 3.0的改动之一,所以,当Startup.ConfigureServices返回类型不等于void的…
使用通用websocket连接asp.net core signalr 一.背景介绍 signalr的功能很强大,可以为我们实现websocket服务端节省不少的时间.但是可能由于不同的环境,我们在对接前端的时候总会很麻烦.虽然微软为我们提供了前端的包,但是总有一些不能用的地方. 首先我们要知道 signalr在进行websocket 连接的时候都做了什么 1.首先请求接口获取connectionId 这个我们待会要用到 我们用post请求 http://localhost:5000/chatH…