2011年7月31日
摘要: 今天来说说 Session 。这个东西嘛,我想每个Asp.net开发人员都知道它,尤其是初学Asp.net时,肯定也用过它,因为用它保存会话数据确实非常简单。与前二篇博客不同,这次我不打算细说它的使用,而是打算说说它的缺点,同时我还会举个实际的例子,来看看它到底有什么不好的影响。当然了,光批评是没有意义,事情也得解决,没有会话也不行,所以,本文将也给出一个自认为能替代Session的解决方案。Session的来龙去脉当我们新建一个网站时,VS20XX 生成的网站模板代码中,Session就是打开。是的,如果你没有关闭它,Session其实是一直在工作着。您只需要在Page中用一行代码就能判断您 阅读全文
posted @ 2011-07-31 21:20 Fish Li 阅读(68665) 评论(150) 推荐(362) 编辑
  2011年7月17日
摘要: Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源。虽然Asp.net WebForms框架为了帮助我们简化开发工作,做了很完美的封装,让我们只需要简单地使用服务端控件就可以直接操作那些HTML表单元素了。但我认为了解一些基础的东西,可以使我们不必束缚在WebForms框架上,以及遇到一些奇怪问题时,可以更从容地解决它们。今天,我将和大家来聊聊表单,这个简单又基础的东西。我将站在HTML和单纯的Asp.net框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容。简单的表单,简单的处理方式好了 阅读全文
posted @ 2011-07-17 21:15 Fish Li 阅读(217451) 评论(211) 推荐(705) 编辑
  2011年7月3日
摘要: Cookie虽然是个很简单的东西,但它又是WEB开发中一个很重要的客户端数据来源,而且它可以实现扩展性很好的会话状态,所以我认为每个WEB开发人员都有必要对它有个清晰的认识。本文将对Cookie这个话题做一个全面的描述,也算是我对Cookie的认识总结。Cookie 概述Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。为什么需要Cookie? 因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分是不是来源于同一个浏览器。所以,需要额外的 阅读全文
posted @ 2011-07-03 20:15 Fish Li 阅读(118559) 评论(176) 推荐(810) 编辑
  2011年6月26日
摘要: 【目标】:本文将以实战的形式,向您展示如何用C#访问MongoDB,完成常见的数据库操作任务,同时,也将介绍MongoDB的客户端(命令行工作模式)以及一些基础的命令。【说明】:MongoDB是什么?有什么用?如果不清楚这些问题的,请自己google一下吧。【适合对象】:完全没有接触MongoDB或对MongoDB有一点了解的C#开发人员。因此本文是一篇入门级的文章。【示例项目】:本文的完整示例是一个简单的【客户,商品,订单】业务场景,预览界面效果请点击此处(但并不完全相同),也包含下载示例项目的源码。让我们开始MongoDB的实战入门吧。下载MongoDB,并启动它您可以在这个地址下载到Mo 阅读全文
posted @ 2011-06-26 20:21 Fish Li 阅读(71450) 评论(121) 推荐(316) 编辑
  2011年6月6日
摘要: 对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQL Server查询计划。毕竟我对SQL Server的认识有限,如有错误,也恳请您在发现后及时批评指正。首先,打开【SQL Server Management Studio】,输入一个查询语句看看SQL Server是如何显示查询计划的吧。说明:本文所演示的数据库,是我为一个演示程序专用准备的数据库,可以在此网页中下载。select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v. 阅读全文
posted @ 2011-06-06 14:43 Fish Li 阅读(85354) 评论(119) 推荐(383) 编辑
  2011年5月2日
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】继我的【Ajax服务端框架】完成后,也花了些时间学习了一Asp.net MVC,感觉我的Ajax框架也能玩MVC开发,于是乎,在又加了点功能后,现在也能像Asp.net MVC那样写aspx和ascx了。先来点代码来看看,具体的页面呈现效果请参考:通用数据访问层及Ajax服务端框架的综合示例,展示与下载<%@ Page Title="商品管理" Language="C#" MasterPageFile="~/MasterPage.master&q 阅读全文
posted @ 2011-05-02 21:26 Fish Li 阅读(14527) 评论(13) 推荐(31) 编辑
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【ClownFish:比手写代码还快的通用数据访问层】这篇文章将介绍在使用我的通用数据访问层时,如何监视程序在运行时发生了哪些数据库的操作。对于很多数据库的应用程序来说,在做性能优化时,就必须知道程序在任何用户操作中,发生了哪些数据库的调用操作,如果发现有不合理的调用,或者发现经常在重复执行同样的操作,就可以采取一些改进的措施。但是,在这个决策之前,了解程序对数据库的访问细节是非常必要的。我的通用数据访问层在提供其它方便功能的同时,也支持监视程序对数据库的访问情况,毕竟对于数据库的操作是由数据访问层最后发出的。于是在另一个辅助工具的配合下 阅读全文
posted @ 2011-05-02 14:55 Fish Li 阅读(10099) 评论(19) 推荐(18) 编辑
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】本文将专门介绍:我的通用数据访问层及 Ajax服务端框架的综合示例,同时也是为了让大家能对这二个组件有更多的了解。因此,本文将以界面截图以及部分代码展示的方式来说明,这样可能会有更感性的认识它。这个演示网站的特点:1. 数据访问全使用了我的通用数据访问层 + 存储过程的实现。2. 页面使用了大量的Ajax技术,没有任何的直接提交或回传(Submit Form or postback),分页,查询,对话框,都以Ajax的方式实现。3. 所有Ajax技术的客户端全部基于JQuery,服务端则使用我的Aja 阅读全文
posted @ 2011-05-02 13:54 Fish Li 阅读(47002) 评论(88) 推荐(173) 编辑
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】返回到目录:晒晒我的Ajax服务端框架 我的Ajax服务端框架 - 安全问题通过前面章节的示例代码,您会发现一个问题:那就是在JS中可以调用所有的C#的方法(理论上是可以调用任何一个程序集中的所有Public类的所有方法)。如果您认为这样做,有安全问题,那么可以订阅事件 OnAjaxCall 来过滤请求。FishWebLib提供的Handler或者Module都有这个事件,您可以统一处理。可参考以下代码:// Ajax调用的安全检查事件。FishWebLib.Ajax.AjaxMethodV2Han. 阅读全文
posted @ 2011-05-02 13:42 Fish Li 阅读(6033) 评论(12) 推荐(14) 编辑
  2011年4月20日
摘要: 这个页面收录了我的一些可下载资源,它们包括:框架代码,工具类,演示代码,工具,文档。我认为它们都值得与大家分享。具体下载链接可以在参考网址中找到。ClownFish一个比手写代码更快的通用数据访问层类库。参考网址:1. ClownFish:比手写代码还快的通用数据访问层2. 揭秘 ClownFish 比手写代码还快的原因3. ClownFish 使用说明MyMVC我的MVC框架以及完整的示例代码。参考网址:1. 写自己的ASP.NET MVC框架(上)2. 写自己的ASP.NET MVC框架(下)3. 用ASP.NET写个SQLSERVER的小工具OptimizeReflection用于优化反 阅读全文
posted @ 2011-04-20 20:46 Fish Li 阅读(18590) 评论(14) 推荐(112) 编辑
  2011年4月7日
摘要: 今天发一个我自己写的且经常使用的数据库的辅助工具:My-SqlViewer 由于我比较喜欢使用存储过程,但发现不管是SQL Server Management Studio Express还是MySql的各类乱七八糟工具,在日常开发中,总会发现有些地方在使用时不够方便,甚至缺少某些功能,于是才有这个工具的出现。本工具的定位是:1. 辅助工具--所以功能有限,但要将有限的功能做得尽量好。2. 支持SqlServer与MySqlMy-SqlViewer 使用说明本程序是为程序员而设计的辅助工具,因此假设运行的操作系统环境中已安装有所需要的各种必需组件,而没有随本程序的安装包一起提供。本程序需要以下 阅读全文
posted @ 2011-04-07 19:19 Fish Li 阅读(15248) 评论(51) 推荐(35) 编辑
  2011年4月5日
摘要: 由于工作的原因:上家公司的数据库全采用MySql,所以不得不用它。因此也学到了MySql的一些知识,但考虑到今后可能没机会使用了,所以想趁现在离职在家休息,打算把这些东西整理一下,也为了万一今后能用上,留个参考的资源。考虑到一直在使用SqlServer,所以就打算直接与SqlServer对比来写。本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主。1. 标识符限定符SqlServer[]MySql``2. 字符串相加SqlServer直接用 +MySqlconcat()3. isnull()SqlServerisnull()MySqlifnull()注意: 阅读全文
posted @ 2011-04-05 21:00 Fish Li 阅读(52720) 评论(18) 推荐(40) 编辑
  2011年3月28日
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【ClownFish:比手写代码还快的通用数据访问层】今天来晒晒我的通用数据访问层。写了很多年的数据库项目,数据访问嘛,一直是用业务实体+存储过程的方式,因此经常会写很多调用存储过程的代码。这些代码用Ado.net如何写,我想大家应该都知道:创建Connection, 创建Command, 给命令参数一个一个赋值,然后调用,调用完成后,如果有输出参数,则要读出来,如果有结果集,则要将结果集转换成自己的实体列表,这个过程也是非常机械化的。总之,调用任何存储过程都需要这样一堆类似的代码。我是个喜欢最求完美的人,自然不喜欢每个项目都有这样一堆机 阅读全文
posted @ 2011-03-28 21:18 Fish Li 阅读(31427) 评论(89) 推荐(81) 编辑
  2011年3月13日
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】返回到目录:晒晒我的Ajax服务端框架此功能将让您在Javascript直接请求一个ascx用户控件,并获取它的输出HTML。示例代码如下:Javascript调用代码var url = '/Controls/OrderList.ascx?' + $.param({ StartDate: '2010-12-01', EndDate: '2011-01-03' });$("#divResultList").load(url); 上面的调 阅读全文
posted @ 2011-03-13 12:21 Fish Li 阅读(10166) 评论(11) 推荐(15) 编辑
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】返回到目录:晒晒我的Ajax服务端框架 此功能将让您在Javascript直接调用当前aspx页面中的一个C#方法。示例代码如下:C#方法public partial class Customers : MyBasePage{ /// <summary> /// 供AJAX调用:更新客户资料。具体调用方法请参考JS代码。 /// 方法可以是静态的,也可以是不是静态的。 /// </summary> /// <param name="customer"& 阅读全文
posted @ 2011-03-13 12:12 Fish Li 阅读(4406) 评论(4) 推荐(6) 编辑
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】返回到目录:晒晒我的Ajax服务端框架 在Ajax网站中,Javascript经常需要请求服务器,比如:提交一个小的状态修改请求,获取某个对象的JOSN字符串,获取一小段HTML,等等。FishWebLib的Ajax服务端框架提供的这个功能将让您可以在Javascript直接调用一个C#方法,用来完成上述需求。示例代码如下:C#方法namespace MyLab.AjaxService{ /// <summary> /// Ajax服务类,提供“商品记录”相关操作 /// </sum 阅读全文
posted @ 2011-03-13 00:22 Fish Li 阅读(15587) 评论(20) 推荐(32) 编辑
  2011年3月12日
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】返回到目录:晒晒我的Ajax服务端框架 此功能将让您在Javascript直接将一个Html FORM 提交给一个C#方法。示例代码如下:C#方法public class AjaxProduct{ public int Insert(Product product) { product.EnsureItemIsOK(); return BllFactory.GetProductBLL().Insert(product); }}public sealed c... 阅读全文
posted @ 2011-03-12 23:46 Fish Li 阅读(6295) 评论(13) 推荐(14) 编辑
摘要: 注意:本文所介绍的框架已有新版本,点击后面链接即可阅读。【写自己的ASP.NET MVC框架】今天晒晒我的Ajax服务端框架。自从接触JQuery-EasyUI后,我对Ajax越来越感兴趣了。也慢慢的把UI开发的重心从服务器端移到客户端来了。一般说来,在Asp.net的环境中实现Ajax,要么是使用Asp.net AJAX框架,要么就要自己写些ashx来直接与客户端交互,当然还有第三方的框架可供选择。由于对Asp.net AJAX这个东西嘛,实在没啥兴趣。虽然它可以帮你为一些WebService生成JS的代理类。但是在客户端的JQuery却不能发挥它的强大功能。随着ashx处理器越写越多,发现 阅读全文
posted @ 2011-03-12 23:44 Fish Li 阅读(31411) 评论(31) 推荐(64) 编辑