2009-02-08 13 views
5

Chẳng hạn như:Về MOSS hoặc WSS 3.0, các phần nào của API có thể đã được triển khai tốt hơn?

  • Phương pháp Sealed bạn có thể có thể thích để mở rộng
  • Exceptions ném là mơ hồ hơn là hữu ích
  • Loại bỏ Content Connected mà là một tính năng quan trọng trong MCMS 2002
  • HTML bị xóa khỏi các trường khi được lưu trữ và trả lại. Không có tùy chọn dễ dàng để giải quyết vấn đề này
  • Tạo SPWeb mất vĩnh cửu.
  • con đường chuyển đổi Nonexistant từ MCMC 2002
+0

Touche! Bạn cảm thấy thế nào về nó? –

+0

Tôi đồng ý với Rex. ;) API là quái dị. Có ai khác nhìn thấy rò rỉ bộ nhớ bắt đầu quy trình công việc trong mã? –

+0

Hy vọng rằng số tiền bán hàng ($) được tạo ra bởi MOSS sẽ cho phép họ xem lại nội bộ của OM. Tôi lo sợ rằng, lý do chính xác đó sẽ ngăn cản họ vì họ sẽ muốn duy trì khả năng tương thích ngược. –

Trả lời

6

Tôi muốn mô hình đối tượng Sharepoint hoàn toàn được quản lý mã. Mặc dù có trình bao bọc .NET thuận tiện, phải lo lắng về việc xử lý nhiều đối tượng thực hiện IDisposable là một cơn đau. Nó rất dễ dàng để chạy vào các vấn đề bộ nhớ khi vứt bỏ không được gọi trong một ứng dụng WSS. Và tôi nghĩ lý do để chuyển sang .NET là để các nhà phát triển miễn phí phải xử lý việc quản lý bộ nhớ ...

+0

+1 bạn sẽ thấy một số mẫu mà chúng tôi đã đưa ra để đảm bảo chúng tôi xử lý đúng SPWeb trong một lần đệ quy phân nhánh –

+0

Tôi đồng ý ở đây. SPWeb là một phần mềm để giữ quyền kiểm soát. –

+0

+1 SPWeb thường xuyên truy cập mẹ tôi –

2

Làm thế nào về refactoring Thuộc tính mà kết quả trong cơ sở dữ liệu thêm các cuộc gọi đến các phương pháp thay vào đó, ví dụ như mục tài sản trên SPList.

2

Bất kỳ API SPList nào đều có thể sử dụng viết lại hoàn toàn. Cố gắng để đối phó với các thư viện với các thư mục lồng nhau là một cơn ác mộng hoàn chỉnh với danh sách được hoàn toàn phẳng mà không có cấu trúc phân cấp rõ ràng.

Một bổ sung tuyệt vời khác là thêm giao diện vào SPWeb, SPList và các lớp Sharepoint khác để hỗ trợ kiểm tra.

1

Yêu thích cá nhân của tôi là SPField.GetFieldValue Method. Tôi không biết tại sao họ thiết kế nó theo cách họ đã làm, nhưng đối với tôi, nó hầu như không có ý nghĩa. Để có được một đối tượng ra khỏi một ListItem bạn phải làm somethine như:

SPField field = ((SPList)list).Fields.GetField("FieldName"); 
object fieldValue = field.GetFieldValue(((SPListItem)item)[field.Title].ToString()); 

Bắt một đối tượng ra khỏi một ListItem là IMO một hoạt động cơ bản, vì vậy đây không phải là phức tạp.

1

Sự không thống nhất khi truyền tên trường cho các phương thức hoặc mảng.Ví dụ:

Để đóng băng trên bánh, thường không có tài liệu về phương thức lấy tên và/hoặc tên hiển thị.

+0

+1 cho nhận xét "không có tài liệu". Làm tôi phát điên. –

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