Essential C#读书笔记
摘要:Essential C#读书笔记这是一个多变的时代,一次又一次的浪潮将不同的人推上了巅峰。新的人想搭上这一波,同时老的人也不想死在沙滩上。这些年新的浪潮又一次推开,历史不停地重复上演,那便是移动互联网。它的兴起无人抗拒,而在这一波浪潮中移动互联网游戏更是重中之重。 在这个混沌时期,手机游戏以几倍的速度经历着客户端游戏曾经走过的道路,从轻度到重度,从弱交互到强交互,从简单到复杂。来到2014,我们正处于一个中间时期,由于门槛低,渠道单一,手机游戏依然是渠道为王。当然这并不是这篇随笔的重点。 同时手机游戏由于目前的环境,需要更快的速度推上市场,这便带来了快速开发的需求。而unity3d搭上了这..
阅读全文
NET实现仓库看板的一些感想
摘要:NET实现仓库看板的一些感想 从一名技术开发人员到实施人员的蜕变,从不同的角度看待同一个问题,或许会有不一样的结果。这里记录一下最近一个项目实施的案例,非常有感触! 一. 项目情况简介 本次项目是给一个国外生产型企业做仓库方面的系统,其中有一个功能就是给仓库做一个电子看板。所谓的电子看板就是在一个大屏幕上显示仓库进料和出料的情况,在大屏幕上显示指定数量的单号信息,就和医院的叫号系统一样,每行数据不停的向上滚动。 上面这个功能其实非常简单,就是查询相应的数据在屏幕上显示即可. 仓库每天可能收到20多个订单的进料单据,系统将单据分为三个状态: 待收货,收货中,收货完成 待收货,...
阅读全文
C#函数式程序设计之用闭包封装数据
摘要:C#函数式程序设计之用闭包封装数据如果一个程序设计语言能够用高阶函数解决问题,则意味着数据作用域问题已十分突出。当函数可以当成参数和返回值在函数之间进行传递时,编译器利用闭包扩展变量的作用域,以保证随时能得到所需要的数据。C#函数式程序设计之作用域在C#中,变量的作用域是严格确定的。其本质是所有代码生存在类的方法中、所有变量只生存于声明它们的模块中或者之后的代码中。变量的值是可变的,一个变量越是公开,带来的问题就越严重。一般的原则是,变量的值最好保持不变,或者在最小的作用域内保存其值。一个纯函数最好只使用在自己的模块中定义的变量值,不访问其作用域之外的任何变量。遗憾的是,有时我们无法把变量的值
阅读全文
C#异常处理经验(原则与方法)
摘要:C#异常处理经验(原则与方法)本文是异常处理经验性的文章,其实跟C#关系也不大。比较适合刚刚熟悉异常语法,而缺乏实战的读者。当然,经验老练的读者也可指出不足、给予意见、补充说明,一起完善文章,分享更多知识与经验。1、什么时候该异常处理?1)代码最外层,如WinFrom,避免用户看到内部异常信息用户体验不好,或者造成程序崩溃。2)遇到异常需要恢复状态或者重试的地方。例如连接数据库偶然失败了,可以有个重连机制,在Catch块重新连接数据库。3)对于一系列有可能失败的任务,其中有一个任务失败,不想影响到其他任务。例如要上传100张图片,不想因为一张图片上传发生异常而失败,进而终止整个上传任务,仅需要
阅读全文
.net平台下socket异步通讯(代码实例)
摘要:你应该知道的.net平台下socket异步通讯(代码实例)1,首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client2,然后添加服务端代码,添加命名空间,界面上添加TextBox控件using System.Net;using System.Net.Sockets;3,FormLoad方法添加代码private void Form1_Load(object sender, EventArgs e) { IPEndPoint epServer = new IPEndPoint(IPAddress.Parse("127.0.0...
阅读全文
Memcached快递上手之C#
摘要:Memcached快递上手之C#Memcached是开源高性能分布式缓存组件,目前已经广泛应用各类互联网领域. 具有多种语言的客户端开发包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL. 这此站点已经在使用YouTube,Reddit,Zynga,Facebook,Orange它. 看下面的图比较形象. 同样它也是扩平台的,今天我们来看windows下的服务端以及使用.net的客户端访问它.我们选择了Enyim Memcached这个客户端. 首先,我们安装windows版的服务端,你可以从这个站点下载. 安装时使用命令行:memcached.exe –d i
阅读全文
服务计数器
摘要:/// /// CLR Version: 2.0.50727.5448 /// NameSpace: Performence.Impl /// FileName: PerformenceCounter /// /// Created at 2014/03/18 10:23:38 /// public class PerformenceCounter { #region fields private static readonly PerformenceCounter _current = new Perfo...
阅读全文
swfupload多文件上传[附源码]
摘要:swfupload多文件上传[附源码]文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示。这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家这个心里都知道。主要提供给源码说明及下载最终效果图:SWFUpload的特点:1、用flash进行上传,页面无刷新,且可自定义Flash按钮的样式;2、可以在浏览器端就对要上传的文件进行限制;3、允许一次上传多个文件,但会有一个上传队列,队列里文件的上传是逐个进行的,服务器端接收文件时跟普通的表单上传文件是一样的;4、提供了丰富的事件接口供开发者使用;SWFUpload
阅读全文
C#函数式程序设计之泛型(下)
摘要:C#函数式程序设计之泛型(下)每当使用泛型类型时,可以通过where字句对泛型添加约束:+ View Code这个例子直观地声明了一个约束:类型T必须与ListItem相匹配。泛型类型约束T:X表示T可以是X、X的派生对象或X的实现(假如X是一个接口)。换言之,假如类型T的一个实例为t,则可以把它赋给一个变量:X x=t;约束可以使用具体的类型,但是在这些情形下,类型不可以是密封的。有几个特殊的关键字可以取代或补充类型声明符。关键字class表示此类型必须是一个引用类型,而struct表示它必须是一个值类型。当new()与class或者任何具体类型一起使用时,可以给这个类型定义一个默认的构造函
阅读全文
C#函数式程序设计之泛型
摘要:Intellij修改archetype Plugin配置2014-03-16 09:26 by 破狼,204阅读,0评论,收藏,编辑Maven archetype plugin为我们提供了方便的创建 project功能,Archtype指我们项目的骨架,作为项目的脚手架。 如fornt end的yo之类。我们能够通过简单的一行控制台command line创建你所需要的项目结构:123456mvn archetype:generate-DarchetypeGroupId=-DarchetypeArtifactId=-DarchetypeVersion=-DgroupId=-DartifactI
阅读全文
C#函数式程序设计之函数、委托和Lambda表达式
摘要:C#函数式程序设计之函数、委托和Lambda表达式C#函数式程序设计之函数、委托和Lambda表达式相信很多人都听说过函数式编程,提到函数式程序设计,脑海里涌现出来更多的是Lisp、Haskell等语言,而C#,似乎我们并不把它当成函数式语言,其实,函数式程序设计并不是只针对某个特定的程序设计语言,而C#,也正一步步使用函数式丰富自己的语言结构,帮助人们更好的实现期望的结果。函数式程序设计函数式程序设计把重点放在函数的应用上,函数式程序设计人员以函数为基本模块来建立新函数,这并不是说没有其他语言的成分,而是说函数是程序体系创建的主要构造。引用透明(Referential transparenc
阅读全文
C#集合-列举(Enumeration)
摘要:C#集合-列举(Enumeration)在计算机这个范畴内存在许多种类的集合,从简单的数据结构比如数组、链表,到复杂的数据结构比如红黑树,哈希表。尽管这些数据结构的内部实现和外部特征大相径庭,但是遍历集合的内容确是一个共同的需求。.NET Framework通过IEnumerable和IEnumerator接口实现遍历集合功能。Non-GenericGeneric备注IEnumeratorIEnumeratorIEnumerableIEnumerable仅可遍历ICollectionICollection遍历,可统计集合元素IDictionaryIListIDictionaryIList拥有更
阅读全文
雅虎35条优化黄金守则
摘要:雅虎35条优化黄金守则Excetional Performance 团队总结出了一系列可以提高网站速度的方法。可以分为 7大类 35条。包括内容 、服务器 、 CSS 、 JavaScript 、Cookie 、图片 、移动应用 ,七部分。一、内容部分尽量减少 HTTP请求减少 DNS查找避免跳转缓存 Ajxa推迟加载提前加载减少 DOM元素数量用域名划分页面内容使 frame数量最少避免 404错误1、尽量减少 HTTP请求次数 终端用户响应的时间中,有 80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、 Flash等。通过减少页面中的元素可以减少 HTTP请求的次数..
阅读全文
NPOI 2.0 Excel读取显示
摘要:NPOI 2.0 Excel读取显示最近接到需求,需要把excel表格里的数据原样展示到web页面,主要是满足随意跨行跨列。之前用过一点NPOI,不过接触的不太多,趁这次机会再熟悉一下。由于操作的excel都是2007以上的版本,所以选择了2.0的版本。这里稍微提一下2.0与1.X的区别:2.0主要针对2007及以上版本,1.X主要针对2003,此外方法也略有不同,但是过渡还是很平缓的,这里不做过多的赘述。详情请看官网:点击此处假设一下是excel 文件的 Sheet1页,转换成web之后仍是同样效果。日期买入买入额(万元)偿还额(万元)净买入额(万元)2014-1-3067644.71586
阅读全文
.NET/Mono
摘要:C#(或者说.NET/Mono)能做的那些事不做语言之争,只陈述事实:1、桌面软件不仅是在Windows上,有了开源的Mono,在Apple Mac和Linux(如:Ubuntu)上也有C#的施展天地。并且还可以通过mkbundle工具让C#程序脱离Mono框架在Mac/Linux上运行,就像直接用C/C++编译的程序。2、Web开发除了可以基于ASP.NET开发大型网站在Windows/Linux/FreeBSD上运行,在范围更广阔的企业开发领域,基于工业标准的C#(跟Java)仍然是企业开发的不二之选。3、移动客户端Windows Phone自不必说,有了Xamarin(基于Mono),可
阅读全文
分享一个c#写的开源分布式消息队列equeue
摘要:分享一个c#写的开源分布式消息队列equeue前言equeue消息队列中的专业术语TopicQueueProducerConsumerConsumer GroupBroker集群消费广播消费消费进度(offset)equeue是什么?关键问题的思考1.producer,broker,consumer三者之间如何通信2.消息如何持久化3.producer发送消息时的消息路由的细节4.consumer负载均衡如何实现5.如何实现实时消息推送6.如何处理消息消费失败的情况7.如何解决broker的单点问题前言本文想介绍一下前段时间在写enode时,顺便实现的一个分布式消息队列equeue。这个消息队
阅读全文
C#实现录制屏幕
摘要:C#实现录制屏幕 以前写过两篇录制麦克风语音和摄像头视频的文章(实现语音视频录制、在服务器端录制语音视频),最近有朋友问,如果要实现屏幕录制这样的功能,该怎么做了?实际上原理是差不多的,如果了解了我前面两篇文章中介绍的内容,只要在它们的基础上做一些修改就可以了。一.实现原理 实现方案仍然基于OMCS+MFile构建,原理与实现语音视频录制差不多,我这里只列出其中的主要差异:(1)使用DynamicDesktopConnector连接到屏幕桌面。(2)使用定时器(比如10fps,则每隔100ms一次)定时调用DynamicDesktopConnector的GetCurrentImage方法,..
阅读全文
C#基础知识梳理索引
摘要:C#基础知识梳理索引一 引子之前曾写了一篇随笔《.NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标》三个月过去了,目标使更多的编程初学者,轻松高效地掌握C#开发的基础,重点知识,快速进阶,本博循序渐进的写了一系列C#基础知识的系列随笔(未来会继续不断补充),现索引如下:二C#基础知识梳理索引高效掌握C#第一回---C#中的基本数据类型及其相互转换高效掌握C#第二回---C#数组高效掌握C#第三回---字符串常用操作高效掌握C#第四回---字符串补充知识之@的妙用高效掌握C#第五回---猜单词游戏C#之类的理解C#泛型集合类介绍之ListC#泛型集合类介绍之Dictionary操作文
阅读全文
async & await 的前世今生
摘要:async & await 的前世今生async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了。但是这也给我们编程埋下了一些隐患,有时候可能会产生一些我们自己都不知道怎么产生的Bug,特别是如果连线程基础没有理解的情况下,更不知道如何去处理了。那今天我们就来好好看看这两兄弟和他们的叔叔(Task)爷爷(Thread)们到底有什么区别和特点,本文将会对Thread 到 Task 再到 .NET 4.5的 async和 await,这三种方式下的并行编程作一个概括性的介绍包括:开
阅读全文
仿async/await(一)and Gulp:新一代前端构建利器
摘要:NET 4.5的async/await真是个神奇的东西,巧妙异常以致我不禁对其实现充满好奇,但一直难以窥探其门径。不意间读了此篇强文《Asynchronous Programming in C# using Iterators》,犹如醍醐灌顶,茅厕顿开,思路犹如尿崩。美玉不敢独享,故写此篇,将所学中一些思考与诸君共享,期抛砖引玉,擦出一些基情火花…… 强文《Asynchronous Programming in C# using Iterators》出自大牛,大牛眼界高远。故文中所述较为简略,而文中所附代码亦较为晦涩,鄙人驽钝,反复阅读思考数十遍,方品出些味道。故本篇会对原文代码一个最简化的.
阅读全文