forum.ge
reklama
FORUM.GE წესები  · დახმარება  · ძებნა  · წევრები  · კალენდარი  · ჩატი
  გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

> MVVM Design Pattern
lester
Peace, Weed & Snowboarding


******
ჯგუფი: Members
წერილები: 5797
წევრი No.: 13859
რეგისტრ.: 23-October 05

  გამოგზავნილია: 2 Sep 2011, 14:34  #27179658      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · msn
გამარჯობათ პროგრამისტებო biggrin.gif ვერაფრით ჩავწვდი ამ პატერნის აზრს ვინმეს შეუძლია ნორმალურად ახსნას? დარწმუნებული ვარ ბევრს გამოადგება


--------------------
Go Power
Dato0011
Super Crazy Member +


*******
ჯგუფი: Members
წერილები: 10961
წევრი No.: 12471
რეგისტრ.: 30-August 05

გამოგზავნილია: 2 Sep 2011, 17:34  #27182650      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
lester
QUOTE
გამარჯობათ პროგრამისტებო  ვერაფრით ჩავწვდი ამ პატერნის აზრს ვინმეს შეუძლია ნორმალურად ახსნას? დარწმუნებული ვარ ბევრს გამოადგება

სანამ არ გესმის კონკრეტული პატერნა რა პრობლემას ჭრის, სანამ შენ თვითონ არ წააწყდები ზემოთ აღნიშნულ პრობლემას მანამდე ვერც ჩაწვდები no.gif
მოკლედ რომ ვთქვათ
1) reusability, შეგიძლია 1 მოდელ ვიუ გამოიყენო ნ რაოდენობის ვიუსთან.
2) გამორიცხავს ეგრედწოდებულ SmartUI ანტიპატერნას (როცა ბიზნეს ლოგიკა არის გრაფიკული ინტერფეისის კოდში შერეული).
3) ეს პირველი უნდა დამეწერა. კარგად დაწერილი მვვმ კოდი სრულად ტესტირებადია.
4) გრძელ ვადიან პერსპექტივაში მაგრად გიმარტივებს საქმეს

This post has been edited by Dato0011 on 2 Sep 2011, 17:34
Snowman
|͇̿V͇̿I͇̿P͇̿|


*****
ჯგუფი: Members
წერილები: 4075
წევრი No.: 11866
რეგისტრ.: 29-July 05

გამოგზავნილია: 2 Sep 2011, 22:31  #27187026      · პროფილი · პირადი მიმოწერა · ჩატი
Dato0011
ხო რა დაახლოებით ეგ არის რა

ტესტირებაზე განვავრცობდი ონავ რა ანუ,
როდესაც საუბარია TDD ს სქემით აწყობაზე, მანდ შეუცვლელია იმიტომ რომ შეგიძლია მთელი შენი ლოგიკა გატესტო კონკრეტულლი UI -ს გარეშე.
კიდევ საინტერესოა ამის ანუ MVVM-ში IoC-ების მუშაობის ინტეგრირება და ნუ ოდნავ თუ დავკონკრეტდებით ViewModel finder ები. ნუ ეს უკვე იმპლემენტაციის დეტალებია. მაგრამ, lester ჩემი რჩვეა იქნება ჯერ თუ არ გაგირჩევია MVC გაარჩიო კარგად იმიტომ რომ ბევრ რარაცას გაგიადვილებს ამის გაგებისას და შენ ალბათ ცომანდები ბაინდინგები და დეპენდენსი ინჯექშენები გაბნევს ყველაზე მეტად ტაკშტო მოკლედ აგიხსენით მგონი რა ხილიც არის ეგ ჩვენი MVVM. wink.gif


--------------------
We loved with a love that was more than love.
------------------------------------------------------
Keep on the sunny side of the life.
Dato0011
Super Crazy Member +


*******
ჯგუფი: Members
წერილები: 10961
წევრი No.: 12471
რეგისტრ.: 30-August 05

გამოგზავნილია: 3 Sep 2011, 00:04  #27189114      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Snowman
QUOTE
TDD ს სქემით აწყობაზე

QUOTE
MVVM-ში IoC-ების მუშაობის ინტეგრირება

QUOTE
ViewModel finder ები

QUOTE
MVC

QUOTE
ცომანდები

QUOTE
ბაინდინგები

QUOTE
დეპენდენსი ინჯექშენები

QUOTE
გაბნევს

biggrin.gif 2kiss.gif
Snowman
|͇̿V͇̿I͇̿P͇̿|


*****
ჯგუფი: Members
წერილები: 4075
წევრი No.: 11866
რეგისტრ.: 29-July 05

გამოგზავნილია: 3 Sep 2011, 00:09  #27189222      · პროფილი · პირადი მიმოწერა · ჩატი
Dato0011
რაო ჟოუ ასე გაგახარე? smile.gif
Gode
ასტეროიდი ბ612


******
ჯგუფი: Members
წერილები: 8313
წევრი No.: 1340
რეგისტრ.: 19-October 02

გამოგზავნილია: 8 Sep 2011, 01:27  #27272518      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · ვებგვერდი
lester

მეც დავიბენი პირველად რო გარჩევა დავიწყე. მაგარი მარტივი რამეა, მარა რატომღაც ყველგან ისეა ახსნილი, გეგონება რაღაც იმის დედა ვატირე პატერნია. MVC/MVP თუ იცი ვებიდან, ადვილად აუღებ ალღოს, თუ არ იცი, ჯერ მაგეებს გადახედე. ზოგადად ეგ პატერნი Silverlight-ზეა მორგებული და Silverlight-ისთვისაა გაკეთებული, შესაბამისად Silverlight-ის ანა-ბანაც უნდა იცოდე ცოტა და უკეთესად დაინახავ მაგის გამოყენების სფეროს.

http://channel9.msdn.com/Events/MIX/MIX10/EX14 ამ ვიდეოსაც გადახედე, ერთ-ერთი იშვიათი გამონაკლისია, სადაც ნორმალურად ხსნიან biggrin.gif


--------------------
http://www.gode.ge შინაარსიანი ბლოგი
Snowman
|͇̿V͇̿I͇̿P͇̿|


*****
ჯგუფი: Members
წერილები: 4075
წევრი No.: 11866
რეგისტრ.: 29-July 05

გამოგზავნილია: 8 Sep 2011, 20:58  #27283942      · პროფილი · პირადი მიმოწერა · ჩატი
Gode
ჰოოო ეგ მართლა კარგი ვიდეოა. ისე MIX 2011 ზე რარაც უკეთესი გამოსვლები იყო აშკარად. არ ვიცი რისი ბრალია მარა ბევრად მობილიზებული და ორგანიზებული ჩანდა smile.gif
ნუ Silverlight და WPF შიც რაორივეგან მიდის ეგ პატერნა და ზუსტად ტქვი რა იმენა ამისტვის მოგონილი პატერნაა ისე კი მე მაინც MVC მერჩივნა და მირჩევნია რა ხო კსტატი კიდე თემა რო არ გავხსნა აქვე დავსვამ ერთ კითხვას.

ვინმემ საფუძვლიანად გაარჩიეთ Prism 4 რარაც მგონია რო დიდი მონსტრია მარა თან კარგი ჩანს და ზედმეტად ნამდვილად ვერ დავხარჟავ დროს და იქნებ ტქვენი შთაბეჭდილებები მიტხრათ ბატონებო?
Gode
ასტეროიდი ბ612


******
ჯგუფი: Members
წერილები: 8313
წევრი No.: 1340
რეგისტრ.: 19-October 02

გამოგზავნილია: 11 Sep 2011, 18:11  #27328720      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · ვებგვერდი
Snowman

მე არ მჭირდება მაგხელა Framework-ის გამოყენება ჯერ-ჯერობით, MVVM Light Toolkit-ის პონტში პატარა ბიბლიოთეკა გვაქვს საბაზო ViewModel-ებით, Command-ებით და მაგით გავდივართ იოლად. რამდენადაც ვიცი კოლეგებისგან, Prism-ი ერთ-ერთი ყველაზე კარგი Framework-ია სილვერისთვის, მაგრამ როგორც სხვა ყველაფერი, უნდა გჭირდებოდეს მაგხელა როჟა და გამოიყენო, მე ჩემს პროექტებში არ მჭირდება.
Snowman
|͇̿V͇̿I͇̿P͇̿|


*****
ჯგუფი: Members
წერილები: 4075
წევრი No.: 11866
რეგისტრ.: 29-July 05

გამოგზავნილია: 11 Sep 2011, 22:15  #27331824      · პროფილი · პირადი მიმოწერა · ჩატი
Gode
ოს შენ გაიხარე შოთა დიდი მადლობა ხო აი მეც ეგ მაინტერესებდა რა ზუსტად რო რამდენად მონსტრიათქო რა ეს MVVM light toolkit სიმართლე გიტხრა არ გამირჩევია ესე ძირეულად და არც რამე კარგი დოკუმენტაცია შემხვედრია და თუ გაქვს იქნებ ლინკები ჩამიყარო რა. ხოდა კიდე რა მაინტერესებს იცი MEF ძალინ მომწონს რელურად დავამუშავე კიდეც და რარაცეები საკმაოდ წარმატებულადაც დავაინტეგრირე, მაგრამ როდესაც silverlight და MEF-ზე მიდგება ხოლმე საქმე მითუმეტეს თუ დეფლოიმენტ კატალოგზეა ლაპარაკი მანდ მილტილინგვალის ამბავი როგორ იქნება აი ერთი ეს მაფიქრებს და ხო კიდევ PRISM რამდენადაც ვიცი MEF თან ძალიან კრაგად მეგობრობს და მაგიტომ უფრო მაინტერესებდა.

რაც შეეხება MVVM Light Toolkit-ს არ დაიზარო რა რამე ნორმალური დოკუმენტაცია თუ გაქვს ჩამიგდე MP-ში
Gode
ასტეროიდი ბ612


******
ჯგუფი: Members
წერილები: 8313
წევრი No.: 1340
რეგისტრ.: 19-October 02

გამოგზავნილია: 13 Sep 2011, 00:52  #27350161      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · ვებგვერდი
Snowman

http://www.galasoft.ch/mvvm/ აგერ მაგის მამა და მარჩენალი კაცი თავის დოკუმენტაციით და საიტით smile.gif
mcnamara
Crazy Member


*****
ჯგუფი: Members
წერილები: 4629
წევრი No.: 9922
რეგისტრ.: 5-May 05

გამოგზავნილია: 13 Sep 2011, 01:18  #27350603      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Gode
Caliburn Micro ხომ არ გინახავს? მე რაც წამიკითხავს საკმაოდ მოქნილი და მარტივი უნდა იყოს.
Snowman
|͇̿V͇̿I͇̿P͇̿|


*****
ჯგუფი: Members
წერილები: 4075
წევრი No.: 11866
რეგისტრ.: 29-July 05

გამოგზავნილია: 13 Sep 2011, 10:34  #27353075      · პროფილი · პირადი მიმოწერა · ჩატი
Gode
ა ეს კი ვიცი ანუ ესაა ყველაზე თავმოყრილი პუნქტი არა ამისთვის? ძალიან კარგი ძალიან კარგი აბა გადავხედოთ. მადლობა
* * *
lester

ბარემ ამასაც გადახედე თუ დაგაინტერესებს მერე მარა ნუ ესეც შედარებით ედვანსედ ვარიანტია რა
http://channel9.msdn.com/Events/MIX/MIX11/OPN03
Crypto
კატა უძაღლო ქვეყანაში


******
ჯგუფი: Members
წერილები: 8152
წევრი No.: 9780
რეგისტრ.: 3-May 05

გამოგზავნილია: 14 Sep 2011, 23:03  #27379961      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
mcnamara
QUOTE
Caliburn Micro

უფრო მოქნილი და სრულია, ვიდრე MVVM Light yes.gif
ბაინდინგისთვის და ქომანდებისთვის გამოიყენება ე.წ. შეთანხმებები, მაგ. თუ View-ში გვაქვს <Button x:Name="DoJob"/> და ViewModel-ში მეთოდი DoJob, მაშინ კნოპკაზე დაჭერის დროს გამოიძახება ეს მეთოდი, (ეს მუშაობს ელემენტების default ივენტებზე, თუმცა სხვა ივენტებზე მიბმაც შეიძლება, ქომანდებში ჯენერიკ პარამეტრების გამოყენებაც შეიძლება). ან თუ View-ში გვაქვს <TextBlock x:Name="MyText"/> და ViewModel-ში პროპერტი MyText, მაშინ ეს ტექსტბოქსი ავტომატურად მიებმება ამ პროპერტის, და ა.შ. ამ ლოგიკის მოდიფიცირებაც შეიძლება.
თუ შეთანხმებების გამოყენება არ გვინდა, სტანდარტული ბაინდინგიც მუშაობს (Text={Binding MyText} ..)
აქვს IoC (MVVM Light-ს არ აქვს),
შეიძლება გამოიყენო View-First ან ViewModel-First
ბევრ კლასში შიდა მეთოდები გარეთ არის გამოტანილი დელეგატი პროპერთების სახით, ანუ ფაქტიურად კლასის შიდა ლოგიკა შეიძლება განავრცო/ჩაანაცვლო და დანარჩენი ფანტაზიის საქმეა
აქვს WindowManager (აღარ მახსოვს ზუსტად რა ჰქვია) ფანჯრების და დიალოგების ცენტრალიზებულად სამართავად,
აქვს Messaging , თან ჯენერიკებით... და კიდევ უამრავი რაღაცა, ისე რომ რეკომენდაციას ვუწევ ორი ხელით

არის კიდევ საკუთრივ caliburn, მაგრამ როგორც ავტორი წერს, მისი ფუნქციების 90% caliburn.micro-შიცაა

პს: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx სტატია MVVM-ს ავტორისაგან wink.gif

This post has been edited by Crypto on 14 Sep 2011, 23:19


--------------------
აიღე აგური!
Snowman
|͇̿V͇̿I͇̿P͇̿|


*****
ჯგუფი: Members
წერილები: 4075
წევრი No.: 11866
რეგისტრ.: 29-July 05

გამოგზავნილია: 15 Sep 2011, 02:16  #27383231      · პროფილი · პირადი მიმოწერა · ჩატი
Crypto
ეს ყველაფერი გავიგე და ძალიან აკრგი მაგრამ ერთი კვიმატი შეკიტხვა რამდენად არის ბლენდებილითი?wink.gif ანუ მიმიხვდი რასაც ვგულისხმობ რა DesignTimeData? და რეალურად დიზაინერისთვის რამდენად მოსახერხებელია როდესაც დატაქონტექსტად გამოყენებული Caliburn-ზე დაშენებული ViewModel-ების დადიზაინება?
Crypto
კატა უძაღლო ქვეყანაში


******
ჯგუფი: Members
წერილები: 8152
წევრი No.: 9780
რეგისტრ.: 3-May 05

გამოგზავნილია: 15 Sep 2011, 13:24  #27386623      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Snowman
ბლენდი არასდროს მიხმარია. DesignTimeData-ს ვიუმოდელის კონსტრუქტორში ვაბამ ხოლმე BootStrapper.IsInDesignMode-ს შემოწმების შემდეგ (VS-ში)

არც ბლენდში უნდა იყოს ალბათ ძნელი. caliburn-ის viewmodel-ები ცოტათი გაუმჯობესებული INotifyPropertyChanged ინტერფეისია (IsNotifying აქვს დამატებული notification-ის დროებით გამოსართავად). სტანდარტული მეთოდებით xaml-ში მისი ინიციალიზაცია პრობლემა არ იქნება.
0 წევრი ათვალიერებს ამ თემას (0 სტუმარი და 0 უჩინარი წევრი)
0 წევრი:
Topic Options გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

 



ფორუმის სერვერების განთავსებას და ინტერნეტთან კავშირს უზრუნველყოფს: CLOUD9
[ Script Execution time: 0.0197 ]   [ 13 queries used ]   [ GZIP Disabled ]