随笔分类 -  c#

摘要:最近在研究DDD,同时也下载了一些基于DDD做的成熟案例用来学习,有一些吧,过于成熟,顺便就从里面取了取别的经,比如这个ByteartRetail项目,里面对数据的操作狠花了我一些时间展开看看其实有个问题很明显,同为基于DDD进行的项目架构设计,不同人设计的项目分层、命名和里面放的东西都不相同,看样子DDD这玩意,纯粹就是一个思维方式,所以也只能从各种实现里面找自己最能懂的来实现适合自己的架构方式了。很抱歉,因为找示例的时候找得太多,就忘了每个项目的来处了,不过大多是在StackOverflow里面别人推荐的,你们可以去找找看。上面这个项目它实现了用A.And(B).And(C).Or(D)这 阅读全文
posted @ 2012-09-06 19:13 $walker 阅读(1599) 评论(2) 推荐(0) 编辑
摘要:IEnumerable类型原生是没有Add方法的,你可以用Contact方法去为它添加元素,items = items.Concat(new[] { "foo" });也可以用个扩展方法:public static IEnumerable<T> Add<T>(this IEnumerable<T> e, T value) { foreach ( var cur in e) { yield return cur; } yield return value;} 阅读全文
posted @ 2012-08-22 18:05 $walker 阅读(5481) 评论(0) 推荐(1) 编辑
摘要:网上有很多很多的人在问各IoC框架的对比,也有很多人做了各种各样的测试,下面这个,是包括的框架最多的,当然这种小测试测得都比较片面,但至少能在某一确定的方面反映问题。同样,你们可以把测试代码下载回去,略作修改测试你们感兴趣的方面。来源网站和测试代码见:http://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison另外,玩了玩Excel 2013 preview,渲染图表还是挺漂亮的,顺便把上面的测试数据贴个图吧:柱状图,由于拖后腿的LinFu, Mef, Ninject, Sprint. 阅读全文
posted @ 2012-08-22 14:21 $walker 阅读(496) 评论(0) 推荐(0) 编辑
摘要:原文:http://blog.sojingle.net/programming/csharp/csharp-collections-dictionaries-using-foreach对于.net Framework中内置的几种集合类,foreach是一种很方便的遍历方式:非泛型&弱类型的Collections(ArrayList,Queue,Stack):使用object:ArrayList al = new ArrayList();al.Add("hello");al.Add(1);foreach(object obj in al){ Console.Write 阅读全文
posted @ 2012-08-07 11:24 $walker 阅读(1277) 评论(0) 推荐(0) 编辑
摘要:原文见:http://www.sql-programmers.com/debugging-ssl-website-visualstudio2010.aspx,介绍得非常详细了1. Create your Web Site in IIS a. Open IIS b. Right click on Web Sites folder c. Choose “Add Web Site” d. Enter the details of your Web Site2. Set up a self-signed certificate in IIS7 a. Open IIS ... 阅读全文
posted @ 2012-08-06 19:56 $walker 阅读(1501) 评论(0) 推荐(0) 编辑
摘要:这是一个普遍的问题,本身md5在实现的时候方式就很多,结果还不一致,更别谈跨语言了,今天把两种各自试了一下,结论如下1,32位的加密一定要选字符编码,并且通过与java的测试,发现除了utf8,ascii和default(default对应java的gbk,但这个应该取决于当前操作系统)这几种编码方式,其它的编码方式输出的结果一个都对不上2,16位在C#不过是32位里面截取了一小段3,想要C#和Java,以及其它语言各自md5后能互相识别,那还是在编码的时候选择utf8吧,当然你一定要用ascii和gbk也可以,但是你得知道,C#里面找个gbk都难找,除非你知道它的code page(http 阅读全文
posted @ 2012-07-30 18:11 $walker 阅读(1861) 评论(0) 推荐(1) 编辑
摘要:原文地址:http://zhangz.wordpress.com/2010/01/17/reducing-code-coupling-service-locator/我们在代码中经常使用new关键字来实例化对象。这样做使得变量和具体的类型耦合在了一起。在大多数情况下,这样做并没有什么问题。但是在某些情况下,会导致我们希望避免的紧耦合。SqlConnection conn = new SqlConnection();上面的代码实例化了一个SqlConnection对象,任何使用了conn对象的代码都与SqlConnection类型发生了耦合。IDbConnection conn = new Sq 阅读全文
posted @ 2012-07-28 18:21 $walker 阅读(1049) 评论(0) 推荐(1) 编辑
摘要:总结得非常全面,所以全文转载,原文:http://www.cnblogs.com/michaelxu/archive/2008/09/20/1293716.html 我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地... 阅读全文
posted @ 2012-06-27 11:44 $walker 阅读(248) 评论(0) 推荐(0) 编辑
摘要:MVC3的Controller和Action可以实现加一个[Authorize]的方式来验证,非常简洁,如:[Authorize(Users = "abc")],[Authorize(Roles = "user")]那么它是怎么实现的呢? 很简单,Authorize标签还是基于Forms验证的,验证用户非常简单,只要你请求页面的时候cookie里面有.net的验证票据(代码段1),它就会生成一个... 阅读全文
posted @ 2012-06-20 11:09 $walker 阅读(456) 评论(0) 推荐(0) 编辑
摘要:直接上例子吧var plist=ViewBag.plist as IEnumerable<ZKX.Model.PatientInfo>;var cert= ViewBag.certsource as IEnumerable<ZKX.Model.CertTypeInfo>;//join到一个新的匿名对象var pext=plist.Join(cert, m => m.CERTTYPE_NO, t => t.CERTTYPE_NO, (m, t) => new { patient = m, cert = t });//使用<td>@item.p 阅读全文
posted @ 2012-03-15 21:06 $walker 阅读(440) 评论(0) 推荐(0) 编辑
摘要:1 将系统时间转换成UNIX时间戳 DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)); DateTime dtNow = DateTime.Parse(DateTime.Now.ToString()); TimeSpan toNow = dtNow.Subtract(dtStart); string timeStamp = toNow.Ticks.ToString(); timeStamp = timeStamp.Substring(0,timeStamp.Length - ... 阅读全文
posted @ 2012-03-10 16:14 $walker 阅读(495) 评论(0) 推荐(0) 编辑
摘要:Func<string,bool>filter=delegate(strings){ returns.Length==5;}; Func<string,string>extract=delegate(strings){ returns;}; Func<string,string>project=delegate(strings){ returns.ToUpper();}; IEnumerable<string>query=names.Where(filter).OrderBy(extract).Select(project); 阅读全文
posted @ 2012-02-27 14:05 $walker 阅读(501) 评论(0) 推荐(0) 编辑
摘要:3/13:start()是个败笔,有需要用的同学请自行处理什么地方该start(源码或调用),有时间的话我再理顺一下它最佳的出现位置2/27更新:Start方法中增加重置图片到原始大小的功能,解决每次初始化均以当前图片大小为100%计算缩放比率的bug目前实现如下功能: 1,随鼠标在图片上的移动会出现一个半透明的框,框内的部分即为截取的部分,双击即可获得截取部分 2,支持自定义选择框的大小(设置size属性) 3,支持自定义选择框的颜色(设置画刷brush属性) 4,支持鼠标滚轮缩放图片 5,支持设置缩放步进幅度(step属性) 6,支持设置缩放范围(scale属性)【注:此百分比以开始截图时 阅读全文
posted @ 2012-02-25 23:14 $walker 阅读(1633) 评论(0) 推荐(0) 编辑
摘要:在.net framework下属性可是通过public string str{ get; set; }这种方式迅速操作了,可是经常碰到一些诸如只读啊,默认值啊,怎么办呢?public string str{ get; private set; }可以设为只读[DefaultValue(false)]public bool isSuccess { get; set; }则可设默认值(添加System.ComponentModel命名空间)实验未生效。。。。MSDN说明:You can create aDefaultValueAttributewith any value. A member&# 阅读全文
posted @ 2012-02-25 17:24 $walker 阅读(267) 评论(0) 推荐(0) 编辑
摘要:1 //演示文档比较漂亮,提取参数如下: 2 chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;//圆角,阴影有Emboss,Raised和Sunken 3 chart1.Width = Unit.Pixel(500);//设定宽高后,里面的图会自动随之增缩 4 chart1.AntiAliasing = AntiAliasingStyles.Graphics;//图片反锯齿,默认似乎为这个选项 5 chart1.BackColor = System.Drawing.Color.FromArgb(211, 223, 240);//例子中. 阅读全文
posted @ 2012-01-16 16:09 $walker 阅读(327) 评论(0) 推荐(0) 编辑
摘要:前面说到过正则表达式中使用委托的做法:MatchEvaluator,见此这是最标准的写法:自定义一个函数,然后用此函数委托作为参数实例化MatchEvaluator对象,最后在正则匹配的时候可以用此对象当参数传入,实现对匹配结果的手动处理。今天介绍两种比较省事的写法,用例如下,把字符串中用括号括起来的纯数字减10: string s = "sdlfk(23984)sdlkf(3)sldfk(15)weoif23948(fsdlk)fdskjf(34)dlfk(432d)<br/>"; Response.Write(s); Regex r = new Regex( 阅读全文
posted @ 2011-11-18 17:35 $walker 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:留存个备份,简单记录日志的时候用。C# private object o=new object (); private static string getFiles() { //判断路径、文件是否存在,如不存在则生成相关资源 string dir = AppDomain.CurrentDomain.BaseDirectory + @"log\"; if (!Directory.Exists(dir)) { Directory.CreateDire... 阅读全文
posted @ 2011-08-30 13:39 $walker 阅读(644) 评论(0) 推荐(0) 编辑
摘要:见:http://www.codeproject.com/KB/database/CsvReader.aspx作者自己是说由于要处理大量CSV文件,发现OLEDB JET driver和正则的方法效果都不好,并且效率很低,同时使用string.split()方法为基础的解析有很大的局限性等等,总之作者是要求能够很好地理解逗号等分隔符,去除每个项的前后空格等等等等,于是他自己实现了一套类,同oledb和正则比,效率有15倍的提升,并且测试达到了30M/s的读取速度备份于此,感兴趣的查看文头链接 阅读全文
posted @ 2011-06-10 09:39 $walker 阅读(773) 评论(0) 推荐(0) 编辑
摘要:假如你的一个节点设为了CDATA类型,如果你用XElement的value="new value"的方法,你会发现<![CDATA这个标签不见了所以我们就把方法改为value="<![CDATA"+new value+"]]>",结果却发现被html转码了上网找到解决方法://Since you're interested in CDATA sections, you'll need to go a bit deeper in the API and work with nodes instead o 阅读全文
posted @ 2011-04-28 11:35 $walker 阅读(432) 评论(0) 推荐(0) 编辑
摘要:很多情况下我们希望一些调试信息不输出,但又不至于用到trace和debug的一些功能,仅仅是包一下几句话,非调试状态就不运行,有这些用法using System.Diagnostics; class XY { [Conditional( "DEBUG ")] public static void DebugLog(string in_string) { Console.WriteLine(in_srting); } public static int Main(string[] in_args) { DebugLog( "This is a test " 阅读全文
posted @ 2011-04-20 16:29 $walker 阅读(4946) 评论(0) 推荐(0) 编辑