自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 如何防止页面中的敏感信息被提取

  公布到网页上的Email经常会被一些工具自动提取,一些非法用户就会利用所提取的Email大肆发送垃圾邮件。这些工具大多都是查找链接中“mailto:”后面的信息或是“@”前后的信息来达到提取Email的目的。我在看DotNetNuke(以下简称DNN)的源代码时发现了一个不错的方式来防止这些信息被自动提取。在DNN中有这么一段函数(Globals.vb中):Public Function Cl

2005-10-18 14:08:00 3576

原创 在C#中调用Microsoft.VisualBasic命名空间下的类型验证函数

  VB.NET中还是有很多有用的东西的。比如VB.NET可以直接调用Microsoft.VisualBasic命名空间下的各种有用的函数,特别是一些类型验证函数(IsDate,IsNumeric)就十分有用。就拿判断是否为数字来说,在网上我找到了在C#中用到的三种方法(但都有各自的不足之处):1、将字符串分解成Char,然后用Char.IsNumber(c)验证public bool IsNum

2005-09-03 11:09:00 2400 1

原创 [DNN模块开发]如何写模块数据库安装脚本

  编写DotNetNuke(以下简称DNN)模块相关数据库安装/卸载脚本,是模块开发的一个重要环节。DNN程序会根据模块相关的脚本自动安装或卸载模块相关的表和存储过程等。  DNN中模块的数据库安装脚本一般命名为:版本号.具体数据访问Provider名称(如对应SQLServer的安装文件可为:01.00.00.SqlDataProvider)。在上传新模块时,DNN的模块安装程序,会根据DNN

2005-08-20 08:57:00 1483

原创 [DNN模块开发]让模块支持“导入”“导出”功能

  DNN模块可以支持导入导出功能,通过将模块内容导入到XML文件可以便于模块内容备份和转移,也可将模块内容事先以XML格式保存通过导入功能实现模块内容的批量录入。如图:要实现模块的导入导出功能,需要在模块的业务逻辑访问对象(***Controller)中实现IPortable接口:1、IPortable接口(components/Modules/IPortable.vb)Namespace Do

2005-08-04 14:28:00 1230

原创 [DNN模块开发]如何写dnn文件

  在所有DNN模块的安装包中,都有一个*.DNN文件。这个文件就是DNN模块的安装文件清单。在安装模块时DNN应用程序读取该文件,按照文件清单中的内容安装相关文件和数据库脚本。DNN文件是一个XML文件结构大致如下:dotnetnuke节点,说明改文件时模块安装清单,使用与3.0.X版的DNN程序-->dotnetnuke version="3.0" type="Module">  folder

2005-07-26 21:39:00 1448

原创 [DNN模块开发]模块的文件结构及命名方法

  DNN模块开发的第一步就是要弄清一个DNN模块都要有哪些文件,这些文件该如何命名,每一个文件又各起到什么作用。以大家最熟悉Link(链接模块)为例:从文件结构来看:(省了一些文件夹或文件,如bin文件夹)DotNetNuke_3.0.13..............DNN根目录  DesktopModules...............DNN模块所在目录    Links..........

2005-07-25 16:51:00 1916

原创 utf-8与样式表的问题

  不知大家有没有遇到这种问题:在web.config中的语言编码设为utf-8后,使用样式会不正常,特别是样式中应用中文字体的部分。  这个问题我一直就没有找到好的解决方案,我一般就是把web.config中的语言编码设为gb2312。但是,在用Lion的WebHtmlEditor时内容区域中有空格的地方出现“?”,也就是说WebHtmlEditor只能在utf-8编码中使用。在试过N种方法后,

2005-07-03 17:58:00 3040 2

原创 让DNN也用CuteEditor

  DNN中使用的是编辑器是FreeTextBox(即:ftb),它里面没有将图片上传到服务器的功能,其他功能好像也没有CuteEditor丰富。我想DNN既然可以支持ftb,就应该是能够支持CuteEditor的(同是第三方控件)。上CuteEditor的官方网站(http://cutesoft.net/)一看,还真可以支持DNN(在线演示http://dnn3.cutesoft.net/)。 

2005-06-29 17:33:00 1548

原创 [DNN功能]列表管理添加中国的省份选择下拉框

  DNN中的列表管理可以实现对DNN中可变项列表的管理。可变列表包括:可选择的货币种类、可选择的国家省份等。这些列表项一般都以下拉框的形式出现。在DNN中程序默认给出了一些,我们可以修改系统默认给出的值,也可添加新的列表(主要用于自己开发的用户模块)。  就拿国家省份列表来说:默认给出的省份都是英文,我们当然可以把它汉化成中文。中国的省份也没有默认给出,大家可安装以下步骤添加:1、点击“增加列表

2005-06-28 10:42:00 2405 1

原创 DNN安装模板(DotNetNuke.install)

  DNN中有一个非常酷的功能,就是能够在IE环境下自动初始化安装数据库。看过程序之后终于明白它是如何进行了。1、在Application_Start事件中有CheckVersion方法用来检测数据库版本和应用程序版本是否一致,如果不一致根据设置决定是否自动安装。2、如果数据中Version表中的版本号和应用程序的版本不一致,且web.config中设置允许自动升级(AutoUpgrade节点有设

2005-06-07 21:20:00 2326

原创 DNN中的本地化——打造全球通用的程序

  经常看到一些关于DNN的网站上有相应的语言包下载。通过下载语言包并安装可以可以起到对DNN应用程序本地化的效果(我们通常叫汉化)。现在就让我们看看DNN是如何进行本地化的。(想把整个本地化的来龙去脉说清楚实在太难,我组织了几天的语言也没能表达清楚,只能是列举几个概念希望能对大家看这方面的内容有帮助)原理:DNN中的页面全部是由用户控件组成的。本地化应用程序只需对每一个用户控件进行本地化就行了。

2005-06-03 20:22:00 1869

原创 得出SQL语句的执行时间的方法

在网上找的:--SQL语句前加:declare @d datetimeset @d=getdate()--SQL语句--在SQL语句后加:select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) 这个查询结果不能在查询分析器中直观显示出来,自己改进了一下:--SQL语句前加:declare @d datetimeset @d=getdate()--SQL语句-

2005-06-03 20:21:00 1337

原创 [DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载)

  在看DNN时发现了一个很酷的功能:能通过IE浏览器实现对Zip文件的压缩和生成Zip文件文件压缩包的功能。在仔细看过程序以后发现它是调用的SharpZipLib.dll类库中的内容实现的压缩与解压功能。上网查了一下SharpZipLib,发现它居然是开源的,在http://www.icsharpcode.net网站上有下。在网站里关于SharpZipLib的源文件和调用演示包括帮助文档都有下,

2005-05-28 16:48:00 1937

原创 [DNN功能]自己动手做语言包

  经常看到一写关于DNN的网站上有相应的语言包下载。通过下载语言包并安装可以可以起到对DNN应用程序本地化的效果(我们通常叫汉化)。在看了一段时间的程序后我发现自己动手做语言包也不是很难。只要你英语过关就完全可以自己动手通过DNN程序制作语言包,而不需借助其他任何工具。自己动手制作语言包步骤:1、首先以Host身份登录,进入主机管理-->语言管理2、添加语言包,比如添加台湾那边用的繁体中文,在语

2005-05-25 21:36:00 2778

原创 [DNN中的Bug]在时区编辑器中存在的一个Bug

  时区编辑器控件(admin/Localization/TimeZoneEditor.ascx)中有这样一个功能,它可以检查存储时区信息的本地化XML文件(App_GlobalResources/TimeZones.zh-CN.xml)与默认的存储时区信息的XML文件(App_GlobalResources/TimeZones.xml)的差别。在本地化文件缺少相应的条目时会要求增加,有多余条目时

2005-05-20 20:45:00 1253

原创 DNN核心用户控件——实现页面灵活布局的第一步

  我把admin/Skins文件夹中各控件定义为核心用户控件。它们不同于页面中呈现的一般用户控件(如:Events、Documents和大家通常所指的第三方控件)。它们不由用户在页面中自由操作,但他们可以通过定义皮肤(Skins)的方式来自由调整它们的布局。这就是DNN通过定义皮肤可以实现千变万化,风格迥异的页面的根本原因。这比一般网站上通过变更样式表,达到界面颜色不同要先进的多。关于DotNe

2005-05-19 21:20:00 1473

原创 刚开始学习DNN的一点小经验(一)

  学习DNN一开始就想弄清DNN的框架实在太难。51个项目都不知道从那个开始。项目之间的关系更是复杂。分析每个类的关系和作用也不是很容易,主要是有时弄不懂为什么要这样做。先从数据库入手也不是一个很好的方法。程序过于庞大,数据表也很多。所以我认为要学好DNN,应按以下步骤来进行:1、用熟DNN,了解DNN都有哪些功能,一边看时一边想要是自己做该用什么方法。特别要记下自己实现不了的功能,在以后看程序

2005-05-19 19:07:00 1339

原创 初识DotNetNuke(DNN)

  DotNetNuke的代码我很早就Down了下来,只不过打开项目一看我就傻了,My God!DotNetNuke居然由这么多项目组成。我该从什么地方看才好呢?打开数据库一看更是傻眼,60多个用户表,300多个存储过程,想弄清数据库就要花不少功夫。   后来我了解到DotNetNuke的前身是Portal start kit和IBuySpy Portal,所以还从简单的先看起。Portal st

2005-05-19 19:05:00 1897 2

原创 有必要将DNN转成C#版的吗?(站在一个C#程序员的立场去分析)

  刚接触DNN时就有心要将这个程序转成C#版的。在尝试了一天的转换工作后,我放弃了。为什么要将大量的时间放在研究C#和VB.NET的不同上面呢?学习DNN是为什么呢?对这个问题的回答直接影响到是否要把DNN转成C#版的。我们学习DNN,主要是学习DNN的架构和框架以及DNN中所用到各种先进技术和编程思想。这些都是与语言无关的东西。要把DNN转成C#版就要花去50%的时间去研究C#和VB.NET的

2005-05-19 19:05:00 2188

原创 [DNN学习所得]HttpModule到底是个什么东西

  在学习DNN到UrlRewriteModule类时(UrlRewriteModule.vb中),发现这个类是由IHttpModule接口继承来的。一查MSDN知道了UrlRewriteModule原来是个HttpModule。那么HttpModule到底是个什么东西?有什么用?用了有什么好处?  HttpModule这个东西我原来从来没有用到过(可见自己的知识面和.net的庞大功能有多么大的差

2005-05-19 18:58:00 1184

原创 DNN的数据访问方式——合理运用模式,提高数据访问的灵活性

  DNN的核心框架表的数据访问方式是采取单件模式(Singleton)和抽象工厂模式(Abstract Factory)结合的方式来实现的。(各个用户模块的数据访问方式好像也是这样的)  单件模式(Singleton):用来确保程序只有一个数据访问点。  抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。  DataProvid

2005-05-19 18:56:00 1356

原创 [DNN学习所得]显示网站图标

  “网站图标”——就是在地址栏中或收藏夹中显示的图标。像什么雅虎中国就有。  其实要做到这一点并不难,只需要在页面的HTML Header中增加: 强制要求浏览器请求这个图片即可。  今天在看DNN代码时发现DNN居然也有这个功能(DNN考虑的真全面呀!)。我们只需要用网站管理员的身份登录在文件管理中把图标文件以favicon.ico的文件名形式将文件上传到根目录即可。(注:要上传.ico文件需

2005-05-19 18:55:00 1205

原创 用存储过程生成单据号

  大多数的单据都需要有个单据号。有的单据号就是顺序编号如:000001,000002……。有的单据号是有一定意义的,如我遇见过的一个需求:单据号共12位,1位帐套号(区分使用单位的),1位单据标识号(表示该单是什么单,如:E表示订货单,X表示销售单),2位年号(05表示2005年),2位月号,2位日号,4位编号(按当天的顺序,最大9999,超过9999的就用9999表示) 。JE05050700

2005-05-08 21:02:00 1209

原创 解读ASP.NET TimeTracker Starter Kit(2)——重构篇

看了ASP.NET Time Tracker Starter Kit的代码以后,觉得这个程序是学习面向对象编程开发的一个好案例。整个程序从功能上来讲就是记录人员参加项目工作的工时记录。分析得出主要有人员、项目、工时记录这几个类。整个程序正好是以这几个类为基础展开的。在业务逻辑层里TTUser(用户类)、Project(项目类)和TimeEntry(工时记录类)分别就包括了对相应表的增、删、改等操作

2005-04-26 20:13:00 1169

原创 解读ASP.NET TimeTracker Starter Kit(1)——数据库篇

初步了解了ASP.NET Portal Starter Kit后(我以前的文章),本来想继续重构代码的。在构思的时候想到要是能把五个入门套件结合在一起不是更好。Time Tracker(时间管理或项目追踪)是利用微软的Data Access Application Block作为数据库访问层的,我正好也要这样做,所以就先来看看ASP.NET Time Tracker Starter Kit。 AS

2005-04-25 18:40:00 1324

原创 初步整理了一下ASP.NET Portal Starter Kit代码,供大家参考

  经过几星期的努力,终于把ASP.NET Portal Starter Kit的代码和数据库都过了一遍。整理后的代码与原来的有以下不同: 1、增加了我理解性的注释。(有理解错误的地方请指出) 2、将代码整理成了我比较习惯的模式,如:它在在页面后台代码喜欢这样写://页面类的构造函数public CDefault() { Page.Init += new System.EventHandler(P

2005-04-21 10:45:00 1279

原创 从ASP.NET Portal Starter Kit中学到的调整顺序新思路

在ASP.NET Portal Starter Kit中有在列表框中选择指定项,通过点击上下按钮来实现排序的功能(如下图)。     通常我想到的方法是(以上移为例):获取选中项的排序号和选中项的上一项的排序号,交换它们的排序号即可。排序号的方式,就以1,2,3,4……的形式,新建的标签的序号在最后一个的基础上加一。在ASP.NET Portal Starter Kit中采取的方式是:通过1,3

2005-04-18 17:05:00 1098

原创 解读ASP.NET Portal Starter Kit(4)——角色身份认证篇

ASP.NET Portal Starter Kit是采用的“基于窗体的身份验证”的身份验证模式。Forms 身份验证通常指这样一个系统,在该系统中使用 HTTP 客户端重定向将未经身份验证的请求重定向到 HTML 窗体。如果应用程序需要在登录时通过 HTML 窗体收集自己的用户凭据,那么选择 Forms 身份验证就很好。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 C

2005-04-18 11:29:00 1142

原创 解读ASP.NET Portal Starter Kit(3)——代码文件篇

了解了ASP.NET Portal Starter Kit的数据库和用户配置文件后,看一看程序各代码是实现什么样的功能,我想也是很有必要的。下表列举了项目包含的文件清单并给出了说明。没什么技术上的东西,当个备注用吧!文件名说明Admin文件夹网站管理文件夹  AccessDenied.aspx访问失败(无访问权)时重定向到的页面  EditAccessDenied.aspx编辑失败(无编辑权)时重

2005-04-16 08:19:00 1188

原创 解读ASP.NET Portal Starter Kit(2)——用户配置文件篇

ASP.NET Portal Starter Kit将网站所需的配置信息都存储在一个XML配置文件(PortalCfg.xml)中。这些配置信息控制门户内容的布局(如:显示哪些门户的标签,每个标签上显示哪些门户模块)以及安全设置(如:用户类别,访问权限等)。网络管理员通过修改配置文件就可以达到修改网站布局和调配各模块用户访问权限。将网站的配置信息存储在XML配置文件中而不存储在数据库中的好处有:1

2005-04-15 14:30:00 1121

原创 解读ASP.NET Portal Starter Kit(1)——数据库篇

  ASP.NET Portal Starter Kit数据库结构总体上来讲是由网站引擎的核心表(用户表、角色表和角色关系表)和各个用户模块相关的表组成。核心表存储整个网站的用户权限的配置信息(详细的用法及说明将放到《角色身份认证篇》中讲)。各用户模块存储各个功能模块的信息。各个用户功能模块表都是独立的。这样有利于新增模块扩展功能。同时也可将各个功能模块的表分别部署到不同的数据库中提高程序的高伸缩

2005-04-15 08:43:00 1292

原创 为数据访问层编写一个基类

  在编写数据访问层代码时,总要一边又一边的重复编写:读数据库连接字符串,建立数据库连接对象,打开连接,创建Command对象,创建数据适配器,创建数据集,填充数据集,关闭连接。这种重复的代码写一两次到还行,写多了就免不了有一些烦了。  在总结以前的代码以后,决定重构数据方法层的代码。数据访问层无非进行两种操作:查询返回DataTable,进行插入、更新、删除等无返回值的操作。只要增加一个数据访问

2005-04-11 20:35:00 1564

原创 在Repeater中嵌套使用Repeater

  在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品。最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加进去。一来更方便,二来加长了左部导航栏的长度使页面更协调。原有的分类导航栏是由Repeater实现的,现在需要在每一个分类下加入该类的商品信息,于是我想到了在原有Repeater中嵌套Repeat

2005-04-07 09:04:00 994

原创 人民币大写转化函数(C#版)

先写了一个篇关于ASP版和JavaScript版人民币大写转换的函数,现在把C#版的也共享出来。Rmb.cs using System; namespace Test {     /**////      /// Rmb 的摘要说明。     ///      public class Rmb     {         /**////          /// 转换人民币大小金额       

2005-03-30 08:50:00 1722

原创 自己用C#编写的日期选择web自定义控件

  做web页面很多要用到日期输入,.net自带的日历控件每次都需要与服务器交互很不方便。为了图省事自己开发了一个web控件。参照用JavaScript编写的日期选择,将其中的JavaScript部分写入控件中就可以了。代码不复杂,拿出来大家共享以下。大家帮忙找找Bug,提提改进意见。实现效果如下:源码下载:TestControl.rar

2005-03-29 11:05:00 2371 1

转载 应用程序设计/命名及编码规范方案

架构规范总体设计.NET web forms 应用程序的架构应遵循Microsoft建议的架构方案. 根据项目规模不同, 适当取舍各个基本层次. 将系统划分为多层的目的在于简化隔离各个子系统内部逻辑. 大体上应按照以下规则创建:应至少包含表示层与业务一般应将应用程序划分为: 表示层, 业务逻辑层, 数据访问三层.如果业务过程较复杂, 应增加业务规则层应为业务过程中的基本业务对象实现数据实体(一般是

2005-03-28 15:38:00 1407 1

原创 详解对密码执行散列和 salt 运算方法

  大家对密码执行散列和Salt运算一定不陌生。两个Visual Studio企业版示例都是用的这个方法来加密这个方法的。结合示例代码,我总结了一个包含对密码进行加密,比较等静态方法的类。  使用说明:先用HashAndSalt方法对密码进行加密,然后存储到数据库中。 在用户登录时用ComparePasswords方法在对用户输入的密码和用户注册时存储在数据库中的密码进行比较,判断用户输入的密码是

2005-03-28 15:29:00 1638

转载 VS.NET 2003 控件命名规范

1.变量命名规范类型前缀示例Array arrarrShoppingListBooleanblnblnIsPostBackBytebytbytPixelValueCharchrchrDelimiterDateTimedtmdtmStartDateDecimaldecdecAverageHeightDoubledbldblSizeofUniverseInteger intintRowCounterL

2005-03-26 14:32:00 1055

原创 ASP中利用OWC控件实现图表功能详解

  在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等。  在下面的代码中我详细的给出了饼图,簇状柱型图,折线图的使用方法。OWC的更多功能,属性可参加MSOWCVBA.chm帮助文件(在office 2000的文件夹下大家自己找)。testOWC.aspASP中利用OWC控件实现图表功能详解下面测试的是一个产品销量图MX1

2005-03-26 11:06:00 1165

原创 人民币大写转化函数(ASP版和JavaScript版)

ASP 版:文 件 名:cmycur.asp作    者:二十四画生版    本:1.0简    介:转换函数文件。功能描述:转换货币形式的函数。(该文件包含两个函数,一个转换成一般货币形式cmycur(num),一个转换成大写形式cmycurd(num))%>function cmycur(num) 转换为货币形式如:¥180.00元  dim thenum  if isnull(n

2005-03-25 19:26:00 3568 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除