Life, SAP, Consulting, Programming, Coding, ASP.NET, Sharepoint, MVC, Javascript, PHP, WebDesign, CSS, HTML

Posts tagged ‘web control’

Lựa chọn Webpart hay là User Control – Phần 2

Hoạt động của Webpart

Với đa số mọi người, đây gần như là cách tiếp cận duy nhất. Có nhiều bài hướng dẫn tạo ra Webpart. Các Webpart có nhiều điểm nổi trội so với những giải pháp cho vấn đề trong Sharepoint. Và trong vài trường hợp, chúng là giải pháp tốt nhất cho công việc.

Một ưu điểm lớn nhất của Webpart là mọi thứ đều có snawx. Bạn có thể thao tác với thanh công cụ, thay đổi mọi thứ theo cách của Webpart. Với control, bạn chỉ có thể thực hiện với những gì có sẵn mà thôi.

Mặt khác, điểm mạnh của User Control là điểm yếu của Sharepoint. Nó là một khái niệm mới, lạ lẫm, có thể mất thời gian để làm quen và tăng thời gian phát triển. Webpart lại có ưu điểm về hoạt động. Webpart là giải pháp có hiệu suất tối đa nhất, được hỗ trợ bởi kiến trúc khung trong cơ chế triển khai cơ sở hạ tầng Sharepoint. Tuy nhiên, như đã nói, điều này chỉ có ý nghĩa trong các tổ chức lớn, với các ứng dụng lớn đòi hỏi mở rộng. Trong thực tế, sự khác nhau là không lớn.

Đánh giá

Vì sự hiểu biết cơ bản về sự khác nhau là không đủ. Mục này sẽ đề cập sâu hơn về điểm mạnh và yếu trong các trường hợp khác nhau.

Lập trình trực quan

Một khi yếu tố quen thuộc không còn là lợi thế để cho việc lập trình nhanh chóng hơn thì tôi sẽ nghiêng về chọn Webpart. Lập trình dao diện kéo thả được hỗ trợ rất mạnh bởi Visual Studio. Cái này sẽ khiến nhiều người suy nghĩ làm thế nào tận dụng hỗ trợ kéo thả đó.Tuy nhiên, theo tôi, muốn có một giao diện linh hoạt mềm dẻo. Thì chúng ta sẽ phải dùng những cách trang trí riêng, phù hợp với những hoàn cảnh khác nhau. Hoặc khi muốn hiển thị một tập các links hoặc thay thế một chuỗi trong ouput, những lợi thế của User Control trở nên vô dụng. Trong trường hợp này, rõ ràng Webpart là sự lựa chọn hợp lý.

Đồng bộ

Một trong những ưu điểm của User Control là bạn có thể mang nó từ một trang Sharepoint vào trong một ứng dụng ASP.NET khác. Tuy nhiên, điều gì xảy ra nếu trong User Control đó lại sử dụng thư viện Microsoft.Sharepoint.dll. Tất nhiên là không thể dùng nó ngoài Sharepoint được nữa rồi. Vì thế lợi thế sử dụng lại biến mất khi bạn sử dụng trực tiếp các tính năng trong Sharepoint. Trong trường hợp này, nếu giao diện là được giản thì hợp lý hơn là code bằng Webpart. Webpart có sự đồng bộ cần và tích hợp sâu vào Sharepoint.

Hoạt động

Mặc dù hiệu suất hoạt động của một ứng dụng luôn nằm trong đầu của người lập trình. Tuy nhiên, ngày nay, một cái Server có giá khoảng $5000, trong nhiều dự án, nó chỉ có giá trị rất nhỏ so với lương trả cho lập toàn bộ nhân công. Vì thế ngày nay, vấn đề hoạt động rất ít khi được chú ý nhiều.

Tuy nhiên vẫn có những trường hợp mà hiệu suất hoạt động được đặt lên tiên quyết. Những thành phần thường xuất hiện trên mọi trang tốt hơn nên dùng Webpart. Ngay cả với những trang có lượng truy cập thấp. Một ví dụ khác, khi xây dụng một thành phần có chức năng lấy các đường dẫn tương đối và tăng khả năng tạo cache hợp lý. Nó sẽ được tạo ra nhờ Webpart chứ không phải là User Control. Vì nó được load ra ít nhất 2 lần trong một trang – 1 trong header và 1 trong footer. Thành phần core này được sử dụng để đảm bảo hiệu suất hoạt động của Site mặc cho sử dụng một User Control sẽ dễ dàng hơn.

Cơ chế tích hợp

Xem xét cuối cùng là Webpart phải dựa vào cấu hình của mẫu thiết kế. Nói cách khác, chúng ta nên tạo ra một ứng dụng cho phép lấy nội dung từ URL hơn là tạo ra từng Webpart riêng biệt cho từng URL được gọi đến. Cấu hình cơ bản này rất hữu ích trong việc giảm code trùng lặp vào nâng cao giải pháp tổng thể.

Với Smartpart(Xem phần 1), có một vấn đề đó là quản lý cách thức mà thông tin được đẩy vào cho User Control. Giải pháp đó là tạo một đối tượng để chứa Control hoặc là tạo ra lớp con của SmartPart để thêm vào khải năng đẩy thông tin vào thuộc tính từ Sharepoint, Câu truy vấn từ URL hay là từ FORM POST. Điều này cho phép bạn cân bằng các tính năng của SharePoint và không cần tạo ra các liên kết trực tiếp giữa Control và Sharepoint.

Ví dụ, User Control có một thuộc tính Public để chứa ID của bản ghi (record) hiện tại. Những trang nào mà có ID cho bản ghi hiện tại lấy ra từ Sharepoint sẽ lấy được nó vì đó là thuộc tính Public. Nó có thể đẩy ID đó vào thuộc tính public của User Control. Điều này cho phép User Control không bị dính chặt với Sharepoint mà vẫn tận dụng được các tính năng của Sharepoint.

Kết luận

Như vậy, hầu hết những quan điểm cho rằng viết một chức năng cho Sharepoint là phải dùng Webpart là sai. Thích hợp hơn là chúng ta sử dụng ASP.NET user Control để tân dụng chúng trong Sharepoint bằng những kỹ thuật như là SmartPart.

Advertisements