ฉันควรใช้กรอบการทำงานใดสำหรับ MVVM [ปิด]


233

ฉันกำลังพัฒนาแอปพลิเคชันด้วยโมเดล MVVM แต่ฉันมาถึงจุดที่ฉันต้องเลือกกรอบการทำงานที่จะใช้

ตัวเลือกที่เป็นไปได้คือ:

  • ชุดเครื่องมือ MVVM
  • มูลนิธิ MVVM
  • WPF Application Framework (WAF)
  • ไฟ MVVM
  • Caliburn
  • ของแน่นอน
  • ปริซึม
  • ReactiveUI

จากประสบการณ์ของคุณไหนดีกว่ากัน?


14
+1 - คำถามที่ดี แต่โปรดอธิบายว่า 'ดีกว่า' เฟรมเวิร์กที่แตกต่างกันให้ข้อดีที่แตกต่างกันดีที่สุดขึ้นอยู่กับความต้องการของคุณ หวังว่าจะได้คำตอบ :)
รัสเซล

มันจะดีมากที่คุณสามารถใช้กับ WPF และ Silverlight และมีช่วงการเรียนรู้น้อยที่สุด
Rangel

2
คุณอาจต้องการตรวจสอบ Caliburn ด้วย codeplex.com/caliburn
Kent Boogaart

ขออภัยเคนต์ ฉันจะลืมคาลิเบอร์ได้อย่างไร
Pete OHanlon

2
ปิดและเก่า แต่ ... ฉันทำโครงการแรกของฉันโดยใช้ Prism (คำตอบด้านล่าง) เนื่องจากฉันต้องการการสนับสนุนด้านส่วนประกอบ โครงการสุดท้ายของฉันฉันทำแบบดิบ - ไม่มีกรอบเลย สิ่งที่คุณต้องการคือคลาสคำสั่งและคุณสามารถทำ MVVM ได้โดยไม่ต้องมีกรอบ - นั่นคือน้ำหนักเบาเท่าที่คุณจะทำได้
dave

คำตอบ:


194

มันขึ้นอยู่กับสิ่งที่คุณพยายามที่จะบรรลุและโครงสร้างพื้นฐานที่คุณต้องการอยู่แล้วรวมถึงความง่ายที่คุณสามารถหาตัวอย่างที่ช่วยคุณได้ ฉันจะประกาศความสนใจที่นี่เพราะฉันมีส่วนร่วมอย่างแข็งขันในกรอบงาน MVVM อย่างน้อยหนึ่งรายการและฉันมีการป้อนข้อมูลให้ผู้อื่นผ่านกลุ่ม WPF Disciples ดังนั้นฉันจึงลำเอียงเล็กน้อย บอกว่าที่นี่ไป:

Microsofts MVVM Toolkit - นี่ยังอยู่ในขั้นตอนอัลฟาเป็นอย่างมาก เมื่อมันถูกปล่อยออกมามันใช้เวลาเล็กน้อยในการช่วยกู้จากสาวกเพราะสิ่งที่มันไม่ได้ทำ บอกว่า MS กำลังมองหาโครงร่างนี้ขึ้นมาเพื่อให้เป็นหนึ่งในการดู - มันยังไม่พร้อม

มูลนิธิ MVVM - เวอร์ชันกรอบของ ah Josh Smith Josh เป็นหนึ่งใน daddies ของ MVVM และเป็นผู้สนับสนุนและอาจารย์ของรูปแบบ ดังนั้นสิ่งที่คุณจะพบในกรอบอื่น ๆ นั้นมีลายนิ้วมือของจอชอยู่ทั่ว เฟรมเวิร์กนี้มีจุดประสงค์เพื่อให้ข้อมูลเบื้องต้นเกี่ยวกับ MVVM และจะไม่กล่าวถึงปัญหาที่ลึกลับยิ่งขึ้น เดิมทีนี้มีไว้สำหรับ WPF เท่านั้น แต่ผู้คนเช่น Laurent Bugnion และตัวฉันเองได้เพิ่มฟังก์ชันการทำงาน / โครงการซึ่งหมายความว่านี่จะเป็นกรอบการทำงานร่วมกันของ Silverlight เช่นกัน

WAF - ไม่มีประสบการณ์ดังนั้นฉันไม่สามารถแสดงความคิดเห็นได้ฉันกลัว

MVVM Light - Laurent Bugnion ใช้กับมันและเพิ่งอัปเดตเป็นรุ่น 2 นี่เป็นกรอบที่ดีมาก แต่ก็ไม่ได้มีวัตถุประสงค์เพื่อครอบคลุมแอพพลิเคชั่น MVVM ทุกแง่มุม จากพื้นหลังของ Laurent นั้นมีการสนับสนุน Silverlight และ Blendability ที่แข็งแกร่งมาก

อัปเดต Laurent เพิ่งแจ้งให้ฉันทราบว่ารุ่น. NET 3.5 และ. NET 4.0 เป็นคุณสมบัติที่ใช้งานร่วมกันได้ ไปที่ Laurent

Cinch - WPF ที่ยอดเยี่ยมของ Sacha Barber เท่านั้นเฟรมเวิร์ก MVVM สิ่งนี้ครอบคลุมมากกว่ากรอบที่ฉันได้พูดถึงข้างต้น มันเป็นกรอบที่ยอดเยี่ยมและใช้ประโยชน์จากแนวคิดที่ครอบคลุมในโครงการOnyx ที่ยอดเยี่ยมของ Bill Kempf Onyx มีจุดประสงค์เพื่อเสริมกรอบการทำงานของ MVVM และเพิ่มฟังก์ชันการทำงานที่คนทั่วไปทำได้ยากใน MVVM / WPF อีกครั้งเดิมทีตั้งใจจะเป็น WPF เท่านั้น Onyx มีความก้าวหน้าในการรวมความเข้ากันได้กับ SL - งานที่ฉันภูมิใจเป็นพิเศษที่ได้มีส่วนเกี่ยวข้อง

ปริซึม - อีกครั้งฉันไม่เคยใช้มัน แต่ฉันเคยได้ยินเรื่องดีๆมากมายเกี่ยวกับเรื่องนี้

Ocean - Karl Shifflett ผู้จัดการโครงการในทีม Cider เพิ่งเปิดตัวเฟรมเวิร์ก WPF MVVM ที่มีคุณลักษณะครบถ้วน อีกครั้งนี่เป็นกรอบที่ยอดเยี่ยมและมีจำนวนมากที่จะแนะนำ

บรรทัดล่างคือดาวน์โหลดเฟรมเวิร์กต่าง ๆ มาดูพวกมันและหาว่าอันไหนที่เหมาะกับวิธีที่คุณคิดและตามความต้องการของคุณ หากคุณคิดว่าคุณอาจต้องการสนับสนุน Silverlight จาก codebase เดียวกันดังนั้นเฟรมเวิร์ก WPF เท่านั้นที่ควรลดราคา


4
ฉันใช้สิ่งที่เราเขียนเพราะเรามีความต้องการอย่างผู้เชี่ยวชาญสำหรับ MVVM มันได้รับอิทธิพลอย่างมากจากงานที่ Josh ทำและฉันจะปล่อยมันเป็น Open Source ในอนาคตอันใกล้ มันเรียกว่า Goldlight
Pete OHanlon

นอกจากนั้นเฟรมเวิร์กเลเยอร์การเข้าถึงข้อมูลของคุณคืออะไร พวก .. LINQ, LLBLGen, EF, n ไฮเบอร์เนต?
Jirapong

ขึ้นอยู่กับโครงการและข้อกำหนด บางครั้งเราใช้ LINQ บางครั้ง NHibernate บางครั้ง Castle ActiveRecord และบางครั้ง eXpress Persistent Objects
Pete OHanlon

3
สวัสดี Pete เพียงต้องการแสดงความคิดเห็นว่า MVVM Light Toolkit ใช้งานได้กับ WPF 3.5 และ WPF 4 เช่นเดียวกับ Silverlight 3 และ Silverlight 4 ฉันระมัดระวังในการซิงค์คุณลักษณะต่าง ๆ ให้มากที่สุดเท่าที่จะทำได้ คุณพูดถูกเกี่ยวกับการผสมผสานนี่เป็นเรื่องสำคัญสำหรับฉัน :) ไชโย Laurent
LBugnion

1
ฉันผิดหวังที่ MVVM Toolkit ยังไม่ได้รับการอัปเดตให้ทำงานกับ Visual Studio 2010 อาจต้องการเพิ่มไปยังกระบวนการตัดสินใจ คนส่วนใหญ่ที่ฉันรู้จักใช้เทมเพลต MVVM ภายในปี 2010 กำลังใช้ MVVM Light และบางคนย้ายไปที่นั่นด้วยเหตุผลนี้เพียงอย่างเดียว
ScottCher

54

ฉันพบบทความนี้มีประโยชน์มากhttp://www.japf.fr/2009/10/a-quick-tour-of-existing-mvvm-frameworks/ดังนั้นฉันจึงนำมาไว้ที่นี่สำหรับผู้ใช้ที่กำลังจะมาถึง

ฉันอัปเดตส่วน Cinch และเพิ่มการสนับสนุน Silverlight ให้กับคุณสมบัติต่างๆ

ฉันขอโทษสำหรับเรื่องราวที่ยาวนาน

คุณสมบัติทั่วไป:

•คลาส ViewModelBase (สำหรับการใช้งานอินเทอร์เฟซ INotifyPropertyChanged)

RelayCommand เช่นคลาสสั่งลิงค์ UI ไปยังตัวจัดการของ ViewModel

•การทดสอบหน่วยมาพร้อมกับกรอบงาน

ของแน่นอน

•ผู้แต่ง: Sacha Barber

•การสนับสนุน Silverlight: ไม่ (Cinch เวอร์ชัน 2 รองรับ Silverlight)

•เอกสาร: ยอดเยี่ยมบทความ 6 บทความที่เผยแพร่บน CodeProject

•โฮสติ้ง: CodePlex

•สิทธิ์ใช้งาน: รหัสโครงการ Open License

•คุณสมบัติ:

  1. พฤติกรรมที่แนบมา

  2. การตรวจสอบโดยใช้ IDataErrorInfo

  3. รองรับ IEditableObject

  4. การสร้างกิจกรรมที่อ่อนแอและการสมัครสมาชิก

  5. ข้อความสื่อกลางโดยใช้เหตุการณ์ที่อ่อนแอ

  6. รองรับ IOC / DI (ใช้ Unity)

  7. บริการ: ตัวบันทึกเหตุการณ์กล่องข้อความเปิดกล่องโต้ตอบบันทึกป๊อปอัพ

  8. เกลียวช่วยเหลือ

  9. รองรับรายการเมนู

  10. มุมมองรุ่นใกล้

  11. ตัวสร้างโค้ด MVVM

ชุดเครื่องมือ MVVM Light

•ผู้แต่ง: Laurent Bugnion

•การสนับสนุน Silverlight: ใช่

•เอกสาร: บทความมากมายที่มีอยู่ในบล็อกของ Laurent + นักพัฒนาอื่น ๆ เช่นกัน

•โฮสติ้ง: CodePlex

ใบอนุญาต: ใบอนุญาต MIT

•คุณสมบัติ:

  1. ตัวติดตั้ง MSI

  2. VS โปรเจ็กต์และเท็มเพลตไอเท็ม

  3. ตัวอย่างโค้ด VS

  4. ระบบ Messenger สำหรับการสื่อสารระหว่างมุมมองโมเดล

  5. การจัดการเหตุการณ์เป็นคำสั่ง

ผู้ช่วยเหลือ MVVM

•ผู้แต่ง: Mark Smith

•การสนับสนุน Silverlight: ไม่

•เอกสารประกอบ: บางบทความในบล็อกของมาร์ค

•โฮสติ้ง: เว็บไซต์ส่วนตัว

•ใบอนุญาต: ไม่ได้กำหนดไว้

•คุณสมบัติ:

  1. พฤติกรรมที่แนบมา

  2. การสร้าง viewmodel โดยใช้ส่วนขยายมาร์กอัป

  3. การตรวจสอบตามคุณสมบัติ

  4. IOC / DI โดยใช้วิธี ServiceProvider

  5. มุมมอง

  6. รอเคอร์เซอร์ (ใช้ WaitCursor ใหม่ () {// รหัสของคุณที่นี่})

มูลนิธิ MVVM

•ผู้แต่ง: Josh Smith

•การสนับสนุน Silverlight: ไม่

•เอกสารประกอบ: บทความเกี่ยวกับการใช้ Messenger ในบล็อกของ Josh หรือ Marlon Grech

•โฮสติ้ง: CodePlex

•ใบอนุญาต: MS-PL

•คุณสมบัติ:

  1. ระบบ Messenger สำหรับการสื่อสารระหว่างมุมมองโมเดล

  2. การตรวจสอบเหตุการณ์ PropertyChanged

Caliburn

•ผู้แต่ง: Rob Eisenberg

•การสนับสนุน Silverlight: ใช่

•เอกสาร: มีเอกสารออนไลน์ที่สมบูรณ์

•โฮสติ้ง: CodePlex http://www.codeplex.com/caliburn

ใบอนุญาต: ใบอนุญาต MIT

•คุณสมบัติ:

  1. คำสั่งถูกสร้างขึ้นที่ด้านบนของการดำเนินการและแบ่งปันคุณสมบัติเดียวกันหลายประการรวมถึงพารามิเตอร์อินพุตหลายตัวกรองและการดำเนินการแบบอะซิงโครนัสอัตโนมัติ

  2. ผู้นำเสนอที่จัดการกับปัญหาวงจรชีวิต UI เช่นการจัดการการเปิดใช้งานการปิดใช้งานและซีแมนทิกส์การปิดระบบสำหรับองค์ประกอบ UI ต่างๆ

  3. แอปพลิเคชั่น Caliburn สามารถทดสอบได้อย่างสมบูรณ์

  4. โปรแกรมอรรถประโยชน์ต่าง ๆ เช่นตัวจัดการงานพื้นหลัง

  5. รองรับรูปแบบ UI ต่างๆ (ไม่ใช่ MVVM เท่านั้น)

  6. ภาชนะฉีดพึ่งพา

มีสีดำ

•ผู้แต่ง: William e Kempf

•การสนับสนุน Silverlight: ไม่

•เอกสารประกอบ: การแนะนำเบื้องต้นมีอยู่ใน CodePlex

•โฮสติ้ง: CodePlex

•ใบอนุญาต: ไม่ได้ระบุ

•คุณสมบัติ:

  1. รูปแบบ ServiceLocator

  2. การสร้าง ViewModel โดยใช้ส่วนขยายมาร์กอัปที่กำหนดเอง

  3. บริการที่เกี่ยวข้องกับ UI เช่น IDisplayMessage

แคลเซียม

•ผู้แต่ง: Daniel Vaughan

•การสนับสนุน Silverlight: ไม่

•เอกสารประกอบ: 2 บทความโดยละเอียดเกี่ยวกับ CodeProject (ตอนที่ 1 และตอนที่ 2)

•โฮสติ้ง: CodePlex

•ใบอนุญาต: ใช้คัดลอกแก้ไขและ / หรือแจกจ่ายและเก็บลิขสิทธิ์!

•คุณสมบัติ:

  1. ผู้จัดการโมดูลสำหรับการเปิดใช้งานหรือปิดการใช้งานโมดูลที่รันไทม์

  2. บริการส่งข้อความสำหรับการโต้ตอบกับผู้ใช้จากไคลเอนต์หรือเซิร์ฟเวอร์โดยใช้ API เดียวกัน

  3. Command Service เพื่อเชื่อมโยง WPF ICommands กับส่วนต่อประสานเนื้อหาที่จะเปิดใช้งานเฉพาะเมื่อมุมมองที่ใช้งานอยู่หรือ viewmodel ใช้อินเทอร์เฟซ

  4. อะแดปเตอร์ภูมิภาคสำหรับแถบเครื่องมือและเมนู

  5. การบันทึกไคลเอนต์เซิร์ฟเวอร์พร้อมที่จะทำงานนอกกรอบ

  6. รวมถึงโมดูลเช่นเว็บเบราว์เซอร์ตัวแก้ไขข้อความหน้าต่างผลลัพธ์และอื่น ๆ อีกมากมาย

  7. ส่วนต่อประสานแบบแท็บพร้อมตัวบ่งชี้ไฟล์สกปรก (นำมาใช้ใหม่ได้ระหว่างโมดูล)

nRoute

•ผู้แต่ง: ฤishiษี

•การสนับสนุน Silverlight: ใช่

•เอกสาร: บทความมากมายที่มีอยู่ในบล็อกของผู้เขียน (ดูหน้าแรกของโครงการ CodePlex สำหรับลิงก์)

•โฮสติ้ง: CodePlex

•ใบอนุญาต: MS-PL

•คุณสมบัติ:

  1. รองรับพฤติกรรมและทริกเกอร์ของโมเดล Blend3

  2. กรอบตัวระบุตำแหน่งทรัพยากร

  3. ดูบริการ: OpenFileDialog, ShowMessage ...

  4. ใช้แอตทริบิวต์เพื่อแมปมุมมองและ ViewModel ร่วมกัน

Nito MVVM

•ผู้แต่ง: Shammah

•การสนับสนุน Silverlight: ไม่

•เอกสาร: ไม่มี

•โฮสติ้ง: CodePlex

•ใบอนุญาต: ไม่ได้ระบุ

•คุณสมบัติ:

  1. การใช้งานที่เป็นมิตร MVVM ต่างๆของส่วนต่อประสาน ICommand

มหาสมุทร

•ผู้แต่ง: Karl Shifflet

•การสนับสนุน Silverlight: ไม่

•เอกสาร: บทความที่มีอยู่ในบล็อกของ Karl

•โฮสติ้ง: เว็บไซต์ส่วนตัว

•ใบอนุญาต: ไม่ได้ระบุ

•คุณสมบัติ:

  1. เขียนใน VB.Net

  2. การตรวจสอบตามคุณสมบัติ

  3. คลาสพื้นฐาน viewmodel: relaycommand, closeableviewmodel …

  4. ชั้นการเข้าถึงข้อมูลของเซิร์ฟเวอร์ SQL

กรอบ MVVM พื้นฐาน

•ผู้แต่ง: Lester Lobo

•การสนับสนุน Silverlight: ไม่

•เอกสาร: ตัวอย่างแอปพลิเคชันที่มีอยู่ในห้องสมุด

•โฮสติ้ง: CodePlex

•ใบอนุญาต: MS-PL

•คุณสมบัติ:

  1. การมอบหมายคำสั่ง \ Keybinding

  2. การส่งข้อความระหว่าง VM

  3. การจัดการเหตุการณ์เป็นคำสั่งที่มีพฤติกรรมที่แนบมา

  4. กล่องโต้ตอบการจัดการ (และอื่น ๆ ) เป็นบริการ

  5. ตัวอย่างโค้ด VS

GoodLight

•ผู้แต่ง: Peter O'Hanlon •การสนับสนุน Silverlight: ใช่

•เอกสาร: ตัวอย่างแอปพลิเคชันที่มีอยู่ในห้องสมุด

•โฮสติ้ง: CodePlex

•ใบอนุญาต: MS-PL

•คุณสมบัติ:

  1. การจัดการ“ พื้นที่ทำงาน” (ชุดเอกสารที่สามารถปิดได้)

  2. สนับสนุนผิว

  3. การส่งข้อความระหว่าง VM


โพสต์ยอดเยี่ยม แค่คิดว่าฉันจะเพิ่มว่า Cinch เวอร์ชัน 2 ทำหน้าที่สนับสนุน Silverlight
Kildareflare

44

ฉันพยายามอธิบาย Frameworks ที่ขาดหายไปในคำตอบที่ยอดเยี่ยมของ Pete:

MVVM Toolkit (Microsoft)เป็นไลบรารี่ที่มีน้ำหนักเบามากพร้อมเท็มเพลตโครงการ Visual Studio ที่ควรสนับสนุนผู้เริ่มต้นด้วยรูปแบบนี้ หาก Microsoft ได้รับผลตอบรับที่ดีสำหรับ Toolkit ของพวกเขาพวกเขาอาจใช้สิ่งนี้เป็นเทมเพลตโครงการ Visual Studio (อาจเป็น 2010) ใหม่

Prism (Microsoft p & p)เป็นเฟรมเวิร์กที่ให้การสนับสนุนมากกว่ารูปแบบ MVVM เป้าหมายหลักของโครงการนี้คือช่วยคุณสร้างแอพพลิเคชั่น WPF และ / หรือ Silverlightแบบแยกส่วน เมื่อคุณต้องการใช้รูปแบบ MVVM หรือคุณเป็นผู้เริ่มต้นใน. NET / WPF ฉันจะไม่แนะนำโครงการนี้ ดูเพิ่มเติม:การเชื่อมโยง

WPF Application Framework (WAF)เป็นเฟรมเวิร์กน้ำหนักเบาที่ช่วยให้คุณสร้างแอพ WPF ด้วย MVVM เป็นเพียง WPF และดังนั้นจึงไม่รองรับ Silverlight มันจะไปบิตทางมากที่สุดกว่ากรอบ MVVM อื่น ๆ ที่มีการเปิดตัวอีกตัวควบคุม พวกเขามีความรับผิดชอบต่อเวิร์กโฟลว์แอปพลิเคชันและพวกเขาเป็นสื่อกลางระหว่าง ViewModels ต่างๆ


19

Meh Mvvm ไม่ต้องการกรอบทั้งหมดเพื่อสนับสนุน IMO ถ้าคุณเข้าใจแนวคิดมันค่อนข้างตรงไปตรงมาที่จะเริ่มด้วย baseclass VM แบบสะอาดที่ใช้ INOTify แล้วไปจากตรงนั้น


4
มีเหตุผลที่นักพัฒนาจำนวนมากพัฒนา mvvm ไลบรารี่ หากสิ่งที่คุณพูดนั้นเป็นจริงทำไมนักพัฒนาซอฟต์แวร์เหล่านี้ถึงเสียเวลา ทำไมผู้ใช้เฟรมเวิร์กเหล่านี้จึงใช้เฟรมเวิร์ก mvvm ที่ชื่นชอบต่อไป จริง "Mvvm ไม่จำเป็นต้องใช้ทั้งเฟรมเวิร์กในการรองรับ IMO" แต่มันไม่มีประโยชน์ที่จะทำโดยไม่มีกรอบ MVVM
Syaiful Nizam Yahya

3
-1 IMO เขียนคลาส RelayCommand ของคุณเองสำหรับ ICommands คลาส Messenger สำหรับการสื่อสารระหว่าง VM และคอนเทนเนอร์ IoC ของคุณเองเพื่อพูดถึงเครื่องมือพื้นฐานที่สุดที่จำเป็นสำหรับแอปพลิเคชัน WPF ที่ใช้งานได้ดีเป็น PITA ที่สำคัญ คำตอบของคุณใช้ได้กับโปรแกรมที่ง่ายที่สุดเท่านั้น
Heliac


10

ผสมของคุณเอง!

ฉันใช้ EventAggregator จาก PRISM กับ ViewModelBase จากรากฐาน MVVM เป็นต้น ฉันยัง tweaked RelayCommand (DelegateCommand เรียกในบางแห่ง) เพื่อรับข้อมูลอื่น ๆ เช่นกันและอื่น ๆ

ฉันจะไม่แนะนำเพียงกรอบเดียวต่อ se


19
ฉันไม่เห็นด้วยอย่างเคารพปัญหาเกี่ยวกับวิธีการนี้จะเปิดเผยตัวเองเมื่อคุณได้รับผู้เข้าร่วมใหม่ - ค่าใช้จ่ายของการเข้าร่วมในโครงการจะสูงขึ้นมากเนื่องจากเอกสารภายในองค์กรโดยทั่วไปไม่ใช่ลำดับความสำคัญ
Florian Doyon

1
ฉันเห็นจุดเกี่ยวกับเอกสาร แต่อาจไม่จำเป็นต้องพัฒนาเอกสารภายในคลิกลิงค์ไปยังไซต์ภายนอกที่มีเอกสารสามารถฝังในโค้ดได้
Vasudevan Kannan

8

การเดิมพันของฉันจะอยู่ที่ Caliburn และ MVVMlight ดูเหมือนว่ากรอบ mvvm เหล่านี้จะสนับสนุน Silverlight ไม่มากนัก ฉันสามารถคาดการณ์ได้ว่าจะมีเฟรมเวิร์ก MVVM ให้เลือกมากกว่าเฟรมเวิร์ก IoC เนื่องจากยากต่อการตั้งค่าขอบเขตของฟีเจอร์กับเฟรมเวิร์ก mvvm ฉันเดาว่าวิธีที่ดีที่สุดในการค้นหาว่าอันไหนที่เหมาะสมกับโครงการของคุณมากที่สุดคือการแสดง / เปรียบเทียบคุณสมบัติของพวกเขา

ตรวจสอบ Mix10 ด้วย ฉันเรียนรู้อะไรมากมายจากการพูดคุย: การสร้างกรอบ mvvm ของคุณ


4
ฉันพบว่าการพูดคุยมีประโยชน์มาก นี่คือลิงก์โดยตรง: live.visitmix.com/MIX10/Sessions/EX15
anshul


4

ฉันใช้ปริซึมและชอบ หนึ่งในสิ่งที่ยิ่งใหญ่สำหรับฉันก็คือจะมีคนอื่นอยู่ข้างนอกที่สามารถช่วยฉันได้ถ้าต้องการและเป็นตัวอย่างที่ดี เมื่อคุณเริ่มใช้งานพื้นฐานมีส่วนขยายมากมายที่คุณต้องการสำหรับแอปของคุณและมันก็ง่ายขึ้นมากเมื่อคุณทำงานกับกรอบงานเดียวกันกับที่คนอื่น ๆ ทำ


2

โดยรวมแล้วฉัน 90% ผ่านแอปพลิเคชันของฉันและสิ่งที่ฉันได้ใช้กับ MVVM Toolkit คือฟังก์ชั่นจากโรงงานที่สร้างคำสั่งให้ฉันได้รับฟังก์ชั่นผู้แทนเพื่อเปิดใช้ใน Execute ฉันคิดว่าฉันสามารถเปลี่ยนไปใช้เฟรมเวิร์กอื่นหรือไม่มีกรอบในสองสามชั่วโมง


2

หนึ่งที่จะต้องพิจารณาก็คือMEFedMVVM ฉันเคยใช้กับสองโครงการและมันมีน้ำหนักเบาไม่ล่วงล้ำและสนับสนุน Silverlight และ WPF นอกจากนี้ยังสามารถรองรับข้อมูลเวลาออกแบบใน Blend สำหรับผู้ที่ใช้ผลิตภัณฑ์นั้น


1

หากคุณกำลังมองหา Extensibility (ความสามารถในการเขียนโปรแกรมเสริม) บนกรอบแอพพลิเคชั่น WPF / MVVM คุณอาจสนใจ Soapbox หลัก Disclaimer: ฉันเขียนมัน มันเปิดแหล่งที่มาดังนั้นแม้ว่าคุณจะไม่ได้ใช้มันอาจมีความคิดที่ดีสำหรับคุณ มันใช้ MEF สำหรับทั้ง Extensibility และ IoC


1

นอกจากนี้ยังมีnRoute

กรอบแอปพลิเคชั่นที่ดีจริงๆสำหรับ WPF / Silverlight ที่รองรับ MVVM

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.