随笔 - 37
文章 - 0
评论 - 2650
摘要: 写了几篇细说之后,今天打算换换口味,还是来写代码吧。所以,这次博客将以实际的代码来展示在ASP.NET平台上开发自己的框架,我希望也能让您发现这并不是件难事。我在前面的博客【用Asp.net写自己的服务框架】中,发布了一个用ASP.NET写的服务框架,那个框架我目前仍在使用中。近来,由于时常也会有人问我一些关于ASP.NET MVC的话题,因此,就想再写个自己的MVC框架出来,一方面可以留给自己使用,另外也可以谈谈MVC,尤其可以展示一下在ASP.NET下写框架的乐趣。我之所以将写框架看成是件有乐趣的事,是因为:在写框架的过程中会接触许多的技术细节。比如:1. 为了支持Session需要了解管阅读全文
posted @ 2012-02-12 22:13 Fish Li 阅读(13128) 评论(79) 编辑
摘要: 上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证。Forms身份认证虽然使用广泛,不过,如果是在 Windows Active Directory 的环境中使用ASP.NET,那么使用Windows身份认证也会比较方便。方便性表现为:我们不用再设计登录页面,不用编写登录验证逻辑。而且使用Windows身份认证会有更好的安全保障。认识ASP.NET Windows身份认证要使用Windows身份认证模式,需要在web.config设置:<authentication mode="Windows&quo阅读全文
posted @ 2012-05-07 08:27 Fish Li 阅读(5530) 评论(64) 编辑
摘要: 用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证。由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事。在开发ASP.NET项目中,我们最常用的是Forms认证,也叫【表单认证】。这种认证方式既可以用于局域网环境,也可用于互联网环境,因此,它有着非常广泛的使用。这篇博客主要讨论的话题是:ASP.NET Forms 身份认证。有一点我要申明一下:在这篇博客中,不会涉及ASP.NET的登录系列控件以及membership的相关话题,我只想用比较原始的方式来说明在ASP.NET中是如何实现身份认证的过程。ASP.NET身份认证基础在开始今天的博客之前,我想阅读全文
posted @ 2012-04-15 19:59 Fish Li 阅读(10652) 评论(133) 编辑
摘要: 2011-03-12开博,今天2012-03-12,整整写了一年的博客,今天决定写个总结。这篇总结为分四个部分:1. 博客索引:谈谈技术,给博客做个索引。2. 回顾经历:讲述我的写博历程。3. 博客定位:公开我的博客风格以及选题范围。4. 规划未来:介绍我未来的写作计划。博客索引我的博客在选题时,都选择的是一些基础内容。下面我从技术的角度,将博客做个分类索引。在ASP.NET程序中,能够在服务端读取的客户端数据通常只有三个:QueryString, Form, Cookie关于这三者,我写了三篇博客详细地介绍过它们:1. 细说Cookie2. 细说 Form (表单) 3. 细说 Reques阅读全文
posted @ 2012-03-12 20:29 Fish Li 阅读(8062) 评论(136) 编辑
摘要: 今天与大家分享:一种优化页面执行速度的方法。采用这个方法,可以使用页面的执行速度获得【8倍】的提升效果。为了让您对优化的效果有个直观的了解,我准备了下面的测试结果截图:测试环境:1. Windows Server 2003 SP22. Viaual Studio 2008,使用自带的WebDev.WebServer.EXE运行网站程序。3. (ThinkPad SL510):Core2 T6670 2.2GHz, 4G内存二个红框中的数字反映了优化前后的执行时间。数字表明:优化前后,执行时间有了8倍多的差别。本文的测试结果也仅仅只是一个参考数字,这个结果也只是根据我所设计的测试页面得出的。优化阅读全文
posted @ 2012-03-11 20:10 Fish Li 阅读(10790) 评论(68) 编辑
摘要: 2001年4月份,我在博客中发过一个小工具,它是一个用ASP.NET写的SQL SERVER的辅助小工具。在这期间,有些人貌似对那个工具比较有兴趣,所以我常能收到索要源代码的邮件。正好,我上月又发布了我的MVC框架,因此打算用【我的ASP.NET MVC框架】来重写这个工具,并开源。工具的特点:1. 采用ASP.NET编写,并借助MyMVC框架。2. 为了更好地接近桌面程序的操作体验,网站采用纯AJAX的方式实现。3. 界面使用了 JQuery Easy UI4. 代码的语法着色使用了 syntaxhighlighter (JavaScript类库)工具的定位:只是辅助工具,因此功能有限,但要阅读全文
posted @ 2012-03-04 21:24 Fish Li 阅读(5761) 评论(61) 编辑
摘要: 在我的第一篇博客中,我发布过一个示例项目,主要演示了我的我的AJAX框架和我的通用数据访问层。虽然在当初我认为我已考虑地比较周全了,而且还提供了足够的说明文档,但在发布后的将近一年的时间里,还是有不少人给我发邮件,问我一些关于不能运行示例的问题。在所有问题中,主要集中在IIS和SQL SERVER的配置方面。因此,我认为还是有必要再来谈一下在IIS6/7以及SQL SERVER中部署ASP.NET网站的过程了。在上篇博客【写自己的ASP.NET MVC框架(下)】中,我又发布了一个示例项目,它也包含一个网站项目,今天的介绍过程将主要以这个示例为主。对于以前的示例所需配置的相同部分将不会重复介绍阅读全文
posted @ 2012-02-26 20:20 Fish Li 阅读(8632) 评论(72) 编辑
摘要: 上篇博客【写自己的ASP.NET MVC框架(上)】我给大家介绍我的MVC框架对于Ajax的支持与实现原理。今天的博客将介绍我的MVC框架对UI部分的支持。注意:由于这篇博客是基于前篇博客的,因此有些已说过的内容将会直接跳过,也不会给出提示。所以,如果要想理解这篇博客,那么阅读上篇博客【写自己的ASP.NET MVC框架(上)】则是必要的。MyMVC的特点在开发MyMVC的过程中,我吸取了一些ASP.NET WebForm的使用经验,也参考了ASP.NET MVC,也接受了Martin Fowler对于MVC思想的总结。在设计过程中,我只实现了一些必要的功能,而且没有引入其它的类库与组件,因此阅读全文
posted @ 2012-02-21 21:38 Fish Li 阅读(7386) 评论(67) 编辑
摘要: 写了几篇细说之后,今天打算换换口味,还是来写代码吧。所以,这次博客将以实际的代码来展示在ASP.NET平台上开发自己的框架,我希望也能让您发现这并不是件难事。我在前面的博客【用Asp.net写自己的服务框架】中,发布了一个用ASP.NET写的服务框架,那个框架我目前仍在使用中。近来,由于时常也会有人问我一些关于ASP.NET MVC的话题,因此,就想再写个自己的MVC框架出来,一方面可以留给自己使用,另外也可以谈谈MVC,尤其可以展示一下在ASP.NET下写框架的乐趣。我之所以将写框架看成是件有乐趣的事,是因为:在写框架的过程中会接触许多的技术细节。比如:1. 为了支持Session需要了解管阅读全文
posted @ 2012-02-12 22:13 Fish Li 阅读(13128) 评论(79) 编辑
摘要: 在ASP.NET编程模型中,一个来自客户端的请求要经过一个称为管线的处理过程。在整个处理请求中,相对于其它对象来说,HttpHandler的处理算得上是整个过程的核心部分。由于HttpHandler的重要地位,我前面已经有二篇博客对它过一些使用上的介绍。【用Asp.net写自己的服务框架】中谈到了它的一般使用方法。【细说ASP.NET的各种异步操作】又详细地介绍了异步HttpHandler的使用方式。今天的博客将着重介绍HttpHandler的配置,创建以及重用过程,还将涉及HttpHandlerFactory的内容。回顾HttpHandlerHttpHandler其实是一类统称:泛指实现了I阅读全文
posted @ 2012-01-29 22:14 Fish Li 阅读(11487) 评论(64) 编辑
摘要: 在上篇博客【细说 ASP.NET Cache 及其高级用法】中,我给大家介绍了ASP.NET Cache,这种服务端使用的缓存API 。在我们开发一个ASP.NET网站的过程中,其实有很多地方都是可以使用缓存的,只是由于ASP.NET是一种基于服务端的开发平台,自然我们也经常在服务端的代码中使用各类缓存技术,然而,由于WEB应用程序的服务对象是客户端的浏览器,通常来说,我们并不能直接控制浏览器的行为,但是,浏览器却可以根据后台网站的指示,采取一些优化的方式来更快地呈现页面。客户端浏览器也有自己的缓存机制,通常浏览器也使用缓存来优化一些页面的显示过程,不过,我们并不能直接使用C#代码控制浏览器的阅读全文
posted @ 2012-01-11 23:55 Fish Li 阅读(8088) 评论(75) 编辑
摘要: 许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术。而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用HttpRuntime.Cache访问到的那个Cache,而不是其它的缓存技术。以前我在【我心目中的Asp.net核心对象】这篇博客中简单地提过它,今天我打算为它写篇专题博客,专门来谈谈它,因为它实在是太重要了。在这篇博客中,我不仅要介绍它的一些常见用法,还将介绍它的一些高级用法。在上篇博客【在.net中读写config文件的各种方法】的结尾处,我给大家留了一个问题,今天,我将在这篇博客中给出一个我认为较为完美的答案。本文提到的【延迟操作】方法(如阅读全文
posted @ 2011-12-27 22:22 Fish Li 阅读(15381) 评论(157) 编辑
摘要: 今天谈谈在.net中读写config文件的各种方法。在这篇博客中,我将介绍各种配置文件的读写操作。由于内容较为直观,因此没有过多的空道理,只有实实在在的演示代码,目的只为了再现实战开发中的各种场景。希望大家能喜欢。通常,我们在.NET开发过程中,会接触二种类型的配置文件:config文件,xml文件。今天的博客示例也将介绍这二大类的配置文件的各类操作。在config文件中,我将主要演示如何创建自己的自定义的配置节点,而不是介绍如何使用appSetting 。请明:本文所说的config文件特指app.config或者web.config,而不是一般的XML文件。在这类配置文件中,由于.net 阅读全文
posted @ 2011-12-18 20:41 Fish Li 阅读(13391) 评论(100) 编辑
摘要: 今天我来谈一谈容易被人混淆的二个集合:Request[]与Request.Params[] 这二个集合我在博客【我心目中的Asp.net核心对象】中就提到过它们,而且还给出了一个示例,并以截图的形式揭示过它们的差别。但由于那篇博客中有更多有价值的对象要介绍,因此也就没有花太多的篇幅着重介绍这二个集合。但我发现,不知道这二个集合差别的人确实太多,以至于我认为很有必要为它们写个专题来细说它们的差别了。在ASP.NET编程中,有三个比较常见的来自于客户端的数据来源:QueryString, Form, Cookie 。我们可以在HttpRequest中访问这三大对象,比如,可以从QueryStrin阅读全文
posted @ 2011-12-06 21:06 Fish Li 阅读(8299) 评论(51) 编辑
摘要: 在上篇博客【C#客户端的异步操作】,我介绍了一些.net中实现异步操作的方法,在那篇博客中,我是站在整个.net平台的角度来讲述各种异步操作的实现方式,并针对各种异步操作以及不同的编程模型给出了一些参考建议。上篇博客谈到的内容可以算是异步操作的基础,今天我再来谈异步,专门来谈在ASP.NET平台下的各种异步操作。在这篇博客中,我主要演示在ASP.NET中如何使用各种异步操作。在后续博客中,我还会分析ASP.NET的源码,解释为什么可以这样做,或者这样的原因是什么,以解密内幕的方式向您解释这些操作的实现原理。由于本文是【C#客户端的异步操作】的续集,因此一些关于异步的基础内容,就不再过多解释了。阅读全文
posted @ 2011-11-20 20:19 Fish Li 阅读(12227) 评论(73) 编辑
摘要: 我想很多人都在网上下载过一些示例代码,或者收到一些别人给的示例代码。通常为了方便,都是打成一个压缩包的形式。不过,有些人做事比较马虎,经常就是直接将VS生成的解决方案目录直接打包,这样就会包含大量垃圾文件,诸如:obj目录下的所有文件,而且有时bin目录还有二个目录,PDB文件有二份,甚至连xxx.vshost.exe文件也有二份!更让人无语的是,有些人用SVN这种源代码管理软件,每个目录还有个.svn目录!这种做法显然很容易将一个不大的项目搞成一个比较大的压缩包,这种压缩包一旦做好,上传也慢,人家下载也慢,还会浪费许多服务器资源,下载到这种压缩包,只能让人无语了。没办法,有些人就是很懒,而且阅读全文
posted @ 2011-10-30 20:46 Fish Li 阅读(7154) 评论(55) 编辑
摘要: 由于现在会使用WinForm的人是越来越少了,可能有时候做点小东西就只好用ASP.NET去完成了(喜欢控制台的朋友请不要顶针),如果是这样,悲剧就发生了:一个小工具(或者小的演示项目),发给朋友去用,总不至于让人家也装个IIS或者VS20XX吧?如果没有这二样,这种小工具还真不方便运行。怎么办?做过ASP.NET开发的人都知道:网站通常要布署到IIS上才能直接运行,当然也不排除你用VS打开项目并使用VS自带的WebDev.WebServer.exe来启动程序。这种方式难免有不方便的时候。我平时就喜欢写些小工具,还好,我会WinForm,所以这个问题还好解决。但有时我要把一些小的网站作品给别人使阅读全文
posted @ 2011-10-26 23:03 Fish Li 阅读(10822) 评论(121) 编辑
摘要: 上篇博客【用Asp.net写自己的服务框架】我讲述了如何实现自己的服务框架,但我想很多人应该用过WebService这类服务框架,相比起来,似乎还缺少什么东西,是的,我也感觉到了。比如:我可以很容易地利用WebService, WCF框架编写一个服务,在客户端也可以很容易地通过【添加服务引用】的方式来生成一个代理类,然后就可以调用服务了,非常简单,更酷的是,IDE生成的代理类还有异步调用功能!我一直认为,对于服务框架来说,最重要的事是将一个C#方法公开为一个服务方法,供远程客户端调用。因此,我上篇博客中演示的服务框架显然已经可以简单地完成这个功能。不过,目前如果要使用这个服务框架,客户端还不够阅读全文
posted @ 2011-10-23 20:37 Fish Li 阅读(15076) 评论(112) 编辑
摘要: 我的上篇博客【我心目中的Asp.net核心对象】讲述了一些我认为在Asp.net中比较重要的核心对象,以及演示了直接使用它们也能实现一个简单的服务响应。今天,我将继续把我认为Asp.net的另一些重要的内容拿出来与大家一起分享,同时将使用本次所讲述的内容改进上篇博客所演示的那个简单的服务,让它成为一个真正能用的服务框架。在这篇博客中,不仅会继续演示上次提到的三个核心对象,我还会再引入另二个关键对象,我将用更多实战代码来演示它们如何在一起协同工作,来完成许多常见任务,展现它们的精彩故事,也最终会让它们来实现我的服务框架。因此,这篇博客不仅仅是针对Asp.net的基础技术的讲解,而是更多地以实战形阅读全文
posted @ 2011-09-05 22:35 Fish Li 阅读(20824) 评论(140) 编辑
摘要: 想当初在只使用WebForms框架并以服务端为中心的开发模式时,发现Asp.net好复杂。一大堆服务端控件,各有各的使用方法,有些控件的事件也很重要,必须在合适地时机去响应,还真有些复杂。后来逐渐发现这些复杂的根源其实就是服务器控件相关的抽象逻辑。随着Ajax越用越多,可能有些人也做过这些事情:【新建一个ashx文件,读取一些用户的输入数据,Form, QueryString,然后调用业务逻辑代码,将处理后的结果序列化成JSON字符串再发给客户端】,这样也能完成一次请求。不知大家有没有做过这类事情,反正我是做过的。慢慢地,我也嫌烦了,这些事情中除了调用业务逻辑部分,都是些体力活嘛。于是想,写点阅读全文
posted @ 2011-08-21 21:51 Fish Li 阅读(20229) 评论(129) 编辑
摘要: 今天来说说 Session 。这个东西嘛,我想每个Asp.net开发人员都知道它,尤其是初学Asp.net时,肯定也用过它,因为用它保存会话数据确实非常简单。与前二篇博客不同,这次我不打算细说它的使用,而是打算说说它的缺点,同时我还会举个实际的例子,来看看它到底有什么不好的影响。当然了,光批评是没有意义,事情也得解决,没有会话也不行,所以,本文将也给出一个自认为能替代Session的解决方案。Session的来龙去脉当我们新建一个网站时,VS20XX 生成的网站模板代码中,Session就是打开。是的,如果你没有关闭它,Session其实是一直在工作着。您只需要在Page中用一行代码就能判断您阅读全文
posted @ 2011-07-31 21:20 Fish Li 阅读(19088) 评论(118) 编辑
摘要: Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源。虽然Asp.net WebForms框架为了帮助我们简化开发工作,做了很完美的封装,让我们只需要简单地使用服务端控件就可以直接操作那些HTML表单元素了。但我认为了解一些基础的东西,可以使我们不必束缚在WebForms框架上,以及遇到一些奇怪问题时,可以更从容地解决它们。今天,我将和大家来聊聊表单,这个简单又基础的东西。我将站在HTML和单纯的Asp.net框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容。简单的表单,简单的处理方式好了阅读全文
posted @ 2011-07-17 21:15 Fish Li 阅读(17229) 评论(151) 编辑
摘要: Cookie虽然是个很简单的东西,但它又是WEB开发中一个很重要的客户端数据来源,而且它可以实现扩展性很好的会话状态,所以我认为每个WEB开发人员都有必要对它有个清晰的认识。本文将对Cookie这个话题做一个全面的描述,也算是我对Cookie的认识总结。Cookie 概述Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。为什么需要Cookie? 因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分是不是来源于同一个浏览器。所以,需要额外的阅读全文
posted @ 2011-07-03 20:15 Fish Li 阅读(18086) 评论(131) 编辑
摘要: 【目标】:本文将以实战的形式,向您展示如何用C#访问MongoDB,完成常见的数据库操作任务,同时,也将介绍MongoDB的客户端(命令行工作模式)以及一些基础的命令。【说明】:MongoDB是什么?有什么用?如果不清楚这些问题的,请自己google一下吧。【适合对象】:完全没有接触MongoDB或对MongoDB有一点了解的C#开发人员。因此本文是一篇入门级的文章。【示例项目】:本文的完整示例是一个简单的【客户,商品,订单】业务场景,预览界面效果请点击此处(但并不完全相同),也包含下载示例项目的源码。让我们开始MongoDB的实战入门吧。下载MongoDB,并启动它您可以在这个地址下载到Mo阅读全文
posted @ 2011-06-26 20:21 Fish Li 阅读(19800) 评论(85) 编辑
摘要: 对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题,本文只谈优化查询时如何看懂SqlServer查询计划。由于我对SqlServer的认识有限,如有错误,也恳请您在发现后及时批评指正。首先,打开【SQL Server Management Studio】,输入一个查询语句看看SqlServer是如何显示查询计划的吧。说明:本文所演示的数据库,是我写的一个演示程序专用的数据库,可以在此网页中下载。select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v.SumMone阅读全文
posted @ 2011-06-06 14:43 Fish Li 阅读(9343) 评论(65) 编辑
摘要: 继我的【Ajax服务端框架】完成后,也花了些时间学习了一Asp.net MVC,感觉我的Ajax框架也能玩MVC开发,于是乎,在又加了点功能后,现在也能像Asp.net MVC那样写aspx和ascx了。先来点代码来看看,具体的页面呈现效果请参考:通用数据访问层及Ajax服务端框架的综合示例,展示与下载<%@ Page Title="商品管理" Language="C#" MasterPageFile="~/MasterPage.master" Inherits="FishWebLib.Mvc.MyPageView&l阅读全文
posted @ 2011-05-02 21:26 Fish Li 阅读(7590) 评论(13) 编辑
摘要: 这篇文章将介绍在使用我的通用数据访问层时,如何监视程序在运行时发生了哪些数据库的操作。对于很多数据库的应用程序来说,在做性能优化时,就必须知道程序在任何用户操作中,发生了哪些数据库的调用操作,如果发现有不合理的调用,或者发现经常在重复执行同样的操作,就可以采取一些改进的措施。但是,在这个决策之前,了解程序对数据库的访问细节是非常必要的。我的通用数据访问层在提供其它方便功能的同时,也支持监视程序对数据库的访问情况,毕竟对于数据库的操作是由数据访问层最后发出的。于是在另一个辅助工具的配合下,可以非常方便地了解程序对于数据库的操作详情。当然了,对于像Sql Server这样有类似Profiler工具阅读全文
posted @ 2011-05-02 14:55 Fish Li 阅读(4723) 评论(19) 编辑
摘要: 本文将专门介绍:我的通用数据访问层及 Ajax服务端框架的综合示例,同时也是为了让大家能对这二个组件有更多的了解。因此,本文将以界面截图以及部分代码展示的方式来说明,这样可能会有更感性的认识它。这个演示网站的特点:1. 数据访问全使用了我的通用数据访问层 + 存储过程的实现。2. 页面使用了大量的Ajax技术,没有任何的直接提交或回传(Submit Form or postback),分页,查询,对话框,都以Ajax的方式实现。3. 所有Ajax技术的客户端全部基于JQuery,服务端则使用我的Ajax服务端框架4. 客户端UI使用JQuery Easy-UI5. 虽然没有使用Asp.net 阅读全文
posted @ 2011-05-02 13:54 Fish Li 阅读(16397) 评论(84) 编辑
摘要: 返回到目录:晒晒我的Ajax服务端框架 我的Ajax服务端框架 - 安全问题通过前面章节的示例代码,您会发现一个问题:那就是在JS中可以调用所有的C#的方法(理论上是可以调用任何一个程序集中的所有Public类的所有方法)。如果您认为这样做,有安全问题,那么可以订阅事件 OnAjaxCall 来过滤请求。FishWebLib提供的Handler或者Module都有这个事件,您可以统一处理。可参考以下代码:// Ajax调用的安全检查事件。FishWebLib.Ajax.AjaxMethodV2Handler.OnAjaxCall += new FishWebLib.Ajax.AjaxCall.阅读全文
posted @ 2011-05-02 13:42 Fish Li 阅读(1927) 评论(10) 编辑
摘要: 这个页面收录了我的一些可下载资源,它们包括:框架代码,工具类,演示代码,工具,文档。我认为它们都值得与大家分享。具体下载链接可以在参考网址中找到。MyMVC我的MVC框架以及完整的示例代码。参考网址:1. 写自己的ASP.NET MVC框架(上)2. 写自己的ASP.NET MVC框架(下)MySimpleServiceFramework, AsyncClient我的服务框架,客户端以及完整的示例代码。参考网址:1. 用Asp.net写自己的服务框架2. C#客户端的异步操作3. 细说ASP.NET的各种异步操作XmlHelper, MyCDATA一个用于XML序列化反序列化的工具类。参考网址阅读全文
posted @ 2011-04-20 20:46 Fish Li 阅读(3598) 评论(3) 编辑
摘要: 今天发一个我自己写的且经常使用的数据库的辅助工具:My-SqlViewer 由于我比较喜欢使用存储过程,但发现不管是SQL Server Management Studio Express还是MySql的各类乱七八糟工具,在日常开发中,总会发现有些地方在使用时不够方便,甚至缺少某些功能,于是才有这个工具的出现。本工具的定位是:1. 辅助工具--所以功能有限,但要将有限的功能做得尽量好。2. 支持SqlServer与MySqlMy-SqlViewer 使用说明本程序是为程序员而设计的辅助工具,因此假设运行的操作系统环境中已安装有所需要的各种必需组件,而没有随本程序的安装包一起提供。本程序需要以下阅读全文
posted @ 2011-04-07 19:19 Fish Li 阅读(5619) 评论(46) 编辑
摘要: 由于工作的原因:上家公司的数据库全采用MySql,所以不得不用它。因此也学到了MySql的一些知识,但考虑到今后可能没机会使用了,所以想趁现在离职在家休息,打算把这些东西整理一下,也为了万一今后能用上,留个参考的资源。考虑到一直在使用SqlServer,所以就打算直接与SqlServer对比来写。本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主。1. 标识符限定符SqlServer[]MySql``2. 字符串相加SqlServer直接用 +MySqlconcat()3. isnull()SqlServerisnull()MySqlifnull()注意:阅读全文
posted @ 2011-04-05 21:00 Fish Li 阅读(6245) 评论(9) 编辑
摘要: 今天来晒晒我的通用数据访问层。写了很多年的数据库项目,数据访问嘛,一直是用业务实体+存储过程的方式,因此经常会写很多调用存储过程的代码。这些代码用Ado.net如何写,我想大家应该都知道:创建Connection, 创建Command, 给命令参数一个一个赋值,然后调用,调用完成后,如果有输出参数,则要读出来,如果有结果集,则要将结果集转换成自己的实体列表,这个过程也是非常机械化的。总之,调用任何存储过程都需要这样一堆类似的代码。我是个喜欢最求完美的人,自然不喜欢每个项目都有这样一堆机械代码的存在,于是经过不断的重构代码,慢慢的就形成了自己的通用数据访问层。 我的通用数据访问层具有以下特点:.阅读全文
posted @ 2011-03-28 21:18 Fish Li 阅读(13710) 评论(85) 编辑
摘要: 返回到目录:晒晒我的Ajax服务端框架此功能将让您在Javascript直接请求一个ascx用户控件,并获取它的输出HTML。示例代码如下:Javascript调用代码var url = '/Controls/OrderList.ascx?' + $.param({ StartDate: '2010-12-01', EndDate: '2011-01-03' });$("#divResultList").load(url); 上面的调用究竟完成了什么功能呢:请求一个用户控件 Controls/QueryOrders.ascx 阅读全文
posted @ 2011-03-13 12:21 Fish Li 阅读(2702) 评论(9) 编辑
摘要: 返回到目录:晒晒我的Ajax服务端框架 此功能将让您在Javascript直接调用当前aspx页面中的一个C#方法。示例代码如下:C#方法public partial class Customers : MyBasePage{ /// <summary> /// 供AJAX调用:更新客户资料。具体调用方法请参考JS代码。 /// 方法可以是静态的,也可以是不是静态的。 /// </summary> /// <param name="customer"></param> /// <returns></retur阅读全文
posted @ 2011-03-13 12:12 Fish Li 阅读(1423) 评论(2) 编辑
摘要: 返回到目录:晒晒我的Ajax服务端框架 在Ajax网站中,Javascript经常需要请求服务器,比如:提交一个小的状态修改请求,获取某个对象的JOSN字符串,获取一小段HTML,等等。FishWebLib的Ajax服务端框架提供的这个功能将让您可以在Javascript直接调用一个C#方法,用来完成上述需求。示例代码如下:C#方法namespace MyLab.AjaxService{ /// <summary> /// Ajax服务类,提供“商品记录”相关操作 /// </summary> public class AjaxProduct { p...阅读全文
posted @ 2011-03-13 00:22 Fish Li 阅读(4108) 评论(20) 编辑
摘要: 返回到目录:晒晒我的Ajax服务端框架 此功能将让您在Javascript直接将一个Html FORM 提交给一个C#方法。示例代码如下:C#方法public class AjaxProduct{ public int Insert(Product product) { product.EnsureItemIsOK(); return BllFactory.GetProductBLL().Insert(product); }}public sealed class Product : MyDataItem{ public int Produc...阅读全文
posted @ 2011-03-12 23:46 Fish Li 阅读(2090) 评论(12) 编辑
摘要: 今天晒晒我的Ajax服务端框架。自从接触JQuery-EasyUI后,我对Ajax越来越感兴趣了。也慢慢的把UI开发的重心从服务器端移到客户端来了。一般说来,在Asp.net的环境中实现Ajax,要么是使用Asp.net AJAX框架,要么就要自己写些ashx来直接与客户端交互,当然还有第三方的框架可供选择。由于对Asp.net AJAX这个东西嘛,实在没啥兴趣。虽然它可以帮你为一些WebService生成JS的代理类。但是在客户端的JQuery却不能发挥它的强大功能。随着ashx处理器越写越多,发现几乎做的事情是一样的:从请求中读取参数,调用C#方法,将结果写入响应流。由是乎就来有了个想法:阅读全文
posted @ 2011-03-12 23:44 Fish Li 阅读(10221) 评论(31) 编辑
Fish Li
