2008-09-21 25 views
12

Tôi làm việc trên ứng dụng C# lớn (khoảng 450.000 dòng mã), chúng tôi liên tục gặp vấn đề với heap máy tính để bàn và rò rỉ xử lý GDI. WPF giải quyết những vấn đề này, nhưng tôi không biết cách tốt nhất để nâng cấp là gì (tôi hy vọng điều này sẽ mất nhiều thời gian). Ứng dụng này chỉ có một vài dạng nhưng chúng có thể chứa nhiều bộ điều khiển người dùng khác nhau được xác định theo chương trình.Cách dễ nhất để nâng cấp ứng dụng C# winforms lớn lên WPF

Đây là ứng dụng của công ty nội bộ nên chu kỳ phát hành của chúng tôi rất ngắn (thường là chu kỳ phát hành 3 tuần).

Có một số đường dẫn nâng cấp dần dần hay chúng ta phải thực hiện cú đánh trong một nỗ lực lớn?

+6

nếu bạn đang bị rò rỉ trong C#, bạn sẽ bị rò rỉ những thứ khác trong WPF.Sửa mã của bạn trước khi nghĩ một công cụ mới sẽ sửa chữa mọi vấn đề của bạn một cách kỳ diệu. – gbjbaanb

Trả lời

11

Bạn có thể bắt đầu bằng cách tạo một máy chủ WPF.

Sau đó, bạn có thể sử dụng điều khiển < WindowsFormHost/> để lưu trữ ứng dụng hiện tại của mình. Sau đó, tôi đề nghị tạo một thư viện các điều khiển mới của bạn trong WPF. Mỗi lần, bạn có thể tạo các điều khiển (Tôi khuyên bạn nên tạo các điều khiển tùy chỉnh, chứ không phải các điều khiển người dùng). Trong phong cách cho mỗi điều khiển, bạn có thể bắt đầu bằng cách sử dụng điều khiển < ElementHost/> để bao gồm kiểm soát các cửa sổ "cũ". Sau đó, bạn có thể dành thời gian của bạn để cấu trúc lại và tái tạo từng điều khiển như là WPF hoàn chỉnh.

Tôi nghĩ rằng nó vẫn sẽ mất một nỗ lực ban đầu để tạo trình bao bọc kiểm soát của bạn và thiết kế một máy chủ WPF cho ứng dụng. Tôi không chắc chắn về kích thước của ứng dụng và độ phức tạp của các điều khiển người dùng, vì vậy tôi không chắc chắn sẽ có bao nhiêu nỗ lực cho bạn. Tương đối nói, nó là ít nỗ lực đáng kể và nhanh hơn nhiều để giúp bạn ứng dụng và chạy trong WPF theo cách này.

tôi sẽ không chỉ làm điều đó và quên nó đi mặc dù, như bạn có thể chạy vào các vấn đề với các điều khiển đè nhau (hình thức Windows không chơi tốt với WPF, đặc biệt là với transparencies và hình ảnh khác)

Hãy cập nhật chúng tôi về trạng thái của dự án này hoặc cung cấp thêm thông tin kỹ thuật nếu bạn muốn có hướng dẫn cụ thể hơn. Cảm ơn :)

3

Bạn có sử dụng nhiều điều khiển Người dùng cho các phần không? WPF có thể lưu trữ các điều khiển winform, vì vậy bạn có thể tham gia đưa các phần vào biểu mẫu chính.

+0

Có, (Tôi đã chỉnh sửa điều khiển => điều khiển người dùng. – Chris

+0

Bạn có thể thêm điều khiển người dùng của mình vào biểu mẫu WPF. Sau đó dịch chúng khi cần thiết để WPF –

2

WPF cho phép bạn nhúng các cửa sổ tạo điều khiển người dùng vào ứng dụng WPF, điều này có thể giúp bạn thực hiện chuyển đổi theo các bước nhỏ hơn.

Hãy xem lớp WindowsFormsHost trong tài liệu WPF.

1

Có một tờ giấy trắng rất thú vị về di chuyển một ứng dụng Winform .NET 2.0 đối với WPF, xem Evolving toward a .NET 3.5 application

Giấy trừu tượng: Trong bài báo này, tôi sẽ phác thảo một số các quá trình suy nghĩ, quyết định và các vấn đề chúng tôi phải đối mặt khi phát triển ứng dụng Microsoft .NET từ 1.x/2.x đến 3.x. Tôi sẽ xem xét cách chúng tôi đã giúp khách hàng của chúng tôi áp dụng công nghệ mới, nhưng vẫn duy trì lịch phát hành có thể chấp nhận được cho doanh nghiệp.

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