2012-01-08 26 views
6

Tôi có một số giải pháp Visual Studio có chung một dự án chung.Mã được chia sẻ lại qua nhiều giải pháp

Ví dụ:

Solution of the common project 
    - Common project 

Solution A 
    - Common project 
    - Custom project A 

Solution B 
    - Common project 
    - Custom project B 

And so on... 

Mỗi giải pháp có kho SVN riêng của mình cho các nhà phát triển để có thể chỉ làm việc trên một giải pháp cụ thể.

Sẽ có khoảng 50-60 giải pháp khác nhau và tôi cần để có thể tạo riêng chúng.

Ví dụ: khi tôi đổi tên một phương thức trong dự án chung được sử dụng trong các dự án khác, có cách nào áp dụng các thay đổi cho mọi giải pháp không?

Giống như giải pháp này được đề xuất ở đây (Is there a refactoring tool that works across solutions files?), tôi có thể tạo một giải pháp tổng thể chứa tất cả các dự án và refactor từ đó, nhưng tôi sẽ phải kiểm tra và cập nhật mọi kho lưu trữ để có thể làm điều này.

Tôi có nên thay đổi cấu trúc của kho lưu trữ của mình không?

Có cách nào tốt hơn để thực hiện việc này hoặc tránh sự cố này không?

+0

Bạn đang sử dụng svn: external để bao gồm dự án chung trong các dự án tùy chỉnh? –

+0

Không, tôi không biết. Nhà phát triển phải kiểm tra dự án theo cách thủ công để tham chiếu không bị hỏng. Tôi sẽ xem xét svn: external. – Jason

Trả lời

3

Không có cách nào trong Visual Studio áp dụng một phép tái cấu trúc cụ thể cho các dự án hiện không mở. Việc tái cấu trúc sẽ chỉ được áp dụng cho các dự án mở trong giải pháp hiện tại.

Để tạo điều kiện tái cấu trúc trên một số lượng lớn các giải pháp, cách tiếp cận tốt nhất là tạo một giải pháp tổng thể bao gồm tất cả các dự án. Điều này có thể hơi khó hiểu và chậm sử dụng cho các mục đích chung. Nhưng đối với quy trình tái cấu trúc quy mô lớn, nó có thể tiết kiệm rất nhiều mục.

Tôi không khá chắc chắn tôi hiểu những gì bạn có ý nghĩa bởi

tôi sẽ phải kiểm và cập nhật tất cả các kho lưu trữ để có thể làm điều này.

Bất kỳ việc tái cấu trúc nào chạm vào tất cả các dự án của bạn cuối cùng sẽ buộc bạn cập nhật tất cả chúng. Vì vậy, nó sẽ có vẻ như bạn cần phải làm điều này anyways. Tôi cảm thấy như tôi đang thiếu một cái gì đó ở đây.

+0

Tôi sẽ kiểm tra mọi dự án từ mỗi kho lưu trữ riêng biệt sử dụng dự án được chia sẻ để có thể sử dụng giải pháp chính. Điều không phải là mọi nhà phát triển nên có tất cả các dự án trên máy trạm của mình. – Jason

+0

@ Jason tôi vẫn chưa hiểu. Nếu việc tái cấu trúc của bạn thực sự chạm vào mọi dự án thì cuối cùng bạn không phải có mọi dự án trên máy của mình để không phá vỡ công trình đó? – JaredPar

+0

Dự án chung là ứng dụng cơ sở được tất cả khách hàng của chúng tôi sử dụng. Khi một khách hàng muốn tùy chỉnh hoặc thêm các tính năng vào hệ thống của chúng tôi, chúng tôi tạo ra một giải pháp riêng biệt phụ thuộc vào ứng dụng cơ bản. Không phải mọi nhà phát triển đều phải làm việc trên mọi giải pháp để họ sẽ phải lấy toàn bộ codebase từ các kho lưu trữ để có thể cấu trúc lại từ một giải pháp chủ. Xin lỗi nếu nó không phải là rất rõ ràng. Liệu nó có ý nghĩa hơn? – Jason

2

Chúng tôi có một kịch bản tương tự như bạn và chúng tôi sử dụng một cách tiếp cận đa hướng để giải quyết nó:

1) thay đổi khách hàng cụ thể được phân lập từ các ứng dụng lõi thông qua việc sử dụng các giao diện, phương pháp ghi đè, hoặc mới các phương thức (khi một phương thức hiện có không đủ).

Điều này đảm bảo rằng khung ứng dụng cốt lõi tương thích ngược với các giải pháp hiện có.

2) Trong trường hợp hiếm hoi khi thay đổi phải được áp dụng cho tất cả các giải pháp, chúng tôi có một giải pháp chính mà chúng tôi có thể sử dụng để cập nhật tất cả các dự án.

3) Tích hợp liên tục: trên mỗi lần đăng nhập, mọi giải pháp được tự động tạo và thông báo thành công hoặc thất bại được phân phối cho tất cả các nhà phát triển để các bên chịu trách nhiệm có thể sửa bất kỳ thay đổi nào.

Do trách nhiệm liên quan (mọi người biết ai đã phá vỡ bản dựng), có một số lượng tốt (tích cực) áp lực đối với các nhà phát triển để đảm bảo họ không phải là người gây ra vấn đề.

Chúng tôi sử dụng CruiseControl.Net với kho lưu trữ lật đổ, nhưng tôi chắc chắn có rất nhiều giải pháp khác ngoài đó có thể hoạt động với kho lưu trữ của bạn.

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