2013年1月6日

ASP.NET AJAX(服务器控件 UpdatePanel、Timer、UpdateProgress)

摘要: ASP.NET AJAX 对 Web 服务特性为客户端代码访问服务器提供了一个可贵的窗口。但你要做大多数的困难任务,必须精心打造 Web 方法、合适的时机调用它们、适当更新页面、除了 JavaScript 什么都不能用。对于复杂的呈现,这个过程就十分单调。 由于这个原因,ASP.NET 提供了一个更高层的服务器模型,它提供可以直接在 Web 窗体里使用的控件和组件,你可以完全使用服务器端代码工作。 ASP.NET AJAX 控件会自动注入客户端脚本,在幕后使用 ASP.NET AJAX 脚本库。与手动编写 js 代码相比,潜在的缺点是降低了灵活性。 在这篇文章里,我将介绍 ASP.NET 框. 阅读全文

posted @ 2013-01-06 14:59 SkySoot 阅读(6765) 评论(1) 推荐(1)

2012年12月25日

ASP.NET AJAX(服务器回调)

摘要: 如果只用纯粹的 js ,你必须弥补 ASP.NET 服务器端抽象和有限的 HTML DOM 之间的鸿沟,这不简单,没有 VS 的智能提示和调试工具,编写无错的代码和诊断错误都非常困难。由于各种突发事件及实现的差异,编写能够在所有现代浏览器上都正确运行的脚本代码更是一项很大的挑战。 ASP.NET 的客户端回调机制部分解决了这类问题,它们提供一个服务器端模型,让你能够生成某些需要的客户端代码(使用 XMLHttpRequest 对象执行异步请求的代码)。但这个模型还很不完美,接口略显笨拙,和页面模型的整合不太平滑且没有数据类型。你必须自行把传输信息序列化为字符串,还必须编写 js 代码来接收回. 阅读全文

posted @ 2012-12-25 16:22 SkySoot 阅读(2139) 评论(0) 推荐(0)

2012年12月21日

JavaScript And Ajax(深入了解客户端回调)

摘要: 有必要指出,执行回调时目标页面实际上开始执行修改的生命周期。大多数控件事件不会执行,但 Page.Load 和 Page.Init 事件处理程序会执行。Page.IsPostBack 属性将返回 true,但检查 Page.IsCallback 属性可区分回调还是回传。 当前客户端回调实现的唯一问题是编程接口还非常简单,特别是它要求只能使用字符串交换信息。现在 A... 阅读全文

posted @ 2012-12-21 16:09 SkySoot 阅读(372) 评论(0) 推荐(1)

JavaScript And Ajax(在客户端回调中使用 Ajax)

摘要: 采用 Ajax 的方式,可以创建令人印象深刻、高度响应的网页。然而,编写客户端代码非常耗时。VS 不能为之提供丰富的设计体验,也没有调试工具追踪那些松散的 js 语言中不可避免的错误;甚至你成功完成了工作,还要在各种浏览器上进行测试,除非你非常熟悉各种浏览器对 js 支持的微小差别。 由于这些原因,许多开发人员不手工编写客户端脚本,甚至在设计 Ajax 风格的页面时也... 阅读全文

posted @ 2012-12-21 13:16 SkySoot 阅读(883) 评论(0) 推荐(0)

2012年12月20日

JavaScript And Ajax(理解 Ajax)

摘要: 开发人员使用 js 代码的另一个主要原因是避免回传。考虑 TreeView 控件,用户能随意展开或收合节点。展开节点时,TreeView 通过 JavaScript 从服务器获取子节点的信息并插入新节点。没有 JavaScript,页面就只能回传以重建 TreeView。用户会看到略微缓慢的延迟,页面甚至可能重新滚动回到开始,在服务器端需要浪费大量时间序列化和反序列化每个回传的视图状... 阅读全文

posted @ 2012-12-20 15:56 SkySoot 阅读(504) 评论(0) 推荐(0)

2012年12月19日

JavaScript And Ajax(框架)

摘要: 框架能够在同一个浏览器窗口中显示多个 HTML 文档,可用于那些在页面上保持可见的导航控件(如带链接的菜单),还能让你能够独立的滚动内容框架,同时保持导航控件的位置固定不变。 在现代网站设计里,框架被认为已经过时了。它有一系列的缺点: 缺乏对各种屏幕尺寸和设备(如手机)的良好支持。 浏览的 URL 反映了框架页面,但不能提供每个框架加载的文件的任何信息。... 阅读全文

posted @ 2012-12-19 16:08 SkySoot 阅读(358) 评论(0) 推荐(0)

JavaScript And Ajax(带有 js 的控件)

摘要: JavaScript 在很多高级 Web 控件里起着很重要的作用,服务器端的面向对象编程和客户端的 js 修饰,可以使你两全其美。 弹出窗口 弹出窗口是 Web 最扰人的特性之一。通常,它们派发广告,但有时也会出于正当的目的提供有用的信息,或邀请用户参加调查和促销。一个相关的变体是跃出式(pop-under)窗口,它在当前窗口下面显示一个新窗口。 ... 阅读全文

posted @ 2012-12-19 14:40 SkySoot 阅读(1524) 评论(0) 推荐(0)

2012年12月17日

JavaScript And Ajax(呈现脚本块、脚本注入攻击)

摘要: 呈现脚本块 目前为止的 js 都是直接插入页面 .aspx 部分的静态 <script> 块。然而,使用公开 ClientScriptManager 对象的 Page.ClientScript 属性呈现脚本通常更加灵活。 ClientScriptManager 提供了几个管理脚本块的有用方法,其中两个最有用的方法如下: RegisterClientScrip... 阅读全文

posted @ 2012-12-17 18:03 SkySoot 阅读(5546) 评论(0) 推荐(0)

JavaScript And Ajax(JavaScript 基本示例)

摘要: 这里通过一个示例,演示使用 js 为费时的页面改善用户体验。 创建 JavaScript 页面处理器 多少次单击网页后,只看到 IE 的那个小球不停的转动,好像永不停息?是你的因特网连接速度下降了吗?和后端系统的连接有错误了吗?系统比较慢?这些问题通常会使新的基于 Web 的解决方案变得复杂。 遇到这种情况,应向用户提供进度信息,让他们知道系... 阅读全文

posted @ 2012-12-17 14:58 SkySoot 阅读(644) 评论(0) 推荐(0)

2012年12月14日

JavaScript And Ajax(JavaScript 本质)

摘要: ASP.NET 提供了一个基于服务器的富编程模型,这种回传架构能够在服务器端用面向对象程序设计语言完成所有工作。可以确保代码更安全并且能够和所有浏览器兼容。 不过,回传架构也有缺点。页面回传总是带来微小但确实可感觉得到的额外负载,它不能及时响应鼠标移动和按键事件。此外,某些任务(如弹出窗口、提供实时状态信息、框架间通信)需要浏览器的交互,不可能通过服务器端编程完成。 ... 阅读全文

posted @ 2012-12-14 16:45 SkySoot 阅读(1063) 评论(0) 推荐(1)

2012年12月13日

图形、GDI + 和图表(Chart 控件)

摘要: 创建图表是最常见的图形任务。ASP.NET Chat 控件提供了众多的图表类型和配置选项。对于 ASP.NET 3.5 SP1,Chart 控件可以下载使用,4.0 中已经包括了。 Chart 控件有众多不同特性及选项,这里不可能全面讲述。如果需要一整套示例,可参考 http://code.msdn.microsoft.com/mschart 的示例代码库,它包含了 ... 阅读全文

posted @ 2012-12-13 16:45 SkySoot 阅读(6439) 评论(0) 推荐(1)

2012年12月11日

图形、GDI + 和图表(在网页上嵌入动态图形)

摘要: 使用 Image.Save()方法将一个图像保存到一个响应流时,会覆盖所有 ASP.NET 要用到的控件。这有一个解决方案,可以使用 HTML 的 <img> 标签或者 Image Web 控件来链接到一个生成动态图像的 .aspx 文件。 创建 GDI+ 图像通常比提供一个静态图像慢一个数量级,因此,使用 GDI+ 多次重复绘制图形按钮或其他元素绝不是一个好主意。(... 阅读全文

posted @ 2012-12-11 18:06 SkySoot 阅读(2027) 评论(0) 推荐(0)

2012年12月7日

图形、GDI + 和图表(使用 GDI+ 画图)

摘要: GDI+ 是一种通用的面向对象的 .NET 应用程序绘图模型。GDI+ 在 .NET 里有很多用途,包括向打印机输出文档、在一个 Windows 应用程序里显示图形、以及在网页里呈现图形。 你可以创建采用了用户指定信息的富图形,也可以基于数据库记录动态呈现图表或图形。 GDI+ 编程的核心是 System.Drawing.Graphics 类。它封装了... 阅读全文

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

2012年12月6日

图形、GDI + 和图表(ImageMap)

摘要: ImageMap 控件 网页通常包含复杂的图形,当单击图形的不同部分时,会有不同的行为。ASP.NET 开发人员能够使用多种技巧来实现这个设计: 拼接的图像控件。当多个无边界的图像一张挨一张仔细的定位后,看起来就像是一幅图。于是,你可以分别处理每一个控件的单击,这种方式对于已经定义矩形边界的按钮和导航控件很有效。 ImageButton 。当 ImageButton ... 阅读全文

posted @ 2012-12-06 15:33 SkySoot 阅读(1135) 评论(0) 推荐(0)

2012年12月5日

自定义服务器控件(扩展现有 Web 控件)

摘要: 很多情况下,你并不需要从头开始创建一个新控件。有些功能也许在 ASP.NET 的 Web 控件的基本集合中已经存在了。所有这些控件都是普通类,你可以组合它们(使用其他类的实例来创建一个新类)或者继承它们(扩展一个现存类和改变它的功能来创建一个新类)。 组合控件 ASP.NET 提供了这样一个功能,即允许你从其他现存的 Web 控件构建你的控件类。 ... 阅读全文

posted @ 2012-12-05 17:52 SkySoot 阅读(485) 评论(0) 推荐(1)

2012年12月4日

自定义服务器控件(控件状态和事件)

摘要: ASP.NET 使用 Web 控件在 HTTP 和 HTML 的底层细节之上创建了一个面向对象的抽象层。这个抽象的两个基础是视图状态(多次请求之间保存信息的机制)和回传(使页面把表单数据集合回传到相同 URL 的技术)。视图状态 控件需要保存状态信息,就像网页所做的那样。所有的控件都提供了 ViewState 属性来让你存取信息,就像你对一个网页所做的那样。在一次回传之后,你需要使用 ViewState 集合来恢复私有信息。 一个常用的 Web 控件设计模式是:在属性过程中访问 ViewState 集合。 以我们前面所说的 LinkWebControl 为例,那个控件不使用视图状态,如果通过. 阅读全文

posted @ 2012-12-04 15:11 SkySoot 阅读(2271) 评论(0) 推荐(3)

2012年11月28日

自定义服务器控件(处理不同的浏览器)

摘要: 不同的浏览器所支持的功能大相径庭,要创建一个兼容所有浏览器,又提供最好的用户体验的应用程序是一项很大的挑战。ASP.NET 提供了一些新的功能来帮助你为不同的设备编写正确的标记类型。 HtmlTextWriter ASP.NET 对客户端的标记类型作了一个大致的区分,因此有的客户端见到 HTML 3.2,有的见到 HTML 4.0,而有的见到 XHTML 1.... 阅读全文

posted @ 2012-11-28 14:47 SkySoot 阅读(1026) 评论(0) 推荐(1)

2012年11月22日

自定义服务器控件(入门)

摘要: 每一种自定义控件都有它的优缺点。以前曾介绍过用户控件。用户控件比自定义服务器控件更容易创建,但服务器控件的功能更强大。 服务器控件在两个方面比用户控件强得多: 服务器控件允许完全控制所生成的 HTML 服务器控件提供更好的设计时支持 所有的 ASP.NET Web 控件都是服务器控件。现在,你将学会如何创建自己的服务器控件。 ... 阅读全文

posted @ 2012-11-22 16:45 SkySoot 阅读(1685) 评论(0) 推荐(0)

2012年11月13日

网站导航(Menu 控件)

摘要: Menu 是另一个支持层次化数据的富控件。它可以绑定到数据源(声明性的)或编程使用 MenuItem 对象来填充。 MenuItem 类不像 TreeNode 类那样丰富,它不支持复选框,也不能通过编程设置它们的 折叠/展开 状态。不过,它们也有很多相似的属性,包括那些用于设置图片、确定条目是否可选以及指定目标链接的属性。 MenuItem 的属性: ... 阅读全文

posted @ 2012-11-13 16:03 SkySoot 阅读(5477) 评论(0) 推荐(0)

2012年11月9日

网站导航(TreeView 控件)

摘要: TreeView 是让人印象最深刻的导航控件之一,不仅因为它允许呈现富树视图,还因为它支持按需填入树的部分(不需要刷新整个页面)。但最重要的是,它支持很多样式来改变它的外观。 通过几个基本的属性,可以把 TreeView 从一个帮助主题索引变成一个文件或文件夹目录列表。实际上,TreeView 根本不必呈现为一棵树,通过一点点样式设置,它可以呈现非缩进层次的数据,比如... 阅读全文

posted @ 2012-11-09 17:58 SkySoot 阅读(3751) 评论(0) 推荐(2)

2012年11月7日

网站导航(URL 映射和路由)

摘要: 站点地图的设计基于一个简单的原则:每个入口具有一个单独的 URL。虽然可以增加查询字符串区分 URL,但在很多网站 Web 表单和站点地图入口是一一对应的。 当这个原则不适用时,ASP.NET 有两个工具可以解决这一问题: URL 映射。它以整洁、合乎逻辑的方式把 URL 映射到其他地址。(适合解决一次性的重定向问题,例如,映射新近移动过的页面) UR... 阅读全文

posted @ 2012-11-07 15:53 SkySoot 阅读(3566) 评论(0) 推荐(0)

2012年11月1日

网站导航(自定义站点地图)

摘要: 目前你看到的所有的站点地图中为节点所提供的信息只有标题、描述、URL。然而,XML 的结构是开放的,也就是说,你可以自由的插入含有你自己数据的自定义特性。例如,你可以添加指定目标框架的特性或指定链接需要在弹出窗口中打开。现在,唯一的问题是你必须自行处理这些信息。换句话说,你必须配置用户界面来让它使用这些额外信息。 下面的代码显示了一个使用 Target 特性指定... 阅读全文

posted @ 2012-11-01 15:42 SkySoot 阅读(1826) 评论(0) 推荐(0)

2012年10月25日

网站导航(站点地图)

摘要: 一个网站,需要借助某个导航系统来帮助用户从一个页面跳转到另一个页面。我们知道,可以利用母版页帮助网站定义一个包含导航栏的模板,不过,仍然要由你来为导航栏填入内容。 当然可以利用 ASP.NET 的控件集实现几乎所有的导航系统,但这需要大量的工作!幸好 ASP.NET 包括一组导航功能,它们可以大大简化你的工作。 和 ASP.NET 所有的最佳功能一样,... 阅读全文

posted @ 2012-10-25 16:42 SkySoot 阅读(3699) 评论(0) 推荐(0)

2012年10月18日

网站导航(多视图页面:MultiView 和 Wizard 控件)

摘要: 导航组件是所有网站的基本组件。虽然把用户从一个网页转换到另一个网页非常的容易,但创建一个整个网站适用的统一的导航系统就不那么简单了。虽然可以通过少量的链接(大量的工作)建立自己的导航系统,但何不使用 ASP.NET 已经有的内建导航系统? 本章涉及 3 个主要概念: MultiView 控件和 Wizard 控件。它们可以把若干个步骤浓缩到一个页面里,把几页的... 阅读全文

posted @ 2012-10-18 16:43 SkySoot 阅读(4130) 评论(1) 推荐(0)

2012年10月16日

主题和母版页(母版页)

摘要: 标准化网站布局 标准化网站布局的格式只是整个过程的一部分,你还需要保证通用的元素,如网站的标题、网站的导航控件等在每个页面里都出现在相同的位置。解决这一问题的关键在于创建一个可以重复应用到整个网站的简单而灵活的布局。有 3 个基本办法可以选择: 用户控件。用户控件时标准化通用页面元素的优秀方式,但是,它们自身并不能解决页面布局的问题,因为没有办法保证用户控件在所有页面中都被... 阅读全文

posted @ 2012-10-16 15:58 SkySoot 阅读(18255) 评论(2) 推荐(4)

2012年10月10日

主题和母版页(层叠样式表、主题)

摘要: 整合网站的第一步是采用一组一致的可视化样式。CSS 为格式化 Web 页面提供了跨平台的解决方案,它可以和 HTML 或则 XHTML 一起工作并几乎被所有的现代浏览器支持。 创建 CSS 层叠样式表 使用 CSS 时,可以利用样式表定义一组预定义格式,然后通过 CssClass 属性把这些样式表链接到适当的控件。样式表由规则组成,每个规则定义了 Web 页面... 阅读全文

posted @ 2012-10-10 15:21 SkySoot 阅读(3072) 评论(0) 推荐(0)

2012年9月4日

用户控件

摘要: 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗体框架中: 用户控件:它是一小段页面,可以包括静态 HTML 代码和 Web 服务器控件。用户控件的好处是一旦创建了它,就可以在同一个 Web 应用程序的多个页面重用它。用户控件可以加入自己的属性,事件和方法。 自定义服务器控件:它是被编译的类,它通过编程生成自己的 HTML 。服务器控件总是预编译到 D... 阅读全文

posted @ 2012-09-04 17:02 SkySoot 阅读(8960) 评论(2) 推荐(5)

2012年8月29日

XML(XML 和 ADO.NET)

摘要: ADO.NET 通过非连接的 DataSet 和 DataTable 支持 XML。这两个对象都能通过内建的智能把行的集合转换成 XML 文档。 DataSet 的所有 XML 方法: GetXml() 得到以 XML 格式表现的 DataSet 中的数据并将其作为单个字符串 WriteXml() ... 阅读全文

posted @ 2012-08-29 11:05 SkySoot 阅读(1492) 评论(0) 推荐(0)

2012年8月28日

XML(数据绑定)

摘要: 和 SqlDataSource 以及 ObjectDataSource 相似,XmlDataSource 控件以声明性的方式工作,不过也有两个主要的不同点: XmlDataSource 不是从数据库或数据访问类而是从 XML 文件获取信息,它为其他控件的数据绑定提供一个 XmlDocument 对象。 XML 内容是分层的且可有无限多层。而 SqlDataSource... 阅读全文

posted @ 2012-08-28 17:48 SkySoot 阅读(5457) 评论(0) 推荐(0)

2012年8月27日

XML (转换)

摘要: XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种用于创建样式表的基于 XML 的语言。样式表(转换)是特殊的文档,可以在 XSLT 处理器的帮助下把 XML 文档转换成其它文档。(不要和 CSS 混淆,CSS 是用来格式化 HTML 的标准)。 基本的样式表 XSL 是一个复杂的标准,事实上,它可以被看做是一个真正... 阅读全文

posted @ 2012-08-27 15:45 SkySoot 阅读(2438) 评论(0) 推荐(0)

XML 搜索和验证(XmlDocument、XPath to XmlDocument、LINQ to XDocument)

摘要: 对数情况下,并不需要处理整个 XML 文档,只是从中抓取部分信息,使用的方法依据使用的类。 XmlDocument 简单情况:使用 GetElementsByTagName() 复杂情况:使用 XPath 语言。 XDocument 简单情况:内建的搜索方法(如 Elements()) ... 阅读全文

posted @ 2012-08-27 13:34 SkySoot 阅读(2287) 评论(0) 推荐(0)

XML 读写(XmlDocument、XPathNavigator、XDocument)

摘要: 内存中的 XML 处理 基于流的 XML 处理提供了最小的负载,但也只提供了最小的灵活性。在很多 XML 处理场景里,你不会在这么低的层次下工作。 对内存中的 XML 的处理则更加方便,但没有单一、标准的方式。如下所有的类都支持对 XML 的读取和导航: XmlDocument :它是 XML 数据的标准化接口,但对时间要求比较多。 XPa... 阅读全文

posted @ 2012-08-27 10:53 SkySoot 阅读(6380) 评论(0) 推荐(0)

2012年8月24日

XML 读写(基于流的操作)

摘要: 基于流的 XML 处理 .NET Framework 允许你使用 System.Xml 命名空间(以及它的子命名空间)中的一组类来操作 XML 数据。有两个基于流的类:XmlTextReader 和 XmlTextWriter ,它们对简单的 XML 处理非常有效。写 XML 文件 .NET 通过两种方式把 XML 数据写入文件:可以在内存中使用 XmlDocument 或 XDocument 类创建文档,结束时把它写入文件。用 XmlTextWrite 直接把文档写入流。在你写数据的时候会逐个节点输出数据。上述 3 个类都允许把信息写入任意的流,因此XML数据也可以写入到其他存储位置,如数据 阅读全文

posted @ 2012-08-24 15:45 SkySoot 阅读(4049) 评论(0) 推荐(0)

XML(简介)

摘要: XML(可扩展标记语言)在 20 世纪 90 年代后期登上舞台后,就一直是众多活动和狂热思索的焦点。XML 只是基于普通文本,但却提供了几乎可以在任何两个应用程序间共享数据的方式。 虽然 XML 在概念上很简单,但对 XML 的处理却通常很烦琐(需要编写大量重复性的代码)和复杂(很多容易被忽视的细节导致错误)。 什么时候使用 XML? ... 阅读全文

posted @ 2012-08-24 15:36 SkySoot 阅读(3652) 评论(0) 推荐(1)

2012年8月23日

LINQ(QueryExtender 控件)

摘要: 指定 EntityDataSource 控件的 where 子句的另一个办法是使用 QueryExtender 控件。QueryExtender 控件的值非常的灵活。这个控件支持一系列选择数据的方法,其中很多是直接使用 EntityDataSource 的 where 子句很难或者根本没有办法实现的。 QueryExtender 使用声明式语法指定过滤器,在熟悉它需要... 阅读全文

posted @ 2012-08-23 16:18 SkySoot 阅读(1108) 评论(0) 推荐(1)

LINQ(EntityDataSource控件)

摘要: ASP.NET 也有一个 EntityDataSource 控件,可以用它自动完成绝大部分任务。EntityDataSource 适合和之前提到的实体数据模型生成器一起来生成快速开发的应用程序。和 SqlDataSource 非常相似,使用 EntityDataSource 时,不需要编写任何代码,甚至 EntityDataSource 要更进一步,不仅不需要编写 C# 代码,还可以... 阅读全文

posted @ 2012-08-23 15:00 SkySoot 阅读(5240) 评论(1) 推荐(1)

LINQ(数据库操作增、删、改及并发管理)

摘要: 本文将演示如何通过 Entity Framework 数据模型创建、修改、删除数据库记录。 插入 为了在数据库里创建新纪录,需要创建相应实体类的新实例,填充字段,把实体类加入 ObjectContext 派生类维护的 EntityCollection,然后调用 SaveChanges()写入新纪录: Customer cust = new C... 阅读全文

posted @ 2012-08-23 12:05 SkySoot 阅读(14895) 评论(0) 推荐(1)

2012年8月22日

LINQ(LINQ to Entities)

摘要: LINQ to Entities 是 LINQ 中最吸引人的部分。它让你可以使用标准的 C# 对象与数据库的结构和数据打交道。使用 LINQ to Entities 时,LINQ 查询在后台转换为 SQL 查询并在需要数据的时候执行,即开始枚举结果的时候执行。LINQ to Entities 还为你获取的所有数据提供变化追踪,也就是说,可以修改查询获得的对象,然后整批同时把更新提交到... 阅读全文

posted @ 2012-08-22 16:28 SkySoot 阅读(22764) 评论(4) 推荐(7)

2012年8月21日

LINQ(LINQ to DataSet)

摘要: DataTable.Select()方法使用和 SQL 相似的过滤语法从 DataTable 中提取你关心的记录,虽然 Select()可以很好的工作,但它还是有一些明显的限制。首先,它是基于字符串的,也就是说可能的错误不能在编译的时候发现。其次,它的过滤功能也很有限,它没有提供 LINQ 操作符能够提供的其他特性,如排序、分组以及投影。 使用 LINQ to Dat... 阅读全文

posted @ 2012-08-21 17:35 SkySoot 阅读(7727) 评论(0) 推荐(1)

LINQ(隐式表达式、lambda 表达式)

摘要: .NET 中一项突破性的创新是 LINQ(Language Integrated Query,语言集成查询),这组语言扩展让你能够不必离开舒适的 C# 语言执行查询。 LINQ 定义了用于构建查询表达式的关键字。这些查询表达式能够对数据进行选择、过滤、排序、分组和转换。借助各种 LINQ 扩展,你可以对不同的数据源使用相同的查询表达式。 虽然你可以在任... 阅读全文

posted @ 2012-08-21 16:12 SkySoot 阅读(21867) 评论(4) 推荐(8)

导航