Sunday, February 25, 2007

How to do window development in .net 3.0

How to do window development in .net 3.0


1. To be SOA-WF-enabled, separate “entities” from “services/activities”.

-- It is important for the new wave of Enterprise RAD and “connected applications” that we have fine-grained and guarantee-fully-SOA-WF-enabled.

2. For “services/activities”: Use WF’s activities (which are commands of the command design pattern) for CRUD and façade (“manager”) methods.

-- Note that you must be careful that always treat the result of calling those activities as a new object; never treat them as reference semantics. This is because if we use WF remotely, then, they are new objects, not references. http://forums.lhotka.net/forums/permalink/11975/12387/ShowThread.aspx#12387

-- Also, within the execute method, when it is not local (and when it is local, you should do it the same way), always copy the entities to the original activity’s data members. This will solve the problem that the WF engine will not change the activity’s reference after running execute.

-- Note that because it is proven that we can abstract network and other code via command design pattern, so, it is not necessary to do it if you do not need it – if you do web development, or if you use fat clients directly talking to databases, then, you do not need to inject anything here – keep it simple.

3. For "entities": Use “custom class” approach. Use PONO classes as the entities, no framework is “required”.

4. In the PONO classes, you should use the validation-databinding part of CSLA (the other things are very good for thinking also; but are not "required").

5. For databinding itself, for 2003 (OK, it is not just .net3.0), Use ObjectView, note that your object do not need to implment IEditableObject (for grid’s “in place” editing)

http://sourceforge.net/forum/forum.php?forum_id=420090

http://sourceforge.net/news/?group_id=123313http://jira.nhibernate.org/browse/NH-117http://sourceforge.net/forum/forum.php?forum_id=420090

6. For databinding itself, for 2005, use ObjectListView (has similar but different IEditableObject as ObjectView's; note CSLA object always implements INotifyPropertyChanged, if you do not use CSLA, you need to do it yourself)

http://forums.lhotka.net/forums/thread/6350.aspxhttp://forums.lhotka.net/forums/permalink/4882/4882/ShowThread.aspx#48825http://forums.lhotka.net/forums/permalink/4882/4882/ShowThread.aspx#48825.

7. For databinding itself, for 2005, if you want a context without any framework, use BindingListView (it uses event for IeditableObject -- it can handle object that does not implement IEditableObject; but must implement INotifyPropertyChanged)http://sourceforge.net/projects/blw/

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home