2012年8月21日

文件和流(序列化)

摘要: 可以借助另一项技术把数据保存到文件--序列化。序列化是一个基于 .NET 流的高层模型。就本质而言,序列化允许你把整个活动的对象转换为一系列字节,并把这些字节写入 FileStream 之类的流对象中。以后,你可以重新读取这些字节从而重建原对象。 你的类必须符合下列条件才能使用序列化: 在类的声明前必须有 Serializable 特性 类的所有公有和... 阅读全文

posted @ 2012-08-21 10:56 SkySoot 阅读(3694) 评论(0) 推荐(0)

2012年8月20日

文件和流(使用流读写文件)

摘要: .NET Framework 在框架的多个领域里使用了流模型。流是允许你用相似的方式(作为顺序字节流)对待不同数据源的一种抽象。所有 .NET 流类从 System.IO.Stream 类继承。 流可以代表内存缓冲器中的数据、从网络连接获得的数据、从文件获得的或要写入文件的数据。 下面这段代码演示了如何创建一个新文件并用 FileStream 写入一个... 阅读全文

posted @ 2012-08-20 17:59 SkySoot 阅读(30824) 评论(5) 推荐(10)

文件浏览器

摘要: 我们实现一个简单的文件浏览器,这个示例没有通过手动循环文件或目录,而是利用 GridView 及数据绑定代码来处理所有的事情。 目录列表分别用了两个 GridView 控件创建,其中一个在另一个的上面。最上层的 GridView 显示目录,而底层的 GridView 显示文件。第二个 GridView 的ShowHeader 属性设为 false ,这样两个 Grid... 阅读全文

posted @ 2012-08-20 14:20 SkySoot 阅读(436) 评论(0) 推荐(0)

文件和流(文件系统)

摘要: 大多数 Web 应用程序依赖数据库来存储信息。在多用户场景中,数据库是无与伦比的。但还是会有不可避免的遇到访问存储在其他地方(如文件系统)的数据的问题。常见的示例有:读取其他程序产生的信息、为测试而编写的临时日志等。 使用文件系统 最基本的文件访问包括获取现有文件和目录的信息,以及执行典型的文件系统操作,如复制文件和创建目录。这些任务并没有设计真正的打开或写文... 阅读全文

posted @ 2012-08-20 10:41 SkySoot 阅读(1822) 评论(0) 推荐(0)

2012年8月16日

缓存(异步页面)

摘要: 理解了 ASP.NET 缓存的基本原理后,现在可以深入研究一下另一种提升性能的技术:异步 Web 页面。这项特别的技术可以大大提高网站的可扩展性。它尤其适合用于那些包含大量比较耗时的查询数据库代码的页面。 要理解这一技术带来的潜在利益,需要对 ASP.NET 如何处理请求有较深的理解。从本质上来说,.NET 维持一个能够处理页面请求的线程池。获得一个新的请求时,ASP.NET 从中取出一个可用的线程并用它处理整个页面。这个线程实例化页面,运行事件处理代码,返回呈现的 HTML。如果 ASP.NET 获得请求的频率很高(比它处理这些请求还要快),那么未处理的请求将被保存在队列里。如果队列也满了. 阅读全文

posted @ 2012-08-16 16:07 SkySoot 阅读(2669) 评论(0) 推荐(0)

2012年8月15日

缓存(缓存依赖)

摘要: 随着时间的流逝,数据源可能会因为其他活动而发生变化。如果你的代码使用了缓存,你可能并没有意识到这一变化而继续使用了缓存中过期的信息。为了帮助解决这一问题,ASP.NET 支持缓存依赖。 缓存依赖允许你让被缓存的项目依赖其他资源,这样当那个资源发生变化时,缓存项目就会被自动移除。 ASP.NET 有 3 种类型的依赖:依赖于其他缓存项目依赖于文件或文件夹依赖于数据库查询文件和缓存项目依赖 要创建缓存依赖,你需要创建一个 CacheDependency 对象并在添加依赖的缓存项目时使用它。例如,下面的代码创建一个缓存项目,它在一个 XML 文件被修改、删除、覆盖时自动从缓存中移除:CacheDe. 阅读全文

posted @ 2012-08-15 18:03 SkySoot 阅读(6851) 评论(0) 推荐(5)

缓存(数据缓存)

摘要: 数据缓存是最灵活的一种缓存,但需要在代码中采用额外步骤才能使用它。数据缓存的基本原则是把创建代价高的项加入到一个特殊的内置集合对象内(Cache)。 这个对象和 Application 对象相似,对应用程序中所有客户的所有请求都有效。 不过他们还是有几个主要区别:Cache 对象是线程安全的:这意味着添加或移除项目不需要显式的锁定和解锁 Cache 集合。但 Cache 集合里的对象还需要自身是线程安全的。缓存中的项目是自动移除的:因为会自动移除,所以每次使用缓存对象都需要检查是否仍在缓存中,否则会得到一个 NullRenfrenceException 异常。缓存内的项目支持依赖性:可以把缓. 阅读全文

posted @ 2012-08-15 13:50 SkySoot 阅读(12493) 评论(0) 推荐(1)

2012年8月13日

缓存(输出缓存)

摘要: 缓存是内存中保存创建代价高的信息副本的一种技术。服务器内存是有限的资源,如果在其中保存了太多的信息,某些信息就会保存到硬盘的页面文件上,这样可能会减慢整个系统。最佳的缓存策略(如内置在 ASP.NET 中的)是自我约束的。 信息的生命周期由服务器自行管理,如果缓存满了或者其他应用程序消耗了大量的内存,信息将会选择性的从缓存移除以保持性能。正是这种自我管理,使得缓存如此强大(也正因为如此,实现你自己的缓存是非常复杂的)。理解 ASP.NET 缓存 ASP.NET 有 2 种类型的缓存。你的应用程序能够也应该同时使用这 2 种类型,因为它们是互补的。输出缓存:这是最简单的缓存类型。它保存最终生成. 阅读全文

posted @ 2012-08-13 15:12 SkySoot 阅读(3617) 评论(0) 推荐(0)

2012年8月10日

GridView 高级技术

摘要: 汇总脚注 GridView 的主要目标是显示一组记录,但是你还可以加入一些有趣的信息,如汇总数据。需要如下的操作:设置 GridView.ShowFooter 为 true ,这样可以显示脚注行(但没有数据)在 GridView.FooterRow 中加入内容 本例假设正在处理产品列表,一个简单的汇总可以显示产品总价或均价。第一步是确定何时计算这个信息。如果正使用手工绑定(DataSource),那么可以在数据对象绑定到 GridView 之间就读取它的值并进行计算。但如果使用的是声明性绑定(DataSourceID),就要借助别的技术了。<asp:SqlDataSource ID=&q 阅读全文

posted @ 2012-08-10 16:44 SkySoot 阅读(2546) 评论(0) 推荐(1)

2012年8月9日

富数据控件 DetailsView 和 FormView

摘要: DetailsView 和 FormView 擅长于每次都只显示一个记录,并包含一个可选的分页按钮。 DetailsView 和 FormView 的差别在于:DetailsView 显示表中的内容,而 FormView 更加灵活,可以在无表的情况下显示内容。如果打算使用模版,FormView 会提供最大的灵活性,否则,DetailsView 会提供一个更简单的模型。DetailsView DetailsView 被设计为每次只显示一个记录,它把信息段(字段或属性)放入到一个表的单独行中。只要你把 AllPaging 设为 true,它还允许你借助分页控件从一个记录浏览到另一个。<asp 阅读全文

posted @ 2012-08-09 16:01 SkySoot 阅读(1941) 评论(0) 推荐(0)

富数据控件 LstView(模版、分组)

摘要: ListView ListView 是一个非常灵活的数据绑定控件,根据定义的模版呈现自己的内容。和 Repeater 控件不同,ListView 增加了高级特性(如选择和编辑),它们的工作方式和 GridView 相同。它以最少的标记创建快速、简洁的 Grid 。 ListView 可以使一个需要更多工作的更灵活的 GridView,也可以使一个提供了更多细节的简化版本的 Repeater(ASP.NET 1.x 中包含的控件)。 ListView 包括更多的模版:ItemTemplate所有数据项或奇数行的内容AlternatingItemTemplate偶数行的内容ItemSeparato 阅读全文

posted @ 2012-08-09 15:09 SkySoot 阅读(765) 评论(0) 推荐(0)

2012年8月8日

富数据控件 GridView(模版)

摘要: 如果希望在同一个单元格中显示多个值,或者希望在单元格中添加 HTML 标签和服务器控件而获得自定义内容的不受限的能力,就需要使用 TemplateField。 TemplateField 允许你为每一列定义一个完全定制的模版。你可以加入控件标签、HTML 元素、数据绑定表达式,可以完全按照你的方式布置一切!<asp:SqlDataSource ID="sourceEmployees" runat="server" ConnectionString="<%$ConnectionStrings:Northwind %>" 阅读全文

posted @ 2012-08-08 11:02 SkySoot 阅读(996) 评论(0) 推荐(0)

2012年8月7日

富数据控件 GridView(行选择、排序、分页)

摘要: GridView 行选择 GridView 内建支持选择。只需加入 ShowSelectButton 属性为 true 的 CommandField 列即可。CommandField 可以呈现为超链接、按钮或固定的图片。使用ButtonType 属性选择类型后,就可以通过 SelectText 属性(默认为 Select )指定文字或者通过 SelectImageUrl 属性指定图片的链接。<asp:CommandField ShowSelectButton="true" ButtonType="Image" SelectImageUrl=&quo 阅读全文

posted @ 2012-08-07 17:50 SkySoot 阅读(3839) 评论(1) 推荐(0)

2012年8月6日

富数据控件 GridView(定义列、格式化、样式)

摘要: GridView GridView 是一个用于显示数据的极为灵活的网格控件。它有很多的易用性,包括选择、分页、排序和编辑,可以很方便的通过模版扩展。 当把 GridView.AutoGenerateColumns 属性设置为 true 时,GridView 使用反射来检查数据对象并找到所有的字段或属性,以发现的次序为它们逐个创建列。 自动生成的列对于快速创建测试页面很有效,但通常缺少必需的灵活性。如果你希望隐藏列,改变它的次序,或者希望配置显示的某些方面,如格式化列的标题文字等等,在所有这些情形下,你需要把 AutoGenerateColumns 设为 false 并在 GridView 控件 阅读全文

posted @ 2012-08-06 17:46 SkySoot 阅读(16176) 评论(0) 推荐(0)

2012年7月26日

数据绑定(数据源控件 -- ObjectDataSource)

摘要: ObjectDataSource 在网页控件和数据访问组件间建立一个声明性的链接。ObjectDataSource 非常灵活,并可以和多种类型的组件一起工作。 要使用它,你的数据访问类必须遵守以下几个规则:所有逻辑必须包含在单个类中(如果使用不同的类选择和更新数据,那么必须把它们封装在一个更高层的类中)调用单个方法后,它必须提供查询结果查询结果必须是几条记录的组合,可以表现为集合、数组、DataSet、或实现 IEnumerable 的列表对象。每个记录由一个自定义对象通过公用属性公开它所有的数据可以使用实例方法或静态方法。不过,如果使用实例方法,类必须有一个默认的无参构造函数,以便 Obj. 阅读全文

posted @ 2012-07-26 13:36 SkySoot 阅读(6940) 评论(0) 推荐(0)

2012年7月25日

数据绑定(数据源控件 -- SqlDataSource)

摘要: 数据源控件包括那些所有实现 IDataSource 接口的控件。.NET Framework 包含以下数据源控件:SqlDataSource:连接到任意 ADO.NET 数据提供程序的数据源。ObjectDataSource:连接到自定义的数据访问类。(这是大型专业 Web 应用程序倾向使用的数据源控件)AccessDataSource:连接到 Access 数据库文件。用于小型网站,更好的小范围数据解决方案是使用免费的 SQL Server Express。XmlDataSource:连接到 XML 文件。SiteMapDataSource:连接到描述站点导航信息的 web.sitemap. 阅读全文

posted @ 2012-07-25 17:16 SkySoot 阅读(25024) 评论(3) 推荐(1)

数据绑定(重复值绑定)

摘要: 重复值绑定可以讲列表信息绑定到控件上。列表信息可以是自定义的对象集合(如 ArrayList 或 HashTable),也可以是行的集合(如 DataReader 或 DataSet)。 ASP.NET 带有几个支持重复值绑定的基本列表控件:所有用 <select> 标签呈现的控件:HtmlSelect、ListBox、DropDownListCheckBoxList(复选框列表) 和 RadioButtonList(单选按钮列表)BulletedList (各种符号的无序列表) 所有这些控件显示来自数据项的单值字段。这些控件共有的属性如下:DataSource它指定要显示的数据对 阅读全文

posted @ 2012-07-25 11:01 SkySoot 阅读(1178) 评论(0) 推荐(0)

2012年7月24日

数据绑定(数据绑定表达式 和 自定义表达式构造器)

摘要: 数据绑定是把数据源和控件相关联并由控件负责自动显示数据的一种特性。数据绑定的关键特征是它是声明性的而不是编程性的,这样做的好处是清晰的分离网页中的控件和代码。单值绑定 支持单值绑定的控件允许使用数据绑定表达式绑定它们的部分属性。表达式在页面的 .aspx 标记部分输入并由 <%# 表达式 %> 分隔符组成。<%# EmployeeName %>它看起来有点像脚本块,但并不是脚本块。如果试图在标签中写入任何代码,将会得到一个错误。这里唯一可做的就是加入有效的数据绑定表达式。为了计算这样的表达式,必须调用 Page.DataBind()方法。ASP.NET 会检查页面上所有 阅读全文

posted @ 2012-07-24 12:31 SkySoot 阅读(1390) 评论(0) 推荐(0)

2012年7月23日

数据组件和 DataSet

摘要: 在合理组织的应用程序中,从来都不会把数据访问代码直接嵌入到页面的后台代码中,而是被分离到一些精心设计的数据库组件中,这样它可以在多个页面甚至多个架构的系统中使用。DataSet 不是 ASP.NET 页面必需的,但它在导航、过滤、排序方面带来更多的灵活性。 还是通过一个示例来简单的演示一下创建一个数据库组件。数据库组件一般包括至少两个类:数据包类(实体类)数据库应用类(数据增删改查的执行类) 实体类 Code:(为了演示,并不包含全面的字段信息)public class EmployeeDetails{ public int EmployeeID { get; set; } pu... 阅读全文

posted @ 2012-07-23 14:27 SkySoot 阅读(1920) 评论(0) 推荐(0)

2012年7月17日

ADO.NET 基础(事务、通用的数据工厂)

摘要: 事务 事务是一组必须全部成功或者全部失败的操作。事务的目标是保证数据总能处于有效一致的状态。例如,转账操作。 事务有 4 个被称为 ACID 属性的特征,ACID 是以下概念的缩写:Atomic(原子性):事务中所有步骤必须同时成功或失败Consist(一致性):事务使底层数据库在稳定状态间转换Isolated(隔离性):每个事务都是独立的实体,一个事务不应该影响同时运行的其他事物。Durable(持久性):在事务成功前,事务产生的变化永久的存储在媒质上,同时也必须维护日志以保证出现硬件故障数据库也能得以恢复。 这些事事务的理想特征,它们未必总能达到。执行事务时 RDBMS 需要锁定数据,这样 阅读全文

posted @ 2012-07-17 14:28 SkySoot 阅读(4168) 评论(3) 推荐(2)

2012年7月16日

ADO.NET 基础(防SQL注入)

摘要: 与数据库交互的 Web 应用程序中最严重的风险之一:SQL 注入攻击。 SQL 注入是应用程序开发人员未预期的把 SQL 代码传入到应用程序的过程,它由于应用程序的糟糕设计而使攻击成为可能,并且只有那些直接使用用户提供的值构建 SQL 语句的应用程序才会受影响。 问题在于命令时如何被执行的。SQL 语句通过字符串的构造技术动态创建,文本框的值被直接复制到字符串中,他可能是这样的:string sql = "SELECT * FROM Orders where CustomerID = '" + txtID.Text + "'"; 在这个示 阅读全文

posted @ 2012-07-16 17:19 SkySoot 阅读(3154) 评论(0) 推荐(0)

ADO.NET 基础(Connection、Command、DataReader)

摘要: ADO.NET 架构ADO.NET 数据提供程序 数据提供程序是一组用于访问特定数据库,执行SQL命令并获取值的ADO.NE类,就其本质而言,数据提供程序是应用程序和数据元之间的一座桥梁。 数据提供程序包括以下几个类:Connection:建立和数据源的连接Command:执行SQL命令和存储过程DataReader:提供对查询结果的快速只读,只进的访问方式,它是保持连接的处理方式DataAdapter:从数据源获得信息填充到DataSet,依照DataSet的修改更新数据源,它是一系列表和关系的集合,它是断开连接的处理方式 ADO.NET没有提供通用的数据提供程序,它只为不同数据源和特别设计 阅读全文

posted @ 2012-07-16 15:04 SkySoot 阅读(4339) 评论(0) 推荐(0)

2012年7月13日

ASP.NET 状态管理(Application)

摘要: 应用程序状态允许保存被所有客户访问的全局对象。应用程序状态基于 System.Web.HttpApplicationState 类,该类在 Web 页面中通过内建的 Application 对象提供。 例如,可以创建一个 global.asax 事件处理程序来跟踪有多少会话被创建了,也可以使用相同的逻辑追踪某一页面的访问次数:protected void Page_Load(object sender, EventArgs e){ int count = 0; if (Application["HitCounterForOrderPage"] != null) { ... 阅读全文

posted @ 2012-07-13 15:01 SkySoot 阅读(2673) 评论(0) 推荐(0)

ASP.NET 状态管理(cookie、Session)

摘要: cookie 自定义 cookie 提供了保存备用数据的另一个选择。cookie 在用户的硬盘上创建一个小文件(临时 cookie 保存在 Web 浏览器的内存)。 cookie 的优点:对用户透明,他们不必知道需要保存哪些信息。很方便的由应用程序中的任意页面使用,甚至还可以保存很久以便在不同的访问中使用。 cookie 的限制:和查询字符串一样,只能使用简单的字符串信息如果用户找到并打开cookie文件,它们很容易被修改。因此不适合保存复杂,私有的信息或者大量的数据。部分用户还会禁用 cookie,不过大部分情况下用户会接受 cookie,因为它们被太多的站点使用。 cookie 的使用:R 阅读全文

posted @ 2012-07-13 13:51 SkySoot 阅读(7602) 评论(0) 推荐(3)

2012年7月12日

ASP.NET 状态管理(查询字符串 和 跨页回发)

摘要: 视图状态一个最大的限制是它必须和特定页面紧密绑定。当用户从一个页面浏览到另一个页面时,这些信息也就消失了。这个问题有几种解决方案,最佳的方案取决于你的项目需求。查询字符串 一个常用的办法是在 URL 中使用查询字符串传送信息。搜索引擎中频繁的使用了这种办法。http://www.google.ca/search?q=organic+gardening 查询字符串的优势: 它是轻量级的,并且不会加重服务器的负担。和跨页回发不同,查询字符串很容易在页面间传送相同的信息。 查询字符串的限制:信息仅限于简单的字符串,只能包含合法的 URL 字符。用户很容易看到信息,对因特网上的窃听者也是如此。大胆的. 阅读全文

posted @ 2012-07-12 17:48 SkySoot 阅读(2444) 评论(0) 推荐(1)

ASP.NET 状态管理(视图状态 ViewState)

摘要: 无论 Web 程序框架多么先进,它都不能改变一个事实:HTTP是一种无状态协议。 每次 Web 请求后,客户端和服务器端断开,同时 ASP.NET 引擎释放页面对象。这种架构保证了Web应用程序能够同时响应数千个并发请求而不会导致服务器内存崩溃。但其负面效应是你必须通过其他技术存储 Web 请求之间的信息并在需要的时候获取它们。视图状态 视图状态是在单个页面中保存信息的第一选择。ASP.NET Web控件也使用试图状态在回发间保存属性值。通过页面内建的 ViewState 属性,你可以把自己的数据放入到视图状态集合中,可以保存的信息类型包括简单数据类型和自定义对象。 和 ASP.NET 中大. 阅读全文

posted @ 2012-07-12 11:40 SkySoot 阅读(2803) 评论(0) 推荐(2)

2012年7月11日

扩展HTPP处理程序和HTTP管道

摘要: 应用程序事件的管道不仅仅限于对 .aspx Web窗体的请求,它还可用于创建自己的处理程序来处理自定义文件类型。为什么我们要创建自己的处理程序呢?有时候使用低层接口会非常方便,通过它们仍然可以访问 Response 和 Request 之类的有用对象,但不必使用基于控件的 Web窗体模型。通过避免完整的 Web控件模型,可以节省负载,因为 ASP.NET 不必执行很多步骤(如创建网页对象、持久化视图状态等)。HTTP 处理程序对 ASP.NET 应用程序的每个请求都由成为 HTTP 处理程序的特殊组件处理。HTTP 处理程序是 ASP.NET 请求处理框架的骨架。ASP.NET 使用不同的HT 阅读全文

posted @ 2012-07-11 13:56 SkySoot 阅读(1462) 评论(1) 推荐(1)

2012年7月10日

根据定制的 XML 文件进行随机抽取节

摘要: 此类库中的两个类可以达成这一的一些效果:每次打开网页展现不同的标语、问候语,根据语录内容随机出题,随机显示新闻等等。当然XML格式的定制或者根据不同的XML文件适当修改类字段还是必要的。 using System; using System.Xml; namespace Quotations { public class Quotatio... 阅读全文

posted @ 2012-07-10 16:56 SkySoot 阅读(485) 评论(0) 推荐(0)

配置文件 web.config 的配置节加密

摘要: ASP.NET 不对配置文件的请求提供服务,因为它们通常会包含敏感数据。不过即使有这样一个基本的限制,你可能还是希望加密配置文件节从而提高安全性。ASP.NET 支持 2 种加密方式。(1)RSARSA 提供程序允许穿件一组用于加密配置数据的密钥对。它的优点是可以在计算机间复制这些密钥。例如Web集群里的所有服务器使用相同的配置文件。RSA 公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数 阅读全文

posted @ 2012-07-10 15:36 SkySoot 阅读(1380) 评论(0) 推荐(0)

扩展 web.config 配置文件结构

摘要: 我们知道,使用<appSettings>元素可以保存应用程序使用的自定义信息。但是这个元素有两个明显的限制。1. 不能保存结构化信息,如列表或一组相关的设置。2. 不能灵活的处理各种数据类型。这个元素设置只能使用单一的字符串。幸好 ASP.NET 使用一个模块化的高度可扩展的配置模型,它允许你用自定义的节来扩展web.config和machine.config配置文件的结构。但要执行如下所示的3个步骤:1. 确定要在配置文件中保存的信息以及如何把它们组织到元素和特性。2. 对于每个新元素,都创建一个 C#类封装它的信息。3. 在配置文件里注册新节,必须使用 <configSe 阅读全文

posted @ 2012-07-10 14:00 SkySoot 阅读(2021) 评论(0) 推荐(0)

通过编程读写 web.config 中的配置节

摘要: ASP.NET 在 System.Web.Configuration 命名空间中提供 WebConfigurationManager 类,它允许在运行时从配置文件获取信息。为使用方便,应先引入 System.Web.Configuration 命名空间。AppSettings 属性 提供对应用程序配置文件的 <appSetting> 节的所有自定义信息的访问,每个设置通过一个按名称索引的集合提供。string isdn1 = WebConfigurationManager.AppSettings["ISDN1"];ConnectionStrings 属性 提供对 阅读全文

posted @ 2012-07-10 11:44 SkySoot 阅读(1405) 评论(0) 推荐(0)

2012年7月9日

Machine.config 文件中节点<machineKey>的强随机生成

摘要: <machineKey>这个节允许你设置用于加密数据和创建数字签名的服务器特定的密钥。ASP.NET自动使用它来保护表单验证Cookie,你也可以将它用于受保护的视图状态数据。同时,这个密钥还用于验证进程外的会话状态提供程序。 如果你在使用Web集群并在多台计算机上运行同一个应用程序,如果对页面的请求由一台计算机处理,而页面回发又由另一台计算机处理,第二个服务器就不能解密来自第一台服务器的视图状态和表单Cookie。这个问题之所以会发生,是因为两台服务器使用了不同的密钥。 要解决这个问题,你必须显式的在machine.config文件中定义这个密钥:<machineKey v 阅读全文

posted @ 2012-07-09 17:26 SkySoot 阅读(4227) 评论(0) 推荐(3)

2012年7月6日

Html服务器控件的 ServerChange 和 ServerClick 事件

摘要: Web控件可以在设计界面选中控件按属性除的闪电图标选择绑定事件,但是Html服务器控件不行,必须显式的,手动的在前台页面添加。 Option Text 后台代码: using System;using System.Web.UI;using System.Web.UI.WebControls;public partial class Chapter04_ServerClick_ServerChange : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) ... 阅读全文

posted @ 2012-07-06 16:46 SkySoot 阅读(2112) 评论(0) 推荐(0)

使用HtmlControl动态创建一个表格

摘要: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;public partial class Chapter04_CreateTableByCode : System.Web.UI.Page{ // 使用Html服务器控件创建一个5行4列的表格 protected void Page_Load(object... 阅读全文

posted @ 2012-07-06 15:46 SkySoot 阅读(1117) 评论(0) 推荐(0)

2012年7月4日

Stream Part.7

摘要: NetworkStream 和先前的流有所不同,NetworkStream 的特殊性可以在它的命名空间中得以了解(System.Net.Sockets),既然是在网络中传输的流,那必然有某种协议或者规则约束它,不错,这种协议便是Tcp/IP协议。如果服务器和客户端之间是基于TCP连接的,他们之间能够依靠一个稳定的字节流进行相互传输信息,这也是NetworkStream的最关键的作用,有了这个神奇的协议,NetWorkStream便能向其他流一样在网络中(进行点对点的传输),这种传输的效率和速度是非常高的(UDP也很快,稍后再介绍)。1. NetworkStream 只能用在具有Tcp/IP协议 阅读全文

posted @ 2012-07-04 11:58 SkySoot 阅读(565) 评论(0) 推荐(0)

Stream Part.6

摘要: BufferedStream 一般进行对流的处理时系统肩负着IO所带来的开销,调用十分频繁,这时候就应该想个办法去减少这种开销,而且必须在已有Stream进行扩展,有了以上2点需求,那么我们今天的主题,BufferedStream闪亮登场了,BufferedStream能够实现流的缓存,换句话说也就是在内存中能够缓存一定的数据而不是时时给系统带来负担,同时BufferedStream可以对缓存中的数据进行写入或是读取,所以对流的性能带来一定的提升,但是无法同时进行读取或写入工作,如果不使用缓冲区也行,BufferedStream能够保证不用缓冲区时不会降低因缓冲区带来的读取或写入性能的下降。缓 阅读全文

posted @ 2012-07-04 09:23 SkySoot 阅读(880) 评论(0) 推荐(0)

2012年7月3日

Stream Part.5

摘要: 什么是 MemoryStream ? MemoryStream 是内存流,为系统内存提供读写操作,由于MemoryStream是通过无符号字节数组组成的,可以说MemoryStream的性能可以算比较出色,所以它担当起了一些其他流进行数据交换时的中间工作,同时可降低应用程序中对临时缓冲区和临时文件的需要,其实MemoryStream的重要性不亚于FileStream,在很多场合我们必须使用它来提高性能。MemoryStream和FileStream的区别 FileStream主要对文件进行一系列的操作,属于比较高层的操作,但是MemoryStream却很不一样,它更趋向于底层内存的操作,这样能 阅读全文

posted @ 2012-07-03 15:50 SkySoot 阅读(387) 评论(0) 推荐(0)

2012年7月2日

Stream Part.4

摘要: 如何去理解 FileStream ? 我们磁盘的中任何文件都是通过2进制组成,最为直观的便是记事本了,当我们新建一个记事本时,它的大小是0KB, 我们每次输入一个数字或字母时文件便会自动增大4kb,可见随着我们输入的内容越来越多,文件也会相应增大,同理当我们删除文件内容时,文件也会相应减小。你肯定会问:谁将内容以怎么样的形式放到文件中去了?好问题,还记得第一篇流的概念么?对了,真实世界的一群鱼可以通过河流来往于各个地方,FileStream也是一样,byte可以通过FileStream进行传输,这样我们便能在计算机上对任何文件进行一系列的操作了。FileStream 的重要性 FileStre 阅读全文

posted @ 2012-07-02 12:27 SkySoot 阅读(422) 评论(0) 推荐(1)

2012年6月29日

Stream Part.3

摘要: 为何介绍TextWriter? 就像上篇讲述的一样,对于重要的基础技术,一定要刨根问底,这样在面对将来可能很复杂的业务或技术时才能游刃有余,甚至可以创新出新的解决方案,言归正传,想了解StreamWriter 必须了解其父亲TextWriter的结构和使用方法。 那么微软为什么要创建立这个抽象类呢?看下图 的确可以这样理解C,C++ ,XAML,Html一切可以写在文本上写的语言都可以用Text这个词在抽象,(千万别小看记事本,它才是元老)。 今后我们可以自定义一些自己Writer类来实现我们特定的写功能。现在我们只要理解TextWriter是一个抽象的文本写入器,可以在文本上写入我们想要的格 阅读全文

posted @ 2012-06-29 16:59 SkySoot 阅读(415) 评论(0) 推荐(0)

Stream Part.2

摘要: 什么是 TextReader ? TextReader是一个对于Text的读取器,可是又是怎么读取的呢?当然是通过连续的字符进行读取。 为什么在介绍StreamReader之前,要搞这个东东? 答案其实很简单:他们两个就是父子关系。TextReader 的常用属性和方法 想象一下 Text 这个词的范围,它囊括了许多的文件类型,我们可以在记事本上使用任何语言(英语,中文,c# ,天书,javascript,jquery,xml,xaml,sql,c++……),如此多的语言文本归根结底还是通过一个个char组成的,所以微软构造出了TextReader这个抽象类。对于TextReader我们无法直 阅读全文

posted @ 2012-06-29 15:48 SkySoot 阅读(314) 评论(0) 推荐(0)

导航