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

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

Comments on: "Lựa chọn Webpart hay là User Control – Phần 2" (8)

  1. ngayxuaoi_ntt55 said:

    Em chào anh ạ,
    Em là một new bie về SharePoint và cả lập trình .net nữa ạ :(.
    Em đang thử xây dựng 1 webpart hiển thị một dữ liệu của 1 list. Trước em có làm bên Java thì em làm theo mô hình MVC nhưng em được biết bên SharePoint này không xây dựng theo mô hình này. Tuy nhiên em vẫn muốn tách phần controler và phần view riêng rẽ. Một số code em tham khảo lại viết chung vào 1 file .cs khi xây dựng 1 webpart.
    VD như việc render mã HTML trực tiếp ngay trong hàm
    protected override void Render(HtmlTextWriter writer) như sau ạ: writer.WriteLine(“”);
    writer.WriteLine(
    “”);

    A có cách nào khác không ạ? Anh giúp em với nhé?
    Nếu được a có thể add nick hoặc gửi reply vào mail cho em không ạ. Hoặc anh có thể viết 1 bài trên trang của anh để mọi người cùng tham khảo không ạ? Em nghĩ cũng nhiều cần như em :D. “Một người vì mọi người”, mong anh giúp đỡ 😀

  2. ngayxuaoi_ntt55 said:

    Hic, sao cái bọn này nó mã hóa cả code của em nhỉ :-s.
    Đại loại trong cái WriteLine là code mã html anh ạ
    writer.WriteLine(“”);

  3. kite203 said:

    Chào bạn, tớ đã không lập trình Sharepoint lâu rồi. Bạn có thể tham khảo link này nhé: http://weblogs.asp.net/bsimser/archive/2006/07/18/Model_2D00_View_2D00_Presenter-Pattern-with-SharePoint-Web-Parts.aspx. Trong .NET thì MVC cũng hơi giống với MVP. Chúc bạn thành công

  4. ngayxuaoi_ntt55 said:

    OK. thanks anh nhìu nhé!

  5. Chào anh!
    Em đang làm một đề tài xây dựng hệ thống quản lý điểm cho nhiều trường, mỗi trường có thể chỉnh sửa hoặc tạo giao diện cho riêng mình. Em mới học ASP.NET và cũng đang tìm hiều về webpart nhưng vẫn chưa hiểu rõ và chưa có hướng xây dựng. Anh có thể hướng dẫn em cách làm được ko ạ ? Em cảm ơn anh nhiều!

    • Chào bạn, mình hiện không làm về .net nữa rồi :). Nếu quan tâm đến sharepoint bạn có thể tham gia sharepointvn.net. Ở đó có rất nhiều anh em tâm huyết với Sharepoint. Thỉnh thoảng diễn đàn này cũng có offline, nếu ở SG bạn có thể tham gia.

      • Nguyễn Quốc Tuấn said:

        chào anh Kite203, nếu em tham gia thì ở đâu hả anh , e đang ở sài gòn

  6. Chào bạn Nguyễn Quốc Tuấn. Bạn theo dõi trên diễn đàn này nhé: http://sharepointvietnam.net/forum.php

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: