Tôi cũng đang phát triển nền tảng chéo bằng cách sử dụng mono và giống như bạn và nhiều người khác phải đối mặt với vấn đề phải làm gì đối với giao diện người dùng và tích hợp phần cứng cơ bản khác.
Tôi quyết định rằng tôi không muốn ở lòng thương xót của một khuôn khổ của bên thứ ba khác (mono là đủ) và nghiên cứu một giải pháp mà tôi có thể xây dựng và duy trì bản thân mình. Mẫu MVVM mới cùng với Expression Blend thực sự rất tuyệt nhưng bạn sẽ sớm thấy mình bị mắc kẹt khi nói đến phát triển nền tảng chéo. Các mẫu MVC an MVP cũng không phù hợp với những gì tôi cần. Cuối cùng giải quyết trên mẫu PM và mở rộng nó thành PMH trong đó H là phần cứng. Để đạt được những gì tôi cần, tôi phải trừu tượng các widget cơ bản (các nút, bảng, hộp văn bản) thành một lớp nền tảng cơ bản cho từng loại thiết bị. Lớp nền tảng của tôi đại diện cho khoảng 1% cơ sở mã của tôi và cho phép tôi ứng dụng cho từng thiết bị mà tôi nhắm mục tiêu.
Đối với giải pháp WP7 của tôi, tôi hầu như không dùng bất kỳ HTML nào chỉ khoảng 25 dòng, đủ để khởi tạo ứng dụng và trang chính. Phần còn lại của giao diện người dùng được đặt cùng nhau theo chương trình giống như tôi sẽ làm trong WinForms. Trên WP7 tôi vẫn sử dụng điều khiển Pivot vì nó thực sự khá hấp dẫn và đang tạo mô hình một điều khiển tương tự để sử dụng trên Android/iPhone. Trong khi nó sẽ không 100% giống nhau, nó sẽ rất giống nhau và vẫn sử dụng cùng một công cụ điều hướng trong mã lõi của tôi.
Tôi chưa hoàn thành với sự phát triển của mình nhưng cho đến nay tôi rất hài lòng với sự tiến bộ của mình. Tôi đã phát triển giao diện người dùng cho ứng dụng Windows trong khoảng 20 năm và tôi không bao giờ sử dụng các công cụ xây dựng giao diện như tôi thấy họ không bao giờ cho tôi những gì tôi muốn và thực sự lãng phí thời gian của tôi (Blend là khá mát mẻ) và cũng tạo ra một đoạn mã khổng lồ đặc biệt là trong Blend.
Nguồn
2012-02-15 01:39:04