在 Asp.NET MVC 中使用 SignalR 实现推送功能
Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架。它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息。 可访问其官方网站:https://github.com/SignalR/... ...
面试体验:Facebook 篇
Google、Microsoft 和 Yahoo 都是去年的事情了,接下来说说今年的吧。其实我在豌豆荚非常爽,跟身边的设计师和工程师合作都很愉快,所以唯一能够诱惑我去面试的就只有 Facebook 了。最初接受 Facebook 面试邀请的原因并不是追求它的 offer,而是我就想了解一下 Face... ...
如何查找.NET程序内存不断上涨的原因(CLRProfiler)
前段时间公司新写的自动升级服务端(Remoting)出现了内存不断飙升的情况,从最初的七八十兆一晚上竟然飙到了1G多,直接导致客户端连接服务端失败,这不科学,后来优化了各种可能造成占用内存的方法(数据库连接,I/O操作,引用类型释放),但效果不佳,这下可难为我们了,不知道问题的所在也就不知道该如何去... ...
SQL注入攻防入门详解
SQL注入是一个历史悠久却依然存在的安全问题,很多程序员不知道要如何防止入侵者对数据库的破坏,我这边整理了比较详细的SQL注入攻击及预防SQL注入的详细知识,并且包含两个SQL注入示例,欢迎大家一起学习:入侵者是如何破坏数据库和我们该如何防止SQL注入 ...
我的技术历程(上)
招聘后端(Java、Php)前端、数据库等各类人才(开发经理、架构师、开发、DBA)小的时候有写日记的习惯,不是自己要写而是为了完成任务,后来发现写日记确实也是可以培养语言表达能力的。上了高中之后除了作业就很少写东西了,趁着这几天休息想写一下我使用电脑、学习技术的历程。一来当作分享,看看大家是否能有... ...
需求与设计过程(1)-用例
1.前言 看过太多的称得上“三无”的软件,就是无需求、无设计、无注释。严格的说来,他们的需求和设计其实还是有的,只是没有用文档记录下来而已,但是注释确实真的没有。这些软件从大到小都有,但是他们都有一个共同的特点,就是“难维护”。前几天和同事聊天,听说一个XAML的实现要重写了,用本地协议代替,然后再... ...
解决ASP.NET中的各种乱码问题
经常发现有人被乱码困扰着,而我感觉比较幸运,很少为此烦恼过。在这篇博客中,我将把我想到的一些与乱码有关的经验总结出来,供大家参考。页面显示乱码问题在一个网站中,有些页面会正常显示,然而,有些页面会显示成乱码。如果发生这种情况,可以检查一下web.config和文件编码。如果web.config是这样... ...
消息耦合还是接口耦合
经过上面的比较, 我们可以得出一些结论: 消息方式的强项是耦合性和扩展性,以及监控的方便性,个人感觉比较适合于Server端的规模应用。 接口方式的强项是性能高效以及开发的方便性, 比较适用于同一进程内客户端的小规模应用。 但是大部分时候, 对于架构师或是公司领导,他们会更关注可耦合性和可... ...
有关T-SQL的10个好习惯
1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主要的原因来自以下两点: 扩展方面的问题 造成额外的书... ...
Wireshark基本介绍和学习TCP三次握手
之前写过一篇博客:用 Fiddler来调试HTTP,HTTPS。 这篇文章介绍另一个好用的抓包工具wireshark,用来获取网络数据封包,包括http,TCP,UDP,等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正... ...
throw和throw ex的区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时无意中了解到几种使用方法是有区别的,网上一查,还真是,主要是区别在堆栈信息的起始点不同。总结如下:我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。在C#中推... ...
图解Browser端访问OAuth2 API的安全性问题与解决方案
OAuth2是基于HTTP的认证API,一般与OAuth2搭配的API也是基于HTTP的REST风格API(比如新浪微博和github),很多人一定想过是否可以直接从浏览器端调用REST API。 我最近做了一些这方面的研究,因为OAuth2中有secret key的存在,所以纯粹的客户端是不行的,... ...
老调重弹:年龄大了,码农何去何从
说明这篇文章是说我的经历和选择,没有任何对从事软件开发的人员的不敬,更加不是要打击新入门的开发人员热情。你有你理解的方式和自由,要在回复那里指责为那是没有必要的,你有时间还是去多看看书,多写写代码好了。刚在隔壁看见了一个22岁年轻人遥相呼应的文章,在这里罗嗦一下。年轻就是资本,有冲劲,这是最大的优势... ...
深入浅出SQL Server中的死锁
简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。 图1.对于死锁的直... ...
铁道部新客票系统设计(二)
铁道部新客票系统的设计(一)铁道部新客票系统的设计(二)铁道部新客票系统的设计(三)在上一篇文章中 铁道部信客票系统设计(一) 里面,探讨了关于数据库层面的功能性需求以及非功能性的需求,在非功能性需求里面,一博主 提出了没有考虑到峰值的情况,这一点的确漏掉了,因为我们铁道部的特殊需求,在春运期间负载... ...
铁道部新客票系统设计(一)
铁道部新客票系统的设计(一)铁道部新客票系统的设计(二)铁道部新客票系统的设计(三)这几天正好看到一条新闻铁道部:新客票系统2015年建成 ,正好最近想整理和总结一下这几年的工作中的收获,正好可以借这个机会,尝试设计一下铁路客票系统,把自己所学全部用到这个系统中去,顺便也希望各位猿们拍砖,一起探讨一... ...
程序员,请昂起你高贵的头!
程序员与艺术家我这辈子最佩服两类人,一类是艺术家,一类是程序员。一个好的程序员从在某种程度上来说也是一个艺术家!艺术家是精神世界及其丰富的人群,他们不仅自己享受着艺术的魅力,也为全人类的精神文明指引着方向!程序员,他们是城市中的白领,不仅自己享受着编码的乐趣,也推动着信息世界不断向前发展。在这个信息... ...
远程线程注入引出的问题
远程线程注入引出的问题一、远程线程注入基本原理远程线程注入——相信对Windows底层编程和系统安全熟悉的人并不陌生,其主要核心在于一个Windows API函数CreateRemoteThread,通过它可以在另外一个进程中注入一个线程并执行。在提供便利的同时,正是因为如此,使得系统内部出现了安全... ...