摘要:
随着Windows8的发布,Windows 8 Metro应用程序开发也逐渐得到大家的关注,Visual Studio 2012发布,更是让开发人员蠢蠢欲动!Windows 8 Metro 应用开发入门系列将跟大家一起走进Win8 Metro应用程序开发的世界。这个系列将从开发环境搭建开始,逐步进入Windows 8 Metro应用开发的各个知识点,最后再以一个实例来演示Metro应用程序开发的过程。 阅读全文
摘要:
这个系列,将从山脚写到山腰。由于鄙人知识匮乏,不敢奢望攀登山顶。 阅读全文
摘要:
Metro UI与Windows Phone一样在提供了布局在屏幕下文的应用程序工具栏BottomAppBar,由于平板设备特有的应用,Metro UI还提供了布局在屏幕上方的导航栏TopAppBar。另外,Metro UI还提供了独特的对话框。这一章我们来介绍一下工具栏与导航栏的应用,最后再介绍一下弹出对话框。 阅读全文
摘要:
基于Silverlight开发Metro App可以使用Silverlight原生的控件,为了更好的开发Metro App,控件库又专门增加了几个新的控件,如:GridView、Flipview、ProgressRing、SemanticZoom和VariableSizedWrapGrid等,这些控件为平板设备提供了良好的触控体验,这一章我们来介绍一下这几个控件的简单用法。 阅读全文
摘要:
Windows8已经发布,随之而来的基于WinRT的Metro应用也正向我们走来,正像它所宣传的:光滑、快、现代。看习惯了玻璃、立体风格的应用,或许Metro的简洁能给你留下不一样的体验。Visual Studio 2012为Metro应用提供了强有力的开发支持。磨刀不误砍柴工!这一章我们先来介绍一下开发环境的搭建及可能遇到的问题,最后再来一个简单的应用体验一下Metro的开发。 阅读全文
摘要:
反射,一个很有用且有意思的特性。当动态创建某个类型的实例或是调用方法或是访问对象成员时通常会用到它,它是基于程序集及元数据而工作的,所以这一章我们来讨论一下程序集、反射如何工作、如何动态创建类型及对象等相关知识,甚至可以动态创建程序集。 阅读全文
摘要:
说到序列化,大家都非常熟悉XML序列化,还有二进制序列化,经过序列化的数据流更方便传输和存储。其实我们可以对序列化进行更多的控制,比如对序列化(和反序列化)前后的数据操作、定义自己的可序列化类型等。这一章我们来讨论一下有关于序列化和反序列化。 阅读全文
摘要:
线程,一般认为只有在“复杂场景”中才会使用,有人对它望而生畏,因为它难以管理和控制,而又总有人对它摩拳擦掌,因为它提高了程序的响应速度。这一章我们来讨论Windows对线程的支持、CPU调度、线程开销、线程池、多线程数据同步等,并且再介绍一点关于异步编程的东西。 阅读全文
摘要:
经过上一章的讨论,我们知道,CLR会在必要的时候启动垃圾回收器对不再使用的对象所占的内存进行回收,其实,在一个对象被回收前我们还可以通过析构函数来实现终结操作释放资源,了解终结操作后,我们还可以使用Dispose模式进行手工强制清理资源。这一章我们将讨论这些相关话题。 阅读全文
摘要:
基于.NET平台的开发语言中,最让开发人员爽的一点就是垃圾回收处理机制,在编码过程中,终于可以解放你的双手来关注更重要的事情。很多的资料中在讲到.NET中的垃圾回收机制时都说“CLR在合适的时候进行垃圾回收”,但什么时候才是“合适的时候”?内存又是如何分配的?CLR是如何对内存进行回收的?这一章我们来讨论有关垃圾回收的相关内容。 阅读全文
摘要:
人非圣贤,孰能无过。代码是人写的,当然也不可能不出错,我们只能期望代码更健壮,不可能追求完美,能做更多的就是如何从错误中恢复或寻找替代方案。CLR提供了异常处理机制,它不仅能让代码在出错的时候更优雅地让人们去解决异常,也能在必要的时候抛出异常。那么,如何更规范的定义和使用异常消息呢?抛出异常会不会影响性能呢? 阅读全文
摘要:
几乎所有的资料都告诉我们,在频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能,不辞劳苦的我们也写示例验证过,确实如传说的那样!但为什么StringBuilder 在操作字符串会有优异的表示呢?它真是像很多资料中所说“每次新追加进来字符串和旧有字符串总长度超设定容量时,会新键一个数组存放串字符,并且丢弃原有旧数组”吗?这一节我们来看个究竟。 阅读全文
摘要:
设计类型的时候可以使用各种成员来描述该类型的信息,但有时候我们可能不太愿意将一些附加信息放到类的内部,因为这样,可能会给类型本身的信息描述带来麻烦或误解。我们想为类型、属性、方法及返回值附加额外的信息,这些附加信息可以更明确的表达类及其对象成员的状态,怎么办?定制特性Attribute可以做到。 阅读全文
摘要:
字符串是保存文本的System.String类型对象。它跟值类型(如:Int32、Int64等)有着相似的使用方法及表达目的,但它并不是值类型。由于在编程中会大量使用字符串,所以CLR为了提高性能及开发方便,对它进行了特殊处理。这一章,我们来介绍一下字符串的驻留机制、字符串池及字符串的比较等特性。 阅读全文
摘要:
抽象类,是一种特殊的类,可以定义具有实现的方法,也可以定义未实现的方法契约,本身不能被实例化,只能在派生类中进行实例化。接口,对一组方法签名进行统一的命名,只能定义未实现的方法契约,本身也不能被实例化,只能在实现类中进行实例化。二者都可以有部分数据成员(如:属性),它们貌似有着相同的“契约”功能,但对各自的派生类(实现类)又有着不同的要求,那么,到底它们有何异同呢?这一章将从四个方面来讲解它们的相同与不同之处。 阅读全文
摘要:
2012年7月21日,北京因暴雨灾害导致劳命伤财。这个事情过去后,“自然灾害预警”系统又一次被人们提起,它就是将自然现象前交发送通知给人们,这个过程能很好地解释C#语言中的事件。在上一节《C#基础知识梳理系列五:委托与事件(上)》我们主要讨论了与委托相关的知识,包括委托的内部实现、委托链等。那么事件与委托是什么关系呢?事件又是如何工作的呢?这些将是这节主要讨论的内容。 阅读全文