文章推荐:C#设计模式(23种设计模式)

by RexLin 2010.1.31 17:03
 这一系列的文章来至于Terry's blog,这几天正在拜读Terry的这几篇文章。

创建型:
        1. 单件模式(Singleton Pattern) 
        2. 抽象工厂(Abstract Factory)
        3. 建造者模式(Builder) 
        4. 工厂方法模式(Factory Method)
        5. 原型模式(Prototype)

结构型:
        6. 适配器模式(Adapter Pattern) 
        7. 桥接模式(Bridge Pattern) 
        8. 装饰模式(Decorator Pattern) 
        9. 组合模式(Composite Pattern) 
       10. 外观模式(Facade Pattern) 
       11. 享元模式(Flyweight Pattern) 
       12. 代理模式(Proxy Pattern)

行为型:
       13. 模板方法(Template Method) 
       14. 命令模式(Command Pattern) 
       15. 迭代器模式(Iterator Pattern)        
       16. 观察者模式(Observer Pattern) 
       17. 解释器模式(Interpreter Pattern) 
       18. 中介者模式(Mediator Pattern) 
       19. 职责链模式(Chain of Responsibility Pattern) 
       20. 备忘录模式(Memento Pattern) 
       21. 策略模式(Strategy Pattern) 
       22. 访问者模式(Visitor Pattern) 
       23. 状态模式(State Pattern)

文章推荐:未睹棺椁先哭君——谷歌墓志铭

by RexLin 2010.1.13 22:47

谷歌者,初非汉民,西夷也。父Google,米国人,世代商贾,积财以万亿计,富甲一方。唯斯慕孔孟之道,羡华夏文明,不远万里之劳,举家而迁我。更易姓名,号“谷歌”,取父谐音故也。


谷歌既立,以排忧解难为己任,济弱扶贫为天责,兼之聪敏非凡,有所问,无不通达。虽少年,已自成人,能取进士第,崭然见头角。又怀古风,常曰“不作恶”,万难莫屈。众谓Google有子矣。


忆其全盛时,俊杰廉悍,贤人雅士,无不归心。议论证据今古,出入经史百子,踔厉风发,率常屈其座人,名声大振,一时皆慕与之交。诸公要人,争欲令出我门下,交口荐誉之。


然江海有信,云雨无常,君子易伤,小人难欺。


谷歌即壮,声名震天。有恨其才胜己者,或罗织罪名,损益于上。上不查,怒谷歌无礼,有怨言,闻于乡里,众始轻之。群氓见此,复编织罗列其事媚于上,上憎益甚。比一岁,责有司困之,限其授受邻与,几乎断其给养。谷歌始惧,然坚贞如故,不改初衷。唯手指其心,数日而亡。


呜呼!士穷乃见节义。今夫平居里巷相慕悦,酒食游戏相征逐,诩诩强笑语以相取下,握手出肺肝相示,指天日涕泣,誓生死不相背负,真若可信。一旦临小利害,仅如毛发比,反眼若不相识,落陷阱,不一引手救,反挤之,又下石焉者,皆是也。此宜禽兽夷狄所不忍为,而其人自视以为得计,闻谷歌之风,亦可以少愧矣!虽周公再世,下季不死,恐犹不能及也!


谷歌前时少年,勇于为人,不自贵重顾藉,谓功业可立就,故坐孤困。既困,又无相知有气力得位者推挽,故卒死于穷裔。材不为世用,道不行于时也,诚可怜哉!使谷歌在中土时,自持其身,上顺天子,下惠百官,虽有僭越,亦自不斥。斥时,有人力能举之,且必复用不穷。然谷歌斥不久,穷不极,虽有出于人,其处事宣理,必不能自力,以致必传于后如今无疑也。虽使谷歌得所愿,为将相于一时,获朝野之青睐,以彼易此,孰得孰失,必有能辨之者。


谷歌以西元二〇〇六年生,二〇一〇年卒,方四岁而夭。其父Google甚思之,乃运尸复还米国,归葬先人之地。谷歌有子男二人:长曰开复,早亡他乡,另谋生计。次男允,勉励于中土。余子皆幼,尚不足道。其得归葬时,旁人无所送,唯“网民”相随也。“网民”有节概,重然诺,与谷歌结交,谷歌亦为之尽,竟赖其力,葬谷歌于万年之墓。又将经纪其家,庶几有始终者。

铭曰:是惟谷歌之室,既固既安,以利其嗣人。

——————————————————————

云山苍苍,江山泱泱,谷歌之德,山高水长!谷歌,一路走好!

原文地址:http://blog.csdn.net/cping1982/archive/2010/01/13/5186072.aspx

ASP.NET UrlRewrite简单学习总结

by RexLin 2010.1.7 21:25

Url Rewrite实现方式

  1. 实现的方式有两种:IIS级别和ASP.NET级别。
  2. IIS级别需要在IIS上进行操作,不过能够支持ASP.NET和PHP、ASP之类的UrlRewrite。IIRF 是个不错的选择,免费开源的IIS UrlRewrite组件。
  3. ASP.NET级别的则比较简单。无需对IIS进行设置,虽然性能会比较差一点,可是这个在低负荷基本上可以忽略不计。UrlRewriter.NET是个不错的ASP.NET UrlRewrite主机,可配置性非常强,具体可以查看它的帮助文档,文档虽然是英文的,可是比较简单,基本大家都是能看得懂的。

UrlRewriter.NET配置

  1. 可以去UrlRewriter.NET的官网下载组件。我这里下载的是2.0rc1的版本,解压后将.bin文件复制到项目的bin文件夹中。
  2.  对项目的web.config进行配置。 
    在<configuration>中增加以下配置节,这个是告诉UrlRewriter.NET相关的mapping配置在哪里。

        <configSections>
            <section name="rewriter"
                     type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,
                     Intelligencia.UrlRewriter" />
        </configSections>

    在<system.web>增加如下内容,添加一个httpModules,这个是固定的,作用是让UrlRewriter.NET生效。
  3.         <httpModules>
                <add name="UrlRewriter"
                     type="Intelligencia.UrlRewriter.RewriterHttpModule,
                   Intelligencia.UrlRewriter" />
            </httpModules>

    在<configuration>中增加一个<rewriter> ,这个是映射的具体配置,具体如何配置,请移步到官方帮助文档。我的一个简单配置如下:

        <rewriter>
            <rewrite url="^/UrlMappingTest/page/(\w+)$" to="~/Default.aspx?page=$1" processing="stop" />
        </rewriter>

  4. 经过以上的步骤之后,基本上UrlRewrite已经差不多了。不过由于ASP.NET的原因,当我们页面回传(例如触发一个Botton的Click事件)之后,地址栏的地址便会改变,变成映射的地址了。

利用ControlAdapter改进UrlRewrite

  1.  在项目的App_Code文件夹下新建一个类文件FormRewriterControlAdapter.cs,内容如下:
    public class FormRewriterControlAdapter :
        System.Web.UI.Adapters.ControlAdapter
    {
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(new RewriteFormHtmlTextWriter(writer));
        }
    }
    
    public class RewriteFormHtmlTextWriter : HtmlTextWriter
    {
        public RewriteFormHtmlTextWriter(HtmlTextWriter writer)
            : base(writer)
        {
            this.InnerWriter = writer.InnerWriter;
        }
    
        public RewriteFormHtmlTextWriter(TextWriter writer)
            : base(writer)
        {
            this.InnerWriter = writer;
        }
    
        public override void WriteAttribute(string name, string value, bool fEncode)
        {
            if (name == "action")
            {
                HttpContext context = HttpContext.Current;
                if (context.Items["ActionAlreadyWritten"] == null)
                {
                    value = context.Request.RawUrl;
                    context.Items["ActionAlreadyWritten"] = true;
                }
            }
            base.WriteAttribute(name, value, fEncode);
        }
    }
    
  2. 在项目的App_Browsers文件下新建一个Form.browser文件,内容如下

    <browsers>
        <browser refID="Default">
            <controlAdapters>
                <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                         adapterType="FormRewriterControlAdapter" />
            </controlAdapters>
        </browser>
    </browsers>
     

  3. FormRewriterControlAdapter类的作用是从写ASP.NET页面中默认Form的Action属性,使他变得和UrlRewrite后的的Url一致。而Form.browser则起到了告诉ASP.NET在生成Form的HTML代码的时候,需要执行相应的操作。

基于Asp.net的HTML文件上传

by RexLin 2010.1.7 17:32
HTML页面(FileUpload.html)代码 ,注意enctype="multipart/form-data"否则无法上传。

<form method="post" action="FileUpload.aspx" enctype="multipart/form-data" >
    <input name="postfile" id="postfile" type="file" />
    <input type="submit" value="上传" />
</form>

ASP.NET页面(FileUpload.aspx)代码
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpPostedFile postFile = Request.Files["postfile"];
        if (postFile != null)
        {
            string fileName = System.IO.Path.GetFileName(postFile.FileName);
            if (fileName != "")
            {
                string filePath = "~/Upload/" + System.DateTime.Now.Ticks.ToString();
                string fileExtension = System.IO.Path.GetExtension(fileName).ToLower();
                postFile.SaveAs(Server.MapPath(filePath + "." + fileExtension));
                Response.Write("上传成功!");
            }
        }
    }

文章推荐:重提URL Rewrite

by RexLin 2010.1.7 10:34

文章推荐:NHibernate之旅系列

by RexLin 2010.1.6 14:34
 这一系列的文章是由博客园YJingLee写的,是Nhibernate入门首选文章

第一站:熟悉NHibernate

NHibernate之旅(1):开篇有益

第二站:接触NHibernate

NHibernate之旅(2):第一个NHibernate程序

第三站:数据在我手中

NHibernate之旅(3):探索查询之NHibernate查询语言(HQL)

NHibernate之旅(4):探索查询之条件查询(Criteria Query)

NHibernate之旅(5):探索Insert, Update, Delete操作

第四站:控制你的全部

NHibernate之旅(6):探索NHibernate中的事务

NHibernate之旅(7):初探NHibernate中的并发控制

观光站:实用技巧补偿

NHibernate之旅(8):巧用组件之依赖对象

第五站:关系如此复杂

NHibernate之旅(9):探索父子关系(一对多关系)

NHibernate之旅(10):探索父子(一对多)关联查询

NHibernate之旅(11):探索多对多关系及其关联查询

第六站:我来加载你

NHibernate之旅(12):初探延迟加载机制

NHibernate之旅(13):初探立即加载机制

第七站:数据的镜子

NHibernate之旅(14):探索NHibernate中使用视图

NHibernate之旅(15):探索NHibernate中使用存储过程(上)

NHibernate之旅(16):探索NHibernate中使用存储过程(中)

NHibernate之旅(17):探索NHibernate中使用存储过程(下)

第八站:转载请注明

NHibernate之旅(18):初探代码生成工具使用

NHibernate之旅(19):初探SchemaExport工具使用

NHibernate之旅(20):再探SchemaExport工具使用

第九站:对象的始末

NHibernate之旅(21):探索对象状态

NHibernate之旅(22):探索NHibernate一级缓存

NHibernate之旅(23):探索NHibernate二级缓存(上)

NHibernate之旅(24):探索NHibernate二级缓存(下)

文章推荐:Castle 学习实践系列

by RexLin 2010.1.6 14:11

记录一下,这已经是第三次劫后余生了

by RexLin 2009.12.27 23:23
 RT。
中国的互联网就是这样,喜欢折腾。
最后还是把Blog暂时放到实验室的服务器上。

Tags:

其他



About Rex

林泽群 RexLin
Career:Student
Age:23
More…

Calendar

<<  三月 2010  >>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

在日历中查看文章

Recent Remarks

无内容