2012-12-10 22 views

Trả lời

28

Nhược điểm của file liên kết:

  • Thêm vào liên kết có thể được khó khăn để duy trì, đặc biệt là khi bạn mở rộng để nhiều dự án và nhiều file nguồn. Công cụ (chẳng hạn như Project Linker cho Visual Studio 2010, hoặc giữ ALT trong khi kéo trong Visual Studio 2012) có thể làm cho việc này dễ dàng hơn.
  • Công cụ tái cấu trúc không hoạt động với các tệp được liên kết. Ví dụ: nếu bạn đổi tên lớp hoặc phương thức trong tệp được liên kết, công cụ tái cấu trúc sẽ không cập nhật các tham chiếu đến các bản sao được liên kết khác của API đó.
  • Khi chỉnh sửa mã trong tệp được liên kết, intellisense có thể hiển thị cho bạn các API không có sẵn trên tất cả các nền tảng mà tệp được liên kết.
  • Visual Studio sẽ cung cấp cho bạn một hộp thông báo cho biết "Tài liệu này được mở bởi một dự án khác" khi bạn cố mở một tệp được liên kết đã được mở bởi một dự án khác.
  • Bạn kết thúc bằng một DLL riêng biệt cho mỗi nền tảng. Nếu bạn đang tạo một thư viện có thể tái sử dụng mà bạn muốn chia sẻ với người khác, có thể sẽ dễ dàng phân phối hơn nếu chỉ có một phiên bản của nó, chứ không phải một phiên bản riêng biệt cho mỗi nền tảng.

Nhược điểm của thư viện lớp Portable:

  • Bạn được giới hạn cho các API có sẵn trên tất cả các nền tảng mà bạn đang nhắm mục tiêu. Bạn không thể sử dụng trình biên dịch có điều kiện (#if câu lệnh) để nhận sự khác biệt giữa các nền tảng
  • Có thể khó xác định xem API nào được hỗ trợ trên một kết hợp nền tảng nhất định. Dưới đây là một bảng mà có thể giúp với điều này: Portable Class Library API List

Đối với một số hướng dẫn về làm thế nào để tận dụng lợi thế của Portable Class Libraries, thấy như sau:

Mặc dù tôi là một phần của Thư viện Lớp Di động (là thành viên của nhóm PCL), các tệp được liên kết cũng là một cách hoàn toàn hợp lệ để chia sẻ mã và nếu bạn không 't chạy vào hoặc không nhớ những hạn chế, sau đó đi trước và sử dụng các tập tin nguồn liên kết. Tôi chủ yếu sử dụng thư viện lớp học di động, nhưng tôi vẫn sử dụng các tệp nguồn được liên kết khi PCL không phù hợp.

+2

Câu trả lời này có vẻ tuyệt vời đối với tôi. Điều duy nhất tôi muốn thêm là tuyến đường tập tin được liên kết cũng bổ sung thêm các vấn đề bảo trì yếu tố N. Khi tôi sử dụng để duy trì phiên bản tập tin liên kết của mvvmcross, việc thêm nền tảng mới là một viễn cảnh khó khăn, nhưng bây giờ tôi đã chuyển sang mã PCL, tôi rất vui khi xem xét thêm một vài nền tảng mới - thêm chúng không lớn hoặc khó chịu một nhiệm vụ. – Stuart

+3

Tôi nói dối ... Có một vài điều tôi muốn thêm - 1. rằng tuyến đường pcl khuyến khích thử nghiệm và làm cho thử nghiệm đáng kể dễ dàng hơn; 2. Điều đó làm cho tuyến đường pcl khuyến khích kiến ​​trúc tốt - nó khuyến khích việc sử dụng các giao diện và tiêm phụ thuộc, trong khi liên kết tệp khuyến khích liên kết tĩnh đến các lớp và các câu lệnh #if mà sau này khiến các bản dựng khác bị phá vỡ. – Stuart

+0

Chúng tôi đã xem xét việc chuyển đổi sang PCL nhưng tôi nghĩ đó thực sự là điều cần được suy nghĩ từ ngày 1. – iwayneo

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