ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。Web Pages 是 ASP.NET 网站开发的最简单的开发模型。在我们的 Web Pages 教程中,您将学习到如何通过使用 Visual Basic 和 C# 的最新 Razor 服务器标记语法,将 HTML、CSS、JavaScript 与服务器代码相结合。您也会学到如何通过可编程的 Web Helpers 对网页进行扩展,包括数据库、视频、图像、社交网络等等。
闭包作为前端面试的必考题目,常让1-3年工作经验的Javascripter感到困惑,其实C#语言也有闭包。 今天我们深入聊一聊[闭包], 查缺补漏! C#闭包的实现 · 庖丁解牛 跨语言 · 追本溯源 一等函数 自由变量 词法作用域 闭包与线程结合 1. C#闭包: 庖丁解牛 一
前言,本文定位为.NET方向 grpc核心能力一把梭,全篇是姿势性和结论性的展示, 方便中高级程序员快速上手.NET Grpc。 有关grpc更深层次的前世今生、底层原理、困惑点释疑请听下回分解, 欢迎菜鸟老鸟们提出宝贵意见。 grpc宏观目标: 高性能rpc框架 grpc框架实现宏观目标的底层3协
1. 坑位 最近在重构认证代码,认证过程相当常规: POST /open-api/v1/user-info?client_id&timstamp&rd=12345&sign=***&method=hmac content-type: application/json
之前写《.NET gRPC 核心功能初体验》,利用gRPC双向流做了一个打乒乓的Demo,存储消息的对象是IAsyncEnumerable<T>,这个异步可枚举泛型接口支撑了gRPC的实时流式通信。 本文我将回顾分享 foreach/yield return/async await语法糖
讲故事 关注我公众号的朋友,应该知道我写了一些云原生应用日志收集/分析相关的文章,其中内容大多聚焦某个具体的组件: 超级有用的TraceId,快点用起来吧! 如何利用NLog输出结构化日志,并在Kibana优雅分析日志? 既然能直接向ElasticSearch写日志,为什么还要logstash日志摄
前言 前面利用《Docker-Compose搭建Redis高可用哨兵集群》, 我们的思路是将Redis、Sentinel、Redis Client App链接到同一个网桥网络,这个网桥内的Redis Client App就可以使用ContainerIP访问网桥内任意redis节点。 同一网桥网络访问
前文传送门: 什么是云原生? 现代云原生设计理念 Microservices 微服务是构建现代应用程序的一种流行的架构风格。(云原生拥抱微服务) 微服务是由一组(使用共享结构交互的、独立的小块服务)搭建的分布式集 共享结构??微服务之间不是通过标准http,grpc来调用吗?怎么还共享结构? 指的是
上个月我写了《.NET gRPC核心功能初体验》, 里面使用gRPC双向流做了一个打乒乓球的Demo, 实时双向这两个标签是不是很熟悉,对, WebSockets也可以做实时双向通信。 本文将利用WebSockets(SignalR的一部分)搭建一个可双向通信的ASP.NETCore5应用。 (&#
应用程序在某些时刻总是需要一些外挂配置,云原生应用的实践是在容器化之前就将应用程序配置保留在代码之外。 12-Factors App:Store config in the environment ① 外挂配置文件:业务配置 appsettings.json 可以在代码中要求加载appsetting
引言 长话短说,今天聊一聊分布式定时任务,我的流水账笔记: ASP.NET Core+Quartz.Net实现web定时任务 AspNetCore结合Redis实践消息队列 细心朋友稍一分析,就知道还有问题: 水平扩展后的WebApp的Quartz.net定时任务会多次触发, 因为webapp实例使
hello,最近在对一个使用.NET5项目的认证授权系统进行重构,对.NET 5的授权中间件的源码有些看法。 也希望同学们能帮我理解。 一个朴素的需求 这是一个api项目,默认所有的api都需要授权, 少数散落在Controller各处的api不需要授权访问,故这里有个全局授权访问+特例匿名访问的矛
这篇文章行文结构对照微软博客, 结合本人意译和多年实践的回顾思考形成此次读书笔记。 Domian-driven Design 领域-驱动-设计(DDD)提倡基于(用例相关的现实业务)进行建模。 1. DDD的视角 DDD将现实问题视为领域; DDD将独立的问题描述为有界限的上下文(一个有界上下文对应
背景 ASP.NET Core 在 2.1 之后推出了具有弹性 HTTP 请求能力的 HttpClient 工厂类 HttpClientFactory。 替换的初衷还是简单摆一下:① using(var client = new HttpClient()) 调用的 Dispose() 方法并不会立即
在早期的.NET Framework程序员心里,重定向Redirect其实分为两种: Response.Redirect: Response对象的Redirect方法提供了一种实现客户端重定向的方法 Server.Transfer: Server对象的Transfer方法使用服务
图片上传是很常见的功能,里面有些固定的操作也可以沉淀下来。
本文记录使用Abp vNext做图片上传的姿势。
好久不见,前两周经历了人生第一次"伪牛市",基金和股市大起大落,更加坚信“你永远赚不到超出你认知范围之外的钱,除非靠着运气”,老韭菜诚不欺我也。 当能力与野心不匹配,只能多看书,收割那些不求甚解的韭菜。 言归正传,本文聊一聊在ASP.NET Core3.1中集成ElasticSe
上文我们演示了使用NLog向ElasticSearch写日志的基本过程(输出的是普通文本日志),今天我们来看下如何向ES输出结构化日志、并利用Kibana中分析日志。 什么是结构化日志? 当前互联网、物联网、大数据突飞猛进,软件越复杂,查找任何给定问题的起因就越困难(且成本更高)。 在实践中我们开发
最好的总会在不经意间出现。 作为后端程序员,免不了与前端同事对接API, 一个书写良好的API设计文档可有效提高与前端对接的效率。 为避免联调时来回撕逼,今天我们聊一聊正确使用Swaager的姿势。 swagger 项目在2015年捐献给OpenAPI倡议,swagger 和openapi的叫法通常
什么叫路由? routing vs proxy? proxy: 强调的是流量将被接收并被透明转发给upstream 应用处理,强调的是流量被转发的行为, 是处理链路上处于应用层的行为。 路由:用于在网络内或者跨网络为流量选择一个处理路径, 强调的是流量在进程内是以怎样的策略来为流量选择处理对象。 路
长话短说, 今天分享如何在nuget.org创建并发布.NET Standard package。 前置 安装勾选.NET Core开发套件的Visual Studio; 安装dotnet Cli 从VS2017开始,dotnet Cli已经自动在.NET开发套件中被安装; 使用SDK-style
宝物简介 grpcur是一个与grpc服务器交互的命令行工具,可认为是gRPC的curl工具。 grpcurl用于从命令行调用gRPC服务器支持的RPC方法,gRPC使用二进制编码(protobuf), 不能利用常规的curl工具(早期的curl版本还不支持HTTP/2)。 grpcurl工具接受j
马甲哥继续写一点大前端,阅读耗时5 minute,行文耗时5 Days 今天我们来了解一下如何拦截axios请求/响应? 这次我们举一反三,用一个最舒适的姿势插入这个技能点。 axios是一个基于 promise 的网络请求库,可以用于浏览器和 node.js; promise 类似于C#的Task
最近入职了新公司,尝试阅读祖传代码,记录并更新最近的编程认知。 思绪由Q1引发,后续Q2、Q3基于Q1的发散探究。 Q1. Task.Run、Task.Factory.StartNew 的区别? 我们常使用`Task.Run`和`Task.Factory.StartNew`创建并启动任务,但是他们的
之前码甲哥写了两篇有关线程安全的文章: - [你管这叫线程安全?](https://www.cnblogs.com/JulianHuang/p/14720042.html) - [.NET八股文:线程同步技术解读](https://www.cnblogs.com/JulianHuang/p/1176
.NET运行时内置了常用的缓存模块: MemoryCache 标准的MemoryCache暴露了如下几个属性和方法: public int Count { get; } public void Compact(double percentage); public ICacheEntry Create
早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和 路由,其核心目的是将 请求落地点与路由寻址方式解耦。 这里面有几个容易混淆的函数 MapControllerRoute MapDefaultControllerRoute MapControllers 有什么不同?什么时候
> 本文的知识点其实由golang知名的for循环陷阱发散而来, 对应到我的主力语言C#, 其实牵涉到闭包、foreach。为了便于理解,我重新组织了语言,以倒叙结构行文。 先给大家提炼出一个C#题:观察for、foreach闭包的差异 ![](https://files.mdnice.com
有小伙伴问我每天忽悠的TPL是什么?☹️ 这次站位高一点,严肃讲一讲。 引言 俗话说,不想开飞机的程序员不是一名好爸爸;作为微软技术栈的老鸟,一直将代码整洁之道奉为经典, 优秀的程序员将优雅、高性能的代码看成自己的脸面。 今天探讨下我对.NET并行编程库Task Parallel Library的理
之前两次signalr、 websocket实时推送相关: .NET WebSockets 核心原理初体验 SignalR 从开发到生产部署避坑指南 tag: 浏览器 >nginx--> server 其中提到nginx默认不会为客户端转发Upgrade、Connection标头, 因为
今天来聊一聊面试八股文:布隆过滤器。 说道布隆过滤器,就免不了说到缓存穿透。 缓存穿透 在高并发下,查询一个并不存在的值时,缓存不会被命中,导致大量请求直接落到数据库。 数据库的响应能力肯定没有缓存大,出线这样的情况,一般是黑客攻击,拖慢了系统的响应速度。 头脑风暴 朴素的分析思路: 在缓存前加一道