2014年5月22日星期四

2000条你应知的WPF小姿势 基础篇<8-14> - 小九的学堂

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
2000条你应知的WPF小姿势 基础篇<8-14> - 小九的学堂  阅读原文»

  在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情。最为出色的是他维护了两个博客:2,000Things You Should Know About C# 2,000 Things You Should Know About WPF 。听到博客名字就懂这个人有多伟大了吧。他以类似微博式的150字简短语言来每天更新一条WPF和C#重要又容易被遗忘的知识。Follow他的博客也有一段日子了,很希望能够分享给大家。

  本系列我不仅会翻译他的每一个tip,也会加入自己开发之中的看法和见解,希望能够以更贴近的语言来展示大师的风采。本系列我希望自己也能和他一样坚持下来,每天的进步才能促成伟大。

  如果大家更想了解这个伟大的程序员,这个是访谈链接他在访谈中有谈到自己生平和对编程相关学习的看法,我觉得对大家会帮助很大,有时间后面会出一篇翻译这个访谈的文章供大家阅读,希望大家能够关注。

  在这里郑重说明.该系列是基于Sean Sexton先生的英文博客, 本人在此系列角色承担了翻译和备注的工作。

  前文:<1-7>WPF, 渲染, 矢量, 布局, 样式, 模板, 命令

  [小九的学堂,致力于以平凡的语言描述不平凡的技术。如要转载,请注明来源:小九的学堂cnblogs.com/xfuture]

  


  

  #8. Xaml和Code Behind

  WPF应用是由前端代码Xaml(可扩展应用程序标记语言)和后台代码(托管代码)组成。标记性语言Xaml定义了UI的布局和外观,后台定义了行为和逻辑。WPF技术实现了UI和后台逻辑的分离。
  Xaml是一个基于Xml的声明式标记语言编写的。Xaml中组织了所有的控件,以及他们的位置和父子关系。后端.cs托管代码描述了运行时UI的逻辑和行为。在编译阶段xaml和xaml.cs会编译为一个class, 所以xaml.cs你可以看出是patical的。

  下面代码是一个Xaml布局的样例:

1 <Grid>
2 <StackPanel>
3 <Button Content="Save" Height="23" Name="btnSave" Width="75" Click="btnSave_Click" />
4 <Button Content="Load" Height="23" Name="btnLoad" Width="75" Click="btnLoad_Click" />
5 </StackPanel>
6 </Grid>

  

  #9. 标记性语言的优势

  使用标记性语言Xaml和后台代码Xaml.cs模型开发比一切都定义在代码中有着很多的优势。使用Xaml的好处有:

  1. 可以在不影响控件行为的情况下更改用户界面的样式和用户体验。

  2. 设计人员可以和开发同时工作,一个负责Xaml做用户界面, 一个负责撰写后台逻辑。分工两不误。

  3. 微软提供了强大的设计工具Expression Design和Blend, 使用工具可以免写代码, 设计的界面可以直接导出成Xaml.

  4. Vs2013已经和Blend做了很好的集成,可以更高效率的做设计和开发。

  

  #10. 基于Page的页面导航

  WPF应用程序可以用一些pages的集合以及其页面导航机制来进行构建。和WindowsForm的文档流式的模型不同,它拥有一个主窗体和一个可以弹出的提醒窗口。

  如果想要创建一个基于Page的WPF程序,你需要定义一个Page来代替传统的Window:

  

<Page x:Class="WpfApplication7.Page1"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"深入SDN(一):如何去研究SDN&OpenFlow - 杨泽卫  阅读原文»

本文来自我在知乎上的回答:如何去研究SDN&OpenFlow?:对任何人来讲,时间才是最大的财富,每个人都应该把自己的时间投入到最有意义、最有影响的地方去。经过多年的学习、思考和实践,我认定这样一个规律:技术的发展不是均匀的,而是以浪潮的形式出现。每一个人都应该看清楚浪潮,赶上浪潮,如此,便不枉此生。

--《浪潮之巅》吴军

记得在孟岩的《一个“技术文化人”的片段感悟》中读到:程序员的进阶之道是“抬头看路,埋头赶路”。也许SDN的抬头看路已经相对清楚,更加需要的是埋头赶路。在开始之前请先看看:
怎样读论文-台湾彭明辉 (强烈推荐),因为后面需要阅读大量的SDN papers,几乎每一个课程开始都会提到:How to read a paper

0.斯坦福Nick McKeown的一系列演讲:2008年的Why Can't I Innovate in My Wiring Closet?,2009年的Software Defined Networks,2010年的How should the Internet evolve?,2011年的How SDN will shape networking,2012年的Making SDNs Work。learning by evolution,Nick对OpenFlow&SDN一路过来的认识变化非常之重要,开始自己也觉得这部分内容地球人(当然包括我,自诩看了很多遍)都知道,但是后续遇到问题时才发现自己有多么可笑

1.普林斯顿的Jennifer Rexford,美女教授跟SDN渊源不浅,早期的RCP和4D这两篇论文,后者直接启发了OpenFlow的诞生,2008年OpenFlow和NOX的paper作者之一,随后的的Frenetic和Pyretic从给程序员提供便利性着手,个人理解是很有意思的方向,课程链接如下:COS-597E, Princeton University, Fall 2013内容比较全面,提供部分ppt下载,但是整体内容编排上分散。她的弟子Minlan Yu在南加州大学的课程:CSCI694b, Software-defined Networking,也是论文的归类,可以后续关注是否有lecture放出来

2.哥伦比亚大学的Li Erran Li,他的课程我个人认为最值得仔细学习,内容编排清晰明确,从SDN概述、基础概念、高级设计议题到所有应用领域的分析,课程链接:COMS E6998-8 Software Defined Networking

3.CMU的Vyas Sekar,此前在纽约石溪大学也开过SDN课程,研究SDN Middlebox的,没有课程ppt,只包括论文,但是可以了解内容编排:ECE739 Network Security and Management,之前的课程如下:CSE690-01, Stony Brook University, Fall 2013

4.以色列特拉维夫大学的Mooly,有少量课程ppt,整个课程还不太完善:Reasoning about Software Defined Networks

5.Nick Feamster在Coursera上的开放课程可以预约:Coursera.org,之前课程的视频YouTube SDN Playlist: Videos for all Nick feamster lectures.应该很精彩,视频课程感觉会收获最大。另外他的高级网络课程,非常完整,涉及网络的方方面面,全是视频,真实的课堂教学,推荐学习CS 6250:Graduate Computer Networks,里面有SDN相关内容,也非常赞

6.苏黎世联邦理工学院的课程内容很丰富,推荐学习Advanced Topics in Communication Networks HS 2013: Software-Defined Networking,尤其是其中包含了如何将可编程硬件应用到实现SDN数据面的问题,刚好一直在关注这个点。

7.布朗大学Rodrigo Fonseca的课程:CSCI2950-U Advanced Networking: SDNs and Datacenter Networking,主要是论文,课程ppt极少

8.威斯康星大学Aditya Akella's 的课程,推荐学习CS838: Systems and Networking Challenges in Cloud Computing.从云计算历史,经济学,对应网络方面的详细解读,包括云计算对网络的需求,云应用,存储等,三分之一内容是SDN,有较多课程ppt


其他内容:


如果要补充网络系统方面知识,相关课程有:

如果要补充云计算和数据中心网络方面知识,相关课程有:

没有评论:

发表评论