net framework from 1.0 -> 4.0

58
[email protected] NET Framework 1.0 → 4.0

Upload: ligaoren

Post on 29-Jun-2015

9.351 views

Category:

Design


6 download

DESCRIPTION

简单介绍了.net framework 从1.0到4.0的演变历程.本文已经开放下载

TRANSCRIPT

Page 1: net framework from 1.0 -> 4.0

[email protected] Framework 1.0 → 4.0

Page 2: net framework from 1.0 -> 4.0

假如给你一次机会从零开始学习 .net,你还会使用同样的方法么 ?

Page 3: net framework from 1.0 -> 4.0

我们换一个角度……

Page 4: net framework from 1.0 -> 4.0

第一个问题 : 你是用什么做开发的 ?

• C# 1.0 / 2.0 / 3.0 / 4.0 • Vs2005 VS2008 VS2010• .net Framework 2.0 /3.0 / 4.0

????

Page 5: net framework from 1.0 -> 4.0

1.0 1.1 2.0 3.0 3.5 4.0

2002 2003 2005 2006 2007 2010

vs2002 vs2005vs2003 vs2008 vs2010

Page 6: net framework from 1.0 -> 4.0
Page 7: net framework from 1.0 -> 4.0

这些年我们一直追技术 ......

Page 8: net framework from 1.0 -> 4.0

• 这些年 .net 到底发生了哪些变化 ?• 这些变化有什么规律吗 ?• 除了语法糖我们还能关注些什么 ?

Page 9: net framework from 1.0 -> 4.0

.NET Framework 的设计目标是什么 ?

Productivity 

Page 10: net framework from 1.0 -> 4.0

1. 减少语法噪音• 完成目标功能语法本身代码量所占比例• 这部分改进多数被我们当作语法糖

Page 11: net framework from 1.0 -> 4.0
Page 12: net framework from 1.0 -> 4.0
Page 13: net framework from 1.0 -> 4.0

2. 惯用法实现• 多数人都会采用的惯用法 , 会逐渐迁移到框

架内实现• 例如 :– TryParse – int? default()– EventHandler<T>

Page 14: net framework from 1.0 -> 4.0

• 惯用法的实现职责从开发人员转移到框架 ,往往也会降低代码量

Page 15: net framework from 1.0 -> 4.0

3. 类库功能增强• 常用功能逐渐加入到类库中• List<T>.FindAll• Stringbuilder.Clear();• String.Join• Collection 类库每一个版本都在变化

• 这种变化比较零散 , 需要我们 BCL 有一个持续的关注

Page 16: net framework from 1.0 -> 4.0

Page 17: net framework from 1.0 -> 4.0

4. 编程范式• 2.0 泛型编程• 3.0 函数式编程• 4.0 并行编程 dynamic

Page 18: net framework from 1.0 -> 4.0

5. 设计模式• 设计模式本质上是弥补面向对象语言的不

足• 如果语言本身支持 , 何必重新发明轮子 ?– Lazy<T>– Event– Iterator

Page 19: net framework from 1.0 -> 4.0

6. 产品级通用解决方案• LINQ• EF• TPL• Rx

Page 20: net framework from 1.0 -> 4.0

7. 项目开发支持• Code Behind• Partial Class• Namespace alia

Page 21: net framework from 1.0 -> 4.0

我们再换一个角度……

Page 22: net framework from 1.0 -> 4.0

OOP 设计原则

SRP-SoC

OCP

DIP

DI/IoC

KISS

DRP

Page 23: net framework from 1.0 -> 4.0

This page intentionally left blank

Page 24: net framework from 1.0 -> 4.0

.net Framework 2.0

Page 25: net framework from 1.0 -> 4.0

泛型 Generics 

<T>  算法抽象

Page 26: net framework from 1.0 -> 4.0

迭代器 Iterators 

foreach yei ld   IenumberableIenumberator  Col lecti on

Page 27: net framework from 1.0 -> 4.0

局部类 partial

代码生成 一个类确实很大怎么办

Page 28: net framework from 1.0 -> 4.0

TryParse()

Test-do exception

Page 29: net framework from 1.0 -> 4.0

• 属性访问修饰符 access modifiers on getters and setters 

Page 30: net framework from 1.0 -> 4.0

• 匿名方法 anonymous methods.  

Inline

//declare a method with no name and convert it into a delegate.

Page 31: net framework from 1.0 -> 4.0

• 后台工作进程 background worker pattern

 Event-based Asynchronous Pattern (EAP)

Page 32: net framework from 1.0 -> 4.0

• 泛型约束 Generics Constraints

Page 33: net framework from 1.0 -> 4.0

• 最令你吃惊的事实是什么?

人生只有 900 个月.net framework 2.0 才有静态类

Page 34: net framework from 1.0 -> 4.0

• C#– default()– System.EventHandler<T>– System.Collections.Generic.List<T> FindAll()– General Catch Block– Nullable Modifier int?– contravariance & covariance

• Product– Ado.net– Asp.net

• What's New in the .NET Framework Version 2.0• http://msdn.microsoft.com/en-us/library/t357fb32.aspx

• Breaking Changes in .NET Framework 2.0• http://msdn.microsoft.com/zh-cn/netframework/aa570326.aspx

Page 35: net framework from 1.0 -> 4.0

.net Framework 3.0

Page 36: net framework from 1.0 -> 4.0

• 3.0

Page 37: net framework from 1.0 -> 4.0
Page 38: net framework from 1.0 -> 4.0

.net Framework 3.5

Page 39: net framework from 1.0 -> 4.0
Page 40: net framework from 1.0 -> 4.0

匿名类型 anonymous types

var

Page 41: net framework from 1.0 -> 4.0

自动属性 automatically implemented properties

{get;set;}

Page 42: net framework from 1.0 -> 4.0

集合初始化 Collection Initializers

new List<int>(){1,2,3,45};

Page 43: net framework from 1.0 -> 4.0

对象初始化 Object Initializer

Student student=new Student(){ StudentName="zen",Number=20022396};

Page 44: net framework from 1.0 -> 4.0

扩展方法 Extension methods

“abc”.ToHTML()

Page 45: net framework from 1.0 -> 4.0

LINQ

data.Select(n=>n.ToUpper()).All(n => n.Length > 5);

Page 46: net framework from 1.0 -> 4.0

无参匿名方法 Parameterless Anonymous Methods

 delegate { return Console.ReadLine() != "“}

Page 47: net framework from 1.0 -> 4.0

Lambda 表达式(a,b)=>a+b

Expression Trees

Page 48: net framework from 1.0 -> 4.0

.net Framework 4.0

Page 49: net framework from 1.0 -> 4.0

TPL & Parallel loops

PLINQConcurrent Collection

Page 50: net framework from 1.0 -> 4.0

dynamic

Page 51: net framework from 1.0 -> 4.0

Optional parameters

 

Page 52: net framework from 1.0 -> 4.0

Tuple

 

Page 53: net framework from 1.0 -> 4.0

Func & Action

 

Page 54: net framework from 1.0 -> 4.0

结束了吗 ?

Page 55: net framework from 1.0 -> 4.0

C# 5.0 is Coming Soon

Page 56: net framework from 1.0 -> 4.0

• 10000 个小时的练习,成为技术专家

我曾认为用手槌要六百年才能掘通的隧道

安迪用不到二十年就办到了

持续关注,坚持练习

Page 57: net framework from 1.0 -> 4.0

每天早晨叫醒我们的不是闹钟而是梦想

Page 58: net framework from 1.0 -> 4.0

谢谢 !