Bài 1: Bắt đầu với All1Tool Plugin – Hello World


1. Lời nói đầu

Đây là loạt bài hướng dẫn mọi người viết plugin cho All1Tool, có thể nói để viết plugin cho tool này, mình đã cố gắng để giúp cho người viết, viết 1 cách nhanh nhất và dễ dàng nhất. Nếu bạn đã quen thuộc với cấu trúc chương trình, bạn có thể viết xong 1 auto < 1h với đầy đủ các chức năng như các script có sẵn trong tool. :D.

Trong loạt bài hướng dẫn này, mình sẽ ghi chi tiết từng bước cụ thể, từ cách làm thế nào để viết plugin , các kĩ thuật để viết auto cho 1 trang web, và các tool cần dùng. Nên những bạn từ ko biết gì cũng có thể trờ thành expert về auto :D.

2. Yêu cầu: 

– Để bắt đầu viết plugin, đòi hỏi bạn phải có kiến thức nhất định về .Net framework và C#. (Bạn có thể dùng VB.Net để viết, nhưng bài hướng dẫn mình chỉ tập trung vào phần C#). Nếu bạn chưa biết gì về .Net framework và C# thì bạn bắt buộc phải học trước để có cơ bản về lập trình với ngôn ngữ C#.

– Bộ công cụ để lập trình. VS 2012- Có thể dùng bản express, down free tại đây: http://www.microsoft.com/visualstudio/eng/downloads#d-2012-express

– Trên đây là yêu cầu cơ bản chơ bài hướng dẫn này, những bài sau sẽ có những yêu cầu khác.

3. Bắt đầu viết 1 Plugin.

a. Thiết lập ban đầu cho project.

– Mở visual studio :D.

– Chọn File -> New -> Project

– Capture 1

– Chọn loại project: Class Library

– Name: MyFirstPlugin

– Solution name: All1ToolPlugin.

– Tiếp theo, vì VS 2012 mặc định loại project là .net 4.5, mình cần phải chuyển về net.40

-> – Trong phần Cấu trúc thư mục của project -> Chuột phải lên project -> Properties

-> Chọn tab Application -> Target frameworks : chọn .Net Framework 4 -> Nếu hiện bản thông báo thì nhấn Yes.Capture 2

– Qua tab Build -> Phần Platform Target chọn: x86.

Capture 3

– Rồi save lại -> close.

– Tiếp theo, cần phải add những DLL cần thiết cho Plugin.

– Trong phần Cấu trúc thư mục của project, chuột phải lên References -> Add Reference

– Chọn Tab Assembly -> Framework -> Check vào ô System.ComponentModel.Composition

Capture 4

– Sau đó qua tab Browse, phía bên dưới có nút browse, click vào nút đó.

– Hộp thoại thông báo hiện ra, tìm tới đường dẫn tới thư mục chính của All1Tool, và chọn 1 loạt các file sau (đè shift để chọn nhiều file cùng lúc)

Capture 5

Click Ok để hoàn tất.

b. Bắt đầu viết code.

– Đổi tên file Class1.cs -> HelloWorldPlugin.cs, hộp thoại thông báo hiện ra thì nhấn Yes.

– Thêm các namespace sau vào phần using:

using System.IO;
using AutoManager.Plugins;
using System.ComponentModel.Composition;

– Thêm các attribute sau vào phía trên class:

[Export(typeof(All1PluginScript))]
 [PluginInfo(PluginName="HelloWorldPlugin")]


[Export(typeof(All1PluginScript))]: attribute này thông báo cho All1Tool rằng lớp này sẽ được đăng kí như là plugin của chương trình

[PluginInfo(PluginName=”HelloWorldPlugin”)]: cung cấp thông tin của plugin, PluginName là tên plugin sẽ được hiện ra trên tool để người dùng chọ.

Tiếp theo add thêm 2 phương thức vào tool, cuối cùng ta sẽ được như sau:


[Export(typeof(All1PluginScript))]
 [PluginInfo(PluginName="HelloWorldPlugin")]
 public class HelloWorldPlugin:All1PluginScript
 {
 public override All1ActionResult Begin(object arg)
 {
 File.WriteAllText("HelloWorldFile.txt", "Hello World!");
 return new All1NextMethodResult {NextMethod=End };
 }

public override All1ActionResult End(object arg)
 {
 return new All1ActionResult();
 }
 }

Phương thức All1ActionResult Begin(object arg): Phương thức này được gọi khi tool bắt đầu chạy. Nó như là 1 đầu vào plugin của bạn, tất cả các plugin đều bắt đầu chạy từ hàm này.

Phương thức All1ActionResult End(object arg): Phương thức này như là điểm kết thúc plugin của bạn. Khi tool gọi phương thức này, cũng có nghĩa rằng bạn thông báo với tool plugin đã chạy hoàn tất, tất cả đã ổn thỏa, có thể dừng chạy site này ở đây.

Dòng lệnh: File.WriteAllText(“HelloWorldFile.txt”, “Hello World!”); : Đơn giản là ghi file với nội dùng “Hello World!”

Dòng lệnh: return new All1NextMethodResult {NextMethod=End }; Với dòng lệnh này, bạn sẽ thoát ra hàm hiện tại , và trả về kiểu All1NextMethodResult, đây là 1 kiểu để thông báo với tool rằng, sau khi thoát khỏi hàm hiện tại hãy gọi hàm kế tiếp được gán trong NextMethod.

c. Test plugin 

Sau khi viết xong mọi thứ, nhấn chuột phải vào project -> Build (hoặc nhán F6).

Vào thư mục chứa project, vào bin/Debug. Copy 2 file MyFirstPlugin.dll và MyFirstPlugin.pdb và thư mục Plugins của tool.

Mở tool lên, add hoặc edit 1 site bất kì, phần Script Type chọn PluginCustom, phần Plugin chọn HelloWorldPlugin.

Chạy site đó, sau đó vào thư mục chính của tool xem có file HelloWorldFile.txt hay không. Nếu có thì bạn đã viết Plugin thành công. Còn ko có thì kiểm tra lại kĩ các bước :D.

Kết thúc bài 1, sang bài 2 mình sẽ chỉ cách debug plugin.

Project mẫu bài 1, bạn có thể tìm thấy ở link:  https://www.dropbox.com/sh/pfphoxdjvez3yr7/mDU69PBIh4

5 comments

  1. Bạn có ghi:
    “Vào thư mục chứa project, vào bin/Debug. Copy 2 file MyFirstPlugin.dll và MyFirstPlugin.pdb và thư mục Plugins của tool.

    Mở tool lên, add hoặc edit 1 site bất kì, phần Script Type chọn PluginCustom, phần Plugin chọn HelloWorldPlugin.”
    Vậy bạn cho mình hỏi là tool đó là gì vậy. Download nó ở đâu. Thanks.

Leave a comment