代码改变世界

随笔档案-2011年8月29日

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《在VS 2010中查询和导航代码》篇

2011-08-29 19:31 by 狼人:-), 253 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,总结字符串比较函数

2011-08-29 19:31 by 狼人:-), 319 阅读, 收藏,
摘要: 最近一段时间一直在重看CLR via C# , 这次把字符串比较的函数总结下。 1.Compare和CompareTo大PK 首先是我们最常用的String.Compare和CompareTo实例方法,先来看看这两个方法: 我们通过这个可以直观地看到,String的静态方法要比CompareTo多出好多的方法重载,其实这也是两者的最大区别,也就是说String.Compare有着更多的功能选项供我们控制。 其中主要包含着三个方面: A. 文化信息 B. CompareOptions C. 比较的开始和结束位置 对于文化信息,我们可以看下Compare... 阅读全文

一起谈.NET技术,一个MVC分页Helper

2011-08-29 19:31 by 狼人:-), 230 阅读, 收藏,
摘要: 本人写的一个分页Helper,支持普通分页(也就是,首页、上一页、下一页、末页等),综合分页(普通分页和数字分页的综合)。下面是分页效果: 分页代码: PagerHelper.cs 代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Collections.Specialized;4usingSystem.Linq;5us. 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇

2011-08-29 19:31 by 狼人:-), 368 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中实现URL导向》篇

2011-08-29 19:31 by 狼人:-), 184 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,使用LINQ to SQL更新数据库(中):几种解决方案

2011-08-29 19:31 by 狼人:-), 241 阅读, 收藏,
摘要: 在前一篇文章中,我提出了在使用LINQ to SQL进行更新操作时可能会遇到的几种问题。其实这并不是我一个人遇到的问题,当我在互联网上寻找答案时,我发现很多人都对这个话题发表过类似文章。但另我无法满足的是,他们尽管提出了问题,却没有进行详细的剖析,只给出了解决方案(如添加RowVersion列、去除关联等),但却没有说明为什么必须这么做。这也是我写上篇的初衷,希望通过对LINQ to SQL源代码的分析,来一步一步找出解决问题的办法。本文将对这些方法一一进行讨论。 方案一:重新赋值 在TerryLee、Anytao和Ding Xue等人的开源框架Ezsocio中,有些地方采取了重新赋值的方法。 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《VS 2010代码智能提示的改进》篇

2011-08-29 19:31 by 狼人:-), 192 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,一步一步教你实现简单的自定义错误跟踪

2011-08-29 19:31 by 狼人:-), 172 阅读, 收藏,
摘要: 一、设计xml,应该包含下面信息: 1、Datetime: 发生错误/异常的日期和时间2、File name: 发生错误/异常的文件名3、Class name : 发生错误/异常的类名4、Methodname: 发生错误/异常的方法名5、Errormethod : 包含错误代码的函数名字6、Message :错误/异常的信息7、Error details: 错误/异常详情8、IP : 客户端IP地址9、URL : 发生错误的URL DemoXML: DemoXML Code highlighting produced by Actipro CodeHighlighter (freeware). 阅读全文

一起谈.NET技术,数组排序方法的性能比较(3):LINQ排序实现分析

2011-08-29 19:31 by 狼人:-), 338 阅读, 收藏,
摘要: 上次我们分析了Array.Sort方法的实现方式,并了解到类库会为一些特例而使用高性能的排序方式——int数组便是这样一例,因此从测试结果上来看其性能特别高。不过从数据上看,即便是在普通的情况下,Array.Sort的性能也比LINQ排序要高。不过也有朋友从测试中得出的结论正好相反,这又是为什么呢?那么现在,我们再来分析一下LINQ排序的实现方式吧,希望这样可以了解到两者性能差别的秘密。 只可惜,LINQ排序的代码在System.Core.dll程序集中,微软没有发布这部分源代码,我们只得使用.NET Reflector来一探究竟了。 LINQ排序接口的定义、使用及扩展 所谓LINQ排序,便是 阅读全文

一起谈.NET技术,Visual Studio DSL 入门 2

2011-08-29 19:31 by 狼人:-), 202 阅读, 收藏,
摘要: 相信如果看过一上篇你已经对vs.net dsl有了一定的了解,接下来我们就来开始我们的这个系列的入门,Vs.net Dsl在国内可能使用的人少之又少,不过希望这个系列能够使看到的人能够对dsl有一定的了解,使之能够成为产品方案选型时的一个参考,能够对阅读的人有所帮助. 准备环境 由于vs.net 2010并未正式发布,所以这一系列基于vs 2008 sp1进行开发,Dsl tools是包含在VSX当中的,所以需要下载 Vistual Stutio.Net SDK 1.1安装,下载地址为:http://msdn.microsoft.com/zh-cn/vsx/default(en-us).a.. 阅读全文

一起谈.NET技术,Visual Studio DSL 入门 3---创建一个简单的DSL模型

2011-08-29 19:31 by 狼人:-), 462 阅读, 收藏,
摘要: 从这节开始我们就开始我们的DSL之旅, 首先确保你已经安装了Visual Studio Sdk,并且使用的是Visual Studio 2008.我们先大概创建一个简单的DSL项目,通过这个项目来了解dsl的开发环境和流程. 1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择"Domain Specific Lan guage Designer”,点击确定 2.接下来进入DSL创建向导,将会提供四种DSL模型模板提供我们选择,其实他们只 阅读全文

一起谈.NET技术,Visual Studio DSL 入门 1

2011-08-29 19:31 by 狼人:-), 379 阅读, 收藏,
摘要: 什么是特定领域开发和DSL 特定领域开发是用来解决重复发生的问题的方法,针对每次发生的问题,通过进行总结和分析,他们之间相同的方面可以一次性的解决.而经常变化的方面,可以采用一种特殊的语言表达.针对这个特殊语言,我们可以建立模型或者表达式,然后插入到固定部分. 对于我们软件行业的解决方案来说,固定部分一般采用传统的设计和实现方式,可以为框架,平台,解释器或者编程接口.提供可扩展性,具有高度的抽象性和可复用性.而特定领域语言专门用来创建变化的部分,从而使整个解决方案可具有可应用性. 特定领域语言(DSL,Domain Specific Language)是一种特别用来描述某一专业领域内涵的... 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《添加引用对话框的改进》篇

2011-08-29 19:31 by 狼人:-), 232 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《多显示器支持》篇

2011-08-29 19:31 by 狼人:-), 465 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《自动启动ASP.NET应用》篇

2011-08-29 19:31 by 狼人:-), 218 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,使用LINQ to SQL更新数据库(上):问题重重

2011-08-29 19:31 by 狼人:-), 372 阅读, 收藏,
摘要: 在学习LINQ时,我几乎被一个困难所击倒,这就是你从标题中看到的更新数据库的操作。下面我就一步步带你走入这泥潭,请准备好砖头和口水,Follow me。 从最简单的情况入手 我们以Northwind数据库为例,当需要修改一个产品的ProductName时,可以在客户端直接写下这样的代码: // List 0NorthwindDataContext db = new NorthwindDataContext(); Product product = db.Products.Single(p => p.ProductID == 1); product.ProductName = " 阅读全文

一起谈.NET技术,数组排序方法的性能比较(中):Array.Sort<T> 实现分析

2011-08-29 19:31 by 狼人:-), 350 阅读, 收藏,
摘要: 昨天我们比较了Array.Sort方法与LINQ排序的性能,知道了LINQ排序的性能以较大幅度落后于Array.Sort方法。而对于Array.Sort来说,性能最高的是其中使用Comparer.Default作为比较器的重载方法。在前文的末尾我们做出了推测:由于排序算法已经近乎一个标准了(快速排序),因此从算法角度来说,Array.Sort方法和LINQ排序上不应该有那么大的差距,因此造成两者性能差异的原因,应该是具体实现方式上的问题。 下载.NET框架的代码 既然是比较实现的区别,那么阅读代码是很直接的选择。谈到阅读.NET代码,我们往往会使用.NET Reflector将框架... 阅读全文

一起谈.NET技术,20条.NET编码习惯

2011-08-29 19:31 by 狼人:-), 135 阅读, 收藏,
摘要: 1、不要硬编string/ numeric,可以使用一些常量代替。 (提高可读性) Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->intCount;Count=100;privatestaticconstintZERO=0;if(Count==ZERO){//执行一些操作} 2、对于字符串比较-使用String. Empty ,而不是""。 3、不要声明成员变量为public 或者proteted,尽量使用private 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《多定向支持》篇

2011-08-29 19:31 by 狼人:-), 270 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇

2011-08-29 19:31 by 狼人:-), 212 阅读, 收藏,
摘要: 本系列文章导航VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇VS 2010 和 .NET 4.0 系列之《干净的Web.Config文件 》篇VS 2010 和 .NET 4.0 系列之《起始项目模板》篇VS 2010 和 .NET 4.0 系列之《多定向支持》篇VS 2010 和 .NET 4.0 系列之《多显示器支持》篇VS 2010 和 .NET 4.0 系列之《代码优化的Web开发Profile》篇VS 2010 和 .NET 4.0 系列之《ASP.NET, HTML, JavaScript 代码片段支持》篇VS 2010 和 .NET 4.0 阅读全文