随笔分类 - [1] .NET 程序设计
.Net,C#,面向对象
摘要:随着需求的不断变更,新功能的增加。特别是敏捷开发中,需要有一个稳定的分支随时可以打包版本。那么我们的项目不能把不稳定的代码放在主干上。对于新的功能有些需要进行技术试验,产生的不稳定代码不能影响项目的主干。对于中型项目,人数在20人及以上的情况下,往往需要分组开发,在代理管理中,我们就可以很好的利用SVN的分支功能。分支开发相对稳定以后,可以很方便的合并到主干上来。本篇最后会介绍一下如何在Visual Studio 2013/2015中使用SVN插件进行代码管理。
阅读全文
摘要:本篇介绍一款非常优秀的代码管理工具SVN,即subversion.安装操作都比较简单,支持跨平台,跨地区管理代码;有较快的速度;支持文件重命名;支持不锁定开发;管理方便,符合大众思维习惯;易于上手,代理一致性较高。
阅读全文
摘要:[.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且要对产品生命周期和开发过程进行规范管理才行。那么源代码管理器是必不可少的。本篇主要介绍一款非常简单易
阅读全文
摘要:本篇主要介绍如何将反射这一重要特性应用到设计模式中,解决swich……case,if……else带来的耦合问题,让我们的代码更漂亮,更灵活。
阅读全文
摘要:主要介绍什么是.NET反射特性,.NET反射能为我们做些什么,最后介绍几种常用的反射的实现方法,通过对反射性特的了解,可以设计出非常有用的基于反射的编程模式。
阅读全文
摘要:本节主要说明使用异步进行程序设计的优缺点及如何通过异步编程,使用传统方法BeginInvoke / EndInvoke来实现异步,使用async/await 创建异步方法和事件。通过异步编程创建具有快速响应和可伸缩性的应用程序。
阅读全文
摘要:上节介绍了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这些是多线程的基本原理。.NET 4.0以后对多线程的实现变得更简单了。本节主要讨论.NET4.0多线程的新特性——使用Task类创建多线程。
阅读全文
摘要:上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET多线程中的高级应用。
主要有在线程资源共享中的线程安全和线程冲突的解决方案;多线程同步,使用线程锁和线程通知实现线程同步。
阅读全文
摘要:随着硬件和网络的高速发展,为多线程(Multithreading)处理并行任务,提供了有利条件。其实我们每时每刻都在享受多线程带来的便利,多核处理器多线程工作、Windows操作系统、Web服务器都在使用多线程工作。使用多线程直接提高了程序的执行效率,因此学习多线程对提高程序运行能力非常必要,本节主要介绍多线程原理及.NET中多线程在.NET面向对象程序设计中的应用。
阅读全文
摘要:缓存是一种以空间换取时间的技术,.NET中特别重要的缓布技术Cache.如何利用Cache提升程序性能是我们本节主要内容,通过示例介绍了Cache的创建和移除等的方法,介绍了缓存在工厂反射模式中的应用,最后整理一个缓存的通用类。
阅读全文
摘要:缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率。
本节将介绍如何利用缓存写出高效率的代码。
阅读全文
摘要:关于JSON序列化,不能不了解Json.net(Newtonsoft.Json)这款世界级的开源类库,除了拥有良好的性能之外,功能也是非常强大的。其可以对非公有字段或属性进行序列化,可以自定义序列化的日期格式,可以进行属性改名序列化等等很多强大而好用的功能。本节一一详细的用示例介绍。此外,对于不喜欢使用第三方类库的同学,会整理一个基于微软类库的通用Json类。
阅读全文
摘要:JSON:一种轻量级、跨平台的数据传输格式。详细介绍JSON的结构,在JS中的使用。重点说明JSON如何在.NET中通过两种方法快速实现序列化和反序列化。最后介绍在使用.NET序列化JSON过程中的注意事项。
阅读全文
摘要:本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等)。
阅读全文
摘要:本篇主要介绍XML序列化和反序列化。XML作为W3C标准数据传输格式,将XML对象化处理,认识和使用XML序列化类XmlSerializer,是.NET面向对象程序设计必须要掌握的知识。本节通过对博客园文章列表=>XML,XML=>博客园文章实体对象之间进行序列化和反序列化的示例一步一步介绍。
阅读全文
摘要:在.NET编程中,经常面向对象处理完以后要转换成另一种格式传输或存储,这种将对象转向其他数据格式的过程,即序列化(Serialization)。
与之相反的过程就是反序列化(Deserialization)。掌握和利用好序列化和反序列化的方法,对提高面向编程技术很有益处。
阅读全文
摘要:本节导读:虽然在.NET编程过程中,绝大多数内存垃圾回收由CLR(公共语言运行时)自动回收,但也有很多需要我们编码回收。掌握托管与非托管的基本知识,可以有效避免某些情况下导致的程序异常。1.什么是托管与非托管?托管资源:一般是指被CLR(公共语言运行时)控制的内存资源,这些资源由CLR来管理。可以认...
阅读全文
摘要:本节主要讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构。是时候来引用他解决问题。本节通过动态创建表达式树、执行表达式树及表达式树的调试的学习,最后通过一个动态查询博客园文章结束,使小伙伴们能熟练认识表达式树在动态查询上带来的便利。
阅读全文
摘要:[.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树。 学习表达式在程序设计中的优点:比如构造动态查询、动态构造表达式树完成未知对象属性访问,比反射的性能高出很
阅读全文
摘要:本节主要说明 Lambda表达式在创建委托中的应用;Lambda表达式在Linq查询中的应用;Lambda 语句在异步事件中的应用;Lambda 的两个特性:类型推理和外部变量引用。
阅读全文