Visual Studio

**Microsoft Visual Studio** là một môi trường phát triển tích hợp (IDE) từ Microsoft. Microsoft Visual Studio còn được gọi là "Trình soạn thảo mã nhiều người sử dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight. Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý.

Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu.  Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm.

Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như của Visual Studio 2010). Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS.

Microsoft cung cấp phiên bản "Express" (đối với phiên bản Visual Studio 2013 trở về trước) và "Community" (đối với bản Visual Studio 2015 trở về sau) là phiên bản miễn phí của Visual Studio.

## Cấu trúc
Visual Studio không hỗ trợ cho bất kỳ ngôn ngữ lập trình nào về giải pháp hoặc công cụ thực chất, thay vào đó nó cho phép cắm chức năng được mã hóa như là một *VSPackage*. Khi cài đặt, các chức năng có sẵn như là một dịch vụ. *IDE* cung cấp ba dịch vụ: *SVsSolution* cung cấp khả năng liệt kê các dự án và các giải pháp; *SVsUIShell* cung cấp cửa sổ và giao diện người dùng và *SVsShell*. Ngoài ra, *IDE* cũng có trách nhiệm điều phối và cho phép truyền thông giữa các dịch vụ.  Tất cả các biên tập viên, nhà thiết kế, các loại dự án và các công cụ khác được thực hiện theo *VSPackages*. Visual Studio sử dụng COM để truy cập *VSPackages*. Visual Studio SDK cũng bao gồm *Managed Package Framework (MPF)* là một tập hợp quản lý bao bọc quanh các *COM-interfaces* cho phép các gói được viết bằng bất kỳ ngôn ngữ nào. Tuy nhiên, *MPF* không cung cấp tất cả các chức năng bộc lộ trong *Visual Studio COM-interfaces*. Các dịch vụ có thể được tiêu thụ để tạo ra các gói khác, để thêm chức năng cho *Visual Studio IDE*.

Hỗ trợ cho các ngôn ngữ lập trình được thêm vào bằng cách sử dụng một *VSPackage* đặc biệt được gọi là một *dịch vụ ngôn ngữ*. Một dịch vụ ngôn ngữ định nghĩa giao tiếp khác nhau mà việc thực hiện VSPackage có thể thực hiện để hỗ trợ thêm cho các chức năng khác nhau. Các chức năng có thể được thêm vào theo cách này bao gồm cú pháp màu, hoàn thành báo cáo kết quả, kết hợp đôi, công cụ chú giải tham số thông tin, danh sách thành viên và đánh dấu lỗi trên nền biên dịch. Nếu giao diện được thực hiện, các tính năng sẽ có sẵn ngôn ngữ. Dịch vụ ngôn ngữ sẽ được thực hiện trên cơ sở mỗi ngôn ngữ. Việc triển khai có thể tái sử dụng mã từ phân tích cú pháp hoặc trình biên dịch cho ngôn ngữ. Dịch vụ ngôn ngữ có thể được triển khai hoặc trong mã nguồn gốc hoặc mã số quản lý. Đối với mã nguồn gốc, thì cả COM-interfaces gốc hoặc Babel Framework (một phần của Visual Studio SDK) đều có thể được sử dụng. Đối với mã số quản lý thì các MPF sẽ bao hàm các dịch vu quản lý văn bản.

Visual Studio không bao gồm bất kỳ Hệ thống quản lý phiên bản hỗ trợ kiểm soát mã nguồn nhưng nó xác định hai cách thay thế cho các hệ thống kiểm soát mã nguồn để tích hợp với IDE. Một VSPackage kiểm soát mã nguồn có thể cung cấp giao diện người dùng tùy chỉnh của riêng mình. Ngược lại, một plugin kiểm soát mã nguồn bằng cách sử dụng *MSSCCI* (Microsoft Source Code Control Interface) cung cấp một tập các chức năng được sử dụng để thực hiện chức năng kiểm soát mã nguồn khác nhau, với một giao diện người dùng Visual Studio tiêu chuẩn. MSSCCI lần đầu tiên được sử dụng để tích hợp Visual SourceSafe với Visual Studio 6.0 nhưng sau đó được mở ra thông qua Visual Studio SDK. Visual Studio.NET 2002 dùng MSSCCI 1.1, và Visual Studio.NET 2003 dùng MSSCCI 1.2. Visual Studio 2005, 2008 và 2010 dùng MSSCCI 1.3.

Visual Studio hỗ trợ chạy nhiều cá thể của môi trường (tất cả đều có VSPackages riêng của mình). Những trường hợp sử dụng các *registry hives* khác nhau để lưu trữ trạng thái cấu hình và được phân biệt bởi *AppID* (Application ID). Các trường hợp được đưa ra bởi một *AppId-specific.exe* cụ thể mà lựa chọn *AppID*, thiết lập các *hive gốc* và khởi chạy IDE. VSPackages đăng ký một AppID được tích hợp với VSPackages khác cho AppID đó. Các phiên bản sản phẩm khác nhau của Visual Studio được tạo ra bằng cách sử dụng AppIds khác nhau. Các sản phẩm phiên bản Visual Studio Express được cài đặt với AppIds riêng nhưng với các sản phẩm Standard, Professional và Team Suite chia sẻ cùng AppID. Do đó, người ta có thể cài đặt các phiên bản Express song song với các phiên bản khác, không giống như các phiên bản khác cập nhật các cài đặt tương tự. Phiên bản Professional bao gồm các VSPackages khổng lồ trong phiên bản Standard và Team. Hệ thống AppID được thừa hưởng bởi *Visual Studio Shell* trong Visual Studio 2008.

## Tính năng
### Biên tập mã
Giống như bất kỳ IDE khác, nó bao gồm một trình soạn thảo mã hỗ trợ tô sáng cú pháp và hoàn thiện mã bằng cách sử dụng IntelliSense không chỉ cho các biến, hàm và các phương pháp mà còn các cấu trúc ngôn ngữ như vòng điều khiển hoặc truy vấn. IntelliSense được hỗ trợ kèm theo cho các ngôn ngữ như XML, Cascading Style Sheets và JavaScript khi phát triển các trang web và các ứng dụng web. Các đề xuất tự động hoàn chỉnh được xuất hiện trong một hộp danh sách phủ lên trên đỉnh của trình biên tập mã. Trong Visual Studio 2008 trở đi, nó có thể được tạm thời bán trong suốt để xem mã che khuất bởi nó. Các trình biên tập mã được sử dụng cho tất cả các ngôn ngữ được hỗ trợ.

Các trình biên tập mã Visual Studio cũng hỗ trợ cài đặt dấu trang trong mã để điều hướng nhanh chóng. Hỗ trợ điều hướng khác bao gồm thu hẹp các khối mã lệnh và tìm kiếm gia tăng, ngoài việc tìm kiếm văn bản thông thường và tìm kiếm Biểu thức chính quy. Các trình biên tập mã cũng bao gồm một bìa kẹp đa mục và một danh sách công việc. Các trình biên tập mã hỗ trợ lưu lại các đoạn mã được lặp đi lặp lại nhằm để chèn vào mã nguồn sử dụng về sau. Một công cụ quản lý cho đoạn mã được xây dựng là tốt. Những công cụ này nổi lên như các cửa sổ trôi nổi có thể được thiết lập để tự động ẩn khi không sử dụng hoặc neo đậu đến các cạnh của màn hình. Các trình biên tập mã Visual Studio cũng hỗ trợ cải tiến mã nguồn bao gồm tham số sắp xếp lại, biến và phương pháp đổi tên, khai thác và đóng gói giao diện các lớp thành viên bên trong những trạng thái giữa những thứ khác.

Visual Studio có tính năng biên dịch nền (còn gọi là biên dịch gia tăng). Như mã đang được viết, Visual Studio biên dịch nó trong nền để cung cấp thông tin phản hồi về cú pháp và biên dịch lỗi, được đánh dấu bằng một gạch dưới gợn sóng màu đỏ. Biên dịch nền không tạo ra mã thực thi, vì nó đòi hỏi một trình biên dịch khác hơn là để sử dụng tạo ra mã thực thi. Biên dịch nền ban đầu được giới thiệu với Microsoft Visual Basic nhưng bây giờ đã được mở rộng cho tất cả các ngôn ngữ.

### Trình gỡ lỗi
Visual Studio có một trình gỡ lỗi hoạt động vừa là một trình gỡ lỗi cấp mã nguồn và là một trình gỡ lỗi cấp máy. Nó hoạt động với cả hai mã quản lý cũng như ngôn ngữ máy và có thể được sử dụng để gỡ lỗi các ứng dụng được viết bằng các ngôn ngữ được hỗ trợ bởi Visual Studio. Ngoài ra, nó cũng có thể đính kèm theo quy trình hoạt động và theo dõi và gỡ lỗi những quy trình. Nếu mã nguồn cho quá trình hoạt động có sẵn, nó sẽ hiển thị các mã như nó đang được chạy. Nếu mã nguồn không có sẵn, nó có thể hiển thị các tháo gỡ. Các *Visual Studio debugger* cũng có thể tạo bãi bộ nhớ cũng như tải chúng sau để gỡ lỗi. Các chương trình đa luồng cao cấp cũng được hỗ trợ. Trình gỡ lỗi có thể được cấu hình sẽ được đưa ra khi một ứng dụng đang chạy ngoài Visual Studio bị treo môi trường.

Trình gỡ lỗi cho phép thiết lập các *[[breakpoint]]* (mà cho phép thực thi được tạm thời dừng lại tại một vị trí nhất định) và *watch* (trong đó giám sát các giá trị của biến là việc thực hiện tiến bộ). *Breakpoint* có thể có điều kiện, nghĩa là chúng được kích hoạt khi điều kiện được đáp ứng. Mã có thể được biểu diễn, tức là chạy một dòng (của mã nguồn) tại một thời điểm. Nó có hoặc là *bước sang* các chức năng để gỡ lỗi bên trong nó, hoặc là *nhảy qua nó*, tức là, việc thực hiện các chức năng không có sẵn để kiểm tra thủ công. Trình gỡ lỗi hỗ trợ *Edit and Continue*, nghĩa là, nó cho phép mã được chỉnh sửa khi nó đang được sửa lỗi (chỉ có 32 bit, không được hỗ trợ trong 64 bit). Khi gỡ lỗi, nếu con trỏ chuột di chuyển lên bất kỳ biến, giá trị hiện tại của nó được hiển thị trong phần chú giải ("chú thích dữ liệu"), nơi mà nó cũng có thể được thay đổi nếu muốn. Trong quá trình viết mã, các trình gỡ lỗi của Visual Studio cho phép một số chức năng được gọi ra bằng tay từ cửa sổ công cụ `Immediate`. Các thông số cho phương thức được cung cấp tại các cửa sổ *Immediate*.

### Thiết kế
* *Windows Forms Designer*: được sử dụng để xây dựng GUI sử dụng Windows Forms; bố trí có thể được xây dựng bằng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh mẫu. Điều khiển trình bày dữ liệu (như hộp văn bản, hộp danh sách, vv) có thể được liên kết với các nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn. Các điều khiển dữ liệu ràng buộc có thể được tạo ra bằng cách rê các mục từ cửa sổ nguồn dữ liệu lên bề mặt thiết kế. Các giao diện người dùng được liên kết với mã sử dụng một mô hình lập trình hướng sự kiện. Nhà thiết kế tạo ra bằng C thăng hay VB.NET cho ứng dụng.
* *WPF Designer*: có tên mã là *Cider*, được giới thiệu trong Visual Studio 2008. Giống như *Windows Forms Designer*, hỗ trợ kéo và thả ẩn dụ. Sử dụng tương tác người-máy nhắm mục tiêu theo Windows Presentation Foundation. Nó hỗ trợ các chức năng WPF bao gồm kết nối dữ liệu và tự động hóa bố trí quản lý. Nó tạo ra mã XAML cho giao diện người dùng. Các tập tin *XAML* được tạo ra là tương thích với Microsoft Expression Design, sản phẩm thiết kế theo định hướng. Các mã *XAML* được liên kết với mã đang sử dụng một mô hình code-behind.
* *Web designer/development*: Visual Studio cũng bao gồm một trình soạn thảo và thiết kế trang web cho phép các trang web được thiết kế bằng cách kéo và thả các đối tượng. Nó được sử dụng để phát triển các ứng dụng ASP.NET và hỗ trợ HTML, CSS và JavaScript. Nó sử dụng mô hình code-behind để liên kết với mã ASP.NET. Từ Visual Studio 2008 trở đi, công cụ bố trí được sử dụng bởi các nhà thiết kế web được chia sẻ với Microsoft Expression Web. Ngoài ra ASP.NET MVC Framework hỗ trợ cho công nghệ MVC là tải xuống riêng biệt và dự án ASP.NET Dynamic Data có sẵn từ Microsoft.
* *Class designer*: Các *lớp thiết kế* được dùng để biên soạn và chỉnh sửa các lớp (bao gồm cả các thành viên và truy cập của chúng) sử dụng mô hình UML. Các lớp thiết kế có thể tạo ra mã phác thảo C thăng và VB.NET cho các lớp và cá phương thức. Nó cũng có thể tạo ra sơ đồ lớp từ các lớp viết tay.
* *Data designer*: *Thiết kế dữ liệu* có thể được sử dụng để chỉnh sửa đồ họa giản đồ cơ sở dữ liệu bao gồm các bảng, khóa chính, khóa ngoại và các rằng buộc. Nó cũng có thể được sử dụng để thiết kế các truy vấn từ các giao diện đồ họa.
* *Mapping designer*: Từ Visual Studio 2008 trở đi, *thiết kế ánh xạ* được dùng bởi Language Integrated Query để thiết kế các ánh xạ giữa các giản đồ cơ sở dữ liệu và các lớp để đóng gói dữ liệu. Các giải pháp mới từ cách tiếp cận *[[ORM]]*, *[[ADO.NET Entity Framework]]* sẽ thay thế và cải thiện các công nghệ cũ.

### Các công cụ khác
* *Open Tabs Browser*: được sử dụng để liệt kê tất cả thẻ đang mở và chuyển đổi giữa chúng. Được viện dẫn bằng cách sử dụng `CTRL+TAB`.
* *Properties Editor*: được sử dụng để chỉnh sửa các thuộc tính trong một cửa sổ giao diện bên trong Visual Studio. Nó liệt kê tất cả các thuộc tính có sẵn (gồm chỉ đọc và những thuộc tính có thể được thiết lập) cho tất cả các đối tượng bao gồm các lớp, biểu mẫu, trang web và các hạng mục khác.
* *Object Browser*: là một không gian tên và trình duyệt lớp thư viện cho Microsoft NET. Nó có thể được sử dụng để duyệt các không gian tên (được sắp xếp theo thứ bậc) trong Assembly (CLI). Các hệ thống phân cấp có thể hoặc không có thể phản ánh các tổ chức trong hệ thống tập tin.
* *Solution Explorer*: theo cách nói trong Visual Studio, một giải pháp là một tập hợp các tập tin mã và các nguồn khác được sử dụng để xây dựng một ứng dụng. Các tập tin trong một giải pháp được sắp xếp theo thứ bậc, mà có thể có hoặc không thể phản ánh các tổ chức trong hệ thống tập tin. *Solution Explorer* được sử dụng để quản lý và duyệt các tập tin trong một giải pháp.
* *Team Explorer*: được sử dụng để tích hợp các khả năng của Team Foundation Server, Revision Control System và là cơ sở cho môi trường CodePlex đối với dự án mã nguồn mở. Ngoài việc kiểm soát nguồn nó cung cấp khả năng xem và quản lý các công việc riêng lẻ (bao gồm cả lỗi, nhiệm vụ và các tài liệu khác) và để duyệt thống kê TFS. Nó được bao gồm như là một phần của một cài đặt TFS và cũng có sẵn để tải xuống cho Visual Studio. *Team Explorer* cũng có sẵn như là một môi trường độc lập duy nhất để truy cập các dịch vụ TFS.
* *Data Explorer*: được sử dụng để quản lý cơ sở dữ liệu trên Microsoft SQL Server. Nó cho phép tạo ra và sửa đổi các bảng cơ sở dữ liệu (hoặc bằng cách ban hành các lệnh T-SQL hoặc bằng cách sử dụng các thiết kế dữ liệu). Nó cũng có thể được sử dụng để tạo các truy vấn và các thủ tục lưu trữ trong *T-SQL* hoặc trong Managed code thông qua SQL CLR. Có sẵn *gỡ lỗi* và hỗ trợ IntelliSense.
* *Server Explorer*: công cụ được sử dụng để quản lý các kết nối cơ sở dữ liệu trên một máy tính truy cập được. Nó cũng được sử dụng để duyệt chạy Windows Services, quầy thực hiện, Windows Event Log và hàng đợi tin nhắn và sử dụng chúng như một nguồn dữ liệu.
* *Dotfuscator Software Services Community Edition*: Visual Studio bao gồm một phiên bản *light* của sản phẩm PreEmptive Solutions' Dotfuscator cho mã gây rối và giảm kích thước ứng dụng. Khởi đầu với Visual Studio 2010, phiên bản này của Dotfuscator sẽ bao gồm khả năng Runtime Intelligence cho phép tác giả thu thập cách sử dụng của người dùng cuối, hiệu suất, tính ổn định và các thông tin từ các ứng dụng của họ chạy trong sản xuất.
* *Text Generation Framework*: Visual Studio bao gồm một khung tạo văn bản đầy đủ được gọi là Text Template Transformation Toolkit T4 cho phép Visual Studio tạo ra tập tin văn bản từ các mẫu hoặc trong *IDE* hoặc thông qua mã.
* *ASP.NET Web Site Administration Tool*: công cụ quản trị trang web ASP.NET cho phép cấu hình các trang web ASP.NET.
* *Visual Studio Tools for Office*: Công cụ Visual Studio cho Ofice là một *SDK* và một add-in cho Visual Studio bao gồm các công cụ để phát triển cho các bộ Microsoft Office. Trước đây (với Visual Studio.NET 2003 và Visual Studio 2005) đó là một *[[SKU]]* riêng biệt mà chỉ hỗ trợ Visual C# Visual Basic.NET hoặc đã được đưa vào *Team Suite*. Với Visual Studio 2008, nó không còn là một *SKU* riêng biệt nhưng lại kèm trong các phiên bản chuyên nghiệp và cao hơn. Một thời gian chạy riêng biệt được yêu cầu khi triển khai các giải pháp *VSTO*.

### Khả năng mở rộng
Visual Studio cho phép các nhà phát triển viết các phần mở rộng cho Visual Studio để mở rộng tính năng của nó. Những phần mở rộng "cắm vào" Visual Studio và mở rộng tính năng của nó. Các phần mở rộng đến ở dạng *macro*, *add-in* và *các gói*. Các macro đại diện cho các nhiệm vụ lặp đi lặp lại và hành động mà các nhà phát triển có thể ghi lại theo chương trình để tiết kiệm, p231 các cài đặt. Các chế độ biệt lập của vỏ tạo ra một *AppID* mới, nơi các gói được cài đặt. Những thứ này được bắt đầu với một thực thi khác nhau. Nó nhằm mục đích cho sự phát triển của môi trường phát triển tùy chỉnh, hoặc cho một ngôn ngữ cụ thể hoặc một kịch bản cụ thể. Các chế độ tích hợp cài đặt các gói vào AppID của các phiên bản Professional / Standard / Team System, do đó các công cụ tích hợp vào các phiên bản. *Visual Studio Shell* là miễn phí tải về.

Sau khi phát hành Visual Studio 2008, Microsoft đã tạo ra *Visual Studio Gallery*. Nó phục vụ như vị trí trung tâm cho đăng tải thông tin về phần mở rộng cho Visual Studio. Phát triển cộng đồng cũng như phát triển thương mại có thể tải lên thông tin về các phần mở rộng của họ đến *Visual Studio.NET 2002* thông qua Visual Studio 2010. Người sử dụng trang web có thể đánh giá và xem lại các phần mở rộng để giúp đánh giá chất lượng các phần mở rộng được đăng. *RSS feed* thông báo cho người dùng trên bản cập nhật tới trang web và các tính năng gắn thẻ cũng được lên kế hoạch.

## Lịch sử

### 1997
Tên chính thức là *Visual Studio 97*. Vào năm 1997, Visual Studio ra mắt, tên mã là Boston (tên thành phố, Microsoft có thói quen đặt tên mã của Visual Studio theo tên địa danh). Visual Studio 97 là sự kết hợp của nhiều công cụ lập trình với nhau. Visual Studio 97 xuất hiện trong hai phiên bản: Visual Studio Professional và Visual Studio Enterprise, phiên bản chuyên nghiệp chứa trên ba đĩa CD và phiên bản doanh nghiệp chứa trên bốn đĩa CD. Nó bao gồm Visual J++ 1.1 cho các lập trình viên Java, cũng như đi kèm với Visual InterDev để tạo ra các trang web được tạo tự động bằng Active Server Pages. Đi kèm các CD cài đặt là một CD chứa thư viện Mạng Microsoft Developer Network.

Visual Studio 97 là nỗ lực đầu tiên của Microsoft trong việc sử dụng một môi trường phát triển cho nhiều ngôn ngữ lập trình khác nhau. Visual J++, InterDev, và Thư viện MSDN đã sử dụng cùng một "môi trường", gọi là Developer Studio.

Visual Studio cũng được bán dưới dạng các phiên bản con với các IDE riêng biệt được sử dụng cho Visual C++, Visual Basic và Visual FoxPro.

### 1998
Phiên bản kế tiếp có tên chính thức là *Visual Studio 6.0*, tên mã Aspen (khu nghỉ mát trượt tuyết ở Colorado), được phát hành vào tháng 6 năm 1998 và là phiên bản cuối cùng chạy trên nền Windows 9x. Mỗi phiên bản của mỗi thành phần cũng được nâng lên thành v6.0, bao gồm Visual J++ trước đó là v1.1 và Visual InterDev tại lần phát hành đầu tiên. Phiên bản v6 của Microsoft là môi trường cốt lõi cho bốn phiên bản tiếp theo nhằm cung cấp cho các lập trình một nền tảng lập trình giống nhau. Điều này đã khiến Microsoft tập trung sự phát triển vào nền tảng độc lập .NET Framework.

Visual Studio 6.0 là phiên bản cuối cùng bao gồm Visual J++ mà Microsoft đã gỡ bỏ (theo thỏa thuận của Microsoft với Sun Microsystems, yêu cầu Microsoft Internet Explorer không hỗ trợ cho máy ảo Java).

Visual Studio 6.0 có hai phiên bản: Chuyên nghiệp (Professional) và Doanh nghiệp (Enterprise). Phiên bản Enterprise có thêm các tính năng bổ sung so với bản Professional, bao gồm:
* Application Performance Explorer
* Automation Manager
* Microsoft Visual Modeler
* RemAuto Connection Manager
* Visual Studio Analyzer
Cũng như phiên bản trước, Visual Studio 6.0 cũng có các bản con với các IDE phát triển riêng cho Visual C++, Visual Basic và Visual FoxPro.

### 2002
Vào tháng 2 năm 2002, Microsoft đã phát hành *Visual Studio.NET*, có tên mã là Rainier (Mount Rainier của Washington). Phiên bản beta đã được phát hành thông qua MSDN vào năm 2001. Thay đổi lớn nhất là việc giới thiệu một môi trường phát triển mã được quản lý bằng.NET Framework. Các chương trình phát triển sử dụng.NET không được biên dịch thành ngôn ngữ máy (như C ++ chẳng hạn) mà thay vào đó là một định dạng gọi là Microsoft Intermediate Language (MSIL) hoặc Ngôn ngữ trung gian dùng chung (CIL). Khi một ứng dụng CIL được thực thi, nó được biên dịch vào ngôn ngữ máy phù hợp với nền tảng đang chạy, do đó mã nguồn có thể sử dụng cho nhiều nền tảng khác nhau. Các chương trình biên soạn vào CIL chỉ có thể được thực thi trên các nền tảng có cơ sở ngôn ngữ dùng chung. Có thể chạy các chương trình CIL trong Linux hoặc Mac OS X sử dụng các ứng dụng không phải Microsoft.NET như Mono và DotGNU.

Đây là phiên bản đầu tiên của Visual Studio yêu cầu nền tảng Windows NT. Trình cài đặt thực thi yêu cầu này.

Visual Studio.NET 2002 được vận chuyển theo bốn phiên bản: Học thuật (Academic), Chuyên gia (Professional), Nhà phát triển Doanh nghiệp (Enterprise Developer) và Kiến trúc sư Doanh nghiệp (Enterprise Architect). Microsoft giới thiệu C# (C-sharp), một ngôn ngữ lập trình mới, hướng vào.NET. Họ cũng giới thiệu sự kế thừa cho Visual J++ là Visual J#. Các chương trình Visual J# sử dụng cú pháp ngôn ngữ của Java. Tuy nhiên, không giống như các chương trình Visual J++, chương trình Visual J# chỉ có thể chạy trên.NET Framework chứ không phải Java Virtual Machine.

### 2003
Vào tháng 4/2003, Visual Studio.NET 2003 ra mắt, có tên mã là Everett. Ở bản này, .NET Framework được nâng cấp lên phiên bản 1.1. Đây cũng là phiên bản Visual Studio đầu tiên hỗ trợ phát triển các chương trình cho các thiết bị di động, sử dụng ASP.NET hoặc.NET Compact Framework. Các tiêu chuẩn tuân thủ của Visual C++ được cải thiện. Visual C++ Toolkit 2003 được bán kèm với Visual Studio.NET 2003 mà không có IDE. Tính đến năm 2010, bộ này không còn tồn tại nữa và thay thế nó là Express Editions. Số phiên bản của Visual Studio.NET 2003 là phiên bản 7.1, số phiên bản định dạng tệp là 8.0.

Visual Studio.NET 2003 cũng được bán với bốn phiên bản: Học thuật, Chuyên gia, Nhà phát triển Doanh nghiệp và Kiến trúc sư Doanh nghiệp. Phiên bản Visual Studio.NET 2003 Enterprise Architect bao gồm việc triển khai các công nghệ mô hình của Microsoft Visio 2002, bao gồm các công cụ để tạo ra các mô tả trực quan về giải pháp mô hình hoá cơ sở dữ liệu logic.

Microsoft phát hành Service Pack 1 vào ngày 13 tháng 9 năm 2006.

### 2005
Visual Studio 2005 có tên mã Whidbey (đảo Whidbey ở Puget Sound), được phát hành trực tuyến từ tháng 10 năm 2005. Kể từ phiên bản này Microsoft loại bỏ tên gọi ".NET" ở tên sản phẩm (cũng như mọi sản phẩm khác có.NET), nhưng Visual Studio vẫn chủ yếu nhắm mục tiêu vào.NET Framework (lúc này đã được nâng cấp lên phiên bản 2.0). Đây là phiên bản mới nhất có sẵn cho Windows 2000 và cũng là phiên bản cuối cùng để có thể phát triển ứng dụng C++ cho Windows 98, Windows Me và Windows NT 4.0.

Số phiên bản nội bộ của Visual Studio 2005 là 8.0, và số phiên bản định của dạng tệp 9.0. Microsoft phát hành Service Pack 1 cho Visual Studio 2005 vào ngày 14 tháng 12 năm 2006.  Ngày 3 tháng 6 năm 2007, họ cũng đã tung ra một bản cập nhật bổ sung cho Service Pack 1 để cung cấp tính tương thích với Windows Vista.

Visual Studio 2005 được nâng cấp để hỗ trợ tất cả các tính năng mới được giới thiệu trong.NET Framework 2.0, bao gồm generic và ASP.NET 2.0. Tính năng IntelliSense trong đã được bổ sung. Visual Studio 2005 cũng đi kèm một máy chủ web cục bộ, tách biệt với IIS, có thể lưu trữ các ứng dụng ASP.NET trong quá trình phát triển và thử nghiệm. Nó cũng hỗ trợ các cơ sở dữ liệu SQL Server 2005.  C++ cũng có một nâng cấp tương tự với việc bổ sung C++/CLI, lúc đó dự án này dự kiến sẽ thay thế cho việc sử dụng Managed C++. Các tính năng mới khác của Visual Studio 2005 bao gồm "Deployment Designer" cho phép thiết kế ứng dụng được xác nhận hợp lệ trước khi triển khai, môi trường được cải thiện cho xuất bản web khi kết hợp với ASP.NET 2.0 và cho phép thử tải trang để đánh giá hiệu suất ứng dụng theo góc nhìn của những nhóm người dùng khác nhau. Bắt đầu với phiên bản năm 2005, Visual Studio bắt đầu hỗ trợ triển khai các chương trình 64-bit. Tuy nhiên, bản thân IDE vẫn là một ứng dụng 32-bit, Visual C++ 2005 hỗ trợ biên dịch cho x86-64 (AMD64 và Intel 64) cũng như IA-64 (Itanium). Nền tảng SDK 64-bit bao gồm trình biên dịch 64-bit và phiên bản 64-bit của các thư viện.

### 2008
Visual Studio 2008 và Visual Studio Team System 2008 có tên mã Orcas (đảo Orcas, cũng là một hòn đảo ở Puget Sound), bắt đầu phát hành cho các thuê bao MSDN vào ngày 19 tháng 11 năm 2007 cùng với .NET Framework 3.5. Mã nguồn cho Visual Studio 2008 IDE có sẵn dưới giấy phép nguồn chia sẻ cho một số đối tác của Microsoft. Microsoft phát hành gói dịch vụ 1 cho Visual Studio 2008 vào ngày 11 tháng 8 năm 2008. Số phiên bản nội bộ của Visual Studio 2008 là 9.0, số phiên bản định dạng tệp là 10.0. Visual Studio 2008 là phiên bản cuối cùng hỗ trợ cho các ứng dụng C++ chạy trên Windows 2000.

Visual Studio 2008 tập trung vào việc phát triển Windows Vista, hệ thống Office 2007 và các ứng dụng web. Đối với thiết kế trực quan, một trình soạn thảo hình ảnh Windows Presentation Foundation mới và một trình chỉnh sửa HTML/CSS mới cũng được bổ sung. Phiên bản này không đi kèm J#. Visual Studio 2008 yêu cầu.NET Framework 3.5 và mặc định cấu hình các assembly được biên dịch để chạy trên.NET Framework 3.5 nhưng nó cũng hỗ trợ đa mục tiêu cho phép các nhà phát triển lựa chọn sẽ làm việc với phiên bản.NET Framework nào (2.0, 3.0, 3.5, Silverlight CoreCLR hoặc .NET Compact Framework). Visual Studio 2008 cũng đi kèm với các công cụ phân tích mã mới. Với Visual C++, Visual Studio bổ sung thêm một phiên bản mới của Microsoft Foundation Classes (MFC 9.0) bổ sung hỗ trợ cho các kiểu hình ảnh và điều khiển UI được giới thiệu với Windows Vista.

Đi kèm với Visual Studio 2008 còn có một bộ thiết kế dựa trên XAML (tên mã là Cider), workflow designer, LINQ to SQL, trình debugger XSLT, hỗ trợ JavaScript Intellisense, hỗ trợ debug JavaScript, và nhiều tính năng được nâng cấp khác. Phiên bản này đi kèm với bộ công cụ UI nâng cao, cả cho Windows Forms và WPF. Nó cũng bao gồm một công cụ xây dựng đa luồng (MSBuild) để biên dịch nhiều file nguồn (cũng như xây dựng file thực thi) trong một dự án trên nhiều luồng đồng thời. Phiên bản này cũng hỗ trợ việc biên soạn tài nguyên icon ở định dạng PNG, được giới thiệu trong Windows Vista. Một bộ thiết kế XML Schema được phát hành riêng sau đó.

### 2010

### 2012

### 2013

### 2015
Ban đầu được gọi là Visual Studio "14", Community Technology Preview (CTP) được phát hành lần đầu vào ngày 3 tháng 6 năm 2014 và bản RC đã được phát hành vào ngày 29 tháng 4 năm 2015. Sau đó, vào ngày 12 tháng 11 năm 2014, Visual Studio 2015 chính thức được công bố là cái tên cuối cùng của phiên bản này.

Nhìn chung thì Visual Studio 2015 và các bản cập nhật của nó không đi kèm với tính năng mới, mà chỉ cập nhật các thành phần. Timeline việc cập nhật Visual Studio 2015 như sau:
* Visual Studio 2015 RTM được phát hành vào ngày 20 tháng 7 năm 2015.
* Visual Studio 2015 Update 1 được phát hành vào ngày 30 tháng 11 năm 2015.
* Visual Studio 2015 Update 2 được phát hành vào ngày 30 tháng 3 năm 2016.
* Visual Studio 2015 Update 3 được phát hành vào ngày 27 tháng 6 năm 2016.

### 2017
Phiên bản xem trước đầu tiên được phát hành vào ngày 30 tháng 3 năm 2016 với cái tên là Visual Studio "15". Ngày 14 tháng 11 năm 2016, Microsoft đăng một bài blog tiết lộ tên sản phẩm Visual Studio 2017 cùng với các tính năng sắp tới. Sau đó, vào ngày 16 tháng 11 năm 2016, "Visual Studio 2017" đã được công bố là tên cuối cùng của sản phẩm và Visual Studio 2017 RC. Cuối cùng, vào ngày 7 tháng 3 năm 2017, Visual Studio 2017 RTM chính thức ra mắt công chúng. Visual Studio 2017 tổng hợp các cập nhật của các bản preview, cũng như bổ sung.Net Core và ASP.NET Core. Bản này cũng cung cấp các tính năng mới như hỗ trợ EditorConfig (một khuôn khổ cho việc thực thi mã hóa), hỗ trợ NGen, công cụ.NET Core và Docker và Xamarin 4.3. Ở phiên bản này, XAML Editor và IntelliSense được cải tiến, unit test trực tiếp, gỡ lỗi nâng cao, và cải thiện tổng thể hiệu suất của IDE.

Ngày 5 tháng 4 năm 2017, Visual Studio 2017 15.1 được phát hành, bổ sung hỗ trợ cho việc nhắm mục tiêu. NET Framework 4.7.

Ngày 10 tháng 5 năm 2017, Visual Studio 2017 15.2 được phát hành.

Vào ngày 14 tháng 8 năm 2017, Visual Studio 2017 15.3 đã được phát hành, bổ sung hỗ trợ nhắm mục tiêu. NET Core 2.0. Bản cập nhật (15.3.1) đã được phát hành bốn ngày sau để giải quyết một lỗ hổng Git với các tập tin con (CVE 2017-1000117).

Vào ngày 10 tháng 10 năm 2017, Visual Studio 15.4 được phát hành.

Vào ngày 4 tháng 12 năm 2017, Visual Studio 15.5 được phát hành. Bản cập nhật này tập trung cải thiện hiệu suất, cập nhật các tính thành phần của studio, cũng như tích hợp các bản sửa lỗi.

## Tham khảo