微软最有价值技术专家(MVP),著有《编写高质量代码:改善C#程序的157个建议》,有着十多年的软件从业资历。
WPF快速指导4:数据绑定之绑定方向与自定义转换器 本文摘要: 1:绑定目标与绑定源之间的方向; 2:自定义转换器; 1:绑定目标与绑定源之间的方向 该部分的定义MSDN已经描述的非常清楚了,如下: 您可能希望应用程序使用户可以更改数据并将数据传播回源对象。
WPF快速指导3:数据绑定 本文摘要:1:实体类的绑定;2:实体类集合的绑定及DataTemplate;3:自定义的实体类集合,如ObservableDictionary; 4:Path的语法; 1:实体类的绑定 理解WPF数据绑定,首先需要理解接口INotifyCollectionChanged。
C#中异常使用的注意事项 一:两个立足点 1:正常控制流程下的代码运行并不会带来问题,只有引发异常才会带来效率问题。 2:不应将异常机制用于正常控制流中。 二:需要引发异常的四类情况 第一类情况是:如果运行代码后,造成内存泄漏、资源不可用或应用程序状态不可恢复,则引发异常。
C#资源释放及Dispose、Close和析构方法 备注:此文的部分观点有误,之所以仍旧保留本文,是需要在后期给出一个勘误版。正确的版本在这里“C#中标准Dispose模式的实现” 一:什么是资源 在开始本文前,需要一些准备知识。
异常处理之ThreadException、unhandledException及多线程异常处理 一:ThreadException和unhandledException的区别 处理未捕获的异常是每个应用程序起码有的功能,C#在AppDomain提供了UnhandledException 事件来接收未捕获到的异常的通知。
WPF快速指导1:资源 本文摘要: 1:资源应用场景; 2:静态资源和动态资源; 3:Application.Current.Resources和Application.Current.Resources.MergedDictionaries 4:路径 一:资源的应用场景场景1:格式化界面显示元素 所谓格式化界面显示元素,就是使用统一的风格来定义软件的每个界面。
日常工作中,需要为程序集提供统计分析: 1:程序集方法数; 2:开发人员数目及各自所开发或REVIEW的方法数; 3:测试中,被标注有BUG的数目; 4:直接查看方法的IL代码; 鉴于以上统计的需要,特开发本EXE。
即使是做网络应用,在断线情况下,也需要考虑数据的本地存储。在SQLite出现之前,数据量大的情况下,我们一直使用ACCESS,数据量小,则文件存储。ACCESS不支持事务原子性,在断电情况下(这种情况总是会发生)会导致数据很难恢复。
并行 LINQ (PLINQ) 是 LINQ 模式的并行实现。PLINQ 的主要用途是通过在多核计算机上以并行方式执行查询委托来加快 LINQ to Objects 查询的执行速度。与顺序 LINQ 查询一样,PLINQ 查询对任何内存中 IEnumerable 或 IEnumerable) 数据源进行操作,并推迟执行,这意味着在枚举查询之前不会开始执行这些操作。
任务并行库 (TPL) 基于任务的概念。术语“任务并行”是指同时运行的一个或多个任务。任务表示异步操作,在某些方面它类似于创建新线程或 ThreadPool 工作项,但抽象级别较高。任务提供两个主要好处: 系统资源的使用效率更高,可伸缩性更好。
任务并行库 (TPL) 是 .NET Framework 4 版的 System.Threading 和 System.Threading.Tasks 命名空间中的一组公共类型和 API。System.Threadings.Tasks 命名空间提供可简化并发和异步代码编写工作的类型。
基于如下的几个理由,需要为应用程序提供多个版本: 1:应用程序有体验版和完整功能版; 2:应用程序测试过程中需要完成一些自动化的操作; 1:提供体验版 关于第一点,所谓体验版也就是完整版的一个缩小版。
本文摘要: 1:测试要求 2:在VS中运行自动化测试 3:脱离VS进行自动化测试 在上一文中《C#借助API实现黑盒自动化测试工具的编写》(http://www.cnblogs.com/luminji/archive/2010/11/03/1867730.html),我们使用WINDOWS API来实现自动化测试工具的编写。
最近做一题关于泛型返回值的题,结果发现: 1:很多人做错误了; 2:很多人疑问,泛型作为返回值有什么意义; 题目如下: “编写一个函数,要求输入的参数和输出的结果都是泛型。” (PS:评论中有人指出,题目本身有问题,更合适的描述是:编写一个函数,要求输入参数和返回值的类型都是泛型类...
C#借助API实现黑盒自动化测试工具的编写 本文代码下载(VS2010开发):http://download.csdn.net/source/2796362 本文摘要: 1:一个简单的例子 1.1:EnumChildWindows介绍 1.2:主要源码 2:难点:如何获取指定的控件句柄 2.1:使用SPY++ 2.2:获取控件位置 2.3:获取控件ID 1:一个简单的例子 在日常编码过程中,我们常常会进行自动化测试。
C#笔记32:FRAMEWORK安全性之代码访问安全和角色安全 本章概要: 1:FRAMEWORK安全性中的几个概念 1.1:安全权限 1.2:类型安全和安全性 1.
C#笔记31:本地化或多语言支持 本章概要: 1:本地化解释 2:多语言支持 3:疑问的提出“非窗体,如控件的多语言支持” 1:本地化解释 本地化对我个人来说,更多的用处是开发多语言版本。
我的项目当中,考虑到安全性,需要为每个客户端分发一个数字证书,同时使用数字证书中的公私钥来进行数据的加解密。
C#笔记30:Trace、Debug和TraceSource的使用以及日志设计 本章概要: 1:Trace 和 Debug区别 2:什么是Listeners 3:跟踪开关 3.1:使用BooleanSwitch开关 3.
T-SQL笔记8:索引 本章摘要: 1:什么是索引 2:索引和约束 3:设计索引的准备 4:索引排序顺序 1:什么是索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。
C#笔记29:程序集及应用程序配置及App.config和YourSoft.exe.config 本章概要: 1:什么是程序集 2:程序集标识属性 3:强名称的程序集 3.1:强名称工作原理 4:配置文件 5:使用 DEVPATH 查找程序集 6:指定要使用的运行库版本 7:App.config和YourSoft.exe.config 1:什么是程序集 程序集是 .NET Framework 应用程序的构造块;程序集构成了部署、版本控制、重复使用、激活范围控制和安全权限的基本单元。
C#笔记9:异常 本章概要: 1:为什么需要异常 2:finally 3:什么时候需要捕获异常 4:什么时候需要抛出异常 5:异常处理中的错误做法 6:为什么需要自定义异常 7:自定义异常的设计要素 8:什么时候不需要自定义异常 1:为什么需要异常 利用异常处理,我们可以将资源清理代码放在一个固定的位置,并且确保它们得到执行。
C#笔记28:I/O操作 本章概要: 1:基本文件I/O 1.1:用于文件 I/O 的类 1.2:用于从流读取和写入流的类 1.3:通用 I/O 流类 2:通用I/O任务 3:独立存储 3.1:为什么要使用独立存储 3.2:使用独立存储 以下的区别有助于澄清文件和流的差异。
T-SQL笔记7:临时表和表变量 本章摘要: 1:临时表 2:表变量 3:两者的取舍 1:临时表 Temporary tables are defined just like regular tables, only they are automatically stored in ...
T-SQL笔记6:GO 本章摘要:无 GO向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。 语法:GO [count] count 为一个正整数。
T-SQL笔记5:键、代理键、约束 本章摘要 1:Keys 1.1:Creating aTable with aPrimary Key 1.2:Adding aPrimary Key Constraint to an Existing Table 1.
T-SQL笔记4:表 本章摘要 1:CREATE 2:SQL Server 2005 Data Types 3:Adding aColumn to an Existing Table 4:Changing a Column Definition 5:Creating aComputed ...
C#笔记27: Emitting Dynamic Methods and Assemblies(动态程序集) 本文摘要: 1:什么是动态程序集 2:"Emitting Dynamic Methods and Assemblies”有什么用 3:动态程序集的一个简单例子 4:更多资料 1:什么是动态程序集 程序集:简单来说就是一个以公共语言运行库(CLR)为宿主的、版本化的、自描述的二进制文件。
T-SQL笔记3:事务、锁定和并发 本章摘要 1:事务 1.1:显式事务 1.2:使用DBCC OPENTRAN显示最早的活动事务 2:锁定 2.1:查看锁的活动 3:并发影响及隔离级别 3.1:并发影响 3.2:隔离级别 4:阻塞 4.1:找到并解决阻塞进程 4.2:设定阻塞时间 5:死锁 1:事务 事务是单个的工作单元。
C#笔记26: 与非托管代码交互操作 本文摘要: 1:非托管代码交互操作的概念 2:类型库 3:激活 COM 对象 4:向 COM 公开 .NET Framework 组件 4.1:可参考内容 4.2:什么样的 .NET 类型才能向COM公开 5:使用非托管DLL 5.1:标识 DLL 中的函数 5.2:在托管代码中创建原型 5.3:调整定义DllImportAttribute 6:映射 HRESULT 和异常 1:非托管代码交互操作的概念 在运行时控制下执行的代码称作托管代码。
T-SQL笔记2:INSERT、UPDATE和DELETE 本章摘要 1:显示向一个IDENTITY列插入值 2:在表中插入拥有UNIQUEIDENTIFIER列的行 3:使用INSERT……SELECT语句插入多行 4:调用存储过程插入数据 5:根据FROM和WHERE字句更新行 6:更新大值数据类型的列 7:使用OPENROWSET和BULK插入或更新图片文件 8:DELETE 9:截断表 10:使用TOP分块修改数据 1:显示向一个IDENTITY列插入值 IDENTITY通常用作代理键(代理键是指由数据库生成的唯一的主键)。
T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:GROUP BY 7.
WPF快速指导7:控件和自定义控件 本文摘要: 1:控件和自定义控件的概念; 2:更改控件的外观; 3:自定义控件的设计原则; 1:控件和自定义控件的概念 Windows Presentation Foundation (WPF) 附带了许多几乎在所有 Windows 应用程序中都会使用的常见 UI 组件,如 Button、Label、TextBox、Menu 和 ListBox。
C#笔记25:比较和排序(IComparable和IComparer以及它们的泛型实现) 本文摘要: 1:比较和排序的概念; 2:IComparable和IComparer; 3:IComparable和IComparer的泛型实现IComparable和IComparer; 1:比较和排序的概念 比较:两个实体类之间按>,=, student.
WPF快速指导11:输入和命令 本文摘要: 1:输入的种类; 2:命令 1:输入的种类 可在基元素类上找到公开的主输入 API:UIElement、ContentElement、FrameworkElement 和 FrameworkContentElement。
WPF快速指导9:WPF中的属性(依赖项属性) 本文摘要: 1:什么是依赖项属性; 2:实现依赖项属性; 1:什么是依赖项属性 Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。
WPF快速指导8:WPF基元素类 本文摘要: 1:什么是基元素类; 2:基元素类的使用; 3:其它重要基类 1:什么是基元素类 WPF中的大部分类都是从 SDK 文档中通常称为基元素类的四个类派生而来。
C#笔记24:善用Visual Studio 1:调试的四个窗口 2:加快编码速度 3:加快编码速度 4:使用第三方工具丰富VS 5:VS2010中的工具 6:学会调试 1:调试的四个窗口 立即窗口:提供运行时动态增加代码,或者动态改变当前代码变量的窗口。