Tôi muốn biết cách tốt nhất để lập trình ba phiên bản khác nhau của ứng dụng C# ASP.NET 3.5 trong VS2008 Professional (bao gồm dự án triển khai web). Tôi có phiên bản Light, Pro và Ultimate (hoặc phiên bản) của ứng dụng của tôi. Hiện tại tôi đã đặt tất cả trong một giải pháp với ba phiên bản xây dựng trong trình quản lý cấu hình và tôi sử dụng chỉ thị tiền xử lý trên toàn bộ mã (có khoảng 20 cấu trúc như vậy trong một số mười nghìn dòng mã, vì vậy nó có thể được giám sát):Làm thế nào để lập trình ba phiên bản Light, Pro, Ultimate trong một giải pháp
#if light
//light code
#endif
#if pro
//pro code
#endif //etc...
Tôi đã đọc trong stackoverflow cho giờ và nghĩ rằng sẽ gặp phải ví dụ như thế nào Microsoft thực hiện điều này với các phiên bản Windows khác nhau của nó, nhưng không tìm thấy những gì tôi mong đợi. Một nơi nào đó có một cuộc thảo luận nặng về các chỉ thị tiền xử lý là điều ác.
Những gì tôi muốn với những # if-chỉ thị là:
- mã side-by-side của sự khác biệt, vì vậy tôi sẽ hiểu được mã cho phiên bản khác nhau sau sáu tháng
- và lợi ích đặc biệt KHÔNG cung cấp cho mã được biên dịch của các phiên bản khác cho khách hàng.
OK, câu hỏi dài, câu hỏi lặp lại: Cách tốt nhất để đi là gì?
Cảm ơn rất nhiều vì câu trả lời này. Tôi đã đọc rất nhiều về các khóa cấp phép và các ý kiến khác. Ý kiến hiện tại của tôi là cố gắng hết sức để phát triển các tính năng mới so với thời gian đầu tư vào cấp phép/obfuscation làm phức tạp tất cả và dễ bị phá hoại bởi tin tặc. Vì đây là một ứng dụng ASP.NET, được sử dụng trong các tập đoàn: - Tôi gửi phiên bản chính xác (Light, Pro ..) cho mỗi công ty - và tính phí theo năm - gần cuối giấy phép một lời nhắc xuất hiện (Tôi cũng gọi cho khách hàng) - nếu không có gia hạn được thực hiện, một timebomb tạm dừng thực hiện - về gia hạn tôi gửi một ứng dụng mới với timebomb hoãn lại – Henry99