自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (7)
  • 收藏
  • 关注

翻译 实现基于数据结构的语言

实现基于数据结构的语言 创建任何 DSL 都应该从定义需要解决的问题开始。这里,我们需要定义一个 DSL 库(有时也称为组合库,combinators library),用于二维图形,这是一个很明显的选择。这个示例演示如何用大量简单的基本图形构建出复杂的结构。在计算机屏幕上的图像本质上就是线条和多边形的集合,尽管显示出来的图形可能极其复杂。这个示例用四个模块表现:第一,清单 12-1,提供

2014-05-30 15:09:19 1055

翻译 数据结构成为小语言

数据结构成为小语言 面向语言的开发并不一定意味着,一定要自己开发解析器或编译器。这就是说,我们将在下一章学习创建解析器,然后,把这样的解析器和本章介绍的方法照结合起来,去构建一个简单的编译器。可以通过创建数据结构和函数或模块,就能够做很多事,数据结构描述了准备做什么,而函数或模块定义了如何解释结构。几乎可以用任何语言创建数据结构来表示一个程序,但是 F# 更适合。F# 的文字列表和数组

2014-05-28 15:15:59 1015

翻译 第十二章 面向语言编程

第十二章 面向语言编程 在这一章,首先了解什么是面向语言的编程(language-oriented programming),许多人都在用,定义也各不相同。我们将主要讨论它的优点、不足;然后,再看F# 中面向语言编程的几种不同方法,这些方法包括使用 F# 文字创建“小语言”(little languages),使用 F# 引用(quotations),本章的大部分将讨论创建一种语言的示例,

2014-05-28 10:16:56 1141

翻译 托管 WCF 服务

托管 WCF 服务 WCF 中,最让我感到兴奋的方面是它可以把服务托管在任意程序中,而不一定是网站服务器。这开启了一种可能性,即创建的服务,其实现可以动态改变的能力,因为它们能够托管在 fsi.exe。为了使前面的示例能够运行在 fsi.exe,还需要对它做一些修改,但修改相当简单。清单 11-13 展示了清单 11-9修改后的版本,它能够运行在 fsi.exe。 清单 1

2014-05-27 15:08:25 1859

翻译 Windows 通信基础(Windows Communication Foundation)

Windows 通信基础(Windows Communication Foundation) Windows 通信框架(Windows Communication Framework,WCF)的目标是提供创建分布式应用程序的统一模型,其概念是创建一个服务,有点类似于网站服务,包含想要公开的功能,然后,以各种不同方法公开这个服务。例如,网站服务总是传递 XML 消息,但是,可以把 WCF

2014-05-26 16:05:17 2095

翻译 创建网站服务(Web Services)

创建网站服务(Web Services) 网站服务(Web Services)是基于一些标准的(通常是 SOAP),使应用程序能够通过HTTP 交换数据。网站服务由网站方法(web methods)组成,公开这些方法,可以在网络上运行;某种程度上,可以把它看作是 F# 的函数,因为网站方法有名字,有参数,也返回结果,参数和结果用元数据(metadata)进行描述,网站服务把这些也都公开了,

2014-05-23 20:52:47 1399

翻译 异步使用 HTTP

异步使用 HTTP 到现在,我们所关注的还只是通过 HTTP 一次检索一个文档,或进行一次更新,在这种情况下,使用异步编程模式就没什么意义了。然而,我们通常的想法是一次能进行多个 HTTP 请求,这样,就可以从多个源检索、汇总数据,在这种情况下,使用 F# 的异步工作流,我们第一次碰到是在第十章“异步编程”一节,就能极大提高应用程序的性能。事实上,我们可能还希望能得到比使用本地磁盘更高的性

2014-05-22 17:28:22 2497

翻译 使用 HTTP Post

使用 HTTP Post 我们已经看过使用HTTP 协议检索数据的两种不同方法,下面,我们将学习如何使用上HTTP 进行更新。为了能够让客户端发送数据,HTTP协议提供了POST 动词,它把客户端发送数据作为 HTTP 请求体的一部分。下一步是使用流行的社交网络工具推特进行状态更新,地址:http://twitter.com(见清单 11-5)。 清单 11-5 使用 HTTP

2014-05-22 11:35:51 1310

翻译 使用 HTTP 访问谷歌的电子数据

使用 HTTP 访问谷歌的电子数据 由于通过 HTTP 和 XML 公开数据的简单和平台无关性,因此,成为了互联网上公开数据最流行的方法之一,只需要使用 HTTP 和部分 XML 处理,就可以访问数量大得惊人的数据。访问谷歌自己公布的电子数据就是一个很好的应用,在清单 11-4 中我们可以看到如何访问谷歌的电子数据。 注意我们将要访问的电子数据来自卫报数据商店(Guardian

2014-05-22 09:15:23 1084

翻译 使用 HTTP

使用 HTTPWeb 使用超文本传输协议(Hypertext Transfer Protocol,HTTP)通信,通常用 web 浏览器,但是,出于某些原因,也可能想用脚本或程序中发出 web 请求,例如,通过 RSS 或 Atom feeds 收集站点内容。生成 HTTP 请求,需要用 System.Net.WebRequest 类的静态方法 Create。它创建 WebRequ

2014-05-21 16:24:48 1416

原创 获取系统 SID

SID

2014-05-20 21:31:35 2166

翻译 使用 TCP / IP 套接字(Sockets)

使用TCP / IP 套接字(Sockets) TCP/IP 套接字提供了跨网络的低层控制。TCP/IP套接字是两台计算机之间的逻辑连接,通过它,计算机能够在任何时间发送或接收数据;这个连接一直保持,直到这台计算机显式发出关闭指令。它提供了高度的灵活性,但也带来了大量的问题,在这一章中我们会看到,因此,除非真的需要非常高度的控制,否则,最好还是使用更抽象的网络协议,在这一章的后面我们也会谈

2014-05-20 16:16:24 2805

翻译 第十一章 分布式应用程序

第十一章分布式应用程序 使用网络的应用程序,称为分布式应用程序(distributed applications),现在,已经越来越重要。幸运的是,.NETBCL 和其他的库提供了许多结构,使得通过网络通信变得容易,进而,用 F# 创建分布式应用程序也是很简单。  网络概述 已有几类分布式应用程序,通常分为:客户端-服务器(client-server)应用程序,其中客户

2014-05-19 15:12:42 1695

翻译 消息传递(Message Passing)

消息传递(Message Passing) 通常可用把并行程序理解为一组相互独立的、能够发关和接收消息的组件,这也称为角色模型(ActorModel),在维基百科上可找到更正式的解释 http://en.wikipedia.org/wiki/Actor_model。虽然使用消息传递的场景往往相当复杂,但是其背后的思想却相对简单,正像下面将要看到的示例一样:消息传递背后的基本思想是这

2014-05-16 16:22:19 17272

翻译 异步编程(Asynchronous Programming)

异步编程(Asynchronous Programming) 异步编程与我们所看过的其他并行编程形式有一些不同,讨论的其他主题可以有大量的线程并行运行,可以完全利用系统中可用的处理器;而在异步编程中,需要避免阻塞线程,我们在这一章的第一节“线程、内存、锁定和阻塞”中已经对阻塞线程的概念有所了解了。阻塞的线程是不能工作的线程,因为它需要等待其他任务的完成;线程等待的通常任务是操作系统执行的输

2014-05-15 10:26:54 3902

翻译 数据并行(Data Parallelism)

数据并行(Data Parallelism) 数据并行,不同的数据输入以并行方式运行同一个函数,它把一个任务分解成不连续的单元,因此,可以在单独的线程上并行处理,保证这个任务可以在可用的处理之间进行分配。通常是处理数据集合,这种方法利用了集合中的项目自然提供了任务分配。最简单的情况,是一个并行的映射函数,对集合的中每一项应用一个转换,结果形成一个新的集合。这种简单的情况通常是可以工作的

2014-05-14 11:10:59 10553

翻译 响应式编程(Reactive programming)

响应式编程(Reactive programming) 响应式编程是指确保程序对事件或输入做出响应的做法。在这一节,我们将专注于图形界面方面的响应式编程,图形界面总量响应式的。然而,其他网格的编程也需要考虑响应式编程,例如,运行在服务器上的程序总是需要保持对输入作出响应,即使是在它处理其他需要长时间运行的任务期间。我们将在第十一章实现聊天服务器时,会看到在服务器编程方面也要用到这里讨论的一

2014-05-13 10:56:07 10295

翻译 线程、内存、锁定和阻塞(Threads, Memory, Locking, and Blocking)

线程、内存、锁定和阻塞(Threads, Memory, Locking, and Blocking) 如果你真的想进行并行编程的话,花点时间理解线程和内存的概念是完全值得的。在这一节,我们将学习如何显式地创建线程,并控制对共享资源,比如内存的访问。我的忠告是,应该避免你这样显式创建和管理线程,然而,在使用其他的并行编程方法时,理解底层的线程概念是需要的。程序运行时,操作系统会创建一个

2014-05-12 15:30:28 4800

翻译 第十章 并行编程

第十章并行编程 最近并行编程(parallel programming)已经不再是相对较晦涩的主题,由只能是专业开发人员精通,变得更为主流,这是因为日益流行多核处理器。在写作本书的时候,想买一台单核处理器 PC 机,已经几乎不可能,双核已是标配,四核处理器也开始出售,而未来几年内这种趋势还将继续完全在意料之中。在某些程度上,并行编程中的这种兴趣在带动了函数编程的新的兴趣。函数式编程当然

2014-05-12 10:38:41 939

原创 汉字读半边,怎么会错上天?

汉字读半边,怎么会错上天?俗话说,汉字读半边,不会错上天。下面是叶先生的词:浣溪沙 为南开马蹄湖荷作叶嘉莹又到长空过雁时,云天字字写相思。荷花凋尽我未迟,莲实有心应不死。人生易老梦偏痴,千秋犹待发华滋。叶先生是词学大家,不过也有网友说没看出写湖。当然,我不说词,只想说说“浣”的读音。“浣”,

2014-05-09 23:09:40 7946

翻译 使用 LINQ to XML

使用 LINQ to XML LINQ to XML 的目标是提供 XML 对象模型,能够很好地以LINQ 的函数风格进行编程。表 9-4 汇总了这个命名空间中的重要类。表 9-4 由 LINQ to XML 提供的类 类名父类描述XNode 这个类提供了应用于 XML 文档中的所有结点的基础功

2014-05-09 20:54:57 1128

翻译 介绍 LINQ

介绍 LINQ Language-Integrated Query (LINQ,语言集成查询)是下一代.NET 数据访问技术,它借鉴了很多函数编程的概念,因此,它非常适合 F#。本质上,LINQ 是一组处理集合的库,它实现操作IEnumerable 接口,在这方面,非常像 F# 的序列(Seq)模块,我们在第七章中讨论过。其核心是通过这些库查询在内存中的集合,它可以是数据库,也可以 X

2014-05-09 20:26:42 1270 2

翻译 ADO.NET 扩展

ADO.NET 扩展 ADO.NET 成功地提供了一组基类和接口,为通过其他类和接口访问关系型数据库提供了一种选择,因此,从 F# 中访问大多数关系型数据库不用太多的努力。我们已经讨论了大部分这样的类,或者至少这些类实现了它们打算提供的功能。表 9-2 汇总了其中的关键类。表 9-2 ADO.NET 中的关键类 类描述System

2014-05-09 15:39:26 1075

翻译 数据绑定和数据网格视图(DataGridView)控件

数据绑定和数据网格视图(DataGridView)控件 数据网格视图控件,不像我们前面看到的控件,它可以显示多个列,但是,数据必须格式化,使数据网格知道要显示哪一列。有两种实现方法:一个是把数据网格视图绑定到数据表(DataTable),另一个是把网格到绑定对象列表,对象有许多属性,不同的属性就成为网格的列。下面的例子是一种简单的解决方案,绑定到数据集(DataSet): op

2014-05-09 14:05:08 2434

翻译 数据绑定(Data Binding)

数据绑定(Data Binding) 数据绑定是把一个值或一组值映射到用户界面控件的过程,这个数据并不一定是来自关系型数据库,通常是来自于程序之外的系统,访问数据,并把它转换复杂的绑定状态的过程还是相当简单的。这就是为什么我们在这一章,而不是在第八章讨论这个主题的原因。下面的例子演示把数据库中的表绑定到组合框: open Systemopen System.Collection

2014-05-09 09:12:17 1019

翻译 ADO.NET

ADO.NET 关系型数据库管理系统(Relational database management systems,RDBMSs)是数据存储最普遍的形式。有了 ADO.NET,System.Data 和相关的命名空间,访问关系型数据更容易。这一节,我们将学习多种方法在F# 中使用 ADO.NET。 注意所有的数据库提供程序都使用连接字符串指定数据库连接。在http://www.

2014-05-08 16:14:09 1329 1

翻译 System.Xml 命名空间

System.Xml 命名空间 XML 已经成为一种流行的数据格式,其原因很多,对于大多数人来说,这是一种很方便表示数据的格式,文件有可读性。程序员的处理文件既有非结构化的,即不遵循一种模式,或者是结构化的,即数据符合 XSD 架构定义的约定;还希望方便地用 XPath 查询数据,即,为了处理一种新的数据格式而编写自定义的解析程序,很少需要,文件可以在不同的 XML 格式之间快速转换,用强

2014-05-08 14:18:04 1777

翻译 使用 System.IO 序列

使用 System.IO 序列 F# 的一个有趣的能力是可以生成延迟序列(lazysequences,我们在第三章中讨论过),它可以用来处理大型文件,避免对文件预先分配的所有内存的开销,这样就能够处理那些太大而装不进 32 位系统的大型文件了。生成序列非常简单,使用File.OpenText 方法,以文本文件流的形式打开文件。这个方法提供了一个流读取器(stream reader),使

2014-05-08 09:28:08 922

翻译 System.IO 命名空间

System.IO 命名空间 System.IO 命名空间的主要目的是为了提供方便访问操作系统的文件和目录类型,另外,也提供写内存和网络流的方法。这个命名空间提供主要两种方法处理文件和目录,能够使用FileInfo 和 DirectoryInfo 对象获得或修改文件和目录的信息;也能够用File 和 Directory 类实现相同的功能,但是两者都要求传入的文件名为静态成员。通常,如果

2014-05-07 17:25:38 1912

翻译 System.Configuration 命名空间

第九章访问数据 设计计算机的目的是处理数据的,因此,很少有程序不需要访问数据,既可以是读很小的配置文件,还可以是访问一个全面的关系数据库管理系统。在这一章,我们将广泛学习在 F# 中的访问数据。  System.Configuration 命名空间 不管什么时候执行用 .NET 语言写的应用程序,.NET 运行时都会自动检查是否存在配置文件。这个文件的名字与可执行文件名

2014-05-07 10:14:44 4577

翻译 介绍 GTK#

介绍 GTK# [纯Windows 用户就可以跳过。也未测试。]GTK# 是对流行的跨平台图形用户界面库(GUI)GTK+ 的包装。如果打算构建一个本地应用程序,并想让它运行在非 Windows 平台上,GTK 可能是一个合理的选择。GTK# 的运行类似于 Windows 窗体和 WPF,在 GTK# 中,窗口是基于 Gtk.Window 的,小插件(widgets,相当于

2014-05-06 21:45:10 19216 1

翻译 介绍 Windows Presentation Foundation 3D

介绍 Windows Presentation Foundation 3D WPF 的另一个巨大优势在于它提供了大量的控件,我们将要深入探讨的一个控件是 Viewport3D,它能创建优秀的三维图形,其中的一些功能在 Windows 窗体库中还没有。我们将学习用这个控件显示三维display a 3D plane and then map an equation over it.这个例

2014-05-06 21:37:13 1733

翻译 介绍 Windows Presentation Foundation

介绍 Windows Presentation Foundation WPF 是一个库,为开发用户界面提供了全新的模型,用它创建桌面的应用程序比使用 Windows 窗体更有优势;WPF 还提供了新的基于 XML 的语言 XAML,用于处理大量的窗体布局,而让 F# 专注于开发应用程序的感兴趣部分。 注意现在有几种 XAML 设计器,这些设计器使用图形化的所见即所得(WYSWI

2014-05-04 21:58:57 6587

翻译 创建新的窗体类

创建新的窗体类 到目前为止,我们看到的程序还只是脚本风格,用现有的窗体和控件,快速把窗体放在一起。这种编程风格可用于快速开发单一窗体的应用程序,但是,对于快速创建有多个窗体组成的应用程序,或者创建窗体库以用于其他 .NET 语言时,就会受到限制;在这些情况下,必须采取一种更面向组件(component-oriented)的方法。通常,创建一个大型的 Windows  窗体应用程序时,有

2014-05-04 19:54:26 2589

翻译 处理 WinForms 事件和事件模块

第八章 用户界面(四)处理 WinForms 事件和事件模块 在第七章我们讨论过事件(Event)模块,它能够用于处理 WinForms 中的事件。当处理 WinForms 中的事件时,通常会遇到没有完全符合想要事件的情况。例如,当鼠标的左、右键单击时会触发MouseButton 事件,但是,我们可能只希望它响应鼠标左键的单击。这时,用 Event.filter 函数可

2014-05-03 18:18:19 1743

翻译 第八章 用户界面(三)

第八章 用户界面(三)在 F# 中使用 Visual Studio 窗体设计器 到现在,F# 还没有自己的窗体设计器;然而,由于 .NET 具有很强的互操作性,因此,很容易在 F# 中使用由 Visual Studio 设计器创建的窗体。有两种选择:第一,创建一个 F# 库,然后,在自己的 Windows 窗体中调用这个库中的函数;第二;创建一个窗体库,然后,在 F#

2014-05-03 12:52:08 948

翻译 第八章 用户界面(二)

第八章 用户界面(二)在 WinForm 上使用控件 控件就是类,派生自 System.Windows.Forms.Control,由此类派生出的任何类都能显示在窗体上,只要将它添加到窗体对象的 Controls 集合中。现在我们看一下用控件画树形的方法。WinForms 库定义了 TreeView 类,这是专门用于显示树形结构的;自然,我们就用这个控件来显示树。使

2014-05-02 18:48:02 1026

翻译 第八章 用户界面(一)

第八章 用户界面(一) 在这一章,我们将学习程序员最重要的任务之一:把像素放到屏幕上艺术。在 F# 中,所要做的就是调用库和 API,在这方面有很多选择,因为有了 .NET 平台,就更加多样。第一个选择是要确定是想创建桌面应用程序,它运行在本地,用一系列窗口和控件把信息显示给用户;还是想创建网站应用程序,应用程序的界面用 HTML 定义,然后,通过浏览器渲染。用 .NET 创建桌面应用

2014-05-02 11:42:37 1269

SQL.Server.2012.Integration.Services-2

SQL.Server.2012.Integration.Services

2012-04-20

SQL.Server.2012.Integration.Services

SQL.Server.2012.Integration.Services

2012-04-20

SQL.Server.2012.Administration-2

SQL.Server.2012.Administration

2012-04-20

SQL.Server.2012.Administration

SQL.Server.2012.Administration

2012-04-20

jQuery.1.4.Reference.Guide

jQuery.1.4.Reference.Guide

2010-02-05

空空如也

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

TA关注的人

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