Mình thấy một số nơi họ dùng Table chứ không dùng Sharepoint List. Tại sao lại như vậy ? Khi nào thì nên dùng Sharepoint List và khi nào thì dùng Table.
Có người bảo CAML chạy chậm hơn và phức tạp hơn là Query trực tiếp trong Database.
Help me !!!
Họ dùng Table có lẽ bởi chưa quen với cách thiết kế sử dụng SharePoint List. Theo tôi nên tận dụng tối đa khả năng của SharePoint, đó là các List, Document Library,...thay vì thiết kế thành các Table của riêng mình. Bởi nếu thiết kế theo các Table thì hầu như mình không tận dụng được Framework của SharePoint, trong khi phải code lại hầu như toàn bộ, từ giao diện đến kết nối CSDL.
Về CAML thì tất nhiên là sẽ chậm hơn so với Query trực tiếp trong Database, nhưng tôi nghĩ nó sẽ không phức tạp, thậm chí là còn đơn giản hơn.
basquang™ blog
http://basquang.spaces.live.com
Như mình đang sử dụng thì Sharepoint thực sự rất mạnh về làm việc với các loại văn bản tài liệu, nhất là với các tài liệu phổ biến như word, excel,... ngay cả email (outlook) nữa ... nhưng mình thấy có mấy vấn đề mà làm trên sharepoint rất khó.
Ví dụ : Mình có 2 Custom List đơn giản : Catagory( #CateID, CateName) và News (#ID, Title, Body, @CateID) thì khi mình muốn View một trang gồm các thông tin : ID, Title, Body, CateName, CateID là rất khó. Mình chưa biết sử lý sao ? Trong khi ở trong MS SQL thì chỉ cần INNER JOIN 2 bảng lại và đưa ra các trường dữ liệu là được (mà vẫn đảm bảo CateName đó là tên ứng với CateID trên) là xong. Vậy vấn đề này thì nên như nào ?
PS : Ai có cái tool nào để viết Web Part tốt không ? Giới thiệu mình với. Hiện tại mình đang dùng 2 extension là : "WSPBuilderExtensions" và "VSeWSSv11". Mọi người chia sẻ với mình với.
Bạn có thể sử dụng SharePoint Designer, Hoặc List Connections hoặc viết Custom Webpart để giải quyết vấn đề trên.
Để viết WebPart, nên sử dụng VS 2008 với VSeWSS 1.3 mới nhất
Theo em thì việc sử dụng SP List hay table trong SQL phụ thuộc vào từng trường hợp.
Nếu trong list chứa 1 lượng lớn record (cỡ vài trăm hoặc vài nghìn bản ghi trở lên), mà mình muốn duyệt theo số điều kiện nhất định thì nên chuyển data từ list sang DataTable để tăng performance.
Bạn nên làm quen với SharePoint List và các cách thức truy vấn vào SharePoint list. đây là một thế mạnh của SharePoint . Có người bảo Sử dụng CAML chạy chậm hơn query trực tiếp chưa hẳn đã đúng. Bạn thử so sánh 2 cách viết query dữ liệu xem . Một bạn viết query trực tiếp vào DB , 2 bạn viết CAML truy vấn SharePoint list bạn sẽ thấy CAML tuy chậm hơn nhưng cấu trúc viết đơn giản hơn , có thể tùy biến dễ dàng. việc bug cũng dễ hơn.
Bác nào có tài liệu nói rõ hơn về CAML hơn không ? Share cho mình với. Mình muốn tìm hiểu sâu hơn xem sao. Thanks all.
Còn về tốc độ mình thấy nhiều người sử dụng sharepoint kêu tốc độ lướt web chậm hơn rất nhiều cách viết thông thường. Phải chăng là như vậy ? Hay cần phải config gì nữa chăng ?
để hiểu rõ nhất về CAML thì bạn nên đọc SDK ... :D ...
http://www.microsoft.com/downloads/details.aspx?FamilyId=05E0DD12-8394-402B-8936-A07FE8AFAFFD&displaylang=en
Theo mình thì nên tuỳ trường hợp mà sử dụng List hay Table. Trong trường hợp có mấy trăm nghìn hoặc vài triệu row thì nên sử dụng Table. Dù sao thì SQL Server cũng được thiết kế để xử lý việc đó, còn thằng SharePoint chẳng qua là build trên đó thôi.
Lại nói CAML sử dụng phức tạp hơn SQL Query, lại không có mấy lệnh phức tạp như JOIN chẳng hạn.
Dùng SPList khi record từ 2000 trở xuống thì tốt nhất.
Mình Có đọc một bài viết nói về giới hạn số item trong list. Theo đó nếu list có nhìu item thì có thể tạo các subfoder để chứa các item sẽ tối ưu được truy vấn.không biết giải pháp đó có hiệu không?