2012-09-15 35 views
11

Tôi đã bắt đầu tìm hiểu về Windows 8 Store Apps.Có phải MVVM đã chết trong Windows 8 Store Apps?

Tôi nhớ lại từ lập trình Silverlight và WPF trước đó rằng mọi người đã thích nghi với khái niệm MVVM và bây giờ tôi không chắc liệu tôi có nên sử dụng những gì tôi đã học được sau đó hay không.

tôi đã thêm một tham chiếu đến GalaSoft.MvvmLight và tạo ra một ViewModel và thêm nó vào XAML của tôi như được đề xuất bởi:

DataContext="{Binding Source={StaticResource Locator}, Path=Welcome}" 

Dường như Microsoft bao gồm một số loại thực ModelView trong LayoutAwarePage:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) 
{ 
    // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"] 
    // DefaultViewModel["WelcomeTiles"] = WelcomeTiles; 
} 

có thể truy cập được nếu đã đặt đoạn mã dữ liệu sau.

<DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" /> 

Vì vậy, bây giờ tôi không chắc chắn nếu tôi nên tạo ModelViews như tôi nhớ chúng, bằng cách sử dụng MVVMLight hoặc chỉ cần thêm dữ liệu trong file code-behind đến DefaultViewModel.

Trải nghiệm của mọi người với cả hai? Tôi vừa mới bắt đầu và mục tiêu tiếp theo của tôi là thêm trình xử lý cho khi một mục được nhấp vào trong GridView - đường dẫn nào ở trên sẽ cho phép thực hiện điều đó một cách dễ dàng?

Trả lời

15

Không, MVVM sẽ không bao giờ chết!

Model-View-ViewModel là mẫu thiết kế, do đó, nó không phụ thuộc vào khung hoặc triển khai cụ thể. Tuy nhiên, nó là một mẫu thiết kế giao diện người dùng thuận tiện nhất để sử dụng với các khung công tác UI hỗ trợ ràng buộc dữ liệu.

Ứng dụng Windows 8 Metro bao gồm XAML và khung công tác ràng buộc giống như Silverlight và WPF. Vì lý do này, MVVM là lựa chọn tuyệt vời để quản lý mã của bạn.

Mã bạn đã phát hiện trong LayoutAwarePage được mô tả trong this blog post. Đó là một nỗ lực để làm cho Windows 8 Metro phát triển ứng dụng dễ dàng hơn bằng cách cung cấp các triển khai khác nhau. Trang này bao gồm DefaultViewModel, là từ điển có thể quan sát được.

Cá nhân, tôi sẽ không sử dụng nó!

+1

tôi đã được tìm kiếm abit nhiều hơn vào nó. Ngay bây giờ tôi, khi tạo một trang mới, cũng tạo ra một ViewModel và databind chống lại nó. Nhưng đối với prof của khái niệm và thực hiện một cuộc biểu tình nhanh chóng, tôi đã tìm thấy nó rất dễ dàng chỉ cần nhấp vào Visual Studio Template và sử dụng defaultViewModel. THanks cho ý kiến ​​của bạn. –

3

MVVM không bị chết trong các ứng dụng Windows 8 Metro.

Chúng tôi không sử dụng MvvmLight trong ứng dụng của chúng tôi, nhưng các thành phần cơ bản bạn cần, như ràng buộc với thuộc tính ViewModel, sử dụng ICommands trong ViewModel và INotifyPropertyChanged đều có sẵn với những thay đổi rất nhỏ (nếu có).

Gần đây, Microsoft đã xuất bản nice sample. Nó không nói MVVM một cách rõ ràng, nhưng nó có những gì bạn cần để bắt đầu. Và tất nhiên là article của Josh Smith vẫn hữu ích.

2

Tôi khuyên bạn nên http://stylemvvm.codeplex.com, Nó được viết từ đầu để hỗ trợ các dự án Metro (C#, C++/CX, HTML/JS). Nó bao gồm IOC đầy đủ, việc triển khai cho ICommand & Hành vi chỉ huy được đính kèm, Dịch vụ cho Gạch, huy hiệu, Bánh mì nướng và Charms. Nó cũng bao gồm một lớp hòa giải tốt đẹp mà là điều phối viên nhận thức. Cộng với một số mẫu studio trực quan để giúp bạn bắt đầu.

Lưu ý: Tôi có thể thiên vị vì tôi đã viết nó :)

+1

Tôi sẽ cung cấp cho bạn một upvote cho bây giờ và kiểm tra xem nó ra sau :) –

4

Nope MVVM là chưa chết và vẫn còn khá sống !!!

Độ phân giải ColinE của MVVM tiếp tục nó khá tốt. Thực tế MVVM về cơ bản là một mẫu thiết kế, và không phụ thuộc vào một khuôn khổ cụ thể.

Sử dụng MVVM không phải là giáo điều ..., mặc dù hầu hết những người làm việc rất nhiều với lập trình ứng dụng XAML [WPF, Silverlight, WP 7 và WinRT ...] sẽ đồng ý rằng MVVM thực sự tạo điều kiện thuận lợi , giữa sự phát triển của GUI và logic cuối.

Cá nhân tôi đã sử dụng gói MVVMLight của Laurent Bugnion từ Nuget kết hợp với WinRT, mặc dù bạn được tự do sử dụng bất kỳ gói MVVM hoặc tùy chọn nào bạn cảm thấy thoải mái.

Nếu bạn cần refs mẫu hơn nữa, tôi sẽ mời các bạn có một cái nhìn tại ghi sau một webinar vào 'MVVM trong Windows 8 Store' bởi Gill CLEEREN

http://www.silverlightshow.net/video/MVVM-in-Win8-Webinar.aspx

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