
C#
wwwsq
这个作者很懒,什么都没留下…
展开
-
[C#] 轻量级部署azure应用
概述C#和azure是无缝衔接的。 azure支持0成本的docker方式部署应用,包括数据库。这样低到为0的入门门槛对新手非常友好。步骤开通一个azure账号。azure支持12个月的免费试用。免费账号的功能有限,需要转为收费账号才能使用高级功能。不过我们的轻量级部署只要用免费账号就够了。 创建一个cosmos数据库。作为轻量级应用,记得选择Serverless的按量计费。作为轻量级部署,Serverless的按量计费可以完全0费用。cosmos支持mongodb模式,这是比aws和阿里云的原创 2021-06-21 23:54:39 · 543 阅读 · 3 评论 -
[C#] nlog经典配置文件
<?xml version="1.0" encoding="utf-8" ?><nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwConfigExceptions="true"> <extensions> &.原创 2021-05-12 15:42:48 · 931 阅读 · 0 评论 -
[C#] 关于异步编程
async编程可以节省一点服务器CPU,但是却引入了额外的犯错可能性,让系统更容易出错了。异步编程总体来看应该是弊大于利,java不支持async编程可能是更优秀的选择。要完全正确的进行高质量的异步编程是非常困难的:https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.mdhttps://docs.microsoft.com/en-us/archive/msdn-magazine/原创 2021-04-21 16:24:30 · 246 阅读 · 1 评论 -
[C#] 怎样写好dotnet core程序
本文的目标人群,是有编程基础,希望开始使用dotnet core,或者已经使用dotnet core了但是不知道怎样做最好的同学。推荐两个链接:https://github.com/EduardoPires/EquinoxProject这是一个开源项目,是个dotnet core最佳实践的样例项目。如果你不知道怎样开始一个项目,先把这个项目看看。甚至可以拿这个项目当模板,在这个项目上改...原创 2020-04-09 10:42:05 · 305 阅读 · 1 评论 -
[C#] Newtonsoft.Json 版本冲突
在web.config或者app.config里面加上一段:原创 2017-05-04 11:27:15 · 5235 阅读 · 0 评论 -
[C#] Date类型
很多人提出C#需要有个单独的Date类型,以便干净的处理日期。微软的人声称Datetime类型是Date类型的超集,所以没有必要单独的Date类型。但很多人明显并不认可这个答案。下面是我提供的一个Date class实现,给需要的同学:using System;using System.Globalization;using System.Runtime.Serialization;nam原创 2017-08-14 10:57:28 · 10534 阅读 · 4 评论 -
[C#] 汉字转拼音,支持多音字
支持dotnet core的汉字转拼音,而且支持多音字。原创 2015-06-04 18:02:41 · 80219 阅读 · 1 评论 -
[C#] http如何在POST之后下载文件
原理:要让浏览器弹出另存为的对话框,只要返回的http header里面有恰当的content-type即可。浏览器会根据response里面的content-type来做不同的处理和响应要想指定下载的默认文件名,设置Content-Disposition这个header即可,这个选项可以控制浏览器的另存为动作。要下载的内容,放在response的http body里面即可。想下载什么内容,写什么原创 2017-03-10 10:29:02 · 5863 阅读 · 0 评论 -
dotnetcore迁移方法初步
dotnet core出2.0了。把一些现有代码试着做了下迁移,出乎意料的顺利。这里分享一些有用的nuget包,和有用的代码:nuget包名引用原因其他Microsoft.AspNetCore.HttpHttp处理HttpContext.Current方法需要替代方案Microsoft.AspNetCore.Mvc.CoreHttp处理 Microsoft.Extensions.Caching.M原创 2017-09-06 10:22:33 · 2128 阅读 · 0 评论 -
[C#] 网站程序ASP.NET的性能诊断 - CPU分析
微软提供了标准的CLR性能分析类库https://github.com/Microsoft/clrmd如何获取clrmd编译后的dll方法一在nuget里面搜索clrmd可以很方便的下载方法二估计有些同学和我一样喜欢手动挡,那么我这里提供一个下载dll的地址。项目里面只要引用这个dll就能对CLR进行分析诊断了。https://raw.githubusercontent.com/wsq003/cl原创 2017-08-01 16:36:48 · 2500 阅读 · 0 评论 -
[C#] 不同类型的对象之间快速拷贝(比反射快十倍)
/// <summary>/// 在两个不同的类型之间,快速的拷贝/// </summary>public static class FastCopy{ static Action<S, T> CreateCopier<S, T>() { var target = Expression.Parameter(typeof(T)); ...原创 2018-01-18 23:32:40 · 2840 阅读 · 1 评论 -
[C#] 调用curl打开https网页
有些特别的https网站,在服务端配置的特别严格,则用C#自带的HttpClient可能会无法访问。而用浏览器访问却都正常。这是由于C#的http client没有完整实现最新的SSL规范。此时我们有三个选择:1、使用第三方的http实现:很遗憾,没找到。在C#下几乎没有第三方的http client,大概是官方的http client实现的太好了。2、使用libcurl:维护不佳,libcurl...原创 2018-05-15 15:17:16 · 4143 阅读 · 1 评论 -
[C#] vs2017的文本可视化工具不能显示内容了
visual studio 2017的‘文本可视化工具’(text visualizer)在某些情况下有可能会只显示变量名称,而不显示文本的内容。这是vs2017的一个bug,他们搞错了这个对话框的minimal size。手动把‘文本可视化工具’(text visualizer)拖大一点就好了。vs会记住这个对话框的大小。参见: https://developercommunity....原创 2018-08-21 16:18:10 · 3600 阅读 · 0 评论 -
[C#] 如何方便的给函数加缓存
思路利用MemoryCache对“特定函数的特定输入”的执行结果做缓存,那么可以节省大量对db和redis的访问。从外部对函数的执行结果做缓存,相比于修改函数在函数内部做缓存,更加松耦合,没有侵入性。实现using System;using System.Collections.Concurrent;using System.Collections.Generic;u...原创 2019-04-15 15:30:12 · 481 阅读 · 0 评论 -
[ASP.NET] 修改web站点的默认编程语言
当你点右键新建web窗体或者新建类的时候,默认编程语言是什么?有时候是C#,有时候是VB。你找遍了所有配置,从web.config到iis express配置到sln文件,硬是没找到vs如何决定编程语言的。让我们一起对微软竖起中指:visual studio是记住了你上次“添加新项”时候的编程语言。想要修改website项目的默认编程语言,只要 “添加新项” 然后选择语言一次。以后这个站点的默认语原创 2017-04-01 12:41:09 · 1838 阅读 · 1 评论 -
[C#] 用ServiceStack读写redis的性能问题
ServiceStack.Redis有个方法叫 AddRangeToList,这个方法是有性能问题的。改用批量RPUSH之后,AddRangeToList的性能可以提高一两个数量级。原创 2015-02-26 16:49:33 · 5860 阅读 · 0 评论 -
C#将可编译为本地机器码
微软宣布了.net native的开发者预览版,详见这里。这是一个大家期待了很多年的特性。每年在技术论坛上都有无数的人问,C#能否编译成本地机器码。有了这个特性之后,更多开发商会开始选择C#来开发客户端。因为检测和安装.net framework实在是非常糟糕的用户体验,很多开发者都避免使用C#。如果.net native能有良好的品质,C++的使用范围大概会缩小不少。很多客户端程序并不是那么在意原创 2014-04-04 10:22:15 · 7413 阅读 · 13 评论 -
[C#] 如何把void*转换为byte[]
MSDN推荐的转换方式是使用UnmanagedMemoryStream原创 2015-01-27 17:22:07 · 6228 阅读 · 0 评论 -
java的System.currentTimeMillis()如何转换成C#的DateTime.Now.Ticks?
考虑到我们是东八时区的话,应做如下转换:long milli = System.currentTimeMillis() + 8*3600*1000;long ticks = (milli*10000)+621355968000000000L;原创 2015-02-08 00:47:40 · 5715 阅读 · 0 评论 -
[C#] ServiceStack.Redis如何批量的pop数据?
ServiceStack.Redis要安全的批量pop数据,有两个办法:1、用事务 2、执行lua脚本原创 2015-02-27 12:39:42 · 10343 阅读 · 2 评论 -
[C#] WebClient性能优化
C#的WebClient需要修改默认设置,否则性能太差了。原创 2015-03-07 23:25:12 · 9094 阅读 · 1 评论 -
[C#] 调试silverlight的时候,总是报“向占位程序传送了空的索引指针”
这是由于visual studio在调试silverlight的时候,必须和ie一起工作。按照以下步骤可以把ie设为visual studio的默认浏览器(不用修改操作系统的默认浏览器): 1) 在‘解决方案资源管理器’里面选一个 .aspx 页面点右键 2) 选择‘浏览方式’ 3) 在对话框里面选择ie并设为默认浏览器参见:http://stackoverflow.com/ques原创 2015-06-23 17:47:33 · 7460 阅读 · 2 评论 -
[C#] Parallel.For的线程数
Parallel.For会自动判断同时运行多少个线程,但你也可以进行干预。原创 2015-03-08 00:36:48 · 9971 阅读 · 2 评论 -
[C#] 查标准正态分布表
C#里面要计算正态分布是一件比较麻烦的事情,一般是通过查表来实现的。原创 2015-11-05 16:53:54 · 6790 阅读 · 4 评论 -
ashx不能折叠代码,没有智能提示
visual studio 2013有时候会遇到这个问题。没安装任何第三方插件,创建的是web网站项目。ashx文件忽然就没有intelligent智能提示了。可以试试:关闭visual studio,删除 your_project.suo 文件,然后双击你的sln文件打开项目(有时似乎要双击sln文件打开项目才能恢复)。我用这个方式恢复了正常。原创 2016-01-14 05:32:36 · 5354 阅读 · 1 评论 -
[C#] 如何分析stackoverflow等clr错误
有时候由于无限递归调用等代码错误,w3wp.exe会报错退出,原因是clr.exe出错了。这种错误比较难分析,因为C#代码抓不住异常。处理方法是:生成dump文件,然后用WinDbg去看看什么地方出错了。WinDbg能够分析clr的stack,并报告是什么地方出错的。具体操作步骤参见: http://www.andreybazhan.com/windbg-access-violation-exce原创 2016-03-10 17:23:10 · 3968 阅读 · 0 评论 -
[C#] 一致性哈希(Consistent Hashing)的实现
网上没看到C#的一致性哈希的实现,所以这里提供一份。原创 2011-09-08 14:45:34 · 3606 阅读 · 5 评论 -
[C#] 使用WebSocket进行通讯
客户端客户端很简单string url = "ws://localhost:24900/" + "test.ashx";try{ System.Net.WebSockets.ClientWebSocket cln = new System.Net.WebSockets.ClientWebSocket(); cln.ConnectAsync(new Uri(url), new Cancel...原创 2016-10-08 12:03:48 · 23430 阅读 · 1 评论 -
[C#] 生成 (web): 未能加载文件或程序集“Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7
有时候编译asp.net会遇到奇怪的错误:生成 (web): 未能加载文件或程序集“Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。未提供所需的模拟级别,或提供的模拟级别无效。 (异常来自 HRESULT:0x80070542)这个报错对应的英文是:Eithe原创 2016-12-27 16:58:04 · 9755 阅读 · 2 评论 -
推荐C++程序员阅读《CLR via C#》
这本书的作者Jeffrey Richter也是《Windows核心编程》的作者。《Windows核心编程》更多的是对window系统相关知识的挖掘积累。《CLR via C#》则更多的讲解了语言的设计、类库的设计。这本书可以提供几个有益的视角:C++的缺陷是什么,C#是如何规避的,C#为此付出了什么代价参照C#的选择,我们在C++开发中可以做什么C#的易用性是怎么产生的,C++我们可以做什么提高易原创 2014-04-30 13:31:44 · 2589 阅读 · 0 评论