摘要:
在李永京NHibernate之旅(5)中,关于更新对象中的一个测试是这样的:[Test]public void UpdateCustomerTest(){ var customer = _crud.GetCustomerById(1); customer.Firstname = "liyongjing"; _crud.UpdateCustomer(customer); var testCustomer = _crud.GetCustomerById(1); Assert.AreEqual("liyongjing", customer.Firstname);}我跟踪了一下SQL语句的执行,发现这 阅读全文
摘要:
休息两天半.打开博客园看到NHibernate专题.比较迷茫,俺可是ORM是什么都不知道的那种菜鸟.本篇基本上是从菜鸟的角度构建的一个NHibernate的QuickStart:将一条数据写入数据库.参看:李永京 NHibernate之旅系列第二篇和http://www.cnblogs.com/kiler的NHibernate2.0文档的非官方汉化版本.李老人家的版本比较高深,一直不成功.太大了,感觉不是和我这样的菜菜.于是又参看http://www.cnblogs.com/kiler汉化的NHibernate2.0文档.有那么个意思,挺好懂的!不过NHibernate2.0文档上的配置不全, 阅读全文
摘要:
dnt_split是一个字符串分割函数,输入待分割的字符串和分割符,输出分割后的字符串表下边是注释,是自己理解.CREATE FUNCTION [dnt_split] --字符串分割函数 ( @splitstring NVARCHAR(4000) , --输入需要分割的字符串和分割符 @separator CHAR(1) = ',' )RETURNS @splitstringstable TABLE ( [item] NVARCHAR(200) ) --以表的形式返回分割后的字符串AS BEGIN DECLARE @currentindex INT DECLARE @nextindex IN 阅读全文
摘要:
DNT的几个分页存储过程解析在DNT安装时会创建一些存储过程,用于完成DNT的功能。这些存储过程位于、upload_files\install\sqlscript\sqlserver文件夹中的setup2.2 - 2005.sql文件中。其中的分页存储过程如下:我认识存储过程这个东西不久,仔细看了下,注释出来.一直以为存储过程很高深,多看代码感觉也不过如此.就是一些函数而已下边列举的4个分页存储过程,写法风格各不相同.在算法上只有两种.一个使用了ROW_NUMBER() OVER ( ORDER BY [aid] DESC ) AS ROWID这个函数.另一个手动计算页码,将该页的所有数据以D 阅读全文
摘要:
CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。 当您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeS... 阅读全文
摘要:
前几天在网吧用FlashGet下MSDN的WebCast,保存到一个新建的文件夹中. 回家打开看见每个文件夹都有两个,而且名字一模一样.很奇怪的两个名字一模一样的文件夹存在于一个文件夹中. 进入文件夹,发现下载的东西都看不见了....一阵头疼. 没办法,删除两个同名文件夹中的一个,再进入另一个文件夹,发现我下载的东西出现了. 里边的文件直接打是打不开的.但是可以拷出来.文件是回来了.可剩下的目录却... 阅读全文
摘要:
相关链接:Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数解析Discuz!NT代码阅读笔记(4)-- 一切皆可配置:页面的显示Discuz!NT代码阅读笔记(5)-- 从全局看看:各个模块功能摘要Discuz!NT代码阅读笔记(6)-- 从全局看看:各个模块功能摘要(2)DNT界面显示原理,来自官方1、ASP.NET内联编码编译时间问题 先说下我的一个试验:新建一个WebApplica 阅读全文
摘要:
Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数解析Discuz!NT代码阅读笔记(4)-- 一切皆可配置:页面的显示Discuz!NT代码阅读笔记(5)--从全局看看:各个模块功能摘要(7)Discuz.Config这个项目主要自定义了一些控件供其它模块使用.有些控件在其它项目中用的很多.模块化设计,似的DNT的各个页面风格统一.还有压根就不知道在哪里用的控件!不知道为什么放到那里.但 阅读全文
摘要:
程序的界面与业务逻辑的分离是现在大家的共识, 即所谓的MVC, 应该说, ASP.net中的控件模式已经为MVC模式做了实现, 但Discuz!NT还是选择了另外一种方式. 这主要是基于以下考虑:1 模板制作者的接受度. Discuz!NT是一个通用型产品, 用户为广大论坛站长, 各个论坛都有自己的界面个性化需求, 因此界面模板的制作必须容易被各个普通站长学习掌握, 而ASP.net的ascx文件对于没有学习过ASP.net或对其开发模式没有了解的人来说, 是存在难度的. Discuz!NT使得用户了解html基本就可以制作ASP.net论坛界面, 站长可以轻松掌握如何修改和设计界面.2 一般 阅读全文
摘要:
Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程Discuz!NT代码阅读笔记(3)--网站安装也能自动化(2)--DNT安装时使用到的几个函数解析Discuz!NT代码阅读笔记(4)-- 一切皆可配置:页面的显示Discuz中有24个Project,每个项目各自作为项目架构中的不同的功能。下面我们来各自的分析一下这些项目。图(1)DNT中包含的项目 (1)Discuz.Web该项目是DNT最终生成网站的项目。图(2)Discuz.Web中的内容Aspx文件夹存放了DNT的网站模 阅读全文
摘要:
Oxite中有6个Project,每个项目各自作为项目架构中的不同的层。下面我们来各自的分析一下这6个项目。我们可以看到这六个项目分别是Oxite,LinqToSqlDataProvider,MVC,Test,OxiteSite,(Oxite.Database 需要安装SQL Server2005)。1. Oxite该项目中包含了Routing的定义,Model和Services服务层的代码,还有Oxite运行时的后台服务类,配置类,同时,在该项目中也 定义了数据访问层的接口,但并没有实现。BackgroundServices 定义了插件的服务类,Extensions 则是各种常用方法的扩展, 阅读全文
摘要:
Discuz!NT代码阅读笔记(1)--从HttpModule开始:首页的显示 Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程 Discuz!NT代码阅读笔记(3)--网站安装也能自动化--DNT安装时使用到的几个函数解析 Discuz!NT论坛程序具有强大的配置功能 :从论坛的标题到论坛各个地方的显示,论坛模板的使用等等。1、ASP.NET页面事件执行过程要弄明白DNT页面的显示过程,首先应知道ASP.NET页面事件的引发顺序。今天刚到手一本书:《ASP.NET3.5SP1高级编程》,上边是这么列的:(1)PreInit(2)Init(3)InitCom 阅读全文
摘要:
相关链接:Discuz!NT代码阅读笔记(1)--从HttpModule开始Discuz!NT代码阅读笔记(2)--网站安装也能自动化:论坛程序安装及初始化过程前文提到:在DNT安装项目:Discuz.Install中,有9个CS文件。其中位于SetupPage.cs.文件中的SetupPage类是继承自System.Web.UI.Page。它是其安装过程中用到的其他页面类的基类。在SetupPage的构造函数中,程序组织了一些版权、版本等文本的Html。但在整个安装过程中,我没看见这些信息。安装时,由于Index.Aspx没有隐藏任何类的信息,可以当作静态页面来看待。安装过程中的第二和第三个 阅读全文
摘要:
相关链接: Discuz!NT代码阅读笔记(1)--从HttpModule开始二、网站安装自动化--论坛程序安装及初始化过程 论坛的安装文件位于Discuz.Web中的Instal文件夹中。该文件夹中的文件index.aspx为安装的起始页。 论坛程序的安装过程同样也要经过ReUrl_BeginRequest的处理。只是,ReUrl_BeginRequest没有对对页面/install/index.aspx的请求进行任何操作,因此我们在浏览器中看到的地址是:http://localhost:1543/install/index.aspx这种样式的。安装起始页中没有进行什么操作可以简单地当作一 阅读全文
摘要:
Discuz是一个开源的ASP.NET论坛程序,从www.discuz.com可以下载源代码。我是从3.0就开始看他的代码的,最新版本是3.1.我拿到它的代码也有一段时间了,每天没事干就看看。以前没做过ASP.NET的东西,刚看见代码简直是一头露水。看了段时间,大概有些眉目了,于是乎,按老赵的说法:写出来,有收获。比较菜鸟,有不对的地方或者语言组织不好没说清楚的还望各位达人多的指正.一、从HttpModule开始:首页的显示 解压下载来的代码包,打开Discuz_vs08解决方案文件,可以看见这个解决方案有24个项目。最后生成网站输出的项目是Discuz.Web。展开这个项目,发现熟悉的ind 阅读全文
摘要:
最近做一个SqlCE项目,需要频繁地从SqlServer2008服务器上提取数据到SqlCE数据库。 SqlServer2008中有生成数据脚本功能,可以通过脚本向导(右键点击数据库-〉任务-〉生成脚本)实现。但经常这么导数据太麻烦,一天导10几次能把你导崩溃。。。 突然想到动软代码生成器里边有生成数据脚本的功能。于是拿来参考着做了个SqlServer到SqlCE的数据转工具。 先晒一下界面: 主要功能: 1、输入数据库名和表名,生成创建SQLCE数据库的脚本和向SQKCE数据库中插入数据的脚本。 2、将脚本输出到文件。 3、直接生成SQLCE数据库。 实现方法 1、SqlSe 阅读全文
摘要:
using System;using System.Diagnostics;using System.Collections;using System.Data;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Excel;namespace LTP.Common{ /// <summary&... 阅读全文
摘要:
Technorati 标签: ASP.NET生命周期这几个阶段如下所示。 1、 页请求:页请求发生在页生命周期开始之前。当用户请求一个页面,ASP.NET将确定是否需要分析或者编译该页面,或者是否可以在不运行页的情况下直接请求缓存响应客户端。 2、 开始:发生了请求后,页面就进入了开始阶段。在该阶段,页面将确定请求是发回请求还是新的客户端请求,并设置IsPostBack属性。 3、 初始化:在页面开始后,进入了初始化阶段。初始化期间,页面可以使用服务器控件,并为每个服务器控件进行初始化。 4、 加载:页面加载控件。 5、 验证:调用所有的验证程序控件的Vailidate方法,来设置各 阅读全文
摘要:
大多数初学者会认为Page_Load事件是当页面第一次访问触发的事件,其实不然,在ASP.NET页生命周期内,Page_Load远远不是第一次触发的事件,通常情况下,ASP.NET事件顺序如下所示。 1. Page_Init()。 2. Load ViewState。 3. Load Postback data。 4. Page_Load()。 5. Handle control events。 6. Page_PreRender()。 7. Page_Render()。 8. Unload event。 9. Dispose method called。 阅读全文
摘要:
在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点: q 可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和维护。 q 可以从项目中和源代码管理中排除一个文件或项目。 q 支持VSTS的Team Build方便每日构建。 q 可以对编译前后的名称,程序集等进行自定义。 q 对App_GlobalResources 的Resource强类支持。 ASP.NET WebSite编程模型具有以下特点: q 动态编译该页面,而不用编译整个站点。 q 当一部分页 阅读全文