All Posts in 2011.12


ASP.NET Forms验证实现只有特定目录才要求登录

哥最近准备把网站的登录模块重写,采用ASP.NET自带的Forms验证方式。一直觉得微软的登录肯定要比自己写程序判断Session神马的要完善。 我的场景是这样的: 一个普通的网站,分为前台和后台。前台是给Internet访客看的,无需登录。后台是给管理员发表文章和管理网站的,要求登录才能访问。 这样的网站我们通常这样设计目录结构: Web -----网站根目录 {     Console ----- 后台管理入口     {         Default.aspx ----- 登录页(一般叫做Login.aspx)         Welcome.aspx ----- 欢 …


当using遇到return

C#一大牛逼之处就是using语句简化了我们的程序。它的作用是在using结束后,立即释放被引用的资源。实质其实是调用被引用对象的Dispose()方法。这也是为喵被using的类型一定要实现IDisposable接口。虽然在.NET和JAVA里,程序员都不用关心手动释放内存的问题,但我认为在使用资源的时候加上using,是一种良好的习惯。有时候如果你不释放资源的话,可能会发生独占的问题。 好了,扯多了,话说回来,看看我今天遇到的一个有意思的问题。 今天心血来潮,想检验一下自己的代码,于是给项目启用了代码分析,用的是“Microsoft最少量建议规则”。结果以下代码产生了编译警告: public DataSet ExecuteDataSet(DbCommand cmd, Trans t) { cmd.Connection = t. …


Web.Config中保存特殊字符

最近遇到个问题,需要在web.config里保存一些特殊字符。比如“&”。但web.config,包括其他config都是XML格式的,不可以直接保存&,"&"在XML中是转义字符的标志,所以保存这个字符,需要经过转义。下面是常用字符的转义表。大家自己看一下~ 字符 转义 < < > > & & ' ' " "


高效程序猿之(三)VS2010快捷键

上一讲介绍了几款插件,碉堡了。今天我们来回顾一下VS2010的快捷键。下面是最常用的快捷键,大家自己看一下: 按键 功能 Ctrl+K,C 注释选中的代码 Ctrl+K,U 取消注释 Ctrl+K,F 整理代码 Ctrl+U 全部小写 Ctrl+Shift+U 全部大写 Ctrl+H 查找与替换 Ctrl+Shift+B 编译 Ctrl+J 智能提示 Ctrl+R,R 重命名 Ctrl+R,E 封装字段 F12 转到定义 F4 属性 …


GridView不使用数据源控件做分页

ASP.NET中的GridView如果绑定数据源控件(比如SqlDataSource),那么分页只要设置AllowPaging属性为true,并且设置PageSize就可以自动实现分页。但很多时候,我们需要手工给GridView绑定数据,这时候再设置AllowPaging的话,它绝对不会理你。所以我们需要手工给它编写分页事件: 其实很简单,大家自己看一下就明白了: private void FetchData() { DataTable dt = optLeaveword.GetList(0, GeekStudio.ORM.DAL.Leaveword.OrderBy.IdDesc); gvLeaveword.DataSource = dt; gvLeaveword.DataBind(); } protected void gvLeaveword_ …


高效程序猿之(二)VS2010优秀插件

上一讲介绍了VS2010的模板代码生成。今天我们来看一下VS2010的插件功能。优秀的插件可以显著提高程序猿的生成效率。这个是2010版的新功能,用户可以通过安装插件来拓展Visual Studio的功能。 在VS2010的菜单上,你可以找到Extension Manager的按钮,点击以后会弹出浏览和安装插件的对话框。 我们可以去在线的库中寻找插件。在线安装完成后需要重启VS才能生效。如果安装的是本地插件,则要关闭VS后再安装,不然也是要重启的。 下面介绍几个我常用的插件。 1. Indent Guides 这款插件的作用是给代码块增加对齐线,以标识匹配的花括号,让程序猿很容易的找到对应的语句块。 2. PowerCommands for Visual Studio 2010 这是微软官方的插件,它可以给你的右键菜单增加很多实用的功能。比如对整个Project整理 …


高效程序猿之(一)VS2010快速生成代码模板

一只程序猿的生产效率很重要。生成效率高了,老板喜欢你,妹子崇拜你,你也可以给自己节省很多时间。 加班的一般都是新手程序猿,除了对语言和技术不熟悉,工具也是很影响生成效率的因素。我们知道,猿和其他动物最大的区别在于,猿会使用工具。所以这一系列我将介绍一下如何用好手头的工具来帮助我们提高效率。 今天我们来看看如何在Visual Studio 2010中用内置的模板快速生成代码片段。 代码模板就是预先定义好的一个代码片段。VS中,我们只要输入模板的名称,然后连按两下TAB,VS就可以给我们把代码片段补充完整。 下面列出的这些都是VS2010的预置代码片段 流程控制语句估计大家都知道,这是最常用的“两下tab”: 关键词 生成 for for(int i = 0; i foreach foreach ( …


LINQ to List泛型的几种简单查询

最近比较喜欢LINQ,真是碉堡了。下面写了个例子演示一下LINQ对List<T>的操作,包括排序、where条件、选部分数据等查询。最近偷懒,不写注释了,大家自己看一下就明白了~ 测试用的BLL和Model public class TestBLL { public List<TestModel> GetList() { return new List<TestModel>() { new TestModel(){ Id=1, Name="RYWE", Content="IOJADJ", Posttime=DateTime.Now.AddHours(1) }, new TestModel(){ Id=2, Name="JGFA", …


TinyMCE syntaxhl插入代码后换行的修改

上次搞了个整合insert code的TinyMCE编辑器,非常好用。但有一个缺点:每次插入代码后,光标都会停留在pre标记里面,打回车出不来,必须编辑HTML,在pre后面加个换行,然后才能回到可视化界面里继续编辑博客。如果博客里要插入的代码片段很多,就会非常不爽。所以今天给它做了个小修改。 打开plugins\syntaxhl\js\dialog.js 定位到41行,找到</pre>标记。这是预格式化标签的结尾标记。所以只要在它后面插入一个段落标记,即可让光标跳出我们插入的代码片段。插件的作者在41行后加了个bug注释,所以不敢贸然写在</pre>的后面,所以我们换一行,把<p></p>拼接上。 现在我们插入代码后,光标就不会卡在pre里面了~OH YEAH! 有图有真相: