Tạo các giải pháp cho SharePoint 2007

Giới thiệu: những trở ngại trong SharePoint 2003

Microsoft SharePoint 2003 (WSS và SPS) là phiên bản đầu tiên của SharePoint cho thấy được sức mạnh của một giao diện lập trình ứng dụng (API) dựa vào Microsoft DotNet Framework. Việc giải quyết các vấn đề có thể đáp ứng cho sự phát triển của khách hàng luôn là một vấn đề nóng hổi đối với thế giới lập trình. Mặc dù vậy, những phát triển theo yêu cầu của khách hàng có trong phiên bản 2003 đã gây nên một số vấn đề chưa thực sự hài lòng đối với cộng đồng kỹ thuật. Sự thật là, không có phương pháp đáng kể nào cho việc triển khai phần mềm một cách linh hoạt trong SharePoint 2003. Các chuyên gia phát triển gặp phải hai vấn đề gây tốn nhiều thời gian: hướng dẫn “sao chép và dán” đối với tất cả các file tùy biến và kết hợp chúng, hoặc xây dựng một bộ cài mới giải quyết vấn đề này.

Microsoft Office SharePoint Server 2007 là một giải pháp tích hợp cho các máy chủ, cho phép cải thiện tính hiệu quả của tổ chức băng cách cung cấp khả năng quản lý nội dung nâng cao, tìm kiếm hoạt động kinh doanh, làm tăng lên quá trình chia sẻ trong doanh nghiệp, giúp thuận tiện cho việc chia sẻ thông tin bên trong doanh nghiệp nhằm nâng cao sự hiểu biết về công việc.

Office SharePoint Server 2007 hỗ trợ đối với tất cả các mạng nội bộ, mạng mở rộng và các ứng dụng web hoạt động kinh doanh trong một nền tảng tích hợp thay vì phụ thuộc vào các hệ thống tách biệt. Thêm vào đó, việc cộng tác và máy chủ quản lý nội dung này còn cung cấp cho các chuyên gia và nhà phát triển một nền tảng, công cụ cần thiết cho việc quản trị hệ thống, ứng dụng mở rộng và tương tác giữa các phần.

Sản phẩm SPS 2003 có một số sự thay đổi khi chúng được đưa ra, gồm có các mẫu mới, một trong số chúng gồm có nhiều file: kết hợp để cài đặt vàp thư mục IIS hoặc trong Global Assembly Cache (GAC); các trang aspx tùy chỉnh; quản lý sự kiện; các điều khiển và dịch vụ web; WebParts. WebParts chỉ là một thành phần thiết lập thủ tục cài đặt (sử dụng công cụ “stsadm”, công cụ quản trị dòng lệnh của SharePoint); tuy nhiên nếu WebPart cần phải được cài đặt bên trong một template thì thủ tục triển khai hữu dụng này trở thành rất phức tạp.

Việc tạo các công cụ triển khai cho nhiều mục đích là một cách phổ biến. Với các ứng dụng đơn giản, điều này được thực hiện tốt; tuy nhiên khó khăn xuất hiện khi viết nhiều mã trong một dự án. Trong trường hợp này, các nhóm phát triển có thể lợi dụng được rất nhiều vào tài nguyên phát triển, gỡ rối và phần mềm mở rộng.

Các vấn đề khác kế kèm theo với một hệ thống triển khai dài hạn là thiếu một lược đồ xuyên suốt phiên bản, sự bất lực khôi phục lại thông tin hoặc hoàn nguyên lại giải pháp triển khai trước đó theo cách dễ dàng và phù hợp, sự khó khăn trong việc cài đặt tất cả các thành phần trong hệ thống máy chủ theo một cách duy nhất (triển khai các cần thiết được lặp lại trong mỗi máy chủ độc lập của hệ thống máy chủ này). Tương tự, các đáp ứng riêng lẻ cũng cần phải có để tạo những thay đổi trong file cấu hình web bảo đảm đăng ký của các thành phần và cấu hình cho chính sách bảo mật truy cập máy tính Computer Access Security (CAS).

Các giải pháp của SharePoint 2007: Giải quyết vấn đề tồn đọng

Phiên bản mới nhất của SharePoint, Windows SharePoint Services (WSS 2007) và Microsoft Office SharePoint Server (MOSS 2007) cung cấp một giải pháp đối với vấn đề triển khai có trong SharePoint Solutions.

SharePoint Solutions là một nền tảng tập hợp tất cả các thành phần cần thiết để tạo một yêu cầu của khách hàng trong một file Solution. Framework cho phép cài đặt, kích hoạt, vô hiệu hóa và hoạt động tháo gỡ vẫn được sử dụng bởi các quản trị viên hệ thống, không có tình trạng rắc rối của họ trong các vấn đề kỹ thuật liên quan đến vị trí vật lý của file và thao tác với chúng.

SharePoint Solutions cung cấp: 

  • Biên dịch các thành phần theo yêu cầu (các file aspx, DLL, file tài nguyên, định nghĩa…) trong một file.
  • Cài đặt vật lý các thành phần trong một hệ thống máy chủ mà không cần kích hoạt: giải pháp có thể được sao lưu đến tất cả các máy chủ trong hệ thống không cần kích hoạt.
  • Kích hoạt theo lịch trình: quản trị viên hệ thống có thể quyết định khi nào các yêu cầu của khách hàng sẽ được kích hoạt một cách tự động.
  • Một hệ thống xác định phiên bản có thể cài đặt các phiên bản của cùng các yêu cầu khách hàng. Nếu một máy chủ mới được bổ sung vào hệ thống thì Solutions Framework sẽ bảo đảm cài đặt các tùy chọn một cách tự động mà không cần đến sự can thiệp từ các quản trị viên hệ thống.
  • Vô hiệu hóa một số tùy chọn, cho phép quay trở về giải pháp gốc, cũng theo cách được lập thời gian biểu. 
Hủy cài đặt vật lý các thành phần để gỡ chúng từ máy chủ:

Thực chất của vấn đề, một file Solution .cab gồm có tất cả các file được cài đặt như file "manifest.xml". File manifest này là một file chỉ dẫn cho cỗ máy các giải pháp định nghĩa nhiệm vụ của nó, vị trí vật lý để cài đặt file nào đó và một số dữ liệu cần thiết cho việc đăng ký của nó trong SharePoint. File mở rộng của Solution là “.wsp” và nếu thay đổi thành “.cab” thì nó có thể mở file và kiểm tra các nội dung của nó.

Như một chiến lược của công ty, Microsoft đang phân phối phần mềm mới nhất của SharePoint; “Windows SharePoint Services 3.0 Application Templates: Server Admin Templates" sử dụng ứng dụng chính "Application Template Core" có cài đặt một công cụ quản trị viên cho các tempalate, các template này sau đó được cài đặt như một Solution. Như một tính năng bổ sung, tất cả các thành phần được phân phối đều như Solutions.

Sử dụng Solution từ giao diện người dùng và stsadm

Để cài đặt một Solution, sử dụng công cụ quản trị "stsadm" SharePoint cùng với lệnh sau:

STSADM.EXE -o addsolution -filename

Ví dụ, để cài đặt ứng dụng liên quan ở phần trên cho các tempalate: "C:Program FilesCommon FilesMicrosoft Shared web server extensions12BINSTSADM.EXE" -o addsolution -filename C: ApplicationTemplateCore.wsp (nếu file .wsp nằm ở vị trí file gốc của hệ thống)

Sau khi cài đặt, Solution được upload để cấu hình dữ cơ sở dữ liệu (bảng các đối tượng của cơ sở dữ liệu cấu hình), tuy nhiên biểu mẫu này không được sử dụng trong hệ thống; nó vẫn cần phải được kích hoạt. Từ điểm tiếp theo, việc quản lý của Solution có thể được thực hiện từ giao diện Central Administration Web của SharePoint. Vào Central Administration, tab "Operations", dưới "Solution management" (phần "Global configuration") là một danh sách tất cả các giải pháp cài đặt cùng với trạng thái của nó và Web Application(s) đã được sử dụng.


Hình 1
: Solution Management trong Central Administration của SharePoint

Khi Solution mong muốn được lựa chọn, màn hình tiếp theo sẽ hiển thị cho bạn thấy các Solution và nút gồm; một để triển khai các giải pháp và một để tháo gỡ chúng. Nút thứ hai sẽ đảo ngược thủ tục cài đặt và trước tiên sẽ kết thúc quá trình cài đặt.

Hình 2: Cửa sổ để triển khai và gỡ một Solution

Việc triển khai có thể được hoàn tất ngay lập tức hoặc tại một thời điểm nào đó trong tương lai. Solution Framework có thể khởi tạo một nhiệm vụ được lịch trình; bằng cách đó, bạn có thể triển khai Solution khi quản trị viên hệ thống xem xét phù hợp.

Metadata trong định nghĩa Solution hoặc trong mỗi thành phần chỉ rõ phạm vi triển khai của hệ thống máy chủ. Ví dụ thể hiện trong hình 3 cho chúng ta thấy một triển khai toàn bộ và do có nhiều bộ phận nhỏ được sử dụng trong GAC nên của sổ hiển thị một báo cảnh.


Hình 3
: Màn hình triển khai trong Central Administration

Sự triển khai công cụ “stsadm” được thực hiện bởi cú pháp dưới đây:

STSADM.EXE -o deploysolution -name [-url ] [-allcontenturls] [-time ] [-immediate] [-local]
 [-allowgacdeployment] [-allowcaspolicies]
 [-lcid ] [-force]

Lưu ý: Các tham số giữa “[]” là không bắt buộc.

Việc xác định Solution hoàn toàn có thể nếu Solution được triển khai có cùng ID giải pháp của một giải pháp đang tồn tại trong kho lưu trữ. Trong trường hợp này, giải pháp gốc được gỡ bỏ từ kho lưu trữ, đã được sao lưu dự phòng và lưu trong kho lưu trữ cấu hình và một giải pháp mới được bổ sung thêm vào. Việc sao lưu dự phòng được dùng đến khi gặp thất bại trong cài đặt và chỉ có một sao lưu dự phòng được lưu cho một Solution.

Sau khi triển khai, giải pháp có thể bị vô hiệu hóa hoặc gỡ bỏ bằng các thủ tục dưới đây, được thực hiện từ giao diện người dùng của Central Administration hoặc bằng “stsadm” với cú pháp sau:

STSADM.EXE -o retractsolution .name [-url ] [-allcontenturls] [-time ] [-immediate]
 [-local] [-lcid ] 

Danh sách các tham số "deploysolution- triển khai" and "retractsolution- tháo gỡ", "stsadmcho phép kiểm soát tốt hơn giao diện người dùng Web. Mặc dù vậy, mặt hạn chế ở đây là công cụ dòng lệnh kém thân thiện đối với người dùng.

Để xóa một Solution từ hệ thống các máy chủ, đơn giản bạn thực hiện như sau:

STSADM.EXE -o deletesolution -name 
[-override] [-lcid ]

Sử dụng lập trình

Giao diện người dùng SharePoint và “stsadm” không chỉ để cài đặt và kích hoạt các giải pháp. Mô hình đối tượng của SharePoint cung cấp các lớp và phương pháp để thực hiện khả năng lập trình nhiệm vụ.

Các lớp SPSolution và SPSolutionCollection trình bày tương ứng một giải pháp và bộ sưu tập các giải pháp trong hệ thống máy chủ SharePoint. Các lớp SPSolutionLanguagePack và SPSolutionLanguagePackCollection có cùng một cấu trúc nhưng được sử dụng đặc thù cho việc quản lý các gói ngôn ngữ Language Pack. Có ba thành phần đặc biệt đó là: SPSolutionDeploymentJobType, SPSolutionDeploymentState và SPSolutionOperationResult, được sử dụng để định nghĩa các kiểu, trạng thái, và tác động có thể của giải pháp.

Tất cả các lớp và các thành phần đặc biệt này nằm trong Microsoft.SharePoint.Administration NameSpace trong Microsoft.SharePoint.dll. Mỗi thành phần đặc biệt của các lớp, các phương pháp, và thuộc tính khác nhau được tham khảo SDK từ WSS 2007 (SPSolution ClassSPSolutionCollection Class).

Để liệt kê các giải pháp và thuộc tính của chúng trong hệ thống máy chủ, bạn thực hiện như sau:

1. SPSolutionCollection mySolutionColl = SPFarm.Local.Solutions;
 2. foreach(SPSolution mySolution in mySolutionColl)
 3. {
 4. Console.WriteLine("Name - " + mySolution.DisplayName +
 5. ", Deployed - " +
 mySolution.Deployed.ToString() +
 6. mySolution.DeploymentState.ToString() +
 7. ", Status - " +
 mySolution.Status.ToString());
 8. } 

Dòng lệnh đầu tiên chứng tỏ một đối tượng đã được tạo gồm một số giải pháp trong hệ thống máy chủ. Lệnh “foreach” lặp qua mỗi Solution để minh họa cho những thuộc tính của nó. Có rất nhiều thuộc tính và phương pháp để kiểm soát tất cả tiềm năng của Solution gồm: các chính sách CAS; tài nguyên hoặc tập hợp được cài đặt trong GAC; một kiểm tra để phát hiện xem một Solution đã được triển khai chưa; sẽ có một cờ báo hiệu nếu có một nhiệm vụ được triển khai; trạng thái của nó…

Để cài đặt một Solution mới trong kho chứa Solutions Store, sử dụng đoạn mã sau đây:

9. SPSolution mySolution = SPFarm.Local.Solutions.Add(@"C:HelpDesk.wsp");
10. Console.WriteLine("Solution " + mySolution +
11. " installed:" + mySolution.Added.ToString() +
12. ", deployed:" + mySolution.Deployed.ToString

Phương pháp “Add” sử dụng 3 cấu trúc cho phép cài đặt một giải pháp; sử dụng một đối tượng SPSolution đã tạo trước; dùng đường dẫn đến file .wsp; và thứ ba là đường dẫn .wsp và sự xác minh ngôn ngữ. Giá trị trả lại là một đối tượng kiểu SPSolution.

Để triển khai Solution, mã với mô hình đối tượng là:

13. SPSolution mySolution = SPFarm.Local.Solutions["HelpDesk.wsp"];
 14. Console.WriteLine("Before: DeploymentState -
 " + mySolution.DeploymentState.ToString());
 15. mySolution.Deploy(DateTime.Now, false, false);
 16. Console.WriteLine("After: DeploymentState - " +
 mySolution.DeploymentState.ToString());

Lưu ý rằng, nếu không có đối tượng nào có tham chiếu đến Solution, như thể hiện trong dòng 13, thì hoàn toàn có thể tạo một đối tượng mới. Phương pháp Deploy có hai cấu trúc: một để triển khai Solution đối với tất cả các ứng dụng Web trong hệ thống máy chủ và cho phép người dùng chọn ứng dụng web nào sẽ được triển khai. Thực tế, phương pháp này không đúng theo nghĩa Solution (giải pháp) nhưng nó tạo một nhiệm vụ SharePoint để thực hiện sự triển khai. Do vậy thông báo thứ hai của bảng điều khiển Console.WriteLine sẽ luôn luôn chỉ thị "NotDeployed" (không được triển khai): một sự xác nhận rằng có một khoảng thời gian giữa việc thực thi mã và thời điểm cỗ máy công việc khởi tạo nhiệm vụ.

Tham số đầu tiên của phương pháp “Deploy” chỉ thị khi hành động được bắt đầu. Tham số "globalInstallWPPAckDll" (tham số thứ hai trong ví dụ) được sử dụng dành riêng cho việc triển khai các WebPart và cho phép cài đặt thành phần của WebPart trong GAC. Tham số thứ ba là một tham số “bắt buộc” force (nhị phân); nếu tham số này có giá trị là “false” (sai) thì Solution đã được triển khai, thủ tục sẽ đưa ra một ngoại lệ.

Nếu giao diện Web của Central Administration (hình 2) được sử dụng thì các Solution gồm các thành phần đã được triển khai trong GAC sẽ hiển thị một báo cảnh. Nếu công cụ quản trị “stsadm” được lựa chọn, thì thực chất đó là sử dụng dấu hiệu cờ "-allowgacdeployment" để triển khai GAC. Nếu mô hình đối tượng được chọn để triển khai Solution thì sẽ không có báo cảnh nào được đưa ra.

Nếu cần phải thực thi “iisreset” để khởi động lại các ứng dụng của ISS thì phải lập trình độc lập hoặc thực hiện một cách thủ công bởi vì phương pháp “Deploy” không thực hiện công việc này một cách tự động.

Việc nâng cấp Solution có thể được thực hiện bằng sử dụng SPSolution: phương pháp Upgrade (System.String) nếu Solution vẫn chưa được triển khai và phương pháp SPSolution.Upgrade(System.String,System.DateTime) nếu nó đã được triển khai.

Cuối cùng, để gỡ bỏ hay vô hiệu hóa Solution, các phương pháp thích hợp của lớp SPSolution được áp dụng là:

17. SPSolution mySolution = SPFarm.Local.Solutions["HelpDesk.wsp"]; 
18. mySolution.Retract(DateTime.Now);
19. mySolution.Delete();

Dòng 18 có tác dụng vô hiệu hóa một Solution đã triển khai. Phương pháp này có thể có một tham số (ngày và thời gian bắt đầu nhiệm vụ vô hiệu hóa) hoặc hai tham số (thời gian của công việc và một tham chiếu đến ứng dụng web, nơi Solution đã được triển khai). Dòng 19 có tác dụng đơn giản là tháo gỡ một Solution từ hệ thống máy chủ.

Cần phải lưu ý rằng việc triển khai mô hình đối tượng để cài đặt, kích hoạt và vô hiệu hóa các Solution sẽ có một số rủi ro mang tính kế thừa. Thời điểm của cỗ máy công việc có thể chậm hơn về cơ bản so với ứng dụng Web, nơi đang thực thi mã mô hình đối tượng. Cần phải thận trọng đối với việc sử dụng các thứ tự sự kiện: luôn luôn đợi cho tới khi một quá trình được hoàn tất trước khi khởi tạo quá trình tiếp theo; nếu không, cỗ máy giải pháp có thể sinh ra các lỗi, một trong những lỗi có thể xuất hiện cuối cùng. Solution sẽ ở trong trạng thái “hold” để ngăn chặn các bước tiến hành xa hơn.

Kết luận

SharePoint Solutions là một tùy chọn hoàn hảo để triển khai yêu cầu khách hành trong SharePoint 2007, nó là một giải pháp cải thiện các vấn đề xuất hiện đối với SharePoint 2003. Nó có nhiều giải pháp bổ sung khác nhau; áp dụng công cụ quản trị của SharePoint, sử dụng giao diện Web hoặc hoạt động lập trình. Bài tiếp theo chúng tôi sẽ giới thiệu cho bạn cách làm thế nào để tạo các Solution, giải thích rõ các thành phần khác nhau của lược đồ và thảo luận khía cạnh liên quan đến cấu trúc của file .wsp.

Thứ Hai, 10/09/2018 15:16
51 👨 7.371