Microsoft 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.

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.

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.

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.

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 đó.

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.