惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

PCI Perspectives
PCI Perspectives
J
Java Code Geeks
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
博客园 - 聂微东
雷峰网
雷峰网
The Cloudflare Blog
V
V2EX
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News - Newest:
Hacker News - Newest: "LLM"
爱范儿
爱范儿
NISL@THU
NISL@THU
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
腾讯CDC
罗磊的独立博客
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
S
Security Affairs
S
SegmentFault 最新的问题
月光博客
月光博客
P
Privacy International News Feed
Last Week in AI
Last Week in AI
博客园 - Franky
C
Cisco Blogs
宝玉的分享
宝玉的分享
Forbes - Security
Forbes - Security
WordPress大学
WordPress大学
博客园 - 叶小钗
L
LINUX DO - 最新话题
博客园_首页
Spread Privacy
Spread Privacy
大猫的无限游戏
大猫的无限游戏
S
Secure Thoughts
IT之家
IT之家
人人都是产品经理
人人都是产品经理
I
Intezer
W
WeLiveSecurity
C
CERT Recently Published Vulnerability Notes
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyberwarzone
Cyberwarzone
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
S
Security @ Cisco Blogs
L
Lohrmann on Cybersecurity
美团技术团队

博客园 - Jeffrey Sun

关于Duck Typing的性能分析 - Draft Composite Application Guidance (Prism) V4 Releases! 关于文件流Seek以及Read操作的一点不满 VS2010 "内存不足" 错误补丁 微软Visual Studio 2010 第三集:幸福要敏捷 详解.NET 4.0平行任务库中必须注意的三种关系 [转载]微软4月13日发布Silverlight 4 团队基础生成自动化流程之最佳实践(VI) - 系统模块化条件编译 团队基础生成自动化流程之最佳实践(V) - 使用Desktop Build 团队基础生成自动化流程之最佳实践(IV) - 重写团队基础默认生成流程 谁是你的下一行CODE 团队基础生成自动化流程之最佳实践总论(III) – 重写生成号产生机制 团队基础生成自动化流程之最佳实践总论(I) – 自动化生成流程基础 团队基础生成自动化流程之最佳实践总论(II) – 程序集版本信息 Memory Reordering/Memory Model 及其对.NET的影响 从DWG到XAML (III) – .NET中的 XPS Packaging类库及一个DWFx Packaging类库的实现 (源码) 从DWG到XAML (II) - DWFx格式解析及其和XPS的关系 从DWG到XAML (I) - 浅谈DWG历史,现状及方向 - Jeffrey Sun 当心Dictionary带来的一种隐式内存泄漏
山雨欲来风满楼, 却待山花烂漫时 - 写在.NET 4.0和Visual Studio 2010发布前夜 - Jeffrey Sun
Jeffrey Sun · 2010-04-11 · via 博客园 - Jeffrey Sun

      把两句诗拧在一起, 实在是体现对VS2010复杂的感觉. 有点哗众取宠? 其实真不是.

      从CTP到Beta再到RC, VS2010(包括.NET 4.0/W*F 4.0等一系列相关更新), VS2010在社区的影响已渐成"山雨欲来风满楼"之势. 大家在关注, 在议论, 在尝试这些由VS2010带来的新特性, 并且预测这些新特性对于今后3年乃至更长时间内.NET软件开发过程带来的改变和影响. 譬如

  • 动态类型(Dynamic)等一系列语言上的更新;
  • 新的ThreadPool实现;
  • 平行计算支持及新的Task Parallel Library , Parallel.For, Parallel.ForEach, PLINQ;
  • IDE上的改进, 比如使用WPF重写了IDE, Box Selection, 多显示器支持, JS和标签的自动提示, 快速查找, 新的的控件等;
  • ASP.NET MVC/Sharepoint等集成;
  • 新的建模项目- Modeling project;
  • Team Foundation 方面的更新比如新增代码覆盖检查集成等;
  • 对TDD的支持等;
  • F#正式进入等.

      如此多令人幸福到眩晕的新特性, 应该说.NET 4.0和VS2010 不仅仅是.NET 3.5Sp1和VS2008的一个自然延伸(废话), 更是一个在原有积累沉淀的基础上, 一个新的高度上的新起点. 这些被带来的新特性, 不仅足够应对当前的软件开发过程, 而且对开发过程趋势做出了预估; 不仅仅从性能和功能上更新了.NET, 也对VS的易用性做了足够多的更新; 哦, 连广告都更新了(做你的下一行code).

      在浅尝辄止地尝试某些新特性譬如TPL(Task Parallel Library)之后让人感觉, 这次的平台及工具更新很强大也很及时. 但是事情真的如想象的一样美好么? 如果您尝试一下Modeling project?

走马观花看Modeling project

      VS2010添加了新的项目类型-Modeling Project, 意在将建模和设计更多的引入到VS的大环境里来. 我们先撇开这个新添的项目类型, 撇开诸如Retional Rose, Enterprise Archtecture等建模工具, 思考一下我们开发人员对于一般的建模软件都需要什么样的特性(笔者粗略的总结了一下, 不足之处请您提出):

  • 自由的结构表达和示意功能, 支持UML 1.1或更高版本(最基本的一些图表)
  • 集成已知/通用的模板(比如GoF 24 Design Pattern, MVC, MVVM等)
  • 代码生成功能(正向工程,虽然大家都不怎么认可这个东西)
  • 在团队范围内共享和修改
  • 版本管理(合并/修改等)
  • 关系验证
  • 从已有源代码直接生成图表(或者最少是能导入代码生成元素定义)

      我们打开VS2010 RC, 创建一个Modeling Project, 然后使用模板很容易就能创建出一个比较炫目的效果:

Capture       看起来还不错哈, 但是默认没有几个模板的, Microsoft只是为这样的功能提供了SDK供大家开发模板等, 还好很多team跟进发布了一些模板, 譬如Microsoft Application Architecture Guide, 2nd Edition, 4+1 View Model of Software Architecture.

      但是当我们创建一个Class Diagram, 并且想导入已有类定义时, Modeling project给了我们一个大大的问号, 它拒绝从Architecture Explorer直接导入! 我觉得这相当不可理喻. 然后我怀疑我哪里做错了并查找了一些别的地方想找到将code直接导入到定义的功能, 然后很失望. 如果没有这种支持, 仅仅从这个方面来讲几乎连Visio都不如...(不过我还是不相信这种功能会被丢掉, 所以知道今天还在找).

      代码生成? 那是根本没戏的. 似乎是这个新诞生的项目的开发团队太忙而被直接砍掉了. 但是支持T4 template实际上也不是个多难的事情, 对吧? 倒是有作者在博客里提到, 在VS2010发布之后, 他们会发布类似于Power Tool的工具, 叫做Feature pack, 来实现对这些功能的增强:

         Increased Visualization Support

                1. Visualize your native ( C++ ) code
               2. Visualize your WAP or Web Sites or ASP.NET MVC code
         Increased UML support
               1. Code Generation from UML Class diagram
               2. Rapid population of Modeling Store from Architecture Explorer
               3. XMI 2.1 Import
               4. [UPDATED] Work Item to Model Element Back linking.
        Increased support for Layer Diagram Extensibility

      所以你知道我什么意思吧? 呵呵. VS2010的有些特性, 譬如TPL, ThreadPool是目标明确功能健壮的; 又有些特性其实很可能也是在瞄准4.12这个时间点而不得不急忙赶工或者砍掉了一些东西的情况下, 诞生的. 您一定记得一些VS2008和.NET Sp1这样一些反面的例子, 哦, 譬如那个Crash, 那个ThreadPool.SetMinThreads

      所以我们需要拭目以待. 也许只有到.NET 4.0 和VS2010 "待到山花烂漫时", 我们才能正确评价它的不足.

不论如何, 祝VS2010发布成功.