近一段时间以来,我发现博客又掀起了新的一轮讨论热潮,特别是针对WebForm和MVC的讨论。这样的讨论可以促进大家的进步,同时也可以让每个人对每种技术的了解都更加深入。不同的技术都有自己的最佳实践,比如WebForm和MVC。如果我们大家在平常的开发实践中都能遵从每一种技术基本使用原则,而不是滥用,那么我就不信不会得到最佳效果。
这里,我要讨论的是如何合理的利用DataSourceControl,来简化我们在页面的一些数据操作,代替一部分的参数处理工作,并最终取代页面的后台代码文件。这个思路,源于在asp.net Blogs的一篇文章(我目前已经找不到该文章的链接的,大概意思就是讲如果利用DataSourceControl来封装一些复杂...
常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的一个对象): 以下是ASP.NET代码:【复制代码】 string strUserId = txtUser.Text;
ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
if (list == null)
{
list = new ArrayList();
}
for (int i = 0; i < list.Count; i++)
{
if (strUserId == (list[i] as string))
{
//已经登录了,提示错误信息
lblError.Text = "此用户已经登录";
return;
}
}
list...
在判断的时候只要把取得的文本框的值与“Session["valicode"] ”进行判断是否一致就行了。
//建立位图对象
Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb);
//根据上面创建的位置对象创建绘图面
Graphics g = Graphics.FromImage(NewbitMap);
//以指定的颜色填充矩形区
g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, 90, 22));
//创建字体对象
Font newfont = new Font("幼圆", 14);
//创建RectangleF结构指定一个区域
RectangleF rectangle = new RectangleF(0, 0, 90, 22);
//创建随机数
Random Newrd = ne...
当要进行MD5加密的字符串不含中文时,那么ASP.NET的加密结果和ASP是一致的:
Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("www.goalercn.com", "MD5"));
//结果:D66E1F138689B9B5AA4C520D9EAFFB61
Response.Write(MD5("www.goalercn.com",32))
'结果:d66e1f138689b9b5aa4c520d9eaffb61
当要进行MD5加密的字符串含中文时,两者的加密结果就不一致了:
Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("木子屋", "MD5"));
//结果:34D9CBD5164C47058DFA3A...
阅读提要 在缺省状况下,你只能使用Visual Studio 2005的一个本机实例来管理与ASP.NET 2.0一同发行的SQL Server数据库中的安全凭证。本文将向你展示怎样用一个Web服务来包装ASP.NET 2.0提供者并通过使用一个Windows表单应用程序来管理凭证存储从而扩展这种管理能力。 如今,无论是互联网还是企业内部局域网程序一般都要求使用定制的方式来存储和管理用户帐户和角色。为此,ASP.NET 2.0提供了一个现成的提供者模型和一个SQL Sever数据库。不幸的是,只能通过Visual Studio 2005来管理该凭证数据库且只能针对本机Web应用程序。这无疑是非常不方便而且不能广泛使用的。 本文描述了一个超...
在ASP.NET MVC的一个开源项目MvcContrib中,为我们提供了几个视图引擎,例如NVelocity, Brail, NHaml, XSLT。那么如果我们想在ASP.NET MVC中实现我们自己的一个视图引擎,我们应该要怎么做呢?
我们知道呈现视图是在Controller中通过传递视图名和数据到RenderView()方法来实现的。好,我们就从这里下手。我们查看一下ASP.NET MVC的源代码,看看RenderView()这个方法是如何实现的:
protected virtual void RenderView(string viewName, string
masterName, object viewData) {
ViewContext viewContext = new ViewContext(
ControllerContext, viewName...
1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6 取当前分 int 分=currentTime.Minute; 1.7 取当前秒 int 秒=currentTime.Second; 1.8 取当前毫秒 int 毫秒=c...
又发现了一个 .net 的bug!最近在使用正则表达式的时候发现:在忽略大小写的时候,匹配值从 0xff 到 0xffff 之间的所有字符,正则表达式竟然也能匹配两个 ASCII 字符:i(code: 0x69) 和 I(code: 0x49);但是仍然不能匹配其他的 ASCII 字母和数字。
比如以下的代码就是用来测试用正则表达式匹配从 0xff 到 0xffff 的字符。而值范围在 0 到 0xfe 的所有字符是不能被匹配的。
1234567891011121314151617Regex regex = new Regex(@"[/u00FF-/uFFFF]+");&...
第一种方法:
通过URL链接地址传递
send.aspx: protected void Button1_Click(object sender, EventArgs e) { Request.Redirect("Default2.aspx?username=honge"); } receive.aspx: string username = Request.QueryString["username"];这样可以得到参数值。
第二种方法:
通过post方式。
send.aspx receive.aspxstring username = Ruquest.Form["receive"];
第三种方法...
不论在客户端应用程序还是服务器组件(包括窗口服务)定时器通常扮演一个重要的角色。写一个高效的定时器驱动型可管理代码要求对程序流程有一个清晰的理解及掌握.NET线程模型的精妙之处。.NET框架类库提供了三种不同的定时器类:System.Windows.Forms.Timer, System.Timers.Timer, 和System.Threading.Timer。每个类为不同的场合进行设计和优化。本文章将研究这三个类并让你理解如何及何时应该使用哪一个类。
Microsoft® Windows®里的定时器对象当行为发生时允许你进行控制。定时器一些最常用的地方就是有规律的定时启动一个进程,在事件之间设置间隔,及当进行 图形工作时维护固定的动画速度(...
从命名空间的命名,目录的划分与命名可以看出一个程序员是否有经验,是否很有经验。一个编程老手绝不允许架构混乱。
.Net开发中,一般目录名与命名空间名称是对应的。关于命名空间如何划分,目录如何分类,这个问题看似简单,实际上却比较复杂,虽然它不像动植物学有一套完整的分类学。
在.Net B/S架构中,一般分为如下三个主要的命名空间:
[公司名/作者名].[项目名].Business
[公司名/作者名].[项目名].Data
[公司名/作者名].[项目名].Web 这三部分可以在一个project中,也可以分置三处。
目录分类与空间命名之难在于:分类因素是二维的,而分类却只是一维的。解释一下:分类是一维...
static readonly与const的变量,作用是一样的,无论访问修饰符是不是public,还是其它(private、protected、internal),变量名称一般为大写,中间以下划线。
public static readonly int MAX_HEIGHT;
public const int MIN_HEIGHT = 10;
有些程序员对大写不敏感,上例中,MAX_HEIGHT用Max_Height代替也未尝不可,甚至MaxHeight也可以。在.Net类库中,int.MaxValue与int.MinValue便是这样定义的。
const常量更确切的说是编译时常量,因为它在运行时是不存在的,在编译中所有变量引用将被实际值替掉。而static readonly...
引言
随着现代科技日新月异的发展,作为新兴产业的嵌入式移动信息设备的应用越来越广。这些嵌入式设备中的PDA以其体积小、重量轻、便于携带、功能强大、功耗低等特点而备受青睐。键盘作为一种最为普通的输入工具在PDA上显得尤为重要。PDA因其体积小、功能专一等特点决定了它的键盘不大可能采用普通PC机上的标准键盘,因而大多数PDA采用键数相对较少的矩阵键盘。矩阵键盘设计也是多种多样,有外接键盘管理芯片设计的,如采用CH452、UR5HCSPI等芯片;有外接普通单片机设计的,如采用8051、2051等单片机;也有不采用任何外围芯片直接与CPU的I/O口相连设计的。本文介绍一种在Windows CE.Net操作系统下,直接...
本文面向的读者:.NET 应用程序设计师和程序员
关键字:
Type– 类型
Class - 类
Abstract - 抽象的
Interface - 接口
Member - 成员
Method - 方法
Property - 属性
预备知识:在阅读本文时,您应当了解.NET编程的基本知识并且已经掌握Class, Abstract Class 和 Interface全部知识。这里我仅简单介绍一下他们的基本知识。本文的例子由C#编写。期望您对C#编程有一定的了解。
正文:
我们无法创建一个Abstract Class或Interface的实例(INSTANCE)。让我们从Abstract Class和Interface的定义来看他们的不同。Abstract Class可以包含Abstract Methods 和 Abstract Prope...
代码如下:
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Page language="vb" %>
<script runat="server">
Dim FilePath As String = Server.MapPath("FengEr.jpg")
Sub Page_Load(Sender As Object, E As ...
<%@ page language="c#" autoeventwireup="true" debug="true" %><script language="c#" runat="server">void page_load(object sender,eventargs e){ if (!ispostback){ hashtable htb=new hashtable(); htb.add("1234","microsoft"); htb.add("3210","sum"); downlist_2.datasource=htb; downlist_2.datavaluefield="key"; downlist_2.datatextfield="value"; downlist_2.databind(); } else{ label_1.text="downlist_1 value is:"+d...