浅析升级到.NET 3.5+VS 2008的必要性

开发 后端
这里将讨论.NET项目升级到.NET 3.5+VS 2008的必要性,目前还有一半以上的企业和开发团队在用VS2005+.NET 2.0。

虽然Visual Studio 2010 beta1已经出现,但是现在很多公司似乎用不到这么新的版本了。即便是.NET 3.5+VS 2008,也不是很多公司在用。

.NET 3.5+VS 2008已经发布一年多了,可是还有一半以上的企业和开发团队在用VS2005+.NET 2.0(包括我们公司),甚至还有用.NET 1.1+VS2003的。生产工具是提高生产力的最重要途径,但是还有许多人没意识到08系列的强大。本来写此文来说服公司领导,顺便也发出来,想表达这种观点:不与时俱进就要时不我待啦!偶把所知道.NET 3.5+VS 2008的改进和创新都整理出来,希望大家指正这些观点的理解。

一、Visual Studio 2008环境新特性

.NET Framework 兼容支持

使用Visual Studio 2008可以进行基于多个.net framework 版本的开发,Visual Studio 2008同时支持framework 2.0/3.0和3.5几个版本。在不同的版本下它可以自动的框架特性工具箱,项目类型,引用,智能提示……过滤功能。我们升级到Visual Studio 2008也非常简单。

ASP.NET AJAX和JavaScript智能客户端支持

ASP.NET AJAX成为.NET 3.5的一部分,除了包括ASP.NET AJAX 1.0的所有功能外,还集成了WebParts的UpdatePanel,与 and 这样的控件的 ASP.NET 实现AJAX 集成。编写JavaScript提供了智能提示和调试的功能,还增加了JSON的全面支持,无论在WCF还是AJAX上都有广泛的应用。

全新的Web开发体验

Web设计器提供了分割视图编辑、嵌套母板页、以及强大的CSS编辑器集成。
ASP.NET提供了三个新的控件:,这些控件对数据场景提供了非常好的支持,允许对输出的标识做完全的控制。

其他

Visual Studio 2008加入拼写检查器,可以在编译前对不正确的定义或返回类型进行检查。也优化了特别是自动提示和重构功能

支持智能部署ClickOnce;.集成对Office (VSTO)和Sharepoint 2007开发的支持。

性能上,运行一个后台编译器的速度比原来提高了一倍以上,而使用的内存不到原来的一半。VS2008精简了CLR的线程池,使各种类型的多线程应用程序也得到性能改进。

二、.Net FrameWork 3.5的新语法特性:

自动属性(Auto-Implemented Properties)

隐含类型局部变量(Local Variable Type Inference)

匿名类型(Anonymous Types)

对象与集合初始化器(Object and Collection Initializers)

扩展方法(Extension Methods)

Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)

语言级集成查询Linq系列支持(Language INtegrated Query)

自动属性举例:

  1. private String name;  
  2. public String Name  
  3. {  
  4.     get { return name; }  
  5.     set { name = value; }  

.NET 3.5下的新写法:public String Name { set; get; }

隐含类型局部变量举例:

  1. var url = "http://www.168.com";     //url被识别String  
  2.  
  3. var dt = new DataTable();            //dt被识别为DataTable  
  4.  
  5. var status = false;                    //status被识别为Boolen 

匿名类型举例:

  1. var site1 = new { url = " http://1.2.3.4 "title = "BBS"author = "Alex"qq = "4111852" };  
  2. var site2 = new { url = " http://www.168.com "title = "Title"author = "Alex"qq = "4111852" };  
  3. site1.url = site2.url; 

对象与集合初始化器举例:

  1. User user = new User();  
  2. user.Id = 1;  
  3. user.Name = "Alex";  
  4. user.Age = 22; 

.NET 3.5下新的写法:

  1. var user = new User { Id = 1, Name = "Alex", Age = 22 }; 

扩展方法举例:

  1. public static int Int(this HttpRequest request, string key)  
  2. {  
  3.     return int.Parse(request[key]);  

调用方法:int id = Request.Int("id");

Lambda表达式和Lambda表达式树举例:

  1. string[] nums = { "8""966""55""-14""33""2" };  
  2. //选择数组中第偶数个元素的数值平方并输出排序后的结果  
  3.     nums.Select(n => Int32.Parse(n))  
  4.         .Where(n => n % 2 == 0)  
  5.         .Select(n => n * n)  
  6.         .OrderBy(n => n)  
  7.         .ToList()  
  8.         .ForEach(n => Console.WriteLine(n));  
  9. n => n % 2 == 0,n => Console.WriteLine(n)等都是Lambda表达式。  
  10. Linq(Linq To Entity)举例:  
  11.     public IList getUserLogin()  
  12.     {  
  13.         using (var TE = new TestEntities())  
  14.         {  
  15.             var lstLogin = (from user in TE.Users where user.Enabled = 1  
  16.                             select new Login  
  17.                             {  
  18.                                 PW = user.Pass,  
  19.                                 ID = user.Id  
  20.                             }).ToList();  
  21.             return lstLogin;  
  22.        }  

关于.NET 3.5的语言特性,老赵在博客里有极为精妙的论述,强烈建议没有看过的朋友同学去读一下。

三、历史性意义的集成框架:

WPF (Windows Presentation Foundation)

WPF是微软新一代图形系统,为用户界面、2D/3D 图形、文档、视频、动画、三维等媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了***的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。

对于开发人员和设计人员,WPF引擎统一了开发人员和设计人员体验文档、媒体和 UI 的方式他们从此只需学习一个模式。对于 .NET 开发人员,其框架是熟悉的,并且它最终将减少提供***用户体验和通信逻辑所需的代码行数。对于设计人员,WPF 提供的平台可消除内容、媒体和应用程序之间的边界。更重要的是,WPF可以使开发人员和设计人员像Web开发一样同步紧密地合作,也将大大提高C/S项目开发效率。

WCF (Windows Communication Foundation)

是Microsoft为构建面向服务的应用提供的分布式通信编程框架,.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。

从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的并集。利用WCF,就可以解决包括安全、可信赖、互操作、跨平台通信等等需求。开发者再不用去分别了解.Net Remoting,ASMX等等各种技术了,同时,WCF充分地考虑了与旧有系统的兼容性。安装WCF并不会影响原有的.Net Remoting等技术方案。

ADO.NET Entity Framework

微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。

ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。Entity Framework在 Visual Studio 2008 和.Net 3.5 CLR中都有充分的支持,也非常容易上手。使用Entity Framework,可以减少70%-90%的数据访问层代码,极大地提高.Net程序的开发效率、维护效率及程序健壮性。

原文标题:.NET项目是否有必要升级到.NET 3.5 + VS 2008

链接:http://www.cnblogs.com/XmNotes/archive/2009/09/14/1566534.html

【编辑推荐】

  1. Visual Studio 2010并行编程及调试诊断功能详解
  2. 图解VS 2010与.NET 4.0多显示器支持
  3. VS 2010和.NET 4的多定向支持
  4. 图解VS 2010和.NET 4起始项目模板
  5. VS 2010和.NET 4***步:Web.config文件
责任编辑:彭凡 来源: 博客园
相关推荐

2009-10-10 17:36:47

VB转型到VB.NET

2010-06-24 16:38:20

综合布线

2023-05-31 10:02:29

人工智能

2009-09-01 16:20:27

C#单元测试

2014-02-17 09:37:31

亚马逊WorkSpacesVDI

2009-04-27 14:48:44

2012-06-15 09:37:40

Linuxmark

2009-12-11 09:36:02

PHP数据缓存类

2011-11-08 21:19:25

2018-10-17 10:46:54

区块链互操作性比特币

2023-09-14 15:58:34

C++表达式

2011-06-14 10:20:20

URL标准化

2022-02-13 00:29:57

云安全云计算安全

2024-08-29 15:14:52

2023-12-08 08:38:15

升级工具.NET Core.NET 8

2011-12-13 20:36:26

Android

2020-05-20 07:00:00

DevOps端点检测网络攻击

2021-01-21 21:07:03

信息安全漏洞治理

2021-10-24 08:39:07

攻击面管理网络攻击黑客

2015-04-16 14:00:55

新浪云SAE序列化
点赞
收藏

51CTO技术栈公众号