过去的事情是岁月留下的财富

选择了一条路 就是选择了我们的一种追求 一种理想 身未动 心已远
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Visual Studio 2005的版本情况和新特征详细介绍

Posted on 2006-08-03 11:25  龙易  阅读(2086)  评论(3编辑  收藏  举报

Visual Studio 2005的版本情况和新特征详细介绍

    Pro---全称是Visual Studio 2005 Professional Edition,是适合小规模使用的版本8-10个人左右。

    Std---全称是Visual Studio Standard Edition,也是授权版本,比Pro多一些;

    VSTA---全称是Visual Studio 2005 Team Edition for Software Architects是适合框架设计使用的版本。

    VSTD---Visual Studio 2005 Team Edition for Software Developer适合开发人员

    VSTT---Visual Studio 2005 Team Edition for Software Tester适合测试人员

    VSTO---Visual Studio 2005 Tools for the Microsoft Office Systemoffice系列产品进行开发

    VSTS---Visual Studio 2005 Team System,也是针对软件开发的各个层次最全面的一个版本有时间会对他进行详细介绍

 

新特征主要体现在三个方面:

1、Language Spec Enhancement (C#)

       Generics泛型

泛型,即通参数化型来实现在同一份代上操作多数据,同在程序运行时进行实例化而在编译时刻进行代码检查

 

public class List<T>
{
   
private T[] elements;
   
private int count;

   
public void Add(T element) {
      
if (count == elements.Length) Resize(count * 2);
      elements[count
++= element;
   }

   
public T this[int index] {
      
get { return elements[index]; }
      
set { elements[index] = value; }
   }

   
public int Count {
      
get { return count; }
   }
}

List
<int> intList = new List<int>();

intList.Add(
1);           // No boxing
intList.Add(2);           // No boxing
intList.Add("Three");     // Compile-time error

int i = intList[0];       // No cast required

       Anonymous methods匿名方法

很简单,看一下示例就会明白:

 1 class MyForm : Form
 2 {
 3     ListBox listBox;
 4     TextBox textBox;
 5     Button addButton;
 6 
 7     public MyForm() {
 8         listBox = new ListBox();
 9         textBox = new TextBox();
10         addButton = new Button();
11         addButton.Click += delegate {
12             listBox.Items.Add(textBox.Text);
13         };
14     }
15 }
16 

       Iterators迭代器

便于返回一系列返回值

public interface IEnumerable<ItemType>
{   
   IEnumerator
<ItemType> GetEnumerator();

public interface IEnumerator<ItemType> : IDisposable
{
   ItemType Current{
get;}
   
bool MoveNext();



public class CityCollection : IEnumerable
{
    
string[] m_Cities = { "New York""Paris""London" };
    
public IEnumerator GetEnumerator()
    {
        
for (int i = 0; i < m_Cities.Length; i++)
            yield 
return m_Cities[i];
    }
}


public class CityCollection
{
    
string[] m_Cities = { "New York""Paris""London" };
    
public IEnumerable<string> Reverse
    {
        
get
        {
            
for (int i = m_Cities.Length - 1; i >= 0; i--)
                yield 
return m_Cities[i];
        }
    }
}


CityCollection collection 
= new CityCollection();
foreach(string city in collection.Reverse)
{   
   Trace.WriteLine(city);
}

       Partial types分布类型定义

分布类型允许我们将一个类、结构或者接口写在不同的.css文件中,最终编译器会把他们编译到一起。

 1 public partial class Customer
 2 {
 3     private int id;
 4     private string name;
 5     private string address;
 6     private List<Orders> orders;
 7 }
 8 
 9 public partial class Customer
10 {
11     public void SubmitOrder(Order order) {
12         orders.Add(order);
13     }
14 
15     public bool HasOutstandingOrders() {
16         return orders.Count > 0;
17     }
18 }
19 



工具生成代码和手动代码隔离开、多人协同开发时比较有用。

       Transaction事务处理

提供Lightweight Transaction Manager (LTM),  the OleTx Transaction Manager Resource Manager 。支持更多的事务模型:


 

2、ASP.Net 2.0

       Look and Feel (Master Page/Theme/Skin)

       Profile

       Security

       DataBinding, Validation, Web Part Framework

       Code Model and Compilation

 

3、Windows Form

       Layout Designers

       Quick Edit Mode

       MenuStrip and ToolStrip

       Splitter Control

       DataGridView Control

       Figure 22 DataGridView Object Model