Chỉ cần trải qua một phiên thử nghiệm nhỏ để thử xem sẽ tốn bao nhiêu công sức để mang thư viện lớp .NET của chúng ta, hoặc ít nhất một phần của nó vào Silverlight để chúng ta có thể tái sử dụng logic nghiệp vụ giữa hai thế giới. 'm tự hỏi nếu những người khác có kinh nghiệm với loại điều này.Tính khả thi của mã được chia sẻ giữa .NET và Silverlight?
Những điều tôi nhận thấy, ra khỏi đỉnh đầu của tôi:
- Rất nhiều thuộc tính thiếu (Có thể xem (false) ví dụ)
- Rất nhiều giao diện mất tích, hay hiện tại, nhưng rỗng (ICloneable là ẩn, ITypedList thiếu)
- khác biệt Reflection (nhu cầu có thể truy cập tất cả mọi thứ để được công khai)
- Một số khác biệt lớp cơ sở (không Component?)
Vì vậy, tôi tự hỏi, có thực sự khả thi đối với tôi thậm chí xem xét điều này như một khả năng?
Tôi nhận được mã ban đầu đang chạy, nhưng tôi phải bình luận rất nhiều chức năng cơ sở, chủ yếu là xung quanh danh sách xử lý vì chúng dựa trên ITypedList và một số lớp cơ sở. Rõ ràng tôi cần thay đổi thành ObservableCollection trong Silverlight, vì vậy cần phải thay đổi toàn bộ mã cơ sở để đối phó.
Lớp thử nghiệm kinh doanh thực tế mà tôi đã tạo là 99,5% giống như tôi đã tạo cho .NET. Chỉ một số thay đổi nhỏ có thể dễ dàng sử dụng được trong .NET, không giống như tôi đã làm trước khi xem Silverlight. Nói cách khác, có vẻ khả thi để chia sẻ logic nghiệp vụ, miễn là tôi có thể làm cho các lớp cơ sở tương thích.
Chỉ cần tôi rõ ràng, những gì tôi đang nói đến là về cơ bản tôi có hai tệp dự án, một cho .NET và một cho Silverlight, nhưng mã nguồn C# thực tế sẽ giống nhau, được chia sẻ giữa cả hai.
Vì vậy, có ai có kinh nghiệm với điều này không? Bất kỳ lời khuyên hay hướng dẫn nào?
Nó có đáng không? Nó chắc chắn đảm bảo nhiều hơn nhìn vào.
Ok, tốt, sau đó bạn chưa gặp phải bất kỳ vấn đề nào không thể khắc phục mà tôi giả định. Thật tốt khi nghe, sau đó tôi chắc chắn sẽ tiếp tục với dự án này. –
Lasse: Chắc chắn có một số thứ còn thiếu; Tôi không thể nhớ lại từ đầu của tôi, nhưng một số điều Reflection, log4net, và vân vân.Nhưng nó chắc chắn có thể vượt qua được; (mặc dù, trong VS2008 ít nhất, đôi khi có một số điều 'kỳ quặc', khi bạn sử dụng 'Thêm làm liên kết' để thêm một lớp hiện có từ dự án chính và thay đổi nó, bạn phải mở nó (thực sự mở nó) qua dự án Silverlight trước khi nó nhận ra các thay đổi). Tuy nhiên, không có vấn đề phá hủy linh hồn :) –
Tốt. Có vẻ như vấn đề lớn nhất là tôi phải triển khai lại cơ sở cho các lớp danh sách của mình, vì chúng tôi sử dụng danh sách rất nhiều thông qua logic nghiệp vụ của mình và chúng tôi có một số lớp danh sách đặc biệt biết rằng họ đang ở trong thế giới logic kinh doanh ", nhưng nhìn vào cách ObservableCollection được sử dụng, có vẻ như nó sẽ làm những gì chúng ta cần, chỉ cần thay đổi mã để đối phó với nó. Container IoC của chúng tôi đã làm việc trừ cấu hình app.config, nhưng chúng tôi sẽ không sử dụng nó ở đây. Chỉ cần tự hỏi nếu có ai khác đã tìm thấy bất kỳ bãi mìn mà tôi không thể nhìn thấy ngay lập tức. –