TUP Masters第六期实录:Jeffrey Richter讲解Win8应用开发与.NET4.5

  • 来源: CSDN 作者: 付江   2012-12-10/22:01
  • CSDN报道(付江/文)12月8日CSDN和《程序员》杂志举办了CSDN TUP Masters第六期:Jeffrey Richter讲解Win 8应用开发与.NET4.5。

    Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,包括《Windows高级编程指南》、《Windows程序设计》、《CLR via C#》等书培育了几代的软件开发设计人员。他所联合创办的Wintellect公司已有12年历史,业务领域涉及咨询、培训、设计、调试,与微软有密切的合作关系,他本人也长期担任微软技术团队开发顾问,尤其为微软的.NET框架贡献良多。

    微软技术专家Jeffrey Richter

    作为CSDN的老朋友,Jeffrey Richter在去年访问中国的时候就参加过TUP的活动,那一次他重点介绍了.NET Framework核心和运行基础的CLR(详见上次报道)。而在本次活动中,Jeffrey Richter则谈到了Windows 8的开发特性、应用商店、WinRT编程、异步编程等开发者感兴趣的话题。

    Jeffrey Richter的新书《CLR via C#》, 4th Edition已经在11月份出版,但目前仅仅限于英文版本,由微软出版社出版,中文版权由Oreilly代理。新版里全面阐述了.NET Framework架构、运行时环境以及其它主题: 包括异步编程和新的Windows Runtime(也就是Win8新增加WinRT运行时),提供了Visual C# 2012的扩展示例泛型、线程等重点内容。

    CSDN TUP Masters第六期现场 严寒挡不住开发者对技术的热情

    演讲分上下半场,上半场Jeffrey Richter重点讲Windows 8应用开发。他谈到了微软推Windows 8的理念:向后兼容、内核优化、设计新API、支持多CPU架构、触控、强化对外围设备的支持。他尤其强调了Windows 8和.NET 4.5都能向后兼容,100%兼容之前版本的应用。Windows 8对开发者最大的改变在于面向触控的编程。经过统一内核后,开发者做一次编程就可跨所有的Windows终端运行。

    Windows商店应用模式

    Jeffrey Richter介绍了开发者向Windows商店提交应用的流程和注意事项。开发者将APPX提交到Windows Store后,官方会进行认证,尤其是要审核应用的安全性和是否涉及色情暴力内容。如果通过认证,该应用就可以在Windows Store发布,供全球用户下载。开发者可以自由设定商业模式。他提到了几点注意事项,对应用程序的申明、开发商信息、应用设置、如何获取系统资源、应用间集成及数据搜索、安装和卸载时间。

    Windows商店应用架构

    WinRT API降低了开发者入手难度,微软系的技术人员可以用多种语言编程,不像iOS,只能使用Objective-C,Android也主要针对Java开发人员。JavaScript开发人员、C/C++开发人员、.NET开发人员都可以使用WinRT,它的编程范式对这些语言的开发人员来说都很简单。

    在Jeffrey Richter看来,Windows新老版本另一个主要区别在于对进程状态生命周期的管理。微软的想法是让终端用户体验更简便一些。从用户角度来看,他可能同时运行了20~30个应用,占用了大量内存。因此,如果内存不够的话,他必须要决定终止哪些应用。其实用户并不知道该如何做决定,他不知道已经用了多少内存,还剩多少内存。微软让操作系统人员加入一个功能,就是对进程生命周期的管理。

    支持异步编程是因为线程太昂贵

    下半场Jeffrey Richter将话题引向了.NET 4.5的新特性尤其是对异步编程的支持。他认为:“线程是非常昂贵的资源”。有很多线程特性需要开发者注意。其中一方面就是内核特性以及用户体验。系统对异常处理、图象处理的时候,最大的开支是堆栈,一个线程有两个堆栈,如果用户使用更多堆栈,系统效率就会受到更多限制。每创建一个线程,在这过程中就有动态链接库的产生,在Windows中可能有250或者300个DIL是在单个线程中的。一旦创建一个线程,Windows就会把所有相应的内存用来响应,由此导致程序变慢。目前一个好的做法就是最大限度减少使用线程的范围和需要。

    另外,很多人在创建服务器端应用时,每当来一个客户端的请求,他们就会创建一个线程,并用这个线程来处理请求。当这个线程进行某些操作时,比如访问数据库这样的常见场景,或者是跟其他网站对话这样的常见场景,这个线程和它占用的所有资源就被阻塞了,除非数据库服务器或是网站服务器有回应,它什么都做不了。

    Jeffrey Richter列举了大量同步处理的弊端,由此也引出了异步编程的重要性。异步操作可以执行大量占用资源的I/O操作,而不必阻止主线程。使用异步编程时,可以在可能需要长时间运行的代码指定点处理挂起,当程序的其他部分无法继续时,以此来避免可能的性能瓶颈并增强应用程序的总体响应能力。从.NET Framework 4.5开始,I/O类型包括异步方法简化异步操作。异步方法在其名称中包含Async例如ReadAsync、WriteAsync、CopyToAsync、FlushAsync、ReadLineAsync和ReadToEndAsync。这些异步方法对流类,如Stream、FileStream和MemoryStream以及用于读取或写入使用至流 (如TextReader和TextWriter)的类。

    现场抽奖、签名赠书

    部分中奖者/参会者与Jeffrey Richter合影留念

    本次TUP活动录制了视频,错过现场活动的朋友请关注CSDN网站陆续更新的视频内容。此外,Jeffrey Richter在活动后接受了《程序员》杂志的独家专访,请关注后续内容。

    什么是TUP?

    Technology 技术

    User Experience 用户体验

    Product 产品

    分享产品背后的技术和用户体验故事

    TUP是由全球最大的中文IT技术社区CSDN和最具影响力的IT技术期刊《程序员》发起组织的线下活动,以业界知名专家讲座和论坛形式在北京、上海等主要城市定期举行,主要针对IT产品研发相关的技术、设计、运营、运维、管理专业人士,目的是与技术界人士共同关注IT产品研发背后的成败经验,关注技术、用户体验和产品设计,信仰开放、创新、交流和社区。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多