多核时代,可并行多个线程,但是受限于资源对象,线程之间存在对共享内存的抢占/等待,实质是多线程调用对象的行为方法,这涉及#线程安全#线程同步#。
在学习的过程中,看一些一线的技术文档很吃力,而且考虑到国内那些技术牛人英语都不差的,要向他们看齐,所以每天下班都在疯狂地背单词,博客有些日子没有更新了,见谅见谅
俗话说,不想开飞机的程序员不是一名好爸爸;作为微软技术栈的老鸟,一直将代码整洁之道奉为经典, 优秀的程序员将优雅、高性能的代码看成自己的脸面。
在我的上几篇文章中降到了asp.net core的管道模型,为了更清楚地理解asp.net core的管道,再网上学习了.Net Core控制台应用程序对其的模拟,以加深映像,同时,供大家学习参考。
发布于 2018-03-18 12:45 更新于 2018-06-02 01:26
建立一个名为CefSharp-DotNet4.0的空的解决方案(下文简称sln哈),咱们就开始吧!
EditorConfig 是一种被各种编辑器广泛支持的配置,使用此配置有助于项目在整个团队中保持一致的代码风格。Visual Studio 2017 开始原生支持 EditorConfig。
在本文中,我将逐步解释如何在ASP.NET Core中开发基于RESTful的Web服务应用程序。ASP.NET Core是微软最新发布的技术,比之前的WCF和Web API要好得多。
2C互联网业务增长,单机多核的共享内存模式带来的排障问题、编程困难;随着多核时代和分布式系统的到来,共享模型已经不太适合并发编程,因此actor-based模型又重新受到了人们的重视。
BufferBlock是C#中的一个数据流块(Dataflow Block),它提供了一个有界或无界的缓冲区,用于存储数据。类似于BlockingCollection,你可以使用Post方法往BufferBlock中添加数据,也可以通过Receive方法阻塞或异步地读取数据。在高性能方面,BufferBlock是C#中一种常用的选择。
1、使用WCF请求与答复模式须知 (1)、客户端调用WCF服务端需要等待服务端的返回,即使返回类型是void (2)、相比Duplex来讲,这种模式强调的是客户端的被动接受,也就是说客户端接受到响应后,消息交换就结束了 (3)、在这种模式下,服务端永远是服务端,客户端就是客户端,职责分明。 (4)、它是缺省的消息交换模式,设置OperationContract便可以设置为此种消息交换模式 2、代码示例 服务层接口IReqReplyService.cs代码如下: using System; using Sys
格式设置规则会影响 .NET 编程语言构造的缩进、空格和换行的排列方式。 规则分为以下几类:
源码: https://github.com/Kybs0/TranslationTool
1、使用WCF单项模式须知 (1)、WCF服务端接受客户端的请求,但是不会对客户端进行回复 (2)、使用单项模式的服务端接口,不能包含ref或者out类型的参数,至于为什么,请参考C# ref与out关键字解析 (3)、使用单项模式的服务端接口没有返回值,返回类型只能为void (4)、通过设置OperationContract契约的IsOneWay=True可以将满足要求的方法设置为这种消息交换模式 2、代码实例 (1)、第一步 i、首先建一个名为IService的类库作为服务层,新建IOneWay接口
WPF 支持创建多个 UI 线程,跨窗口的或者窗口内的都是可以的;但是这个过程并不是线程安全的。
共享内存利用多核CPU的优势,使用强一致的锁机制控制并发, 各种锁交织,稍不注意可能出现死锁,更适合熟手。
在前后端分离、Restful API盛行的年代,完美的接口文档,成了交流的纽带。在项目中引入Swagger (也称为OpenAPI),是种不错的选择,它可以让接口数据可视化。下文将会演示
官网上的解释:NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers. 大致的意思:NuGet 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。 可以去看一下NuGet 百度百科的介绍。
在日常开发过程中,难免有这样一种需求:就是你所建的每一个类文件或者接口文件都需要标注下作者姓名以及类的用途。如果我们每次创建文件的时候都需要写一遍这些信息是很烦神的。还好Visual Studio给我们提供了模板注释的功能来自动帮我们生成类似的注释代码。今天趁着中午休息的时间就让我们一起来操作下吧。
C# 是由微软(Microsoft)开发的的一个简单的、现代的、通用的、面向对象的编程语言,相比java来说,我感觉C#的语言比java稍微的简洁一点,同时框架结构不像java那样种类繁多,但是弊端就是最近几年才支持跨平台和开源,.netcore也是最近兴起的,所以现在很多人觉得java生态好还开源免费,.net方向收费而且成本比java高。其实现在.net core和java差不多,都可以进行跨平台和分布式部署,同时支持docker等容器部署。
1、Visual Studio Visualizer,项目地址 https://vsdatawatchers.codeplex.com/,这个项目包括以下内容的可视化插件: Data visualizer:DataSet、DataTable、DataRow、DataView 、DataRowView、DataRowCollection Code visualizer:Entity Framework generated sql 、String 、StringBuilder 、XDocument 在Codep
现在再使用 Visual Studio 创建新的 WPF 项目时,将默认引诱你使用 .NET 6(或者 5、.NET Core 3.1)框架和配套的新的 SDK 风格的项目文件(csproj)。
一、简介 EQueue是一个参照RocketMQ实现的开源消息队列中间件,兼容Mono,具体可以参看作者的文章《分享一个c#写的开源分布式消息队列equeue》。项目开源地址:https://github.com/tangxuehua/equeue,项目中包含了队列的全部源代码以及如何使用的示例。 二、安装EQueue Producer、Consumer、Broker支持分布式部署,安装EQueue需要.NET 4, Visual Studio 2010/2012/2013. 目前EQueue是个类库,需要
Setting Up Your Development Environment 设置你的开发环境 To setup your development machine download and install .NET Core and Visual Studio Code with the C# extension. Node.js and npm is also required. If not already installed visit nodejs.org. 首先在你的机器上下载.Net Co
本文档使用 lambda 表达式在 PLINQ 中定义委托。 如果不熟悉 C# 或 Visual Basic 中的 lambda 表达式,请参阅 PLINQ 和 TPL 中的 Lambda 表达式。
本文示例源代码地址https://github.com/lcyhjx/abp-training 上一篇我们已经对ABP是什么,能做什么、有了一个印象。那么接下来我们将动手使用ABP框架快速开发一个API,你将会发现使用ABP框架有多么便利,会实实在在感受到它的魅力。 环境要求 Visual Studio 2017 SQL Server .Net Core SDK 创建应用程序 我们使用ABP模板来创建应用程序,访问http://www.aspnetboilerplate.com/Templates,你将会看
通过使用异步编程,我们可以提高应用程序的响应性和吞吐量。C# 提供了一些内置的方案来处理异步编程,例如 async/await 关键字和 Task 类。然而,有时候我们需要处理更复杂的场景,比如处理流式数据或者实现生产者/消费者模型。这就是为什么 .NET Core 3.0 引入了 System.Threading.Channels 的地方。
https://www.bilibili.com/video/av819861860
在 Connect(); 2018 大会上,微软发布了 .NET Core 3 Preview,以及基于 .NET Core 3 的 WPF;同时还发布了 Visual Studio 2019 预览版。你可以基于 .NET Core 3 创建 WPF 程序。不过,如果你已经有基于 .NET Framework 的 WPF 项目,那么如何快速迁移到基于 .NET Core 的版本呢?
WPF supports multiple UI threads in its framework. You can create multiple UI thread windows or create multiple UI threads in a single window. But unfortunately, this is not really thread-safe.
在.NET Standard/.NET Core技术出现之前,编写一个类库项目(暂且称为基础通用类库PA)且需要支持不同 .NET Framework 版本,那么可行的办法就是创建多个不同版本的项目(暂且称为PB1、PB2、PB3 ... PBn)。PB1、PB2、PB3 ... PBn项目分别执行下面操作:【添加】--【现有项】--【添加为链接的方式】,将PA项目代码文件添加到各自项目中,如果代码不同,则需要使用#if #else #endif 等标签来判断 .NET Framework 版本。而在.NET Standard/.NET Core技术出现之后,可以通过配置SDK 样式项目中的目标框架来支持一套代码同时输出多版本类库。
最近,博主为 FakeRPC[1] 增加了 WebSocket[2] 协议的支持。这意味着,我们可以借助其全双工通信的特性,在一个连接请求内发送多条数据。FakeRPC 目前最大的遗憾是,建立在 HTTP 协议上而不是 TCP/IP 协议上。因此,考虑 WebSocket 协议,更多的是为了验证 JSON-RPC[3] 的可行性,以及为接下来的要支持的 TCP/IP 协议铺路。也许,你从未意识到这些概念间千丝万缕的联系,可如果我们把每一次 RPC 调用都理解为一组消息,你是不是就能更加深刻地理解 RPC 这个稍显古老的事物了呢?在编写 FakeRPC 的过程中,我使用了 .NET 中的全新数据结构 Channel 来实现消息的转发。以服务端为例,每一个 RPC 请求经过 CallInvoker 处理以后,作为 RPC 响应的结果其实并不是立即发回给客户端,而是通过一个后台线程从 Channel 取出消息再发回客户端。 那么,博主为什么要舍近求远呢?我希望,这篇文章可以告诉你答案。
Visual Studio Code(VS Code)是Microsoft为Windows,Linux和Mac操作系统开发的免费,跨平台,轻量级的源代码编辑器,它是源代码编辑器,而Visual Studio是IDE(集成开发环境),VS Code支持开发人员进行调试,项目运行和版本控制等。
最近因为阳了的缘故一直躺在床上。今天终于从床上爬起来了。不是因为好透了,而是因为我收到了申请Copilot Chat preview 权限通过的邮件。实在忍不住,于是起床开电脑在咳嗽声中进行了一番体验。
FxCop是一款微软官方提供的.net平台代码审查工具,目的是检查我们编写的程序集的代码是否符合规范。FxCop默认提供的是微软默认的审查规则,而且该规则符合《Framework DesignGuidelines》里面大部分的设计规范。因为FxCop默认提供的规范比较严格所以对开发人员的要求也比较高, 而且每个公司都有自己的一套规范,所以默认的规范并不能满足我们的要求,这就需要我们自己开发插件来进行自定义规则,而且FxCop已经集成到了Visual Stduio中,所以我们开发的插件也能在Visual Stduio运行。
近日,GitHub 在全球开发者大会上,宣布启动了一个名为「安全实验室 (Security Lab)」的新社区计划。该计划中,GitHub 不仅开源了代码分析引擎 CodeQL,还设置了奖励金最高为 3000 美元的漏洞奖励计划。
此规则查找 ReadAsync 和 WriteAsync 的基于字节数组的方法重载的等待调用,并建议改为使用基于内存的方法重载,因为它们的效率更高。
C#8.0中有几个有趣的新特性和增强功能。指数和区间是两个新的增加-作为新的系统索引以及系统范围分别是用于索引和切片的类型。本文讨论如何在C#8.0中使用索引和范围
如果某天改了一点代码但是没有完成,我们可能会在注释里面加上 // TODO。如果某个版本为了控制影响范围临时使用不太合适的方法解了 Bug,我们可能也会在注释里面加上 // TODO。但是,对于团队项目来说,一个人写的 TODO 可能过了一段时间就淹没在大量的 TODO 堆里面了。如果能够强制要求所有的 TODO 被跟踪,那么代码里面就比较容易能够控制住 TODO 的影响了。
发布于 2018-05-11 16:04 更新于 2018-09-01 00:07
首先新建一个ASP.NET Core空项目,命名为BindReader 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢? 打开Progra
.NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1: 安装和配置.NET Core以及Visual Studio Code 扩展... 2 任务1:安装Visual Studio Code和.NET Core. 2 任务2:安装插件... 4 练习2:使用命令行界面构建. NET Core应用程序... 5 练习3:使用 Visual Studio Code和 Omnisharp 调试 c# 代码... 12 任务1:从VS code启动调试
自1995年互联网战略日以来最雄心勃勃的事业 —— 微软.NET战略, 2000年6月30日。
1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”;
在微软的 Build 2021 大会上,微软发布了 .NET 6 Preview 4,同时发布了于它的 MAUI 第四个预览版。在 MAUI 成为 Visual Studio 2022 的官方工作负载之前,成功编译并运行 MAUI 的示例程序会比较麻烦,本文旨在帮助大家完成示例程序的编译运行和体验。
最近有个产品需要设计重构,主要后端是C#和前端是Android程序,后端也考虑过微服务,但是觉得根据用户体量来说,有点太重了,但是也是想要团队分工,所以就考虑了MEF的方式,原来MEF的插件方式在《C# MEF插件的使用及Demo分享》的文章中介绍过,不过当时用的是WinForm版本,现在是要在NET5上使用,所以就专门做了DEMO程序来验证可行性。
概述 开源和跨平台开发是Microsoft 的当前和将来至关重要的策略。.NET Core已开源,同时开发了其他项来使用和支持新的跨平台策略。.NET Core 2.0 目前已经正式发布,是适用于针对 Web 和云构建跨平台应用程序的最新开源技术,可在 Linux、Mac OS X 和 Windows 上运行。 .NET Core使用各种命令行工具来生成基架、构建和运行应用程序,同时可以使用 Visual Studio Code 进行编辑。 Visual Studio Code 是微软为广大开发人员提供的
背景 最新版本的 ASP.NET 叫做 ASP.NET Core (也被称为 ASP.NET 5) 它颠覆了过去的 ASP.NET。 什么是 ASP.NET Core? ASP.NET Core
领取专属 10元无门槛券
手把手带您无忧上云