10年以上互联网从业经验,.Net领域知名专家,出版有《.Net之美》和《C#揭秘》,现专注于分布式系统架构和大数据处理。
Kafka项目的目标是提供一个 统一的、高吞吐、低延迟的,用来处理实时数据的系统平台。这篇文章详细介绍了Kafka的主要概念:Broker、Topic、Partition、Producer、Consumer等。
Kafka 分布式消息系统 公司技术分享会的PPT,点这里下载:Kafka 分布式消息系统 公司技术分享会的PPT,点这里下载:Kafka 分布式消息系统 感谢阅读,希望这篇文章能给你带来帮助!
欢迎访问我的独立博客 tracefact.net 长期以来,我都同时维护着两个博客,博客园和 tracefact.net,感觉有点分散精力,所以博客园以后不再每篇文章都同步更新了,只挑选一些个人认为最好的文章。
Webpack入门 简介 Webpack是一个前端构建工具,本文将简要介绍它最常用的功能,并创建一个基于webpack的前端开发环境。 范例项目 包含两个页面,列表页list.html和详情页detail.html,仅作为Webpack打包的演示,不实际开发功能。
《.NET之美》消息及勘误 编辑最终还是采用了《.NET之美》作为书名,尽管我一直觉得这个名字有点文艺了,而更倾向于使用《.NET专题解析》这个名称。 目前已经可以在各大网上书店购买了,亚马逊的地址是:《.NET之美》 我对这本书算不上特别满意,但是对很多刚转向.NET的朋友也还是会有一些帮助吧。
.Net 项目代码风格要求 PDF版下载:项目代码风格要求V1.0.pdf 代码风格没有正确与否,重要的是整齐划一,这是我拟的一份《.Net 项目代码风格要求》,供大家参考。 1. C# 代码风格要求 1.1注释 类型、属性、事件、方法、方法参数,根据需要添加注释。
.NET框架 本书是一本讲解.NET技术的书籍,目标读者群也是在.NET框架(.NET Framework)下进行开发的程序员,因此我们无法回避的问题就是:什么是.NET框架?它包含了哪些内容?为开发程序提供了哪些支持?很多朋友对这类个问题的第一反应可能是.NET框架所提供的庞大类库及编写代码所采用的C#语言,实际上远不止这些。
对人生的一点看法 说到人生这个话题,你的第一个反应应该是“话题太大,无从谈起”吧?对于“话题太大”的话题,伴随左右的似乎总是有这么一句:“仁者见仁智者见智”。所以,这里我也只是发表我的看法。 在我看来人生其实很简单,但如果让你也认同“人生很简单”这个命题,你首先得认同下面三个观点,本文所有的讨论都是以下面的三个观点为基础的,这三个观点就是: 200年以后,没有人会记得你是谁。
感悟、资产和幸福感 随着阅历的加深,我关注的事物和接受的知识也在不断地发生着变化。大学毕业已经四年了,过去的半年中,我接触了一些看似不连贯的信息,因为觉得它们有用,就把这些信息全部记在了脑子中。直到最近,才发现一个片段正在解释和说明着另一个片段,而当我把这些片段信息串起来思考的时候,忽然有了一种开朗的感觉。
1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持。通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱、拆箱,在一定程度上提升了应用程序的性能。
Asp.Net 用户验证(自定义IPrincipal和IIdentity) 引言 前一段时间有两个朋友问我,为什么在HttpModule中无法获得到Session值,因为他们希望自定义一个HttpModule,然后在其中获取Session来进行用户验证。
从一个范例看XML的应用 引言 如果你已经看了Asp.Net Ajax的两种基本开发模式 这篇文章,你可能很快会发现这样一个问题:在那篇文章的方式2中,客户端仅仅是发送了页面上一个文本框的内容到服务端,而服务端的Web服务方法也只接收一个来自客户端的字符串类型的数值。
使用AutoCompleteExtender实现文本框自动匹配 引言 Ajax Control Toolkit 是一个丰富的控件集,可以为我们提供许多很炫也很实用的页面功能。编写一个Asp.Net Ajax控件是比较耗费精力的,不仅需要有一定的javascript脚本编写能力,还需要了解微软的Ajax Library。
使用CascadingDropDown实现级联式下拉框 引言 级联式下拉框,有时也叫联动下拉框,也是Web页面中一个很常见的功能。就是假设有若干个下拉框,比如说有3个,分别显示 省份、城市、街道,当选择某一省份后,城市下拉框仅显示属于该省的城市,选择好城市之后,街道下拉框仅显示属于该城市的街道。
Asp.Net Ajax的两种基本开发模式 引言 最近花了一些时间,将微软Asp.Net官方的Ajax视频全部看了一遍,地址是http://www.asp.net/learn/ajax-videos/,视频大多都很短,8至15分钟的居多,有讲述AjaxControlToolkit中控件用法的,也有讲述Asp.Net Ajax常见的应用场景和技巧的。
四种简单的排序算法 我觉得如果想成为一名优秀的开发者,不仅要积极学习时下流行的新技术,比如WCF、Asp.Net MVC、AJAX等,熟练应用一些已经比较成熟的技术,比如Asp.Net、WinForm。
.Net中的加密解密 引言 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全。本文将简单地介绍了加密解密的一些概念,以及相关的数字签名、证书,最后介绍了如何在.NET中对数据进行对称加密和解密。
Adapter模式 引言 生活中有很多Adapter的例子。比方说,你买了一款舒适、手感极佳的键盘,它是P/S接口的,然而你的新式电脑已经淘汰了P/S接口,只提供USB接口。此时,为了能够使用这款键盘,就需要一个转接头,它的一头是P/S接口的,用来连接键盘;另一头是USB的,用来连接电脑。
一步步构建“半自动”数据分页模块 引言 GridView等数据控件提供的数据分页功能非常方便,甚至不需要编写代码就可以完成分页,但是它有一个缺陷,就是每次都会取出所有数据但仅显示一页数据,这在大数据量的情况下显然是不合适的。
C#网络编程(接收文件) - Part.5 这篇文章将完成 Part.4 中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分。
C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件。比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1、S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg、Client02.jpg、Client03.jpg;当我们输入R1、R2或R3时(R为Receive缩写),则分别从服务端接收文件Server01.jpg、Server02.jpg、Server03.jpg。
C#网络编程(异步传输字符串) - Part.3 这篇文章我们将前进一大步,使用异步的方式来对服务端编程,以使它成为一个真正意义上的服务器:可以为多个客户端的多次请求服务。但是开始之前,我们需要解决上一节中遗留的一个问题。
C#网络编程(同步传输字符串) - Part.2 服务端客户端通信 在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据。端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间传输任何类型的数据。
C#编写简单的聊天程序 引言 这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考。文章大体分为四个部分:程序的分析与设计、C#网络编程基础(篇外篇)、聊天程序的实现模式、程序实现。
.Net Remoting(远程方法回调) - Part.4 Remoting中的方法回调 1. 远程回调方式说明 远程方法回调通常有两种方式: 客户端也存在继承自MarshalByValueObject的类型,并将该类型的实例作为参数传递给了远程对象的方法,然后远程对象在其方法中通过该类型实例的引用对它进行调用(访问其属性或者方法)。
C#中的委托和事件(续) 引言 如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。
.Net Remoting(分离服务程序实现) - Part.3 分离服务程序集元信息和实现 在上面Remoting基本操作的范例中,我们发现了这样一个情况:即是 客户应用程序 仍然需要引用 服务程序集(ServerAssembly),因为它需要DemoClass的元信息来创建代理。
.Net Remoting(基本操作) - Part.2 Remoting 构架 接下来我们考虑通常的情况,也就是 客户程序 与 宿主程序 位于不同的进程中的情况。 NOTE:因为我是在我本地机器做的测试,所以只是位于不同进程,实际上位于不同机器中的操作是完全一样的,仅仅是Uri不同,下面将会看到。
.Net Remoting(应用程序域) - Part.1 引言 在互联网日渐普及,网络传输速度不断提高的情况下,分布式的应用程序是软件开发的一个重要方向。在.Net中,我们可以通过Web Service 或者Remoting 技术构建分布式应用程序(除此还有新一代的WCF,Windows Communication Foundation)。
一个逐步“优化”的范例程序 引言 本文是《Object-Oriented Analysis and Design》一书第一章和第五章的读书笔记。我对书中提供的一个范例程序进行了总结和整理,通过逐步优化这个乐器管理的范例程序,分析了进行程序设计时需要注意到的一些问题。
SAF 中抽象工厂的实现 引言 本文是《Developing Application Frameworks in .NET》的读书笔记。SAF 是书中的一个范例框架,意为 Simple Application Framework(简单应用程序框架)。
重温Observer模式--热水器·改 引言 在 C#中的委托和事件 一文的后半部分,我向大家讲述了Observer(观察者)模式,并使用委托和事件实现了这个模式。实际上,不使用委托和事件,一样可以实现Observer模式。
MVP 模式实例解析 引言 可能有的朋友已经看过我翻译的Jean-Paul Boodhoo的 模型-视图-提供器 模式 一文了(如果没有,建议你先看下再看这篇文章,毕竟这两篇是紧密联系的)。在那篇文章中,作者为了说明 MVP 的优点之一,易测性,引入了单元测试和NMock框架。
模型-视图-提供器 模式 出处:http://msdn.microsoft.com/en-us/magazine/cc188690.aspx 引言 随着像Asp.Net和Windows窗体这样的用户界面创建技术越来越强大,让用户界面层做多于它本应做的事是很常见的。
类型自定义格式字符串 引言 String可能是使用最多的类型,ToString()则应该是大家使用得最多的方法了。然而它不应该仅仅是用来输出类型的名称,如果使用得当,它可以方便地输出我们对类型自定义的格式。
SAF 中缓存服务的实现 概述 本文是《Developing Application Frameworks in .NET》的读书笔记。SAF 是书中的一个范例框架,意为 Simple Application Framework(简单应用程序框架),通过这篇文章,我主要想向大家说明 SAF 中缓存服务的实现方式。
创建常量、原子性的值类型 概述 本文是《Effective C#》一书第七节的读书笔记。通过这篇文章,我主要想向大家说明一个我们平时可能不太会注意到的问题:创建具有常量性和原子性的值类型。 从类型设计谈起 从Class到Struct 假如我们要设计一个存储收信人地址的类型(Type), 我们管这个类型叫 Address。
也谈成功 我想博客园里大多数的程序员都和我一样,二十多岁的样子,谁都不愿意默默无闻终此一生,那么我们最关心的话题自然是成功、何谓成功、以及如何才能够成功。可能因为自己逐渐长大,慢慢得对于一些事情有了自己的看法,而近期我对脑子里原本模糊不清的思绪进行了些许整理,写下了这些文字。
Web站点风格切换的实现 引言 Web站点的风格切换是很常见、也很受大家欢迎的功能,比如大家熟知的博客园就提供了几十款风格模板供大家选择。在Asp.Net中,我们可以通过模板页master page和主题theme来实现网站的风格切换,但是.Net提供的默认设置不够强大和灵活。
.Net 自定义应用程序配置 引言 几乎所有的应用程序都离不开配置,有时候我们会将配置信息存在数据库中(例如大家可能常会见到名为Config这样的表);更多时候,我们会将配置写在Web.config或者App.Config中。
自反+递归 实现评论的无限引用 引言 大家每天都在看博客,发表评论,实现一个评论系统也是一名Web开发者的基本要求。虽然评论只是一个很普通的功能,但是实现评论的引用,尤其是无限引用,却有一定的困难。
.Net 中的反射(动态创建类型实例) - Part.4 动态创建对象 在前面节中,我们先了解了反射,然后利用反射查看了类型信息,并学习了如何创建自定义特性,并利用反射来遍历它。可以说,前面三节,我们学习的都是反射是什么,在接下来的章节中,我们将学习反射可以做什么。
基于业务对象的排序 引言 在上一篇文章 基于业务对象的筛选 中,我们讨论了如何实现Predicate(T object)委托,自定义DateFilter 类来对业务对象进行筛选。与筛选一样,排序也是常见且重要的操作。
基于业务对象的筛选 引言 可能大家对SQL语句太过熟悉了,也可能虽然已经从Asp过度到了Asp.Net时代,但是Asp的观念没有发生太大变化。结果就是我们将应用程序大部分的逻辑都交给了数据库去完成,忘记了.Net Framework提供给我们灵活强大的数据操控能力。
Asp.Net 分页显示控件 这篇文章最开始是2008年2月份写的,我起初想着大家应该都有自己的数据分页方式,而我本人并非专业做控件开发,所以只是想着提供点思路,并没有做太细致的研究。结果根据浏览量发现大家还是比较关注的,于是就抽空对它做了一点完善,对这篇文章也进行了一个更新。
.Net 中的反射(查看基本类型信息) - Part.2 反射概述 和Type类 1.反射的作用 简单来说,反射提供这样几个能力:1、查看和遍历类型(及其成员)的基本信息和程序集元数据(metadata);2、迟绑定(Late-Binding)方法和属性。
C# 类型基础 引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制。
.Net 中的反射(反射特性) - Part.3 反射特性(Attribute) 可能很多人还不了解特性,所以我们先了解一下什么是特性。想想看如果有一个消息系统,它存在这样一个方法,用来将一则短消息发送给某人: // title: 标题;author:作者;content:内容;recei...
.Net 中的反射(序章) - Part.1 引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助。
Command 模式 Step by step 引言 提起Command模式,我想没有什么比遥控器的例子更能说明问题了,本文将通过它来一步步实现GOF的Command模式。 我们先看下这个遥控器程序的需求:假如我们需要为家里的电器设计一个远程遥控器,通过这个控制器,我们可以控制电器(诸如灯、风扇、空调等)的开关。