C#版菜谱
    
            
摘要:作者:马宁示例代码下载地址:http://files.cnblogs.com/aawolf/ContosoCookbook.zipWindows 8的Release Preview版已经在2012年的儿童节正式发布了。虽然不如外界期望的那么成熟,Windows 8开始慢慢的学步了。作为开发者,我们面临的挑战要大于之前Windows的每一次升级。Windows 8对于开发者的挑战,可能仅次于当年从DOS升到Windows,别忘了,无数在DOS下非常成功的软件因为无法支持Windows而在一夜间烟消云散。这次Windows 8的挑战主要来自于Metro UI,Metro UI是从Windows P
        
阅读全文
摘要:友好的UI是成功的第一步。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。以下列出一些UI设计的基本要求:界面简洁统一。布局要做到层次分明,风格一致。兼容多种浏览器。能在IE5+,FireFox,Chrome等浏览器中使用。本地化的支持。界面显示的文字都应该可以转换其它国家地区的语言。友好的信息提示。数据提交失败后要显示详细的信息以方便用户修改资料。提供自定义显示的设置。日期等数据格式的设置应该尊重用户的习惯,提供自定义设置。提供用户喜好设置。设置收藏夹等为方便用户的日常工作。界面布局 各模块显示在同一个窗口不同的标签中,避免在打开多.
        
阅读全文
摘要:最近半年以来都在从事suse10下的C++开发,开发工具也从豪门visual studio10降到了代码查看工具source insight。不过不得不说source insight阅读代码的效率绝对超过visual studio,虽然visual studio也能设置哪些功能,但真心没source insight顺手。不过悲剧的就是写代码的支持比文本好不了多少,调试的话,只能上传到suse10服务器上去然后慢慢的gdb调试了,最头大的就是那个makefile的编写,实在让人累。还是怀念windows下那种豪华的日子。 废话不多说了,我写这篇文章不是为了诉苦的,只是为了继续写网络这边的。以前.
        
阅读全文
摘要:昨天在ASP.NET MVC利用PagedList分页(一)的最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人绝对局部刷新更准确些)的分页。其实在PagedList.Mvc中早已经为我们提供好了Ajax分页的各种东东,但是这里我要自己写下。 实现思想: 1、客户端发送Ajax请求。2、服务器端响应请求并将响应结果回传给客户端。3、客户端接收响应结果并进行数据绑定。 实现方案: 大多数人都知道这个思想,但是面对一个陌生的环境,我不得不理一下思路然后再讨论实现方案:1、利用Jquery Ajax发送分页请求...
        
阅读全文
摘要:一个简单的自动化测试架构的实现(C#) 翻看自己以前写的代码,突然间看到以前模拟的一个自动化测试架构的实现。幸好自己有写学习笔记的习惯,整理一下,贴出来,以备忘。特性会作为元数据嵌入到程序集,通过反射机制能够得到这些元数据信息。程序员可以自己定义特性,对特性进行某种格式的定义,并利用特性来影响自己编写代码编译后的程序集(assmbly)自定义特性在编译时作为元数据被编译到程序集中,运行时通过反射机制被读取。这应该是这个自动化测试架构的立足点。特性的应用:特性一般会在设计框架时很有用。 1. 利用反射机制,作为特性的元数据可以反过来在运行时影响代码的运行配置项,(例如:Windows Fo...
        
阅读全文
摘要:先说下场景,C#中为什么要使用Aop,而我又是在哪里使用Aop?本人只是想拦截实体类的Set的方法,然后在Set之前,调用一下其它方法,把值赋给另一个对象。而我做的都是在实体类的基类里处理:比如:public classOrmBase让所有继承这个基类的实体类都具有Orm操作功能,再加上一个小小特殊的要求处理,属性Set时,需要对另一对象赋值。如果说,我这样实现:在OrmBase中可以提供方法,让所有的子类的属性都这样操作:public class Users:OrmBase{public int _ID;public int ID{get;set{ base.SetXX(value);}}不
        
阅读全文
摘要:在阅读《CLR via C# (第三版)》第132页看到dynamic这个类型,感觉挺有用的。记录下来日后查用以及跟园友们分享,内容如下: 为了方便开发人员使用反射或者与基本组件通信,C#编译器允许将一个表达式的类型标记为 dynamic。还可以将一个表达式的结果放到一个变量中,并将变量的类型标记为dynamic。然后,可以用这个 dynamic 表达式/变量调用一个成员,比如字段、属性/索引器、方法、委托以及一元/二元/转换操作符。代码用 dynamic 表达式/变量来调用一个成员时,编译器会生成特殊的 IL 代码来描述所需的操作。这种特殊的代码成为 payload(有效载荷)。在运行时,.
        
阅读全文
摘要:今天,我在写C#代码时,突然发现一个最熟悉的陌生人 —— string.Format。在写C#代码的日子里,与它朝夕相伴,却没有真正去了解它。只知道在字符串比较多时,用它比用加号进行字符串连接效率更高(当然也更方便)。可是却从来没有问过为什么?在生活中也有类似的现象,与你朝夕相处、你最熟悉的人,你往往不会进一步去了解她(他),你已经习惯了她(他),你认为你已经太了解她(他)了。。。真的是这样吗?这值得去思考。。。博问中的一个问题 ——StringBuilder,String.concat(),String+String 哪一个效率高?激发了我的好奇心,想一探string.Format的究竟,而
        
阅读全文
摘要:1.pdf 轉換 txt通過 PDFBox 組件,生成txt文件。需要下載PDFBox 組件。2.word excell 轉換txt直接調用相應組件,另存為txt。需要注意:2.1 word 文檔關閉,需要調用 object SaveChange = false; app.Quit(ref SaveChange, ref obj, ref obj);2.2 excell 文檔關閉,需要調用 wbk.Close(Type.Missing, Type.Missing, Type.Missing); wst = null; wbk = null; app.Quit();在...
        
阅读全文
摘要:由一个简单的例子来分析多线程的执行,先看看简单的例子,代码如下:class Program { static int count = 0; static void Main(string[] args) { for (int i = 0; i < 10; i++) { Thread t = new Thread(Run); t.Name = i.ToString(); t.Start(); }...
        
阅读全文
摘要:最近由于工作需要,写了一些windows服务程序,有一些经验,我现在总结写出来。目前我知道的创建创建Windows服务有3种方式:a.利用.net框架类ServiceBaseb.利用组件Topshelfc.利用小工具instsrv和srvany下面我利用这3种方式,分别做一个windows服务程序,程序功能就是每隔5秒往程序目录下记录日志:a.利用.net框架类ServiceBase本方式特点:简单,兼容性好通过继承.net框架类ServiceBase实现第1步: 新建一个Windows服务 public partial class Service1 : ServiceBase {...
        
阅读全文
摘要:写代码写久了就会遇见不少好的代码片段,以前是把cs文件拷贝出来或者存在txt文档里面,然后造成管理困难查找困难的问题造成诸多的不方便。自己闲着没事就捯饬了一个我的“代码仓库”,用来管理和收藏我感觉不错的代码片段。用了一段时间感觉还不错,就在这里给大家分享下。混园子挺久,一直做伸手党,是时候拿点东西出来向大家混个脸熟~~先上个界面:程序中的左边是listbox 右边是webbrowser控件。具有基本的增删改查的功能,同时具有对博客园和CSDN文章的检索和抓取的功能,方便收藏代码。本地代码收藏是基于sqlite数据库,实际效果证明对大文本的载入效果还是很不错的!程序自定义了分类和编辑框,对于编辑
        
阅读全文
摘要:刚才准备写这个文章的时候,看到同事发来的群消息,我邪恶了。 我相信看到这篇文章的人 都比较纯,我就跟大家分享一下吧! 主要内容:现在因为需求变化,公司需要一台服务器做中转,公司一MM 准备了一台普通PC机来做服务器,然后问我一同事看下是否可以。 同事A就回复说:不知道这台PC能不能经得住? MM回复:“呵呵.你觉得它哪个部位经受不住?”同事就回复说:“应该不会是暴露的部位,怕连续搞受不住,可能会影响使用次数。” ~~ 之后各种联想。(看到这里,思想邪恶的人请点击下面的“推荐+1” 消除罪恶感!) 好了, 冷笑话到此为止。直入主题吧 。 最近公司项目涉及到千百万级别的数据导出问题。 老外(客户)
        
阅读全文
摘要:最近时间忙得里焦外嫩的,参与物联网项目的开发(两个人,PM和我)兼软件产品的维护,昨天接到一个紧急处理,一个关于银行刷卡取值的小段代码(此数卡机本配套的有动态库,但是动态库没有文档,开发动态库的公司又不存在了),其他同事处理了也暂时没结果,拖得都三周了,老板问我会不会,我很少做与硬件交互的(几乎没有),哎,没办法,拿了设备之后先,根据测试软件了解了流程。1.系统设置2.设置磁道,新建通信3.读卡现在流程基本已清晰了,接下来看磁条读写器命令表看了之后晕了,竟然那么多,都是发送命令,响应讯息。幸亏只有二轨磁道有数据以上部分就是核心,就是发送16进制1B 5D 返回正确信息就是1B 73 T2 我们
        
阅读全文
摘要:Unity是微软模式与实践团队开发的一个轻量级、可扩展的依赖注入容器。官方主页是:http://www.codeplex.com/unity,最新版本是1.2,包括在Microsoft EnterpriseLibrary中。使用实例: 为了接下来的使用,准备接口和类:publicinterfaceILogger{voidWrite(stringmessage);}publicclassTextFileLogger:ILogger{publicvoidWrite(stringmessage){Console.WriteLine("WritedLogToFile:\t"+mes
        
阅读全文
摘要:SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一 现在很多企业级应用都基本会去实现单点登陆功能,这样对于用户体验上会有不错的加强。不需要重复登陆多次。 如上图所示,整个SSO的实现最重要就是SSO服务器的实现形式。很多SSO都是自己编写服务来实现!在登陆的时候,一般都在电脑上取出一种唯一标识然后保存在SSO服务器,以这唯一标识去识别是否已经登陆!这是跨域的一种实现形式! 今天我所以说...
        
阅读全文
摘要:今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别。所以花了点时间研究了下。 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的。Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。msdn说明:控件上的大多数方法只能从创建控件的线程调用。如果已经创建控件的句柄,则除了InvokeRequired属性以外,控件上还有四个可以从任何线程上安全调用的方法,它们是:.
        
阅读全文
摘要:开发共享软件,传统的是采用注册码验证方式,这种方式是大多数共享软件采用的方式,另外还有一种常见的验证方式,就是通过网络授权认证的方式,这种方式通过在程序中调用服务器的服务进行。一般具有验证用户名可用、注册新用户、用户登录认证、用户修改密码等操作,另外还需要配备一个网络授权入口给管理员对注册的用户进行授权控制。这个是为了进行网络授权认证搭建的一个简单的管理后台,用户在共享软件客户端通过调用服务器的服务连接,可以注册一个新用户,或者进行登录获取身份信息(试用、已注册、已禁用等状态),还可以通过服务接口来进行密码修改,提高安全性及使用合理性。网络认证有几个好处,一是可以不受限于传统的机器码限制,可以
        
阅读全文
摘要:当系统加载一个CLR的进程,进程里面可能有多个线程,这时候系统会给这个进程创建一个大小为1M的线程栈。这个线程栈用来存放方法调用的实参,和方法内部定义的局部变量。下图展示了一个线程栈的栈内存。线程栈的存储是从高位内存地址向地位内存地址构建的。现在假设线程栈执行的代码要调用M1方法。在这个很简单的方法中,应该包含一些初始化这个方法的“序幕”代码,和一些“尾声”代码,负责在方法调用完成之后对方法进行清理。然后才返回给这个方法的调用者。M1方法调用开始时,M1的序幕代码在线程栈上分配局部变量name的内存。如下图然后M1调用M2方法,将name作为一个实参来传递。这造成name局部变量中的地址被压入
        
阅读全文
摘要:概述XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Language,标准通用标记语言)。它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule)。任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。XML文档可以是有效的(valid),但并非一定
        
阅读全文