首页 > 代码库 > [AaronYang]C#人爱知不知[1]

[AaronYang]C#人爱知不知[1]

<style></style>

当前编写时间:2014年12月24日21:11:14   编写人:杨洋(Aaronyang)

声明:->可以理解为 联想到,或者关联的意思。

1知识和引入

COM 组件对象模型- Component Object Model
托管代码可以调用COM组件
OLE 对象链接或者嵌入-Object Linking and Embedding
案例:例如把 Excel电子表格放到Word文档中
=>COM->DCOM (Distributed COM) ->COM+(更复杂,几乎所有组件通讯的基础,实现了事务处理,消息传输服务和对象池)
=> .NET是一种运行在Windows平台上编程的架构,一种API,Windows8还提供了新的API,即WinRT的引入,Windows运行库
=>C#是从头开始设计用于.NET的语言,它可以利用.NET Framework的功能进行开发,面向对象的语言。
=> .Net framework的核心是运行库执行环境,即CLR或者.NET运行库。通常将在CLR控制下运行的代码称为托管代码。在CLR执行编好的代码(可以用C#或者C++,vb写),还需要编译它们
  ->MSIL -> CLR把IL编译为平台专用的代码。
  -> IL总是即时编译的(JIT编译) ->编译程序不是一次性编译完,而是只编译它调用的那部分代码,编译完就保存下来,直到程序退出位置,下次继续使用时候,不需要继续编译。->JIT编译器
程序集(Assembly)是编译好的面向.NET Framework的代码的逻辑单元
 

2.NetFramework重点变化

.NET Framework 1.0  2002年
.NET Framework 2.0  2005年 C#和运行库中对泛型的支持、新类、新的接口
.NET Framework 3.0  C#2.0为基础,引入新的UI方式(WPF,XAML),通讯技术WCF,WF,CardSpace
.NET Framework 3.5 和C#3.0  主要是LINQ
.NET Framework 4.0 和C#4.0  重要版本动态语言查询DLR,提供并行编程方式,WCF支持配置方式
.NET Framework 4.5 和C#5.0 异步async和等待await,Windows8开发的,WPF改善,EF改善,ASP.NET MVC4/5等
.NET Framework 5.0 和C#6.0 2015年预计就要出来了,其实已经出来了,坐等vs2015旗舰版吧

3阅读笔记

可以使用指针和直接访问内存,C#可以再没有它们的条件下访问内存
C#类的 单一继承性
值类型,变量直接存储数据,引用类型,变量仅存储地址
强数据类型的好处:语言的互操作性,垃圾收集,安全性,应用程序域
CTS和CLS确保了语言的互操作性。因为遵循了规范,那么C#就可以调用vb.NET,调用Visual C++的库了,他们最终IL的代码一致。也可以编写非CLS兼容代码也是可以的,但不保证其他语言可以调用
垃圾回收(.NET垃圾回收器)-> 内存管理-  1.完全手工方式  2.让对象维护引用技术,为0就删除对象
-> 内存泄露的问题
反射与DLR,并行编程(多核处理器),异步编程,多线程编程

4谈变化

.NET web变化:ASP.NET->ASP.NET MVC 1/2/3/3.5/4/5 -> 明年的 vNext
cs变化:Winform -> WPF -> WinRT
                        -> cs嵌入bs浏览器控件
数据库变化: rmdb -> nosql -> newsql
                ->云数据库
       ->缓存 memcached,redis
设计变化:web2.0 -> metro -> 扁平化
触屏:Windows+WPF ->  盒子+安卓
富媒体: Flash -> SilverLight -> Html5+CSS3
APP开发变化: Android - IOS - WP等原生开发 到 统一Html5结合原生控件开发
                    -> 微信的开发  -> 一个语言开发,多平台发布
通讯变化: socket -> remoting ->webservice -> wcf -> webapi -> webapi2 / node.js 
行业变化: 纯硬件公司 -> 纯软件公司  ->  软硬件都开发的公司
             结合硬件的传感器 数据 -> 软件分析
             通过终端控制 硬件命令
             或者终端显示(触屏软件)
游戏行业不乱弹琴了: Unity3D 3.x/4.x 和 Unreal Engine3/4, 从不跨平台到跨平台
                             PC单机 -> 其他设备(psp,xbox,kinect) -> PC单机带维护的类型 -> 网游 -> 页游 -> 手游
前端变化: js出了很多库(例jquery) 和 框架(例angular.js等),响应式开发 -> 跨终端开发(电脑,投影仪,手机等)
      js还出了很多其他的js转译语言,例如CoffeeScript, html5多了,开始了各种的html5的框架,适用于各种应用场景,css也开始多样了,例如 less,sass等
开发思维变化: 企业开发 -> 互联网开发 -> 云开发
职责变化: 程序员 -> 软件工程师 -> 高级软件工程师 -> 技术专攻 -> 技术总监
                ->项目经理/主管
                                           -> 不写文档要写文档了,不出差要出差了
                                           -> 要考虑定居的事了,谈恋爱了,要考虑买房的事了
软件盈利思路:攒用户 -> 收集资料 -> 增值业务/服务 -> 推广告
       做产品 -> 卖服务
                   攒流量 -> 提升排名 -> 卖广告位或者卖业务数据
                   政府支持,国家支持,中间佣金,外包或外派入住开发等
                   
可喜可贺,IE6开始放弃,最低标准到IE8
...

我的理想公司是个盖世公司,有一天他会踩着七色云彩来聘我。我每天努力坚持把自己变优秀,只盼有一天能为你效力。一定要相信自己的能力

[AaronYang]C#人爱知不知[1]