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


一、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,与<asp:menu> and <asp:treeview>这样的控件的 ASP.NET 实现AJAX 集成。编写JavaScript提供了智能提示和调试的功能,还增加了JSON的全面支持,无论在WCF还是AJAX上都有广泛的应用。

·         全新的Web开发体验

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

·         其他

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)

自动属性举例:

private String name;

public String Name

{

get { return name; }

set { name = value; }

}

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

隐含类型局部变量举例:

var url = "http://www.168.com";     //url被识别String

var dt = new DataTable();            //dt被识别为DataTable

var status = false;                    //status被识别为Boolen

匿名类型举例:

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

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

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

.NET 3.5下新的写法:

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

扩展方法举例:

public static int Int(this HttpRequest request, string key)

{

return int.Parse(request[key]);

}

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

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

string[] nums = { "8", "966", "55", "-14", "33", "2" };

//选择数组中第偶数个元素的数值平方并输出排序后的结果

nums.Select(n => Int32.Parse(n))

.Where(n => n % 2 == 0)

.Select(n => n * n)

.OrderBy(n => n)

.ToList()

.ForEach(n => Console.WriteLine(n));

n => n % 2 == 0,n => Console.WriteLine(n)等都是Lambda表达式。

Linq(Linq To Entity)举例:

public IList getUserLogin()

{

using (var TE = new TestEntities())

{

var lstLogin = (from user in TE.Users where user.Enabled = 1

select new Login

{

PW = user.Pass,

ID = user.Id

}).ToList();

return lstLogin;

}

}

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

三、历史性的三大集成框架:

  (太重要了,未来两到三年一定会成为招聘.Net开发的基本要求)  

  • 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相关推荐

  1. [轉].NET项目是否有必要升级到.NET 3.5 + VS 2008

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

  2. WCF 项目应用连载[6] - 升级Lig服务 - 设计ILigger 构建一个完善的Lig版本

    前面我们已经搞定了对ChannelFactory与ServiceHost的扩展,形成了我们自己用的两个类: public class LWCF<T> public class LServi ...

  3. 太美医疗科技CTMS临床试验项目管理系统的全新升级

    太美eCooperate(简称CCP)是基于多方协作的临床研究项目管理云平台,是对原有CTMS临床试验项目管理系统的全新升级,提供标准的临床试验项目进度编排模板,使之最大限度地符合临床试验的GCP法规 ...

  4. Revit项目和族文件升级后出现无响应死机情况

    Revit项目和族文件升级到高版本打开后,出现以下各种无响应死机情况: 升级打开模型后,再按Esc键Revit会死机. 升级打开使用模型时,频繁出现没有响应,按任何键都没反应. 环境 Windows ...

  5. 安卓项目3.0.1升级到最新的3.4.0

    安卓项目3.0.1升级到最新的3.4.0 升级背景: 升级背景: 项目比较大,也比较老,想用点新的api,布局,或者什么新功能的都不可以,所以觉醒把项目从2.3.3升级到了3.0.1然后发现Const ...

  6. 迁移和升级windows 2003 R2到windows 2008 SP2

    实验平台:Vmware workstation 7.0.windows server 2003 R2 SP2.windows server 2008 SP2 Windows server 2008平台 ...

  7. 拳王虚拟项目公社:月入16000+的虚拟商品教程,虚拟项目全自动化的升级玩法拆解

    忘记啥时候了,群里有位小伙伴发了一个虚拟项目的链接给我,想问问靠不靠谱,这个小伙伴真好,平时我也没事就去看看别人的项目,他现在就帮我节省了不少时间. 这个虚拟项目卖价1580--其实就是在淘宝卖虚拟产 ...

  8. 跨链项目Cosmos主网升级提案已开启投票 目前投票率为19.10%

    据官方消息,跨链项目Cosmos (ATOM)的"Stargate"主网升级提案已开启投票,Cosmoshub-3将于北京时间1月28日14:00升级为Cosmoshub-4. 截 ...

  9. python怎么升级django_线上Django项目python2到3升级日记

    这两天干了一个几斤疯狂的事情,花不到一个工作日的时间把一个线上Django项目语言版本从python2升级到Python3 1.字典的一个语法变化 Python2.7: if dict1.haskey ...

最新文章

  1. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档
  2. 解决: AOSP 编译AndroidQ preview 失败
  3. Visual Studio 2008 + Visual Assist X的CUDA2.3编译环境设置[转]
  4. 一个项目搞定支付宝,微信支付!
  5. 有三AI小程序上线,把你的代码show给世界
  6. unsigned short占几个字节_ARM中,字、半字、字节分别是多少位?
  7. 采用HttpModules来重写URLs(原理篇)转
  8. centos安装kvm
  9. oracle确实表达式,ORACLE正规表达式
  10. df添加一行 python_Python为输出的数据绘制表格
  11. 拖拽之路(五):自定义QListWidget实现美观的拖拽样式(拖拽不影响选中 + doAutoScroll)
  12. 游戏筑基开发之初识指针
  13. CodeForces 297C Splitting the Uniqueness (脑补构造题)
  14. java web聊天室原理_网页聊天室的原理
  15. 下载并安装lsi MegaRAID raid卡 管理工具
  16. BLE芯片DA145XX系列:GPIO特殊配置
  17. php 简转繁体,PHP简体转繁体——MediaWiki-zhconvert
  18. TypeScript 导出 Excel 表格(带斑马纹样式)
  19. appium连接ios手机
  20. 思科《计算机网络》期末考试答案A卷

热门文章

  1. autosys虚拟机定义
  2. Production Hair Rendering in RenderMan
  3. AVFoundation之录音及播放
  4. springMVC3学习(四)--訪问静态文件如js,jpg,css
  5. Visual Studio 2008在设计视图和代码视图切换的快捷键F7
  6. Android App列表之游标ListView(索引ListView)
  7. AttributeError: module 'tensorflow' has no attribute 'sub'
  8. Jmeter(二十二)_jenkins配置gitlab插件与ant插件
  9. iOS混淆 -- 生成define 替换名
  10. Zmodem transfer canceled by remote side