C#知识
文章平均质量分 76
guxianga
这个作者很懒,什么都没留下…
展开
-
ASP.NET 动态页面静态化 比较
1.模版法 该方法历史悠久,具体处理流程为采用一个html模版,将其中的关键字替换为我们希望的信息。优点:缺点: 所有的信息都要采取字符串批凑的方式来实现,比如需要一个列表,就需要拼凑字符串。问题是开发周期长,可扩展性非常差,而且不易维护,难修改。文章参考:Asp.NET 生成静态页http://www.codefans.com/ArticleView/Article_66转载 2007-11-23 17:32:00 · 3440 阅读 · 1 评论 -
ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel
本文简单介绍一下在母版页中使用UpdatePanel控件,翻译自官方文档。 主要内容1.添加UpdatePanel控件到Content Page2.通过Master Page刷新UpdatePanel 一.添加UpdatePanel控件到Content-Page1.添加一个新的Master Page,并切换到设计视图。2.在工具箱中AJAX Extensions标签转载 2007-09-28 10:52:00 · 591 阅读 · 0 评论 -
ASP.NET AJAX入门系列(8):自定义异常处理
在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档。 主要内容1.在服务端自定义异常处理2.在客户端脚本中自定义异常处理 一.在服务端自定义异常处理1.添加ASPX页面并切换到设计视图。2.在工具箱中AJAX Exten转载 2007-09-28 10:50:00 · 534 阅读 · 0 评论 -
ASP.NET AJAX入门系列(6):UpdateProgress控件简单介绍
在ASP.NET AJAX Beta2中,UpdateProgress控件已经从“增值”CTP中移到了ASP.NET AJAX核心中。以下两篇关于UpdateProgress的文章基本翻译自ASP.NET AJAX官方网站。 主要内容1.UpdateProgress控件简单使用2.使用多个UpdateProgress控件 一.UpdateProgress控件简单使用转载 2007-09-28 10:46:00 · 618 阅读 · 0 评论 -
ASP.NET AJAX入门系列(2):使用ScriptManager控件
ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过J转载 2007-09-28 10:35:00 · 633 阅读 · 0 评论 -
ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel简单的使用方法(第一篇)。 主要内容1.UpdateP转载 2007-09-28 10:42:00 · 776 阅读 · 0 评论 -
ASP.NET AJAX入门系列(1):概述
经常关注我的Blog的朋友可能注意到了,在我Blog的左边系列文章中,已经移除了对Atlas学习手记系列文章的推荐,因为随着ASP.NET AJAX 1.0 Beta版的发布,它们已经不再适用,为了不继续误导广大朋友,所以不再作为推荐系列文章,如果有需要参考的朋友,可以直接到随笔分类中查看。ASP.NET AJAX Beta改动如此之大,鉴于又没有很好的中文参考资料,所以决定最近开始写作ASP转载 2007-09-28 10:32:00 · 536 阅读 · 0 评论 -
.Net服务组件(ServicedComponent)简介及其使用
.NET Enterprise Services 为企业应用程序提供重要的基础结构。COM+ 为企业环境中部署的组件编程模型提供服务结构。System.EnterpriseServices命名空间向 .NET 对象提供对 COM+ 服务的访问,COM+ 服务令 .NET Framework 对象更适用于企业应用程序。服务组件(ServicedComponent)是一种使 COM+ 服务能够用于转载 2007-09-25 09:54:00 · 584 阅读 · 0 评论 -
C#排序算法大全
一、冒泡排序(Bubble) using System; namespace BubbleSorter { public class BubbleSorter { public void Sort(int[] list) { int i,j,temp; bool done=false; j=1; while((j{ done=true; for(i=0;i{ if(list[i] >list[i+转载 2007-09-24 14:21:00 · 586 阅读 · 0 评论 -
C# Socket编程完成控制台服务器端和web客户端(调试通过)
服务器端程序using System;using System.Net;using System.Net.Sockets;using System.Text;namespace SocketServer{ /// /// Class1 的摘要说明。 /// class Class1 { /// /// 应用程序的主入口点。 /// //定义端口号 private const转载 2007-09-22 10:55:00 · 948 阅读 · 0 评论 -
NET System.Sockes类套接字,实现点对点文件传输
System.Sockes命名空间了实现 Berkeley 套接字接口。通过这个类,我们可以实现网络计算机之间的消息传输和发送.而在我下面要讨论的这个议题里,我们将讨论的是用套节子实现文件的传输.这种方法有别于FTP协议实现的的文件传输方法,利用ftp的方法需要一个专门的服务器和客户端,无疑于我们要实现的点对点的文件传输太为复杂了一些。在这里,我们实现一个轻量级的方法来实现点对点的文件传输,这样就转载 2007-09-22 10:46:00 · 1147 阅读 · 2 评论 -
揭开正则表达式的神秘面纱
引言 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来:(1)检查一个串中是否含有符合某个规则的子串,并且可以得到这个子串;(2)根据匹配规则对字符串进行灵活的替换操作。 正则表达式学习起来其实是很简单的,不多的几个较为抽象的概念也很容易理解。之所以很多人感觉正则表达式比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先转载 2007-09-22 10:44:00 · 590 阅读 · 0 评论 -
.NET Remoting编程简介
.NET Remoting提供了一个功能强大、高效的处理远程对象的方法,从结构上而言,.NET Remote对象非常适合通过网络访问资源,而又无需处理由基于SOAP的WebServices所带来的难题。.NET Remoting使用起来比Java的RMI简单,但要比创建Web Service难度大一些。在本篇文章中,我们将创建一个从数据库读入内容的远程对象。文中还包括了一个忽略数据库功能的替补对象转载 2007-09-21 16:37:00 · 492 阅读 · 0 评论 -
在.NET中使用COM+队列组件
.NET在异步函数调用上作了很大的努力。通过“代表(DELEGATE)”程序员可以非常方便对函数进行异步调用。编译器在幕后加入了BeginEnvoke()以及EndEnvoke()函数的定义和实体,这样你可以对对象的函数进行异步调用,并方便地拿到函数返回结果。 但是.NET提供的异步调用还不能完全取代COM+队列组件提供的异步功能,原因如下: 第一,.NET不支持断开的网络。客户端和服务器转载 2007-09-25 10:12:00 · 807 阅读 · 0 评论 -
ASP.NET2.0 文本编辑器FCKeditor的冰冷之心
FCKeditor是目前最好的html文本编辑器,如果还不明白的话看了下图就知道了效果图:那么为什么说是FCKeditor的冰冷之心呢?这不是哗众取宠,主要是说它使用起来有点麻烦,下文就详细说明如何搞定这玩意儿。1.FCKeditor的官方网站是:http://www.fckeditor.net/download 目前最新的FCKeditor 2.4.2版本。请在此页下载:http:转载 2007-09-22 16:50:00 · 777 阅读 · 0 评论 -
C#网络编程
C#网络编程我们知道C#和C++的差异之一,就是他本身没有类库,所使用的类库是.Net框架中的类库--.Net FrameWork SDK。在.Net FrameWork SDK中为网络编程提供了二个名称空间:"System.Net"和"System.Net.Sockets"。C#就是通过这二个名称空间中封装的类和方法实现网络通讯的。 首先我们解释一下在网络编程时候,经常遇到的几个概念:同转载 2007-09-22 10:49:00 · 662 阅读 · 0 评论 -
.Net开发者必需的10个工具和10个小插件[整理]
开发者必需的十个辅助工具: NUnit:编写单元测试的工具NDoc:创建代码文档的工具NAnt:生成解决方案的工具CodeSmith:代码生成工具FxCop:用于监视代码的——代码警察Snippet Compiler:小型代码段编译工具两个转换器工具:ASP.NET 版本转换器(Version Switcher)和 Visual Studio .NET 项目转换器(Project Conv转载 2007-09-28 10:22:00 · 738 阅读 · 0 评论 -
ASP.NET AJAX入门系列(3):使用ScriptManagerProxy控件
在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-Page和Content-Page中需要引入不同的脚本时,这就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManager,ScriptManager 和 ScriptManagerProxy 是两个非常相似转载 2007-09-28 10:37:00 · 563 阅读 · 0 评论 -
委托和事件
委托的声明public delegate void MyDelegate(string str);注1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种类型。是一种特殊的类型,看成是一种新的对象类型比较好理解。用于对与该委托有相同签名的方法调用。2.委托相当于C++中的函数指针,但它是类型安全的。3.委托是从System.Delegate派生,但不能转载 2007-11-13 15:28:00 · 682 阅读 · 0 评论 -
基于C#的接口基础教程
基于C#的接口基础教程之一 摘要:基于C#的接口基础教程之一 ——点击此处阅读全文发表于 @ 2007年09月22日 12:32 AM | 评论(0) | 编辑 基于C#的接口基础教程之二 摘要:基于C#的接口基础教程之二 ——点击此处阅读全文发表于 @ 2007年09月22日 12:34 AM | 评论(0) | 编辑转载 2007-11-09 15:39:00 · 842 阅读 · 0 评论 -
Attributes
Attributes是一种新的描述信息,我们既可以使用attributes来定义设计期信息(例如 帮助文件,文档的URL),还可以用attributes定义运行时信息(例如,使XML中的元素与类的成员字段关联起来)。我们也可以用attributes来创建一个“自描述”的组件。在这篇指南中我们将明白怎么创建属性并将其绑定至各种语言元素上,另外我们怎样在运行时环境下获取到attributes的一些信息转载 2007-11-09 15:20:00 · 824 阅读 · 0 评论 -
抽象工厂的一个范例
设计模式中的抽象工厂是这样一种方式:它提供一个接口,以创建多个相关联的对象,而无需具体指定其具体的类。形象地说,它是一个工厂,能够生产众多产品。当用户需要某种产品的时候,不需要去关心这个产品的具体实现,而只需要指定产品的名称,抽象工厂就能够按你的要求进行生产。这里所指的产品,在C#中我们代表的是一个实例的类。在面向对象的程序设计中,我们经常会定义许多类,并通过new对其进行实例化。一旦类对象较转载 2007-10-15 16:08:00 · 806 阅读 · 0 评论 -
.NET设计模式系列文章
最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记来写,可是写到今天,设计模式带给我的震撼,以及许多初学者朋友的热心支持,让我下定决心要把这个系列写完写好,那怕花上再多的时间也无所谓。本部分内容不断更新中。目录计划:第Ⅰ部分 开篇开篇第Ⅱ部分 创建型模式篇第1章 单件模式(Single Pattern)第2章 抽象工厂模式(Abstract Fac转载 2007-10-16 14:44:00 · 720 阅读 · 0 评论 -
NBear.net支持SqlServer,Oracle,MySql,PostgreSql
NBearMapping是NBearV4框架的组件之一,可以独立使用。可用于任意类型对象、DataRow和DataReader对象间的透明映射。推荐结合NBearLite使用。主要功能:1、任意类型对象、DataRow和DataReader对象间的透明映射;2、支持.NET的Nullable类型;3、较高的性能,性能比基于Reflection的等价转换快约50%,手动代码 vs NBearMapp转载 2007-09-30 16:59:00 · 946 阅读 · 0 评论 -
发布NBearLite v1.0.0: 提供强类型查询语法的非ORM数据访问组件 [8/2 更新至v1.0.0.9 beta - 修复NBearLite参考手册某些操作系统打开错误的问题]
NBearLite是一个基于NBear的强类型查询内核的.NET 2.0开源(BSD协议)的通用数据访问组件。由NBear.org及Teddy维护。NBearLite继承了和进一步简化扩展了NBear中类似LINQ的强类型数据库查询语法(支持CRUD简单查询及GroupBy、InnerJoin,Paging等常用复杂查询),简化了命名空间、代码架构,并进一步简化了用户使用,对已有代码也没有任何侵入转载 2007-09-30 16:56:00 · 940 阅读 · 0 评论 -
发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
NBearLite 更新至v1.0.0.6 beta 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET),支持输入、输出、返回等各种参数类型。支持Sub Query。支持Save DataTable/DataRow。详见:http://www.cnblogs.com/teddyma/archive/2007/07/20/825转载 2007-09-30 16:58:00 · 1302 阅读 · 1 评论 -
IBatis.Net学习笔记
IBatis.Net学习笔记十一:Castle.DynamicProxy的使用 摘要: Castle是另外一个框架,包含了AOP、IOC、ORM等多个方面,其中的Castle.DynamicProxy可以实现动态代理的功能,这个也是很多框架的基础。在IBatis.Net中就是使用了Castle.DynamicProxy来实现数据库连接等动态操作的。同时在NHibernet等其他框原创 2007-09-30 17:05:00 · 1995 阅读 · 1 评论 -
发布NBearLite中文版完全参考手册 + NBearLite 10分钟入门教程 + NBearLite v1.0.0.7 beta
NBearLite是一个.NET 2.0开源(BSD协议)通用数据访问组件,支持SQL Server、Oracle、MS Access,MySQL,SQLite,PostgreSQL等多种数据库的透明切换(改变数据库类型时无需修改具体的查询代码)。NBearLite实现了一套类似LINQ的强类型数据库查询语法(支持从简单的CRUD查询到GroupBy、InnerJoin,Paging,SubQue转载 2007-09-30 17:00:00 · 1123 阅读 · 0 评论 -
ASP.NET AJAX入门系列(10):Timer控件简单使用
本文主要通过一个简单示例,让Web页面在一定的时间间隔内局部刷新,来学习一下ASP.NET AJAX中的服务端Timer控件的简单使用。 主要内容 Timer控件的简单使用 1.添加新页面并切换到设计视图。2.如果页面没有包含ScriptManager控件,在工具箱的AJAX Extensions标签下双击ScriptManager控件添加到页面中。3.单击S转载 2007-09-28 10:53:00 · 847 阅读 · 1 评论 -
不应被遗忘的项目模板
1. 问题的引出在一些较大型的项目中,为了可重用,易维护,常常将系统设计为可插接式的,就是用一个框架将很多个小的组件组装起来。有时一个系统中的组件有数百个之多,而这些组件都要去调用一组类库,对应到.NET中就是有很多个程序集。如下图: 在这种结构下,在开发时我们就要建很多个项目,这些项目的内部组织方式可以根据其功能进行分类的,比如常见的有:对数据转载 2007-09-29 12:35:00 · 758 阅读 · 0 评论 -
ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件
本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档。 主要内容 在多个UpdatePanel中使用Timer控件 1.添加一个新页面并切换到设计视图。2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签转载 2007-09-28 10:55:00 · 585 阅读 · 0 评论 -
ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager,在UpdateProgress控件中,将添加一个Button,来允许用户取消异步更新,并且使用客户端脚本来显示或者隐藏进度信息。 主要内容1.通过客户端脚本取消异步更新2.通过客户转载 2007-09-28 10:47:00 · 558 阅读 · 0 评论 -
ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel其他的一些使用方法(第二篇)。 主要内容1.用编程的方转载 2007-09-28 10:44:00 · 553 阅读 · 0 评论 -
经典采集代码之C#
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;u转载 2007-09-20 08:57:00 · 629 阅读 · 0 评论 -
MD5算法之C#程序 MD5算法描述
当我要写一个MD5算法的程序时,发现中英文的语言描述都有一些不确切的地方,某些个细节 讲得不清楚,或者说很费解。最后不得不拿出C语言的源程序来调试,这对于理解算法是很不 利的。于是就总结了一下我摸索到的一些要点。 1.来历 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for compu转载 2007-09-19 13:14:00 · 2037 阅读 · 1 评论 -
匿名方法(内嵌方法)
用匿名方法定义委托的语法与前面的定义并没有什么区别。但在实例化委托时,就有区别了。下面是一个非常简单的控制台应用程序,说明了如何使用匿名方法:namespace ConsoleApplication1{ class Program { delegate string delegateTest(string val); static void Main(原创 2007-09-09 11:27:00 · 1077 阅读 · 0 评论 -
.NET技术学习:C#中的委托
委托是C#中的一种引用类型,类似于C/C++中的函数指针。与函数指针不同的是,委托是面向对象、类型安全的,而且委托可以引用静态方法和实例方法,而函数指针只能引用静态函数。委托主要用于 .NET Framework 中的事件处理程序和回调函数。一个委托可以看作一个特殊的类,因而它的定义可以像常规类一样放在同样的位置。与其他类一样,委托必须先定义以后,再实例化。与类不同的是,实例化的委托没有与之相转载 2007-09-09 11:07:00 · 578 阅读 · 0 评论 -
C# 2.0中泛型编程初级入门教程
在2005年底微软公司正式发布了C# 2.0,与C# 1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持。通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高性能并得到更高质量的代码。泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已存在C++上了,并且在C++上有大量成熟应用。 本文讨论泛型使用的一般问题,比如为什么要使用泛型、泛转载 2007-09-08 16:00:00 · 834 阅读 · 2 评论 -
用C#实现C/S模式下软件自动在线升级
转载 2007-09-11 16:33:00 · 701 阅读 · 0 评论 -
实现本地化多语言我做的一些思想,希望大家共同探讨一些.
public class BasePage : System.Web.UI.Page { #region 多语言信息 /* 语言种类 */ enum CultureInfoEnum { ZH_CN = 0x0804,//中文 ZH_TW = 0x0404,//繁体转载 2007-09-10 10:02:00 · 625 阅读 · 0 评论