﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Ig,
  
No, it wouldn't. It just depend how you are handling the i18n
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment44</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment44</guid><pubDate>Thu, 21 Jan 2010 07:45:44 GMT</pubDate></item><item><title>lg commented on Effectus: Building UI based on conventions</title><description>Hmmm....  I'm not a pro,, so I wonder,,, translations to other languages... it is possible or will break the binding?
  
  
//lg
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment43</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment43</guid><pubDate>Mon, 18 Jan 2010 16:24:32 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Happy to hear that.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment42</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment42</guid><pubDate>Wed, 13 Jan 2010 15:51:31 GMT</pubDate></item><item><title>Matt Warren commented on Effectus: Building UI based on conventions</title><description>Ayende, thanks so much for this code, it's just what I needed. I converted it to work with .NET 2.0 and Winforms for a project I'm working on.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment41</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment41</guid><pubDate>Wed, 13 Jan 2010 15:50:55 GMT</pubDate></item><item><title>firefly commented on Effectus: Building UI based on conventions</title><description>@p, Oh I also want to say thanks, I didn't know about that feature until you mentioned it the other day. There is always something about Resharper to discover :). I've always used Ctrl Click to navigate
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment40</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment40</guid><pubDate>Wed, 23 Dec 2009 05:15:36 GMT</pubDate></item><item><title>firefly commented on Effectus: Building UI based on conventions</title><description>@p You can type Presenter, it will list all of the presenter... along with their namespace. Not that it's optimal, just that it still work.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment39</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment39</guid><pubDate>Wed, 23 Dec 2009 05:12:30 GMT</pubDate></item><item><title>P commented on Effectus: Building UI based on conventions</title><description>@firefly
  
  
Resharper will work fine calling everything presenter, but when you want to goto the "Inactive Customer Email Presenter" (for example), you can no longer jump to "ICEP" because you only called it "Presenter". You are basically back to manually navigating via solution explorer.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment38</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment38</guid><pubDate>Wed, 23 Dec 2009 04:53:21 GMT</pubDate></item><item><title>firefly commented on Effectus: Building UI based on conventions</title><description>@Christopher, thanks for clarifying that. I studied your example and I wasn't real clear of what convention to follow. Though isn't the new convention doing it right in the xaml?
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment37</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment37</guid><pubDate>Tue, 22 Dec 2009 22:13:58 GMT</pubDate></item><item><title>Christopher Bennage commented on Effectus: Building UI based on conventions</title><description>@firefly you can use this approach in Caliburn v1 RTW. It still needs to mature a bit, but it's the approach we took on our most recent project. Though we occasionally ran into areas where we had to use the old Caliburn style.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment36</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment36</guid><pubDate>Tue, 22 Dec 2009 15:16:39 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>P,
  
Yes, it would. The naming isn't mandatory, and I am not too attached to it.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment35</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment35</guid><pubDate>Tue, 22 Dec 2009 07:11:23 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>FallenGameR,
  
It should be very easy, sure. Either directly in the property set or as an extra layer that will handle this in the DataBindingFactory.
  
It may take a bit of infrastructure on the UI side to handle validation errors correctly, but that wouldn't be too hard.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment34</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment34</guid><pubDate>Tue, 22 Dec 2009 07:09:50 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Josh,
  
Nope, that was parallel evolution
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment33</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment33</guid><pubDate>Tue, 22 Dec 2009 07:08:39 GMT</pubDate></item><item><title>firefly commented on Effectus: Building UI based on conventions</title><description>Resharper should work fine, each in it own namespace.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment32</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment32</guid><pubDate>Tue, 22 Dec 2009 01:07:53 GMT</pubDate></item><item><title>P commented on Effectus: Building UI based on conventions</title><description>Oh and...
  
  
[Quote]Each feature have a Presenter (business logic for the feature), a View Model, which is directly bound to the View and is the main way that Presenter has to communicate with the View. The main responsibility of the Model is to be bound to the UI, and allow the presenter to update it, but it is not quite enough.[/Quote]
  
  
I cannot agree more. MVVM forces people to shove a bunch of logic into something that should be strictly for databinding. Presenter-ViewModel-View FTW!
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment31</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment31</guid><pubDate>Tue, 22 Dec 2009 00:33:07 GMT</pubDate></item><item><title>P commented on Effectus: Building UI based on conventions</title><description>Slightly off the topic of this post, but the naming convention in the per-scenario is something I struggle with :)
  
  
Doesnt this kill the "Go to type" (Ctrl + N for resharper bindings) feature in resharper? For a large code base, this is a must IMO.
  
  
I completely agree with a folder (namespace) per scenario, but I typically add the scenario name to Presenter/ViewModel/View just to support resharper navigation. Its redundant, but I would buy a resharper license just for the said feature alone.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment30</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment30</guid><pubDate>Tue, 22 Dec 2009 00:15:27 GMT</pubDate></item><item><title>firefly commented on Effectus: Building UI based on conventions</title><description>So is this stuff going to end up in Caliburn v2? :) Somehow I get the feeling that it will be.
  
  
It's actually cleaner than the way Caliburn is doing it currently. It's cleaner for two reason. First Caliburn put the INotifyPropertyChanged on the Model, this put it directly on the property.
  
  
Putting it on directly the model require that the user have to raise seperate notification. For example
  
  
#     public string LastName  
  
#     {  
  
#         get { return _lastName; }  
  
#         set  
  
#         {  
  
#             _lastName = value;   
  
#             NotifyOfPropertyChange("LastName");  
  
#             NotifyOfPropertyChange("CanSave");  
  
#         }  
  
#     } 
  
  
I think that is a little ugly. If there is more commands that tied to LastName the situation get hairy real fast...
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment29</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment29</guid><pubDate>Mon, 21 Dec 2009 00:15:15 GMT</pubDate></item><item><title>FallenGameR commented on Effectus: Building UI based on conventions</title><description>Nice architecture =) I wonder if I need MS Prism Commands now.
  
Ayende, how do you think - will it be easy to add validation to model properties?
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment28</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment28</guid><pubDate>Sun, 20 Dec 2009 17:12:25 GMT</pubDate></item><item><title>firefly commented on Effectus: Building UI based on conventions</title><description>After some digging I must say that I really like the code base. I love convention over configuration. With some minor refactoring I was able to incorporate most of it into my code base. Very neat :)
  
  
This come just in time as I am working on my first WPF application and I started to get a little sick of the wiring.
  
  
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment27</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment27</guid><pubDate>Sun, 20 Dec 2009 16:47:55 GMT</pubDate></item><item><title>Josh commented on Effectus: Building UI based on conventions</title><description>This is how Caliburn does it, I assume it was your contribution?
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment26</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment26</guid><pubDate>Sun, 20 Dec 2009 15:24:05 GMT</pubDate></item><item><title>Eugene commented on Effectus: Building UI based on conventions</title><description>Ayende,
  
Thank you.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment25</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment25</guid><pubDate>Sun, 20 Dec 2009 10:58:45 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Sokun,
  
You have the code, write the extension
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment24</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment24</guid><pubDate>Sun, 20 Dec 2009 10:34:43 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Alexandre,
  
data binding factory is for entities, not for the type of stuff that I used Obserable for. It is simpler to write the INPC for that
  
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment23</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment23</guid><pubDate>Sun, 20 Dec 2009 10:34:24 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Eugene,
  
a &amp; c may be only needed once, but that is still complex, and I don't see any huge benefit that it gives in return.
  
As for too much magic, that is simple formula, how much time are you going to spend debugging a particular problem? 
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment22</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment22</guid><pubDate>Sun, 20 Dec 2009 10:32:52 GMT</pubDate></item><item><title>c.sokun commented on Effectus: Building UI based on conventions</title><description>Love to see DataBindingFactory extend to support 1-1, 1-M &amp; M-M oh would that require programmer to deal with it themself? Would be cool is I could have the same experience as [ARDataBind] in MR gave :)
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment21</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment21</guid><pubDate>Sat, 19 Dec 2009 23:04:21 GMT</pubDate></item><item><title>Mikael Syska commented on Effectus: Building UI based on conventions</title><description>Great stuff, always enjoy reading your posts.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment20</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment20</guid><pubDate>Sat, 19 Dec 2009 20:13:47 GMT</pubDate></item><item><title>Alexandre Trigueros commented on Effectus: Building UI based on conventions</title><description>My first post here to send you a big thank you !
  
I didn't have much opportunities to use WPF.
  
Your sample is a gold mine.
  
Even if i'm not really fond of the autowiring event based on name convention.
  
  
And also, why did you do an Observable class instead of using the databindingFactory to generate INotifyPropertyChanged objects ?
  
  
Anyway, thanks again for the sample.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment19</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment19</guid><pubDate>Sat, 19 Dec 2009 18:47:02 GMT</pubDate></item><item><title>Mark Nijhof commented on Effectus: Building UI based on conventions</title><description>I really like Conventional based stuff a lot. Something that I did in my CQRS example application is using Win Forms and MVP where I conventionally hook-up the view events with presenter event handlers. It is using reflection which doesn't get cached but honestly on a window start this isn't really a big concern. And if there is an event that doesn't get handled I throw an exception.
  
  
The base presenter can be found here: 
[github.com/.../IPresenter.cs](http://github.com/MarkNijhof/Fohjin/blob/master/Fohjin.DDD.Example/Fohjin.DDD.BankApplication/Presenters/IPresenter.cs)  
  
 -Mark
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment18</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment18</guid><pubDate>Sat, 19 Dec 2009 18:31:35 GMT</pubDate></item><item><title>Eugene commented on Effectus: Building UI based on conventions</title><description>Ayende,
  
a) and c) need to be done only once, and then can be used across all  projects that use facts - tho surely do as it feels good for you to do.
  
  
What really got me interested is b). How do you detect the "too much magic"? For me things that don't leak their internals are always ok, regardless of their complexity, given that they do simplify routine tasks. What's your opinion on this?
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment17</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment17</guid><pubDate>Sat, 19 Dec 2009 17:26:15 GMT</pubDate></item><item><title>Ayende Rahien commented on Effectus: Building UI based on conventions</title><description>Eugene,
  
Because that would be:
  
a) a lot of hard work
  
b) trigger the too much magic part
  
c) would invalidate scenarios such as composite observables
  
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment16</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment16</guid><pubDate>Sat, 19 Dec 2009 17:02:31 GMT</pubDate></item><item><title>ivos commented on Effectus: Building UI based on conventions</title><description>Pretty interesting, actually. I used to work with MVP for my web applications and I don't reallt like MVVM (It's not bad, but I don't like it).
  
  
Features that I would like to see how it's implemented:
  
- Validation: I would like to have the validation in the model side.
  
- Transaction management: maybe an aspect in the On.... methods?
  
- Tell the view to hide/show controls (change the visual state): The properties would be bound to presenter properties?
  
  
I didn't downloaded the code, just navigated it a little, so maybe there's something already defined that I missed.
</description><link>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment15</link><guid>http://ayende.com/4331/effectus-building-ui-based-on-conventions#comment15</guid><pubDate>Sat, 19 Dec 2009 16:59:43 GMT</pubDate></item></channel></rss>