随笔分类 -  C#

1 2 3 下一页

GC、LOH和Performance相关
摘要:PerformanceNow that we have a basic model for how things are working, let's consider some things that could go wrong that would make it slow. That wil... 阅读全文

posted @ 2014-07-19 20:51 Mainz 阅读(736) 评论(0) 推荐(0) 编辑

Stackoverflow架构
摘要:Stackoverflow用的是.net开发的,用的缓存是Redis,Stackoverflow架构的演讲地址是:http://www.infoq.com/cn/presentations/architecture-of-stackoverflow?utm_source=infoq&utm_medi... 阅读全文

posted @ 2014-07-19 20:25 Mainz 阅读(1861) 评论(0) 推荐(0) 编辑

为什么我不再用 .NET 框架(转)
摘要:NET平台很棒。真的很棒。直到它不再那么棒。我为什么不再用.NET?简单来说,它限制了我们选择的能力(对我来说很重要),转移了我们的注意力,使得我们向内认知它的安全性,替代了帮助我们认知外面广阔世界的所有可能性。[系好安全带:这个文章的长度几乎成了一本书…]优点首先让我开始说说.NET做得对的许多事... 阅读全文

posted @ 2014-07-12 14:43 Mainz 阅读(1134) 评论(1) 推荐(0) 编辑

ASP.NET WEB API的服务托管(Self-HOST)
摘要:如果我们想对外发布RESTful API,可以基于ASP.NET来构建Restful APIs,但需要部署IIS吗?答案是不必。你可以把它托管到一个Windows Service。具体如何把WEB API自托管到Windows Service可以参考这一文章:Self-Host a Web API (HttpSelfHostServer) (C#). 基本上照着一步步做就行了。例子里是基于Windows Console Application,同样可以Self-Host到Windows Service.问题在于如何把Controllers从Windows Service分离?可以使用autoF 阅读全文

posted @ 2014-01-26 14:49 Mainz 阅读(2458) 评论(1) 推荐(2) 编辑

同步函数的异步化
摘要:先说下异步(Asynchronous)和多线程(Multi-threading)的区别:异步是相对与同步来说的,一般来说意味着非阻塞;异步在具体实现上是用多线程来实现的,但好处是你不用操心和管理多线程,它给你封装了一个干净的接口来调用。当然,在linux和javascript环境下,你要理解异步一般要理解事件驱动机制/Event loop: 《理解Event loop》。这里讲的主要是.NET。同步函数异步化有很多好处,但异步化是有开销的:《Understanding the Costs of Async and Await》。具体来说,下列场合适合用异步化:耗时的I/O操作,例如:读文件I/ 阅读全文

posted @ 2014-01-24 11:33 Mainz 阅读(1110) 评论(0) 推荐(0) 编辑

C#并行库(TaskParallelLibrary)用法小结
摘要:今天有空,总结一下.NET 4.5并行库(TaskParallelLibrary)用法。也许C和C++的程序员刚刚开始写C#还习惯于new Thread来新建一个线程,但新建线程需要内存和CPU上下文切换的开销,200,000个周期,销毁线程也需要100,000个周期;所以还需要实现一个线程池Threadpool。自从有了并行库(TaskParallelLibrary),这些都不需要了。使用Task.Factory.StartNew(() => DoSomething(item));可以创建一个线程并自动由线程池管理。写法非常简单,但其实里面误区很多:1. Task.Factory.St 阅读全文

posted @ 2014-01-23 17:00 Mainz 阅读(4435) 评论(0) 推荐(6) 编辑

RestSharp用法小结
摘要:今天有空,小结一下RestSharp的用法。RestSharp内置了XML和JSON的反序列化(deserializers )。application/json – JsonDeserializerapplication/xml – XmlDeserializertext/json – JsonDeserializertext/xml – XmlDeserializer* – XmlDeserializer (all other content types not specified)比如下面的实体类:Public class Employee { Public string Emplo... 阅读全文

posted @ 2014-01-23 15:31 Mainz 阅读(21877) 评论(3) 推荐(4) 编辑

C#常用功能函数小结(.NET 4.5)
摘要:今天有空,把C#常用的功能总结一下,希望对您有用。(适用于.NET Framework 4.5)1. 把类转换为字符串(序列化为XML字符串,支持xml的namespace)using System.IO;using System.Text;using System.Xml;using System.Xml.Serialization;public static string Serialize(T t, string nameSpacePri, string nameSpace){ try { var myNamesp... 阅读全文

posted @ 2014-01-23 14:09 Mainz 阅读(2808) 评论(0) 推荐(1) 编辑

Linq-to-SQL性能优化提升实践
摘要:Linq-to-SQL的性能优化,根据我的个人实践和效果降序排列,如下..... 阅读全文

posted @ 2012-11-23 16:54 Mainz 阅读(1072) 评论(0) 推荐(0) 编辑

System.Security.Cryptography.CryptographicException: The data to be decrypted exceeds the maximum for this modulus of 128 bytes. (RSACryptoServiceProv
摘要:在使用C#的不对称加密RSACryptoServiceProvider类的时候,会遇到异常:System.Security.Cryptography.CryptographicException: The data to be decrypted exceeds the maximum for this modulus of 128 bytes. 异常详细信息: System.Security.Cryptography.CryptographicException: 要解密的数据超过此模块的最大值 128 字节。错误发生在rsa.Decrypt这一行...... 阅读全文

posted @ 2012-11-13 11:05 Mainz 阅读(3391) 评论(0) 推荐(0) 编辑

不用Log4net用并发队列ConcurrentQueue自己实现写日志的组件(C#)
摘要:实现写日志Logging,但客户不想用Log4net,说不想用任何第三方组件,好吧,我们自己写一个简单的记日志的组件吧。但要实现下面的几个功能: 可以用FileAppender的方式记日志.... 阅读全文

posted @ 2012-08-04 15:15 Mainz 阅读(3146) 评论(5) 推荐(3) 编辑

使用Task.Wait和Cancel解决Remoting超时Timeout问题
摘要:在Remoting客户端用TcpChannel链接服务端的时候,如果地址不存在会尝试连接到超时Timeout大概21秒左右,例如连接到"tcp://192.192.192.192:8080/Serve... 阅读全文

posted @ 2012-03-21 22:03 Mainz 阅读(3426) 评论(0) 推荐(2) 编辑

ASP.NET调用多Endpoint多Contract的WCF Service
摘要:本文主要讲述ASP.NET调用多Endpoint多Contract的WCF Service,包括以下实现: ASP.NET调用WCF Service WCF Service Libra... 阅读全文

posted @ 2012-03-20 21:48 Mainz 阅读(1810) 评论(1) 推荐(0) 编辑

私有静态方法private static method-值得用吗?
摘要:用Resharper的同学都知道,如果你写了一个私有函数,这个函数没有访问类里面的其他参数和方法,那么它建议你标记这个方法为私有静态方法,提示是这样的: 值得这样做吗?看看微软的建议: ... 阅读全文

posted @ 2011-12-14 12:06 Mainz 阅读(2563) 评论(0) 推荐(0) 编辑

用并发队列(ConcurrentQueue)实现多线程任务中随时异步回调进度通知(.Net4.0)
摘要:本文讲述实现抽象出来的异步通知回调进度通知,用在多层组件中,支持一组task的任意进度回调通知。本文中用到几个.NET 4.0的新方法和TPL方法:Tuple,ConcurrentQueue,Sema... 阅读全文

posted @ 2011-10-13 10:56 Mainz 阅读(7449) 评论(7) 推荐(0) 编辑

VisualStudioVS2010统计代码行数(免安装插件)
摘要:按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$#开头和/开头或者空行都不计入代码量。如果需要只统计代码文件的代码量... 阅读全文

posted @ 2011-09-28 12:17 Mainz 阅读(3157) 评论(1) 推荐(1) 编辑

[.NET]Event handler没有注销就会内存泄露吗?
摘要:我们经常会写EventHandler += AFunction; 如果没有手动注销这个Event handler类似:EventHandler –= AFunction 会内存泄露吗?会! 这个Eve... 阅读全文

posted @ 2011-09-10 14:20 Mainz 阅读(2511) 评论(0) 推荐(1) 编辑

C#的Dictionary值排序和SortedDictionary键排序
摘要:对一个Dictionary<TKey, TValue>进行键排序可以直接用SortedDictionary, SortedDictionary<TKey, TValue> 泛型类是检索运算复杂度为 O(log n) 的二叉搜索树,其中 n 是字典中的元素数。 就这一点而言,它与 SortedList<TKey, TValue> 泛型类相似。 这两个类具有相似的对象模型,并且都具有 O(log n) 的检索运算复杂度。这两个类的区别在于内存的使用以及插入和移除元素的速度:SortedList<TKey, TValue> 使用的内存比 SortedD 阅读全文

posted @ 2011-06-29 10:25 Mainz 阅读(10509) 评论(1) 推荐(1) 编辑

WeakPropertyChangedListener用弱引用事件订阅防止内存泄露
摘要:GC对象回收机制一个对象会不会被回收,主要看垃圾回收器引用遍历的时候能不能访问到这个引用,如果访问不到,则将被回收,如果能够访问到,则不能回收。也就是说GC回收前GC会确定对象没有任何引用。GC对“无用”对象的识别机制就是判断对象是否被“根(Root)”所引用。在这里,“根”是对一组当前正被使用,或者以后可能被使用的对象的统称,大体包括这样的对象:类型的静态字段或当前的方法参数和局部变量、CPU寄存器等。如何确定对象已经被释放而没有内存泄露使用ANTS Memory Profiler(Redgate)这个工具,把程序运行起来,打开一个Form,然后拍一张快照;关闭那个Form,再拍一张快照,两 阅读全文

posted @ 2011-06-25 15:25 Mainz 阅读(922) 评论(0) 推荐(2) 编辑

1 2 3 下一页

导航