(Post 12/06/2009) Về bản chất VSTO là một Add-in
của Visual Studio (VS). VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên
VS 2003, với mục đích thay thế VBA trong Excel, Word. Nhưng phải đến phiên
bản VS 2008 thì VSTO mới thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh
mẽ trên các ứng dụng của Office 2003 và 2007.
Giao diện
Excel trong VSIDE |
|
Tổng quan về VBA và VSTO
VBA (Visual Basic for Application) từ lâu đã được biết
đến như một công cụ lập trình quen thuộc và dễ dùng cho việc phát triển
ứng dụng trên nền Office cũng như mở rộng tính năng cho Office (sau đây
xin gọi chung là ứng dụng nền). Tuy nhiên, vì đã ra đời khá lâu (năm 1993)
và ít có sự cải tiến nên hiện tại cũng bộc lộ một số hạn chế như:
- Không hỗ trợ font chữ Unicode.
- Chỉ sử dụng ngôn ngữ Visual Basic (VB).
- Môi trường lập trình (IDE) và các Controls đi kèm lạc hậu so với
các công cụ mới như Visual Studio (VS) 2008.
- Bảo vệ mã chương trình không triệt để.
- Chưa bắt kịp sự phát triển các tính năng của các phiên bản Office
mới như Office 2007.
Vì lý do trên, Microsoft đã phát triển công cụ lập trình
VSTO (môi trường .NET, là một phần trong bộ Visual Studio 2008) nhằm hỗ
trợ tốt hơn việc lập trình trên Office (như Word, Excel, Outlook, PowerPoint...).
Về bản chất VSTO là một Add-in của Visual Studio (VS).
VSTO xuất hiện từ khoảng đầu năm 2004 dựa trên VS 2003, với mục đích thay
thế VBA trong Excel, Word. Nhưng phải đến phiên bản VS 2008 thì VSTO mới
thực sự hoàn chỉnh với sự hỗ trợ lập trình mạnh mẽ trên các ứng dụng của
Office 2003 và 2007.
Giống VBA, VSTO cũng tác động trực tiếp với các ứng dụng
nền, như vậy sẽ khá thuận lợi khi người dùng chuyển từ VBA sang VSTO.
Những đặc điểm nổi bật của VSTO 3.0 (hay còn gọi là VSTO
2008):
- Hỗ trợ các ngôn ngữ mà VS hỗ trợ: VB .NET, C++, C#...
- Tận dụng giao diện đồ họa Windows Form của VS.
- Cải thiện khả năng truy cập cơ sở dữ liệu với server (SQL và ADO)
- Bảo vệ mã chương trình bằng cách che dấu và ngăn cản sự thay đổi
từ bên ngoài.
- VSTO 3.0 cho phép tạo ứng dụng ở dạng nhúng hoặc độc lập.
Dạng nhúng: các ứng dụng được lưu theo
các file dữ liệu của office như docx, xlsx... và chỉ sử dụng được cho
file đó.
Dạng độc lập: mã chương trình được xuất
thành dạng file *.dll, từ đó tham chiếu vào các ứng dụng tương ứng. Việc
cài đặt các ứng dụng VSTO 3.0 rất đơn giản nhờ công nghệ ClickOnce.
Một số ứng dụng của VSTO:
- Tùy biến giao diện Ribbon
- Thay thế VBA dạng add-ins
- Tạo TaskPane cho ứng dụng Office
- Cá nhân hóa Outlook.
Về cơ bản, giống như VBA, VSTO được xây dựng dựa trên
kiến trúc COM, cho nên người dùng có thể sử dụng các thành phần sẵn có
của ứng dụng nền trong việc xây dựng chương trình của mình, giúp thời
gian phát triển được rút ngắn.
Một dự án được xây dựng bằng VSTO dựa trên ứng dụng nền
nào thì nó phụ thuộc chặt chẽ vào ứng dụng nền đó, bởi theo mặc định,
dự án VSTO sẽ hoạt động và sử dụng các thành phần trong chính ứng dụng
nền đó.
Sự khác biệt cơ bản nhất của VSTO trong các ứng dụng
nền (ví dụ giữa Word và Excel) là cách thức sử dụng các thành phần (đối
tượng) của ứng dụng nền. Cho nên khi xây dựng ứng dụng bằng VSTO, cũng
như VBA, thì việc hiểu rõ mô hình đối tượng của ứng dụng nền là yêu cầu
bắt buộc.
Nói tóm lại, để lập trình với VSTO, cách tốt nhất là
làm chủ từng phần. Đầu tiên cần nắm vững một ngôn ngữ lập trình mà Visual
Studio hỗ trợ (VB, C# hoặc C++) và cách sử dụng VSIDE để viết mã lệnh
cũng như thiết kế giao diện. Sau đó nghiên cứu mô hình đối tượng của các
ứng dụng nền (là những thành phần của ứng dụng mà người dùng có thể sử
dụng) cũng như cách sử dụng chúng.
Công cụ cần có:
- Visual Studio 2008 với VSTO 3.0
- Microsoft Office 2007 hoặc 2003
Hệ thống các đối tượng cơ bản trong MS Word và
Excel |
|
Tiếp cận VSTO
Để người dùng bước đầu làm quen với VSTO, bài viết sẽ
trình bày các bước tạo các ứng dụng trên MS Excel, Word ở 2 dạng độc lập
và nhúng qua 2 ví dụ:
Thêm tính năng xử lý tiếng Việt cho MS Word sử dụng Ribbon
(dạng độc lập).
Tạo file Excel có chức năng nhập thông tin cá nhân (dạng
nhúng).
Công cụ sử dụng: Visual Studio 2008; Microsoft Office
2007.
Ngôn ngữ lập trình: Visual Basic, nền tảng .NET Framework
3.5
Ví dụ 1: Thêm tính năng xử lý tiếng Việt cho MS Word
sử dụng Ribbon.
Tạo mới dự án: Chọn File > New Project, trong Project
types chọn Visual Basic > Office > 2007 > Word 2007 Add-in.
Thêm điều khiển Ribbon vào dự án: Project > Add New
Item.
Sử dụng Toolbox thêm các điều khiển cần thiết vào Ribbon.
Ribbon này sẽ được thêm vào trong ứng dụng Word khi bạn
Debug (Tab Add-ins).
Sau khi thiết kế xong phần giao diện Ribbon, tiến hành
viết mã lệnh cho các chức năng. Để điều khiển ứng dụng Word ta truy cập
đến đối tượng Application theo cách sau:
Globals.ThisAddIn.Application
Ví dụ đoạn mã sau đây giúp chuyển tất cả nội dung văn
bản được đánh dấu thành chữ in hoa.>
Dim strSelect As String =
Globals.ThisAddIn.Application.Selection.Text
Globals.ThisAddIn.Application.Selection.Text = strSelect.ToUpper
Trong quá trình viết mã, tiến hành Debug bình thường,
VSTO sẽ tự động khởi động MS Word để người lập trình kiểm thử ứng dụng.
Ví dụ 2: Tạo file Excel có chức năng nhập thông tin cá
nhân
Tạo mới dự án: Trong Project types chọn Visual Basic
> Office > 2007 > Excel 2007 Workbook.
Sử dụng Toolbox thêm các điều khiển dạng nhúng vào bảng
tính (worksheet) để tạo form nhập thông tin cá nhân.
Viết mã lệnh cho điều khiển Button. Khi bấm Thêm vào
danh sách, các thông tin do người dùng sẽ được nhập vào trong danh sách
bên dưới.
Ví dụ đoạn mã chương trình khi sự kiện bấm nút "Thêm
vào danh sách" xảy ra.
If txtHoTen.Text = "Nhập
họ và tên" Then
MsgBox("Chưa nhập Họ và tên!")
ElseIf cbxQueQuan.Text = "Chọn địa danh" Then
MsgBox("Chưa nhập quê quán!")
ElseIf dtNgaySinh.Value.Year = Now.Year Then
MsgBox("Chưa nhập ngày tháng năm sinh!")
ElseIf rdbNam.Checked Or rdbNu.Checked Then
Me.Range("A" & i).Value2 =
Application.WorksheetFunction.Max(Range("A:A")) + 1
Me.Range("B" & i).Value2 = txtHoTen.Text
Me.Range("C" & i).Value2 = cbxQueQuan.Text
Me.Range("D" & i).Value2 = dtNgaySinh.Value
Me.Range("E" & i).Value2 = strGioiTinh
i = i + 1
Else
MsgBox("Chưa nhập giới tính!")
End If
Thiết kế Publish |
|
Khi Debug, VSIDE sẽ tự động mở chương trình Excel để
người lập trình kiểm thử ứng dụng của mình.
Phân phối cài đặt ứng dụng VSTO
Sau khi hoàn thiện ứng dụng, vấn đề phân phối cài đặt
sang máy tính khác thường gặp khó khăn. Nhưng với VSTO 3.0 thì khác. Có
2 cách để thực hiện việc này.
Cách 1: Sử dụng công nghệ ClickOnce
của Microsoft.
Chọn Project > Project Properties > Publish
Thiết lập các thông số tạo bộ cài đặt trên giao diện.
Publish Location: Vị trí tạo bộ cài
đặt.
Prerequisites: Xác định các gói phần
mềm cần cài đặt trước khi tiến hành cài đặt chương trình. Có 3 lựa chọn
chính:
- Tải từ website của nhà cung cấp.
- Nhúng các gói phần mềm vào cùng thư mục cài đặt chương trình.
- Cài đặt từ một thư mục xác định trước.
Nếu các gói phần mềm cần thiết chưa được cài đặt, chương
trình sẽ tự động cài đặt theo một trong 3 cách trên.
Chọn Publish Now để phát sinh bộ cài. Khi hoàn thành
thư mục Publish xuất hiện các file:
Do lựa chọn Prerequisites theo cách 2, ngoài thư mục
chứa chương trình, bộ cài còn nhúng sẵn các bộ cài cần thiết cho việc
chạy chương trình như DotNetFX35, VSTOR30, WidnowsInstaller3_1.
Để cài đặt trên máy tính khác, chỉ cần thực thi Setup.exe
và làm theo hướng dẫn. Sau khi cài đặt, các tính năng của add-in được
thêm vào MS Word hoặc Excel.
Cách 2: Cài đặt trực tiếp qua file *.vsto
Sau khi Build, trong thư mục Project\bin\Release có các
file:
Để cài đặt add-in này sang máy tính khác, copy toàn bộ
thư mục trên, thực thi file *.vsto để cài đặt.
Để thực thi được các file dạng *.vsto, máy tính cần cài
đặt Visual Studio Tools for the Office system 3.0 Runtime (Office 2007),
cài đặt bằng file vstor30.exe, tải từ trang web chính thức của Microsoft.
Các bạn có thể tải các ứng dụng trên theo địa chỉ:
Lê Đắc Hiền
(theo PC World VN) |