タグ付けされた質問 「mvvm」

モデルビューViewModel(MVVM)は、Martin Fowlerによって導入されたプレゼンテーションモデルデザインパターンの特殊化としてMicrosoftから発案された、ソフトウェアエンジニアリングで使用されるアーキテクチャパターンです。

3
MVVMまたはMVC?WPFとASP.NETに同じクラスのセットを使用したい
私はデザインパターンの初心者です。新しい話題のMVVMを聞いているとき、MVCの学習を始めました。 古い在庫を再設計して、クライアント用に開発したアプリケーションに請求書を発行することで、これら両方の洞察を学びたいと思います。WindowsベースのWPFアプリケーションとWebベースのバージョンの両方を書きたいのですが。できれば同じクラスのセットを使用したいと思いますが、そうでない場合は、少なくとも少しの変更を加えてください。 私はいくつかの記事を読みましたが、そこで議論されている.NET 3.5&4のアーキテクチャと高レベルの概念に従っていません。実際のプロジェクトで本当に必要なものだけを設計することで、段階的に移行したいと考えています。 MVVMへの簡単な段階的な参照はありますか?MVVMはMVCのスーパーセットですか、サブセットですか?最新のパターンと、アプリケーションのWindowsバージョンとWebバージョンのどちらを選択する必要がありますか? ビューに接続する必要がほとんどない特定のクラスがあります。その場合、MVVMの方法で同じクラスを設計することは、追加の労力であることがわかります。
10 mvc  wpf  asp.net-mvc-3  mvvm 

1
GUI更新を管理するためのリアクティブプログラミングとMVVMパターン
リアクティブプログラミングとMVVMは、ドメインレイヤーをUIから分離する問題に対処できる2つのアプローチです。 MVVMは、UIコンポーネントにマップされたデータ構造であるビューモデルを定義することでこれを行います。UIはデータを表示し、ユーザーが発生したときにデータを更新する場合があります。 反応フレームワークは、データの一部が変更されたことをUIに通知するオブザーバブルのグラフを定義します リアクティブフレームワークは、主流のプラットフォーム(.netおよびjavaのRx、react.js)とより実験的な場所(haskellのFRP)の両方でマインドシェアを獲得しています。 私は主にangularでMVVMを使用しており、表現力に対するシンプルさの比率は非常に満足できるものだと思います。 リアクティブフレームワークは、mvvmが購入しない開発者に何を購入しますか? 本当に違いはありますか?たとえば、knockout.jsはmvvmフレームワークとしてアドバタイズされますが、そのインターフェースには反応的な感覚があります。 this.firstName = ko.observable("John"); this.lastName = ko.observable("Smith"); this.fullName = ko.computed(function() { return this.firstName() + " " + this.lastName(); }, this);
10 gui  mvvm  ui  reactive 

1
Delphi PascalにMVVMとMVCを実装するためのベストプラクティス
私はDelphiパスカルプログラマーで、最新のEmbarcadero delphi XEを使用しています。モデルビューコントローラーやモデルビュービューモデルなどのデザインパターンを利用したいと思います。 ただし、これをPascalで行うためのベストプラクティスについては、Webに多くはないようです。私が見つけることができるほとんどの例はC#にあり、一部の言語機能はPascalに存在しません。つまり、これらの機能を実装する方法を見つける必要があるかもしれません。 この記事のコードをここで適応させようとしています 私が直面している問題をリストします null許容型 PascalにはC#のようにnull許容型がないため、独自に作成しました。 TNullable<T> = record strict private fHasValue : boolean; fValue : T; function GetValue:T; procedure SetValue(newValue : T); public property HasValue : boolean read fHasValue; property Value : T read GetValue write SetValue; procedure SetToNull; end; 実装セクション function TNullable<T>.GetValue:T; begin if fHasValue then …

3
Entity Frameworkデータベースコンテキスト(モデル)をMVVM WPFのViewModelに接続する最良の方法は何ですか?
上記の質問のように:Entity Frameworkデータベースモデル(コンテキスト)をMVVM(WPF)のviewModelに接続する最良の方法は何ですか? 私はWPFでMVVMパターンを学習しています。多くの例は、viewModelにモデルを実装する方法を示していますが、その例のモデルは単なる単純なクラスであり、エンティティフレームワークモデル(ベースファーストアプローチ)と一緒にMVVMを使用したいと思います。モデルをviewModelにワイヤリングする最良の方法は何ですか。 回答ありがとうございます。 //ctor of ViewModel public ViewModel() { db = new PackageShipmentDBEntities(); // Entity Framework generated class ListaZBazy = new ObservableCollection<Pack>(db.Packs.Where(w => w.IsSent == false)); } これは私のViewModelの通常の俳優です。もっと良い方法があると思います。リポジトリパターンについて読んでいましたが、これをWPF MVVMに適応できるかどうかわかりません

1
基幹業務アプリケーションにおけるMVVMの価値(および現在の開発手法の現状)
2年経った今でも、実用的なソフトウェアを作成する実用的な方法としてMVVMに取り組んでいます。素晴らしい場合もあります。私は、MVVMの概念がなければナイトメアであった小さな組み立てラインを制御するマルチスレッドアプリケーションを実行しました。物理的な組み立てラインからの抽象化は、ほとんど簡単なことではありませんでした。 ただし、私のキャリアのほとんどは、ビジネスアプリケーションの内部ラインを中心に展開します-ビジネスの運用を形式化および最適化します。このようなアプリには、一般にCRUDと複合操作を中心に展開するビジネスティアーがあります。LOBでは、私のビューモデルはビジネスクラスメソッドの1行のラッパー関数の非常に単純なコレクションになり、最終的にはメッセージボックスの表示やウィンドウのオープンなどの最も単純なタスクが複雑になるだけです。何十年も前から存在しているWindow.ShowDialogの呼び出しについて、「依存性注入」と「メッセージングプロバイダー」の長い説明を読むと、奇妙に感じる人はいますか?winformsで非常に単純なタスクのアドバイスを求めるスタックオーバーフローに関する他の質問はいくつありますか? 誤解しないでください-MVVMがあり、シュリンクラップされて販売されているソフトウェアパッケージの水平開発を行っている大規模なチームにとって、これは非常に貴重です。ビューモデルのユニットテストでは、RTMのバグを回避することで数百万ドルを節約でき、専用のUI開発者が豊かなエクスペリエンスを提供できます。しかし、再導入のコストが最小限で、ビジネスで支払うすべてがシンプルなソフトウェアである場合、ビジネスロジックがすでにユニットテストされているのに、なぜ単純な「ラッパー」VMのユニットテストに時間を費やす必要があるのでしょうか。キュートなアニメーションと配色にビジネスが費やす時間はどれくらいですか?後輩開発者がやるべきことはありますか(以前は「Save_Click」を見ていた保存機能のバグを追跡し、 確かに、私はWPFのデータバインディングが本当に好きです。これを利用するために、データコンテキストをウィンドウ自体に設定します。ウィンドウは、ビジネスクラスやその他の監視可能なプロパティにアクセスできます。そうすることで、ほぼすべてのMVVMの「ルール」を破ります。しかし、少なくとも、読みやすいシンプルなイベントドリブンコードがあり、新しいデータバインディングと検証を利用できます。問題はデザイナーにあります-私はあまり使いませんが、2012年に統合されるようになったことを願っています-デザイナーは、ウィンドウとその基本クラスが持つ数百のプロパティを表示します。 関連性のある人のために、リソース、本、またはこれを飲み込みやすくする視点の変更にさえ私を向けることができます。MVVMをもう一度試してみますが、前回、依存関係の注入について心配していて、VMからのメッセージボックスを表示するだけでかなり愚かだったので、単体テストの意図はありませんでした。単体テストを行ったとしても、恐ろしい「密結合」アプリケーションのコンパイル時エラーとランタイムテストを交換することで、本当に品質が向上しますか? 1つの答えは、winformsにとどまることです。しかし、WebFormsの最後のサポーターの1人として(私はWeb開発の傾向について同じ批評を多く持っています)、Microsoft認定トラックにWebFormsが残っていないことに気付いたときのように、少し恐竜のように感じました。私が気に入らなくても、前進することが唯一の選択肢です。
9 wpf  mvvm 

2
どうすれば「知る」ことができますか?
私の会社は私を助けてもらうために求人情報を投稿しました。今日採用担当者から電話があり、彼が言い続けたのは「MVC this Entity Framework that ...」だけでした-プロジェクトがWinFormsとASP.NET WebFormsでDataSetsとLinq2Sqlを使用すると言ったとき、彼はショックを受けました。 それから私は自動化されたウェブサイトのテストのためのオプションを探していて、ここでこれに出くわしました:そして私は興奮し始めました。 「知っている」ほとんどの人は、プレゼンテーションレイヤーを使用してASP.NETを非常に薄くしているため、NUnitAspのようなツールは役に立ちません。 この人は知っている、そして彼の友人は明らかに知っている。知らないうちにいると不安になり、少し悲しくなります。 この1年で時代に対応するための取り組みの中で、Linq2SqlとUnityコンテナーの大きなメリットを実感しました。どちらも私にとっては良いものでした-何年にもわたって私には明らかだったギャップを埋めることです。 その後、WinForms GUIのModel-View-Preseneterに移動しましたが、同じ理由で再びとても満足していました-長い間、私はシッククライアントとWebを分離できるように物事を分離する方法を求めていましたクライアントは共通のコードベースで共通のロジックを共有します。 しかし、私は次のことに苦労しています。そして、私は無数の人々が間違っていることはないことを知っています、そして私は大衆より賢くありませんが、私は見るために助けが必要です: WebFormsの進化としてのMVC WinFormsの進化としてのWPF Linq2Sqlの進化としてのエンティティフレームワーク(そして、さらに言えば 、データセットの非推奨) (これはすべて、これまでのところ、テストファーヴェルニュゲンを入手できなかったことに起因していると思います) したがって、私は自分自身に尋ねてきました。 WebアプリケーションでMVCを使用すると何が得られますか?追加のソースコードアーティファクトと新しいDSLを習得することを知っています。ほかに何か? MVVMパターンなしでWPFオブジェクトを使用するとどうなりますか?どこか他の場所に就職するチャンスを傷つけませんか? それに関して、WinFormsは本当に壊れているのですか?それは私ですか、それとも、8ギガのRAMを搭載したデュアルコア2.8 GHZマシンでVisual Studioに顕著な視覚的遅れがありますか?私はきびきびと好きです。エンドユーザーにはいつでもスッキリと体験して欲しい。 データセットが「古い方法」である理由 それらは、私が解決しなければならない多くの中小規模の問題に対して、迅速かつ効率的で簡潔に見えます(ただし、Silverlightにさえありません)。 プレートには複雑な山がたくさんあり、それを広げても消えないように感じます。本質的な量の複雑さは正面から向き合う必要があり、おそらくソフトウェアエンジニアリングは電気工学や機械工学、または脳外科手術のようになるはずです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.