摘要:引言
我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置。这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦。
期间也看了看.config文件的读写方式,感觉还是很麻烦,不如自己序列化来的踏实。
后来才猛然发现微软早提供好了settings,用以定义.config文件内容,并生成相应的强类型类,使用起来极其方便~,感觉就像在火星居住了半辈子突然发现还有地球这好地方*_*~
鉴于网上settings方面的资料不多、不详,我就以此文来介绍一下基本的用法,让小鸟们少走我那条破路,老鸟请直接从上. 阅读全文
艾伟_转载:从ASP.NET的PHP执行速度比较谈起
2011-08-29 00:21 by 狼人:-), 153 阅读, 0 推荐, 收藏,
摘要:上星期我在InfoQ发表了一篇新闻,对Joe Stagner在博客上发表的三篇关于ASP.NET与PHP性能对比的文章进行了总结。写新闻其实挺不爽的,因为不能夹杂个人的看法,只能平铺直叙陈述事实。当然,如果像某些新闻那样“换一种说法”是可以骗过一些“不明真相的群众”,但是这就有违道德了。因此,在客观陈述完新闻内容之后,我只能选择把自己的感想、评论等内容放在自己的博客上。 Joe Stagner的背景挺特殊,它是PHP的老用户,在ASP.NET出现之前就是PHP的重量级开发人员了。后来不知哪一天开始他加入了微软,我们就可以在一些如介绍ASP.NET AJAX的文章、视频中看到他。这次他又... 阅读全文
艾伟_转载:ASP.NET Forms验证的安全性问题研究——为什么加密代码需要配置为服务
2011-08-29 00:21 by 狼人:-), 140 阅读, 0 推荐, 收藏,
摘要:申明:这个帖子不是要你去干啥坏事,就是提醒一下你可能会遇到的安全性问题。
ASP.Net提供了内置的登录验证,最为常用的就是Forms验证。讲解如何配置的文章非常多,这里就不再讲如何配置使用这个验证的方式了。下面讲讲其在安全性上存在的一些被忽视的问题。其实它本身没有问题,而使用的方式上会附带出来一些问题。
本文将分三部分讲实际应用中将会遇到的安全性问题,并且加以研究,并尝试提出解决方案。
一、简单的Forms被破解危机二、垂直划分站点的Forms被破解危机三、危机将带来什么后果 一、简单的Forms被破解危机
最简单的一个Forms验证,在web.config下配置节点: Code hi... 阅读全文
艾伟_转载:我对NHibernate的感受(1):对延迟加载方式的误解
2011-08-29 00:21 by 狼人:-), 129 阅读, 0 推荐, 收藏,
摘要:NHibernate是.NET平台上最著名的ORM框架,虽说出身于Java平台上的Hibernate,但是从外部看来这几乎就是一个.NET平台上的原生产品:有自己的社区,有自己的用户,有自己的商业支持,有利用C#特性的独立扩展。它不像Lucene.NET那样,一眼就能看出浓重的Java气息,Java的命名方式等等。我用NHibernate时间不长,而NHibernate的复杂程度也决定了我无法像了解LINQ to SQL那样容易。不过在使用了一段时间过后,还是对它有一定体会。有欣喜,有误解,也有抱怨。 这几篇文章里我不打算多谈NHiberante的优点,因为它的优势实在过于明显。如果不... 阅读全文
艾伟_转载:用C#编程合并多个WORD文档
2011-08-29 00:21 by 狼人:-), 173 阅读, 0 推荐, 收藏,
摘要:今天因为客户需要,需要将多个WORD文档合并成为一个WORD文档。其中,对WORD文档的合并方式分两种形式:一是复制合并;一是插入合并,即将多个文档按照先后顺序合并到另一个文档中.代码如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word;usi 阅读全文
艾伟_转载:尝试通过HttpWebRequest向TAOBAO批量发布商品及上传图片
2011-08-29 00:21 by 狼人:-), 275 阅读, 0 推荐, 收藏,
摘要:朋友开了个淘宝店,所以经常要将新商品及图片发布到网店里,而且有时还需要上传很多商品。如果手工一条一个商品的上传未免太花时间,所以我就琢磨着能否用WinForm写个程序通过WebRequest发送POST/GET请求来达到这个目的。由于上传上品时即有普通的Form字段信息需要提交,还需要上传图片,所以在写HttpWebRequest时参考了这个帖子http://bytes.com/topic/c-sharp/answers/268661-how-upload-file-via-c-code(How upload file via c# code?) 在淘宝网上发布一个商品大体分为两个步骤... 阅读全文
艾伟_转载:面向对象封装了啥
2011-08-29 00:21 by 狼人:-), 152 阅读, 0 推荐, 收藏,
摘要:面向对象封装了变化,或者更加准确的说,应该是封装了不变的地方,留出了变化的地方可以在需要的时候再去变,那么什么地方会变化呢?
1、数据的变化 比如一个工厂生产一种纸盒子,程序要计算它的体积,需要有长、宽、高的尺寸,盒子的尺寸是固定的,那么在代码里面直接硬编码,比如长1,宽2,高3,方法返回1*2*3,甚至直接返回6,没有任何问题。现在需求发生了变化,这个工厂生产两种尺寸的盒子,另一种长2宽2高2,这时候变化的就是数据。使用变量来抵御数据的变化。我现在只要在计算体积的方法里设长宽高三个参数,在方法里返回长*宽*高就可以了。这里不变的是计算体积的过程、长宽高的变量,变化的是计算用到的数据。... 阅读全文
艾伟_转载:把事件当作对象进行传递
2011-08-29 00:21 by 狼人:-), 141 阅读, 0 推荐, 收藏,
摘要:最近在琢磨一些事情,和API设计有关。API设计在很多时候是和语言特性有关的,因此如Java这样的语言,在API设计时会处处受到压抑。而C#就能够出现如Moq或Fluent NHIbernate这样的项目。同样,F#能够开发出FsTest,Scala号称Scalable Language,都是依靠着丰富的语言特性。不过,最近在使用C#的时候鼻子上也碰了一点灰,这是因为我发现“事件”这个东西没法作为对象进行传递。
public class Program
{ public event EventHandler Submit;
} 我们如果要为这个事件添加处理函数自然只要:
va... 阅读全文
艾伟_转载:LINQ to SQL、NHibernate比较(二)-- LINQ to SQL实例
2011-08-29 00:21 by 狼人:-), 177 阅读, 0 推荐, 收藏,
摘要:用ADO.NET操作数据库大家一定再熟悉不过了,select、insert、update等等SQL语句大家也都必然滚瓜烂熟。我将自己在学习LINQ to SQL过程中的动手经历记录下来,作为今后学习的参考,也希望对刚刚接触的人有一点帮助。 我在本文涉及到一个很简单的系统,利用DataGridView实现数据库数据的批量增、删、改,不是什么强大的功能。 如果有人感兴趣,可以在看完我的这篇文章之后用ADO.NET实现同样的功能,看看到底会比使用LINQ to SQL多多少时间,会多多少代码。(从设计到完成我用时大概2小时,代码量后面介绍中我会贴出我的代码)我相信很多人编码能力比我强很... 阅读全文
艾伟_转载:把委托说透(4):委托与设计模式
2011-08-29 00:21 by 狼人:-), 173 阅读, 0 推荐, 收藏,
摘要:委托与很多设计模式都有着千丝万缕的联系,在前面的随笔中已经介绍了委托与策略模式的联系,本节主要来讨论委托与其他两个模式:观察者模式和模板方法模式。
委托与观察者模式
在.NET中,很多设计模式得到了广泛应用,如foreach关键字实现了迭代器模式。同样的,.NET中也内置了观察者模式的实现方式,这种方式就是委托。
观察者模式的一般实现
网上可以找到很多资料介绍观察者模式的实现,我这里介绍一种简单的退化后的观察者模式,即Subject类为具体类,在其之上不再进行抽象。
public class Subject
{ private List<Observer> observers = 阅读全文
艾伟_转载:关于.NET VS JavaEE平台争论的沉思录
2011-08-29 00:21 by 狼人:-), 193 阅读, 0 推荐, 收藏,
摘要:最近关于.NET和java平台之间的争论似乎又热起来了,就我关注的两个社区,先是老赵的《为啥老赵不喜欢Java*语言*》。引发了博客园的大讨论,最近csdn又有人发博.Net与J2EE的快餐型比较,引发了空前的大讨论。从论调来说感觉对java不利。虽然csdn得那个篇博文深度不够,但确实引发了大量了讨论,虽然很多人都说,这个话题没啥好讨论的,既然引发了大讨论,自认有其内在原因在驱动,所谓空穴来风。。。。 关于两个平台的优劣已经讨论的够多了,我在这里就不多说了,我在这里提个现实的问题供大家思考: 国内外用.NET做的大型系统确实java的要比.NET的要多,这是客观的事实,我们研究.NE... 阅读全文
艾伟_转载:ASP.NET MVC数据验证
2011-08-29 00:21 by 狼人:-), 186 阅读, 0 推荐, 收藏,
摘要:关于ASP.NET MVC的验证,用起来很特别,因为MS的封装,使人理解起来很费解。也可能很多人都在Scott Guthrie等人写的一本《ASP.NET MVC 1.0》书中,见过NerdDinner项目中对Dinner对象修改和添加的时的数据验证。但有许多封装的地方,不知道是怎样的工作原理,今天研究了,拿出来给大家分享一下。
数据库还是上一篇blog中的库与表,同样的方法来创建news表的实体类,在自动生成的news这个实体类中,我们发现有一个特殊的分部方法:
partial void OnValidate(System.Data.Linq.ChangeAction action);
这个 阅读全文
艾伟_转载:使用Ajax和jQuery实现GridView的展开、合并
2011-08-29 00:21 by 狼人:-), 139 阅读, 0 推荐, 收藏,
摘要:需求简介:电子商务网站中,查询会员的订单,点击“會員”,展现此会员的订单列表。
界面操作: Step 1 展现会员列表,如下图 Step 2 点击“某一会员”行 展现会员订单列表 实现思路: 1、 使用用户控件(CustomerOrders.ascx)展示订单列表,此用户控件只需要包含Repeater控件并绑定数据源
2、 新建一个简单页面GridViewDrillDownjQueryQAjax.aspx,在此页面引用用户控件,展示用户订单列表
3、 在页面GridViewDrillDownjQueryQAjax.aspx新建两个DIV:一个用来展示会员信息,一个用来展示某个... 阅读全文
艾伟_转载:C#下实现空白窗体上中文输入,可以实现类PS的文字工具
2011-08-29 00:21 by 狼人:-), 289 阅读, 0 推荐, 收藏,
摘要:C#下实现空白窗体上中文输入
关键字:类PS的文字工具,中文输入.重复截取中文
最近在研究做一个类PS的文字工具,查了N多的资料,问了N多个人,总算功夫不负有人心.终于给弄出来了.写出来给大家一起讨论.(高手们请多多指点)
在空白窗体上打开输入法,在C#里的空白窗口是无论如何也是打不开输入法.设置了this.ImeMode=ImeMode.NoControl也是无法打开输入法的录字窗口.去Microsoft开发论坛上问了一些问题.感谢周雪峰版主与Riquel_Dong版主给的指点.用了API函数:ImmAssociateContext(IntPtrhWnd,IntPtrhIMC);终于把输.. 阅读全文
艾伟_转载:把委托说透(3):委托与事件
2011-08-29 00:21 by 狼人:-), 172 阅读, 0 推荐, 收藏,
摘要:在把委托说透(1)和(2)中,先后介绍了委托的语法和本质,本文重点介绍.NET中与委托息息相关的概念——事件。在此之前,首先需要补充(2)中遗漏的一部分内容,即C#在语法上对委托链的支持。
C#编译器为委托类型提供了+=和-=两个操作符的重载,分别对应Delegate.Combine和Delegate.Remove方法,使用这两个操作符可以大大简化委托链的构造和移除。
好了,有了+=和-=,我们就可以开始今天的话题了。
什么是事件?
事件(event)是类型中的一种成员,定义了事件成员的类型允许类型(或者类型的实例)在某些特定事情发生的时候通知其他对象。如Button类型的Click事件,在按 阅读全文
浙公网安备 33010602011771号