2009-03-10 55 views
6

Trong công ty tôi làm việc cho chúng tôi có một ứng dụng máy tính để bàn được phát triển trong .NET mà chúng tôi muốn mở một số phần cho các nhà phát triển phần mềm khác.Cách bắt đầu tạo một API ứng dụng trong .NET

Tôi thấy nó giống như một số phương pháp công khai mà phần mềm khác có thể truy cập. Có cách tiếp cận tiêu chuẩn, phương pháp hay nhất hoặc trải nghiệm khác về điều này không? Tôi đoán bạn có thể làm điều này với các cuộc gọi Win32, lập trình C/C++ vv Nhưng tôi chủ yếu là một nhà phát triển .NET và có một số năm kinh nghiệm lập trình trong chủ yếu là VB.NET nhưng cũng có một số C#. Tôi hy vọng tìm một cách để làm điều này trong NET. Nhưng nó có thể truy cập được đối với phần mềm được phát triển bằng các ngôn ngữ khác.

Trân trọng/ Magnus

Trả lời

6

Có hai cách để giải quyết vấn đề này. Việc đầu tiên liên quan đến việc sử dụng mô hình Plug In/Module. Start here cho điều đó.

Cách thứ hai là chỉ cần phơi bày logic API của bạn thông qua các hội đồng được ghi chép đầy đủ.

Cách bạn chọn thực sự thích hợp với cách bạn muốn triển khai. Ví dụ: Adobe Photoshop sử dụng mẫu trình cắm thêm ở mức độ lớn. MS Office sử dụng cả hai trình cắm thêm cũng như cung cấp một giao diện đối tượng để làm việc với ứng dụng.

CẬP NHẬT: Đối tượng trong .Net có thể bị phơi nhiễm bởi các ứng dụng bên ngoài bằng cách đặt phạm vi đối tượng thành Công khai. Điều này bao gồm các hình thức cửa sổ, đối tượng kinh doanh, enum's, v.v.

Chỉ cần suy nghĩ về nó từ quan điểm của nhà phát triển bên ngoài. Họ sẽ cần thông tin gì để có thể thành công trong việc mở rộng/kiểm soát sản phẩm của bạn? Cho dù đó là gì, hãy đặt nó vào tập tin trợ giúp.

Ngoài ra, hãy sử dụng các tính năng tự động của tài liệu .Net. Điều này bao gồm việc thêm tài liệu xml IDE đã biết cách đọc và hiển thị thông qua intellisense. Ví dụ:

/// <summary> 
/// Gets all active documents for the specified customer. 
/// </summary> 
/// <param name="customerId">The Id of the customer.</param> 
/// <returns>A list of documents for this customer.</returns> 
public static List<Document> GetDocuments(int customerId) 
{ 
    //... do something ... 
} 
+0

Thanks for the tip về mô hình. Về "hội đồng tài liệu cũng" tôi hy vọng cho một mẹo của nơi mà tôi có thể tìm thêm thông tin về điều đó, có thể một số mã tham chiếu. – Magnus

+3

Hãy xem Ghost doc để có một plugin VS tốt để làm tài liệu XML của bạn và xem sandcastle để xây dựng một phiên bản HTML của tài liệu của bạn để mọi người sử dụng api của bạn không phải lội dù nguồn để lấy tài liệu của bạn. –

0

đang phát triển một API công cộng phụ thuộc rất lớn vào các chức năng của chương trình của bạn. Nếu bạn muốn hiển thị một API có thể truy cập được với các ngôn ngữ khác, các dịch vụ web XML thường là cách để thực hiện nó. Tuy nhiên, điều này có thể không thực tế đối với ứng dụng chỉ dành cho máy tính để bàn.

2

"Hiển thị ứng dụng thông qua API công khai" không phải là định nghĩa yêu cầu chi tiết. Trước khi thiết kế mọi thứ, hãy nhận các yêu cầu chi tiết.

Đối với API, tôi khuyên bạn nên bắt đầu với các yêu cầu và sau đó tiếp tục sử dụng các trường hợp. Vì đây là một API, bạn thực sự nên viết một số mã bằng cách sử dụng API được đề xuất, để xem nó cảm thấy như thế nào khi lập trình nó. Mã bạn viết phải bao gồm các trường hợp sử dụng mà bạn bắt đầu. Thậm chí bạn có thể viết mã đó trong các bài kiểm tra đơn vị, sau đó tạo API thông qua phát triển và tái cấu trúc theo hướng thử nghiệm. Tuy nhiên, vì các trường hợp sử dụng tập trung vào cách người dùng sẽ sử dụng phần mềm, chúng sẽ giúp bạn tập trung vào những phần nào của phần mềm mà người dùng sử dụng trực tiếp. Một trường hợp sử dụng có thể sử dụng một trường hợp khác; nhưng nếu người dùng không trực tiếp sử dụng một trường hợp sử dụng cụ thể, thì đó là trường hợp không cần phải được hiển thị công khai.

Lưu ý rằng điều này cũng đã giúp tôi trong việc phát triển các dịch vụ web.Các trường hợp sử dụng được người dùng truy cập trực tiếp trở thành các hoạt động để hiển thị thông qua dịch vụ. Bất kỳ trường hợp sử dụng nào mà người dùng không trực tiếp gọi sẽ vẫn bị ẩn, khi triển khai.

+0

Hmm, tôi không thực sự chắc chắn làm thế nào để đọc câu trả lời này, nó cảm thấy OOT? Câu hỏi của tôi không liên quan đến dịch vụ web hoặc API công khai được truy cập trên web. Đó là về một ứng dụng máy tính để bàn cục bộ nơi một công ty đối tác thích truy cập vào một số chức năng trong phần mềm của chúng tôi. Dù sao cũng cảm ơn bạn. – Magnus

+0

Các nguyên tắc chính xác tương tự được áp dụng. Điều quan trọng là bạn cần phơi bày các phần của ứng dụng của bạn vì một số trường hợp sử dụng nhất định không thể thực hiện được nếu không có điều đó. Bằng cách tập trung vào các trường hợp sử dụng, bạn chỉ phơi bày những gì cần thiết. –

3

Tạo một lớp API đó cho thấy nhiều những chức năng bạn muốn mọi người có thể truy cập và đăng ký nó cho dự án COM interop -> properties -> xây dựng -> Đăng ký COM interop

+0

Thú vị, sẽ xem xét điều này. – Magnus

+0

+1 COM Interop sẽ cho phép sử dụng trên các máy khách không phải mạng. – eglasius

Các vấn đề liên quan