摘要:背景前几天有同事问到我一个简单的功能, 就是当你使用枚举时如何给每个一元素增加描述字符串并且可以很容易的读取出来.比如有一个枚举类型是列出对一个问题给出的选项(例如: 同意?不同意?中立?):当选择不同的答案时, 希望得到一些描述性的语句比方说:1. "强烈的反对"2. "反对"3. "持中立观点"4. "同意"5. "完全的同意"当然你可以建立一个数据库表格,存放这些信息, 但是我想起几年前,我... 阅读全文
posted @ 2011-10-13 03:13 拥有的都是恩典 阅读 (10728) 评论 (31) 编辑
摘要:那日,我与一友人漫步。他资质过人,少言寡欲, 刚二十出头。他经常问我应该怎么走程序员这条路。我不是什么大师,但仗键(盘)游走江湖已有数十载,吃过不少苦头。自以为不敢说到达了洪七公那种级别,但离江南七怪应该距离不远了。(注:洪七公和江南七怪都是郭靖的师父)我闭目沉思,悟空(七龙珠版),青铜圣斗士,健次郎(北斗神拳),郭靖(射雕),段誉和乔峰(天龙八部)等历史著名斗士冲入我的空间,我提指在 iphon... 阅读全文
posted @ 2011-05-19 08:29 拥有的都是恩典 阅读 (9553) 评论 (61) 编辑
摘要:这个系列,我和大家一起来学学C#中一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:“使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁!” -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。好的!先来看看ToLookup:下文参考翻译自: C#/.NET Little Wonders: The ToLookup() LINQ Extension Method故事的背景让我们先来创建一个简单的类来表示产品,产品有ID,类别,和价格,这个类没有什么特别: public sealed class Product { public int Id { 阅读全文
posted @ 2011-03-31 05:38 拥有的都是恩典 阅读 (10382) 评论 (12) 编辑
摘要:最近和一些朋友讨论如何写出优雅的代码,我们都很喜欢C#,所以以C#为例。主要一共有三位程序员在一起讨论,为简单起见我用ABC代表我们三个人。 有时候我们会针对一些代码进行讨论,有时候我们会提出一些观点,有时候我们会一起学习网上一些现有的博客,为了便于大家引用,我给每一个论题都编上号。 在很多情况下,我们的意见统一,那么我会给大家呈现我们的结论;但是有些情况我们有分歧。 你可以加入我们的讨论,我非常也希望能够获知你的意见,让我们一起茁壮成长! 阅读全文
posted @ 2011-02-12 07:31 拥有的都是恩典 阅读 (10695) 评论 (99) 编辑
摘要:“除非你睡着了或刚刚从一个长假回来,你应该已经注意到了,…,微软重新进入到了'高效率开发者’的圈子中。” – Scott Willhite – Director of Community Programs from DotNetNuke 微软是这样定义WebMatrix -- 一个全新的网络开发工具,涵括了你所需所有网站开发的东西。 你还可以选择在Web Gallery 列表中的多种系统作为你网站的基础平台,例如: DotNetNuke, Drupal, Orchard CMS, ASP.NET MVC, Joomla! Umbraco …., 而WebMatrix 真正革命性的地方在于引入Razor(CSHTML), 它可以大大简化我们的编程工作量。 从今天开始我会和大家一起来关注这个未来的新宠。在园子里已经有一些人做了介绍,我将会给大家一步步呈现WebMatrix的功能。 阅读全文
posted @ 2011-01-28 07:10 拥有的都是恩典 阅读 (15817) 评论 (21) 编辑
摘要:最近在网上看到一篇很好的文章, 讨论如何安全有效的引发事件.也许你不一定要用到下面相同的解决方案, 但是至少你应该知道在引发事件时候需要考虑的问题.引发事件的问题引发事件是一个非常容易的事情, 但是的确也有它的误区. 让我们举个例子. 假设我们写个消息接收器, 每当我们收到一个新消息, 我们引发一个包含了新消息的事件 MessageReceived.安装我们通常的方法,就是:public class MessageReceivedEventArgs : EventArgs{ // 接收到的消息 public string Message { get; private set; } ... 阅读全文
posted @ 2011-12-21 07:15 拥有的都是恩典 阅读 (7113) 评论 (19) 编辑
摘要:首先我想解释一下标题中两个关键字: "快乐", "ASP.NET程序员".有的人想成为一个"杰出"的程序员, 或者"资深"的程序员, 简单来说就是"大牛"级的人物 -- 但是本文不是针对此种发展方向不是说我不鼓励大家朝这方向走, 而是对我而言我更看重"快乐"的本身. -- 而且除非你是天才导致"杰出"或者"资深"是同时需要正确的态度和漫长的过程.那么为什么单单谈"ASP.NET程序员" -- 这是对我本人的写照, 也 阅读全文
posted @ 2011-12-20 04:37 拥有的都是恩典 阅读 (7175) 评论 (46) 编辑
摘要:最近的一个项目用到很多不同结构的XML文件. 于是就在网上搜索了一些文章, 结合实际遇到的问题写成自己要的代码.既然已经获取了这方面的知识,不敢独取, 拿出来共享. 这个也还不是很成熟, 希望大家共同完善, 提出宝贵意见, 共同进步.目标基于已经有的XML文件,例如:<root> <books> <book> <author>John Savacki</author> <title>E.G.Title</title> <price>20.50</price> </book> 阅读全文
posted @ 2011-12-14 04:18 拥有的都是恩典 阅读 (5206) 评论 (14) 编辑
摘要:在CodePlex 上经常可以发现一些好东西, 关键是有没有时间去淘宝.前几天就发现一个, 并且在实际工作中使用了:* DoddleReport你有没有被要求基于来自数据库的数据,生成一个报表? 我们时不时会有类似的需求.DoddleReport极大的简化了这方面的工作量.首先你需要下载它的Dll 文件, 可以到 codeplex 中得到http://doddlereport.codeplex.com/或者直接从这里下载: cnblogs下载地址得到的是一样的文件, 将它解压到你的一个asp.net 网站的bin目录下. 你就可以引用Doddle的类了.我们来模拟一个场景(本场景是根据Dodd 阅读全文
posted @ 2011-12-13 05:28 拥有的都是恩典 阅读 (3542) 评论 (19) 编辑
摘要:本篇文章给大家介绍两个在.net2.0 中就已经出现的, 很"老"的委托方式.通常情况下, 我们在Array 和 List<T> 类中使用这些功能. 明白用法和作用可以帮助你自如的使用它们.但是你也可以使用和它们作用相同的Func 家族的形式 -- 在.NET 2.0 之后引入的新功能.通过了解这些基本信息可以帮助我们看到一部分.net 进化的过程. 我称这种内容为"历史".只是抛砖引玉, 希望大家多多交流Comparison<T>它的出现是为了对Array 和 List<T> 执行type-safe 排序.注意, L 阅读全文
posted @ 2011-11-30 05:32 拥有的都是恩典 阅读 (1645) 评论 (2) 编辑
摘要:延迟加载(lazy loading) 设计模式是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据(读取属性值)的时候,才真正执行数据加载操作. 有效使用它可以大大提高系统性能. 为了便于理解, 我们来建立一个场景, 假设我们要构造一个Hero(英雄) 类, 每个Hero 有自己的名字和(SpecialSkill)特殊技能. 建模 这是一种建立的方法: 运行程序后输出如下, ... 阅读全文
posted @ 2011-11-24 04:41 拥有的都是恩典 阅读 (11885) 评论 (26) 编辑
摘要:线程可以使你的项目运行得更加的流畅.什么是线程呢?线程(thread)是程序执行流的最小单元, 是程序中一个单一的顺序控制流程. 每个程序最少有一个线程, 那就是程序本身.在C#中, 你可以使用 System.Threading 提供的类,接口和方法实现线程的所有操作.单线程操作想象着你走进快餐店, 大叫一声"来碗兰州拉面", 然后就坐在饭桌上等. 当厨师听到你的要求时,他就开始做兰州拉面了. 理论上讲, 当你叫了以后, 厨师就已经收到了命令.用代码可以这样表达:static void Main(string[] args){ string name = "兰州拉 阅读全文
posted @ 2011-10-29 06:08 拥有的都是恩典 阅读 (3937) 评论 (15) 编辑
摘要:我知道很多人都讨论过这个问题, 多我一个不多, 少我一个不少.最近有人又问到这个问题, 所以想再说说. 万丈高楼平地起, 地基很重要. 懂了的人不要嫌罗嗦, 欢迎补充或者纠正.从起源/定义说起Struct 从C 的时代就已经有了(向丹尼斯.里奇致敬), 它是Structure 的缩写 -- 就是结构的意思. 它是一种最初级的数据结构, 它包含一到多个相同类型或不同类型的值或者变量. 它就像是一个存储数据的"包".Class(类) 是有了面向对象概念之后才有的, 它"是创建对象的蓝图,描述了所创建的对象共同的属性和方法".从它们被创立的用途可以看出Clas 阅读全文
posted @ 2011-10-15 03:17 拥有的都是恩典 阅读 (4041) 评论 (6) 编辑
摘要:背景前几天有同事问到我一个简单的功能, 就是当你使用枚举时如何给每个一元素增加描述字符串并且可以很容易的读取出来.比如有一个枚举类型是列出对一个问题给出的选项(例如: 同意?不同意?中立?):当选择不同的答案时, 希望得到一些描述性的语句比方说:1. "强烈的反对"2. "反对"3. "持中立观点"4. "同意"5. "完全的同意"当然你可以建立一个数据库表格,存放这些信息, 但是我想起几年前,我... 阅读全文
posted @ 2011-10-13 03:13 拥有的都是恩典 阅读 (10726) 评论 (31) 编辑
摘要:很多人都知道使用 Webmatrix -- Microsoft 推出的最新武器可以很容易帮助你在windows下设置安装最常用的php, asp.net 开源网络应用如:wordpress, DNN, Umbraco, mojoportal, Joomla 等。同时Webmatrix支持的Razor让你可以很快的建立小型动态的.net网站,其实Webmatrix 还有一个卖点就是它有Helper库,熟悉了解这些Helper才可能真正的使用Webmatrix来建立具有应用价值的网站。今天我们来看看图表的库: Chart。如果你以前没有接触过Webmatrix,建议你先快速阅读下面的文章:WebM 阅读全文
posted @ 2011-09-30 02:29 拥有的都是恩典 阅读 (3380) 评论 (1) 编辑
摘要:今天上网,又看到列车追尾。我是一个很少发表任何攻击性言论的人,不过看到这种不断重复的低级而又影响重大的错误,实在是想说两句。在新闻上看到有关领导指出10号线列车与“7·23事故”列车所采用的信号系统同为卡斯柯公司生产,象我这种喜欢刨根问底的人,自然就会想上上卡斯柯公司的网站看看。Google和百度返回的搜索第一条同为www.casco.com.cn/;Google的第二条是:www.casco.com.cn/about/index.aspx。 -- 这是一个asp.net的网站,至少一部分是。然后我试图打开这个网站, 结果报错…说无法连接到服务器之类的…嗯,让我们再回到这个公司的名字 阅读全文
posted @ 2011-09-28 04:38 拥有的都是恩典 阅读 (4473) 评论 (41) 编辑
摘要:当对字符串进行操作时,我们经常要删除或者是替换一部分子字符串。 Remove() 和 Replace() 两个函数在这种情况就派上用场了。Remove() – 删除一部分子字符串我们都知道 substring 可以返回字符串的一部分。 当我们想保留字符串中的一部分substring丢弃其它部分时,就可以使用substring,当我们想删除字符串的一部分并保留其它部分时,就使用Remove。Remove 有两种形式:Remove(int startIndex)删除此字符串中从指定位置到最后位置的所有字符。Remove(int startIndex, int length)从此实例中的指定位置开始 阅读全文
posted @ 2011-09-27 02:56 拥有的都是恩典 阅读 (57240) 评论 (6) 编辑
摘要:很多时候处理字符串数据,比如从文件中读取或者存入 - 我们可能需要加入分隔符(如CSV文件中的逗号),或使用一个分隔符来合并字符串序列。很多人都知道使用split()的方法,但使用与其对应的Join()方法的人就没有那么多。今天,让我们看看它们的应用。Split() – 根据分隔符切割字符串成几部分分割符可以是以下几种形式中的一种:只有一个字符的数组:比方对于“A,B,C,D,E,F” 可以使用 ‘,’ 或者 new [] { ‘,’ } 有多个字符的数组:比方对于“A,B-C,D*E,F”使用 new [] { ‘,’ ‘-‘ ‘*’ } :只有一个字符串的数组:比方对于 “A=>B= 阅读全文
posted @ 2011-09-17 04:01 拥有的都是恩典 阅读 (46890) 评论 (12) 编辑
摘要:在asp.net中实现captcha的文章,网上已经有很多,解决方案也很成熟:1. 一个用vb写的开源控件:http://www.codeproject.com/KB/custom-controls/CaptchaControl.aspx2. 在 CSharp 中实现captcha控件,基本思想是用bitmap 将文字“画”出来,再用HatchBrush加一些点点。http://www.codeproject.com/KB/aspnet/CaptchaImage.aspx3. 下面这个和第一个是同一个作者,但是运用Csharp实现:http://captcha.codeplex.com/Sou 阅读全文
posted @ 2011-08-31 01:57 拥有的都是恩典 阅读 (988) 评论 (0) 编辑
摘要:今年一月份,我发布了本系列第一篇ASP.NET 快乐建站系列 -- 1. 十五分钟建立精美网站,(汗!七个月过去了…)我没有继续这个系列的原因是Sitefinity发布了最新的版本 Sitefinity 4, 原想等待这个最新平台。好消息是他们的确也提供免费Sitefinity Community Edition, 不幸的是当我尝试用 Sitefinity 4进行开发时,遇到了很多问题。Sitefinity 的确是一个很好的CMS平台,优势是后台管理界面友好,集成了他们母公司自己的强大产品 Rad controls, 在开发中Rad Controls 可以帮助你省很多时间,至于Rad Cont 阅读全文
posted @ 2011-08-30 07:51 拥有的都是恩典 阅读 (3448) 评论 (21) 编辑