2011-10-19 8 views
10

Tôi có một ứng dụng tốt được viết bằng Silverlight. Để cho phép hỗ trợ trình duyệt chéo lớn hơn, chúng tôi đang xem xét viết lại với giao diện người dùng HTML5.Cách hợp lý để sử dụng các mẫu mã hóa MVVM với HTML5

Điều gì sẽ là một cách hợp lý để di chuyển từ Silverlight bằng XAML và C# với mẫu mã MVVM vào giao diện người dùng HTML5.

Mặt khác, nếu đây không phải là ý tưởng hay và mẫu MVVM sẽ bị bỏ qua, vui lòng giải thích lý do.

+1

Tôi cũng muốn biết một khung công tác tương đương "Caliburn.Micro" cho HTML/Javascript. Tôi biết tất cả về Knockout, nhưng điều này dường như chủ yếu là xử lý các công việc bẩn của ràng buộc. Điều gì về tải quan điểm, chuyển hướng, xem phụ, vv Theo như tôi có thể nói, extjs có vẻ là khuôn khổ duy nhất đã cố gắng để giải quyết này. –

Trả lời

6

Knockout là thư viện javascript tuyệt vời giúp bạn viết MVVM phía máy khách. Bạn tạo các mô hình xem của bạn trong javascript và liên kết với chúng bằng cách sử dụng các mẫu html (với sự trợ giúp của việc tạo khuôn mẫu jquery). Các kiểu xem của bạn có thể sử dụng ajax để lấy dữ liệu.

Về cơ bản, nó giống như phát triển Silverlight - bạn có HTML thay vì XAML và javascript thay vì C#/VB.Net. Thậm chí bạn có thể sử dụng cùng một dịch vụ web ... điều này có thể hữu ích nếu bạn dự định cung cấp cả hai giao diện hoặc chuyển đổi sau này.

Sửa
tưởng mà tôi muốn nói thêm rằng IMHO MVVM không nên bị bỏ rơi vì nó thực sự làm một công việc tuyệt vời của tách mối quan tâm (tôi đoán khi thực hiện một cách chính xác) nhưng một chiến thắng lớn chắc chắn là nó có các nhà phát triển suy nghĩ về hoặc trong tư duy hoặc phân chia trách nhiệm trong một ứng dụng. Tôi đã sử dụng Knockout.js cho các dự án web và Caliburn.Micro cho Silverlight và thực sự rất thích phong cách phát triển đó.

1

Loại bỏ là mẫu MVVM được triển khai trong HTML/Javascript với dữ liệu và tất cả. http://knockoutjs.com/

Nếu những gì bạn muốn chỉ có thể thực hiện được thông qua thao tác DOM và bạn đã quen và thích mẫu MVVM, Knockout phải là lựa chọn tốt.

1

Vâng, mẫu MVVM cho HTML 5 được gọi là MVC. Dễ dàng thực hiện nhất với MVC3. Cung cấp một lớp trừu tượng liên quan đến mã JavaScript, hỗ trợ cho ViewModels (aka Views) và tách mối quan tâm giữa các khung nhìn, truy cập dữ liệu và logic nghiệp vụ.

Điều tốt nhất là xác thực và xử lý sự kiện giao diện người dùng được kết nối với bạn một cách đơn giản, cho phép bạn tự trừu tượng hóa những phức tạp của trình xử lý sự kiện JavaScript cho các điều khiển HTML khác nhau.

Tuy nhiên, nếu bạn muốn gắn HTML với HTML & JavaScript, tôi khuyên bạn nên tạo các lớp JavaScript của riêng mình (có JS là ngôn ngữ chức năng, nhưng bạn vẫn có thể tạo các lớp) đại diện cho lớp giao diện người dùng và xử lý sự kiện giao diện người dùng. Sau đó, tạo thư viện Ajax của riêng bạn để nhận dữ liệu tuần tự JSON qua lại từ các lớp UI đến cuối máy chủ. Cuối cùng, tạo các lớp logic nghiệp vụ của riêng bạn (cũng trong javascript) để kiểm soát các lớp UI và DataAccess (ajax) của bạn. Trong ngắn hạn .... rất nhiều công việc bẩn.

1

Ngoài ra còn có thư viện Số lượt xem theo mô hình thử nghiệm (MDV) từ Google. Thật không may, nó chỉ được dự định như là một giới thiệu mẫu thử nghiệm. Về mặt khái niệm, nó thực sự tuyệt vời, nhưng hãy chuẩn bị sẵn sàng để tự sửa lỗi.

http://code.google.com/p/mdv/

0

Ngoài ra còn có JSViews. Điều này không phải là slick như Knockout, nhưng nó nhanh hơn trong việc cập nhật DOM. Dự án có liên quan lỏng lẻo với jquery vì tác giả của nó nằm phía sau các mẫu truy vấn đã bị loại bỏ.