Congratulations!

[Valid Atom 1.0] This is a valid Atom 1.0 feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://mdworkstuff.blogspot.com/atom.xml?orderby=published

  1. <?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-720780386177654236</id><updated>2024-02-21T06:20:30.035+02:00</updated><category term="XAF"/><category term="Application usage tracking desktop users install uninstall analytics"/><category term="Dirty dictionaries"/><category term="Excel"/><category term="MultiEdit"/><category term="PropertyEditor"/><category term="TimeSpan"/><category term="about software create"/><category term="controller"/><category term="devexpress"/><category term="eXpand"/><category term="import"/><category term="merge objects"/><category term="portable Co2 calculator"/><category term="wizard"/><title type='text'>My Work</title><subtitle type='html'>Info about work that I&#39;ve done.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default?alt=atom&amp;orderby=published'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-2380146144941715015</id><published>2017-04-11T22:21:00.000+03:00</published><updated>2017-04-11T22:22:12.428+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Application usage tracking desktop users install uninstall analytics"/><title type='text'>A simple way to track You application usage with DeskMetrics</title><content type='html'>&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
  2. &lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTyEJha43I46k2cKG0-LkBZz1HMDVMMgbyruCZtocW65clNE-qukKcu8gieiYy3L9qOmliT6ijbg-bU_8rRsMXt5D7Lnjxlx7u6nicw6acB3gZxJ1TRXHcOAfgvQeJM6eUvEJVczLGpzg/s1600/912f67_8493414e4e984cda9f8b60d7e4f5b468-mv2.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTyEJha43I46k2cKG0-LkBZz1HMDVMMgbyruCZtocW65clNE-qukKcu8gieiYy3L9qOmliT6ijbg-bU_8rRsMXt5D7Lnjxlx7u6nicw6acB3gZxJ1TRXHcOAfgvQeJM6eUvEJVczLGpzg/s400/912f67_8493414e4e984cda9f8b60d7e4f5b468-mv2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  3. &lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Mqueue Viewer&lt;/td&gt;&lt;/tr&gt;
  4. &lt;/tbody&gt;&lt;/table&gt;
  5. Recently I&#39;ve embarked on a journey to create my first public product - a tool for people who need to work with MSMQ messages and queues.&lt;br /&gt;
  6. &lt;br /&gt;
  7. Here&#39;s what we managed to build&amp;nbsp;https://www.mqueue.net/&lt;br /&gt;
  8. &lt;br /&gt;
  9. A new journey - always means one thing &amp;nbsp;- a lot of unknowns and unexpected things happening, that need to be dealt with here and now. Below is such a list of problems :&lt;br /&gt;
  10. &lt;br /&gt;
  11. &lt;ol&gt;
  12. &lt;li&gt;How to let people know - such thing exists ?&amp;nbsp;&lt;/li&gt;
  13. &lt;li&gt;How to know if people use it ?&amp;nbsp;&lt;/li&gt;
  14. &lt;ol&gt;
  15. &lt;li&gt;How often ?&amp;nbsp;&lt;/li&gt;
  16. &lt;li&gt;From where ?&amp;nbsp;&lt;/li&gt;
  17. &lt;/ol&gt;
  18. &lt;li&gt;How people will pay for it ?&amp;nbsp;&lt;/li&gt;
  19. &lt;li&gt;How to license it - and activate or deactivate features ?&amp;nbsp;&lt;/li&gt;
  20. &lt;li&gt;How to interact with Your customers and follow up on their purchase ?&amp;nbsp;&lt;/li&gt;
  21. &lt;/ol&gt;
  22. &lt;div&gt;
  23. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW_qi1LClIPjokQElKLt7-j8j07t1XBNjhTS1YV84oz8zKhaOgcVFDcOVA2BKxx_iWWt7BQkbihyCjV5UJBIXU5hNc4UboIMp99bbH_TNHQengi85fZ7nOxJRUeOYPOd_4mWUKlOr-Y2E/s1600/2017-01-09_19-28-56+-2+.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW_qi1LClIPjokQElKLt7-j8j07t1XBNjhTS1YV84oz8zKhaOgcVFDcOVA2BKxx_iWWt7BQkbihyCjV5UJBIXU5hNc4UboIMp99bbH_TNHQengi85fZ7nOxJRUeOYPOd_4mWUKlOr-Y2E/s320/2017-01-09_19-28-56+-2+.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;One would expect - that for each one of these - one could easily find a product and use it.&amp;nbsp;&lt;/div&gt;
  24. &lt;div&gt;
  25. And of course - it&#39;s not as simple as it seems.&lt;br /&gt;
  26. &lt;br /&gt;
  27. One particular product that stands out with it quality, ease of use and customer service that I discovered in the process and would like to describe in more detail - is&amp;nbsp;&lt;/div&gt;
  28. &lt;div&gt;
  29. https://deskmetrics.com/&lt;/div&gt;
  30. &lt;div&gt;
  31. &lt;br /&gt;&lt;/div&gt;
  32. &lt;div&gt;
  33. &lt;br /&gt;&lt;/div&gt;
  34. &lt;div&gt;
  35. The problem that it solves is #2. &quot;Are people is using Your software? If so - how often ?&quot;.&lt;br /&gt;
  36. Why is it a problem in the first place (one might ask) ? Just use google analytics (one might say).&lt;br /&gt;
  37. &lt;br /&gt;
  38. &lt;br /&gt;
  39. In my case - to know how many people use the software, and how often - DeskMetrics was a time saver. A simple .dll, nice and clear instructions and documentation on how to plug it in and how to use it and a well thought out dashboard that gave me more than I could think of myself - with a few clicks of the button.&lt;br /&gt;
  40. &lt;br /&gt;
  41. Why not Google ? Simple really :&lt;br /&gt;
  42. &lt;br /&gt;
  43. &lt;ul&gt;
  44. &lt;li&gt;One needs to learn their api (how to call them ect)&lt;/li&gt;
  45. &lt;li&gt;Setup process requires knowledge and time&lt;/li&gt;
  46. &lt;/ul&gt;
  47. &lt;br /&gt;
  48. Also - try searching for &quot;desktop application usage metrics&quot;.. All I found was one more product...&lt;br /&gt;
  49. &lt;br /&gt;
  50. &lt;br /&gt;
  51. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  52. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1tP8OlDu9oYuhBi6JABVBCPXDhHD4SJeR6R4xSti_D5cG2aBOa-U8ipns-6dJpSNX67G-qjw3Q3bXw9z65LjwiR8YQe1XeOsxpzzaNTtVNCZ92lfpVUO8InTsWCjpgQ51M6tOAUhSRR0/s1600/2017-04-11_22-14-11.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1tP8OlDu9oYuhBi6JABVBCPXDhHD4SJeR6R4xSti_D5cG2aBOa-U8ipns-6dJpSNX67G-qjw3Q3bXw9z65LjwiR8YQe1XeOsxpzzaNTtVNCZ92lfpVUO8InTsWCjpgQ51M6tOAUhSRR0/s320/2017-04-11_22-14-11.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  53. For a new tool - the simple ability to see how many people are installing the tool, and how many of them uninstall - provides valuable insight on what&#39;s going on in the real world.&lt;br /&gt;
  54. &lt;br /&gt;
  55. Combine that with the application crash statistics (containing details stack trace data) and it&#39;s almost like You don&#39;t need any other tool to know how Your application is doing.&lt;br /&gt;
  56. &lt;br /&gt;
  57. Given that I only used 30% of the functionality offered - I&#39;m quite excited to get to know the product better and see how else it may help me grow my sales&lt;br /&gt;
  58. &lt;br /&gt;
  59. &lt;br /&gt;
  60. &lt;br /&gt;&lt;/div&gt;
  61. </content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/2380146144941715015/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2017/04/a-simple-way-to-track-you-application.html#comment-form' title='0 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/2380146144941715015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/2380146144941715015'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2017/04/a-simple-way-to-track-you-application.html' title='A simple way to track You application usage with DeskMetrics'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTyEJha43I46k2cKG0-LkBZz1HMDVMMgbyruCZtocW65clNE-qukKcu8gieiYy3L9qOmliT6ijbg-bU_8rRsMXt5D7Lnjxlx7u6nicw6acB3gZxJ1TRXHcOAfgvQeJM6eUvEJVczLGpzg/s72-c/912f67_8493414e4e984cda9f8b60d7e4f5b468-mv2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-1846204170165034399</id><published>2013-12-17T17:08:00.001+02:00</published><updated>2013-12-17T17:22:41.412+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="devexpress"/><category scheme="http://www.blogger.com/atom/ns#" term="eXpand"/><category scheme="http://www.blogger.com/atom/ns#" term="XAF"/><title type='text'>Devexpress 13.2 Review - why bother upgrading ?</title><content type='html'>In my experience, many programmers are careful about upgrading projects to the new versions, especially when they have a application running stable for a period of time.&lt;br /&gt;
  62. &lt;br /&gt;
  63. I&#39;ll try to upgrade an existing DX 12.x ERP/CMMS application to v13.2 and share my experiences with You, so You can know what to expect, and to answer 2 basic questions:&lt;br /&gt;
  64. &lt;ul&gt;
  65. &lt;li&gt;What&#39;s the pain of the upgrade ?&amp;nbsp;&lt;/li&gt;
  66. &lt;li&gt;What do You actually Gain from the upgrade&lt;/li&gt;
  67. &lt;/ul&gt;
  68. &lt;div&gt;
  69. &lt;a href=&quot;https://community.devexpress.com/blogs/eaf/image_thumb_25DA33F6.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://community.devexpress.com/blogs/eaf/image_thumb_25DA33F6.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  70. &lt;div&gt;
  71. &lt;br /&gt;&lt;/div&gt;
  72. &lt;div&gt;
  73. First - I want to point out one very useful feature I&#39;ve been waiting for ages , and one that has been requested by most of my clients: XAF&amp;nbsp;&lt;b&gt;&quot;Soft Validation&quot;. &lt;/b&gt;That&#39;s the first &lt;b&gt;&quot;bonus&quot; &lt;/b&gt;and gain in DX 13.2&lt;/div&gt;
  74. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  75. &lt;a href=&quot;https://community.devexpress.com/blogs/eaf/image_thumb_25DA33F6.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
  76. &lt;div&gt;
  77. &lt;br /&gt;&lt;/div&gt;
  78. &lt;div&gt;
  79. &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
  80. &lt;div&gt;
  81. One more &lt;u&gt;feature I love &lt;/u&gt;- You no longer need to go looking for a &quot;project converter&quot;, it&#39;s directly in VS !!!&lt;/div&gt;
  82. &lt;div&gt;
  83. Woo-hoo :) and it&#39;s got new look-n-feel, which is also very nice. Plus some extra features like project list to upgrade.&lt;/div&gt;
  84. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  85. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwwYReiE9lynNBy6qMbZXbWsxdNX3Fm0YL8toXEJOTVihBFeUT1O79Ry1_ZeeOB7-pBSNCH57KrmZszz7-z3BxuDdlSWHkPTdTFdUyipste-fmoDuTo0xZmlCPgUpHCqkH1gCHgmxjREM/s1600/2013-12-14+15-41-22.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwwYReiE9lynNBy6qMbZXbWsxdNX3Fm0YL8toXEJOTVihBFeUT1O79Ry1_ZeeOB7-pBSNCH57KrmZszz7-z3BxuDdlSWHkPTdTFdUyipste-fmoDuTo0xZmlCPgUpHCqkH1gCHgmxjREM/s640/2013-12-14+15-41-22.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  86. &lt;div&gt;
  87. &lt;br /&gt;&lt;/div&gt;
  88. &lt;div&gt;
  89. &lt;b&gt;The Bad:&lt;/b&gt; You&#39;ll need to upgrade to .Net 4+&lt;br /&gt;
  90. So if You&#39;re using Click-Once or &lt;a href=&quot;http://documentation.devexpress.com/#Xaf/CustomDocument3239&quot;&gt;DxUpgrade &lt;/a&gt;machine - You need to find a way of getting &lt;b&gt;.Net upgraded&lt;/b&gt; on Your client machines (10&#39;s, 100&#39;s of them ?). For the time being &lt;u&gt;that&#39;s a show stopper for me&lt;/u&gt;.&amp;nbsp;&lt;/div&gt;
  91. &lt;div&gt;
  92. &lt;br /&gt;&lt;/div&gt;
  93. &lt;div&gt;
  94. If you have &amp;nbsp;a solution for this - plz share it in the comments (meaning - how do You make .Net Framework updates install together with application updates ? )&lt;/div&gt;
  95. &lt;div&gt;
  96. &lt;br /&gt;&lt;/div&gt;
  97. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  98. &lt;/div&gt;
  99. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  100. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCqy5OccBOlODAsWOmgE3Kc9NNCE1xCSvZ5TKS3_2ZYqQCosKdssT4a2LmX6Kfrsi_eKDy_kluStLagZtMraseQm3H8wGJAy5mA-1dfVudq_HcdpHVtR9k64ig4ugoRX53wBjals__doE/s1600/2013-12-14+15-45-41.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCqy5OccBOlODAsWOmgE3Kc9NNCE1xCSvZ5TKS3_2ZYqQCosKdssT4a2LmX6Kfrsi_eKDy_kluStLagZtMraseQm3H8wGJAy5mA-1dfVudq_HcdpHVtR9k64ig4ugoRX53wBjals__doE/s640/2013-12-14+15-45-41.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  101. &lt;div&gt;
  102. &lt;br /&gt;&lt;/div&gt;
  103. &lt;div&gt;
  104. &lt;br /&gt;&lt;/div&gt;
  105. &lt;div&gt;
  106. &lt;br /&gt;&lt;/div&gt;
  107. &lt;div&gt;
  108. &lt;br /&gt;&lt;/div&gt;
  109. &lt;div&gt;
  110. &lt;br /&gt;&lt;/div&gt;
  111. &lt;div&gt;
  112. &lt;br /&gt;&lt;/div&gt;
  113. &lt;div&gt;
  114. &lt;br /&gt;&lt;/div&gt;
  115. &lt;div&gt;
  116. &lt;br /&gt;&lt;/div&gt;
  117. &lt;div&gt;
  118. &lt;br /&gt;&lt;/div&gt;
  119. &lt;div&gt;
  120. &lt;br /&gt;&lt;/div&gt;
  121. &lt;div&gt;
  122. &lt;br /&gt;&lt;/div&gt;
  123. &lt;div&gt;
  124. &lt;b&gt;After the upgrade&lt;/b&gt;: few errors - that&#39;s expected, but really - all pretty &#39;basic&#39;, and can be fixed in few minutes. So breaking changes - absolutely minimal.&lt;/div&gt;
  125. &lt;div&gt;
  126. &lt;br /&gt;&lt;/div&gt;
  127. &lt;div&gt;
  128. like namespace change for &quot;DevExpress.Xpo.PersistentCriteriaEvaluationBehavior&quot; -&amp;gt; to -&amp;gt; &quot;DevExpress.Persistent.Validation.CriteriaEvaluationBehavior&quot;&amp;nbsp;&lt;/div&gt;
  129. &lt;div&gt;
  130. or&lt;/div&gt;
  131. &lt;div&gt;
  132. &quot;No overload for method &#39;ValidateAll&#39; takes 2 arguments&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot; - that just ask You yo add a reference to specific Objectspace .&lt;/div&gt;
  133. &lt;div&gt;
  134. &lt;br /&gt;&lt;/div&gt;
  135. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  136. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-DbSiU79Hj9I1MGJKhKNORDsLFLWGolgPEtp5_djrErelxmCtURdozIZCsnymm7FC24AZ82VR4XAzLqZ0ro7irD_4jxFrmupnfmHxNlvHFGoxZOgEraLFHJ7_jvqyPTt_JPt5UXzRuLU/s1600/2013-12-14+16-01-50.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;140&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-DbSiU79Hj9I1MGJKhKNORDsLFLWGolgPEtp5_djrErelxmCtURdozIZCsnymm7FC24AZ82VR4XAzLqZ0ro7irD_4jxFrmupnfmHxNlvHFGoxZOgEraLFHJ7_jvqyPTt_JPt5UXzRuLU/s640/2013-12-14+16-01-50.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  137. &lt;div&gt;
  138. &lt;br /&gt;&lt;/div&gt;
  139. &lt;div&gt;
  140. And - &lt;b&gt;Hooray - &lt;/b&gt;The app is running. Didn&#39;t expect that :) 1+ for &lt;a href=&quot;https://www.devexpress.com/&quot;&gt;Devexpress &lt;/a&gt;team for making the transition this fluent.&lt;/div&gt;
  141. &lt;div&gt;
  142. ______________________________________________________________________________&lt;/div&gt;
  143. &lt;div&gt;
  144. &lt;br /&gt;
  145. So - Let&#39;s try out this &#39;&lt;b&gt;Soft Validation&#39;&lt;/b&gt; and see how it goes, and what&#39;s it worth :)&lt;/div&gt;
  146. &lt;div&gt;
  147. &lt;br /&gt;&lt;/div&gt;
  148. &lt;div&gt;
  149. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi8FSf4vjidhTumUGrgwSIUA39gJgFXRISwuURqVHe-cEw_6X3O3Ne3Q8Gyi21fUgKqRIx60v2489R1LRGPUuKbGBnLmX3u3V4umsNwMpg6EvKdLOi2lYL3cGIwd4xAn73flsz5oiqke0/s1600/2013-12-14+20-15-22.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;158&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi8FSf4vjidhTumUGrgwSIUA39gJgFXRISwuURqVHe-cEw_6X3O3Ne3Q8Gyi21fUgKqRIx60v2489R1LRGPUuKbGBnLmX3u3V4umsNwMpg6EvKdLOi2lYL3cGIwd4xAn73flsz5oiqke0/s320/2013-12-14+20-15-22.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  150. &lt;div&gt;
  151. &lt;br /&gt;&lt;/div&gt;
  152. &lt;div&gt;
  153. I already had an object with a Property &quot;Description&quot; created, and a &lt;b&gt;RuleRequiredField &lt;/b&gt;set on it.&lt;/div&gt;
  154. &lt;div&gt;
  155. So All I had to do is just add the &quot;ResultType&quot; to the attribute descriptor. Really nice !&lt;/div&gt;
  156. &lt;div&gt;
  157. &lt;br /&gt;&lt;/div&gt;
  158. &lt;div&gt;
  159. No breaking changes, no re-factoring, just an additional overload on the attribute constructor.&amp;nbsp;&lt;/div&gt;
  160. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  161. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi8FSf4vjidhTumUGrgwSIUA39gJgFXRISwuURqVHe-cEw_6X3O3Ne3Q8Gyi21fUgKqRIx60v2489R1LRGPUuKbGBnLmX3u3V4umsNwMpg6EvKdLOi2lYL3cGIwd4xAn73flsz5oiqke0/s1600/2013-12-14+20-15-22.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
  162. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  163. &lt;/div&gt;
  164. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  165. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNNBFRw6Rd7mKvauiFTGTtKhlRwZqG_d0q-tvjZoa_gyfVdc4fyVhs43BJx06QsbcNSTNVSls-RuqH74aPfGnAyjws5mLO_nm6VtMaGt0zFQ0FqBQvBHroJRtU_Kd1s19KgEgxyAI7ARo/s1600/2013-12-14+20-23-20.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNNBFRw6Rd7mKvauiFTGTtKhlRwZqG_d0q-tvjZoa_gyfVdc4fyVhs43BJx06QsbcNSTNVSls-RuqH74aPfGnAyjws5mLO_nm6VtMaGt0zFQ0FqBQvBHroJRtU_Kd1s19KgEgxyAI7ARo/s320/2013-12-14+20-23-20.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  166. &lt;div&gt;
  167. &lt;br /&gt;&lt;/div&gt;
  168. &lt;div&gt;
  169. Now, lets hit F5, and see how it works.&amp;nbsp;&lt;/div&gt;
  170. &lt;div&gt;
  171. I get a standard notification about the error, but it is transformed&amp;nbsp;, and now has a &quot;&lt;b&gt;Ignore&lt;/b&gt;&quot; button on it, allowing me to bypass the validation.&amp;nbsp;&lt;/div&gt;
  172. &lt;div&gt;
  173. All the icons are there, Warning signs ect.. and all this - with 1 line of code !!!&lt;/div&gt;
  174. &lt;div&gt;
  175. &lt;br /&gt;&lt;/div&gt;
  176. &lt;div&gt;
  177. Great ! This feature alone, made my day and bought me to do the upgrade.&lt;/div&gt;
  178. &lt;div&gt;
  179. &lt;br /&gt;&lt;/div&gt;
  180. &lt;div&gt;
  181. If You&#39;re interested in more details about this feature here&#39;s a nice post with details about WEB, Info type ect &lt;a href=&quot;http://bit.ly/1edBp4z&quot;&gt;http://bit.ly/1edBp4z&amp;nbsp;&lt;/a&gt;&amp;nbsp;and one more &lt;a href=&quot;http://blog.zerosharp.com/devexpress-13-dot-2-review-part-2/&quot;&gt;here.&lt;/a&gt;&lt;/div&gt;
  182. &lt;div&gt;
  183. &lt;br /&gt;&lt;/div&gt;
  184. &lt;div&gt;
  185. &lt;br /&gt;&lt;/div&gt;
  186. &lt;div&gt;
  187. &lt;br /&gt;&lt;/div&gt;
  188. &lt;div&gt;
  189. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUeb3jet8tEmoZ6plguzl1kMfnGnh55KbNBhnPgZgvZUvZMIBcJ91QCNDW32246K5qptex9-TMlvpxtAHaAgbq9b2syWf6bc2p9ce68uiOUwLBTOHcfMnvdSvoKotedF7tC5gSgWZyoiQ/s1600/2013-12-14+20-50-38.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUeb3jet8tEmoZ6plguzl1kMfnGnh55KbNBhnPgZgvZUvZMIBcJ91QCNDW32246K5qptex9-TMlvpxtAHaAgbq9b2syWf6bc2p9ce68uiOUwLBTOHcfMnvdSvoKotedF7tC5gSgWZyoiQ/s320/2013-12-14+20-50-38.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  190. &lt;div&gt;
  191. Next comes the &lt;b&gt;&quot;Easy custom members&quot;&lt;/b&gt;&lt;/div&gt;
  192. &lt;div&gt;
  193. So my example on this one - let&#39;s say we have a list of &quot;Work Orders&quot;, where all of them have a field &quot;Date Created&quot;, but what I actually want to know as a business user - is &lt;b&gt;How long has that &quot;order&quot; been opened ?&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
  194. &lt;div&gt;
  195. &lt;br /&gt;&lt;/div&gt;
  196. &lt;div&gt;
  197. &lt;div&gt;
  198. Well - I have to say, it&#39;s a nice way to add a calculated property, without recompile and stuff&lt;/div&gt;
  199. &lt;div&gt;
  200. &lt;br /&gt;&lt;/div&gt;
  201. &lt;div&gt;
  202. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_dR_LGdeZY3fF5-vbpgLBpUX7CBysmdZCE0LJex2lfQx_2j9cxL8U2C2KzEko4RGn5u5VYdTLX1_BqLUjFepD8rNl8xXr9lq_aFo0EKqOf0dKYs7J8q8FU9BY_PFXUNXTsUL7zoBezyI/s1600/2013-12-14+20-51-08.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;253&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_dR_LGdeZY3fF5-vbpgLBpUX7CBysmdZCE0LJex2lfQx_2j9cxL8U2C2KzEko4RGn5u5VYdTLX1_BqLUjFepD8rNl8xXr9lq_aFo0EKqOf0dKYs7J8q8FU9BY_PFXUNXTsUL7zoBezyI/s320/2013-12-14+20-51-08.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;b&gt;But.. &lt;/b&gt;unfortunatelly..&lt;/div&gt;
  203. &lt;div&gt;
  204. &lt;br /&gt;&lt;/div&gt;
  205. &lt;div&gt;
  206. From the&amp;nbsp;&lt;b&gt;business user&amp;nbsp;&lt;/b&gt;perspective - I doubt that a person with Zero programming skills can figure this out, meaning - understand that what he or she actually needs is a DateDiff(x, y), by day, and add a proper properties to predefined place holders&lt;/div&gt;
  207. &lt;div&gt;
  208. &lt;br /&gt;&lt;/div&gt;
  209. &lt;div&gt;
  210. From&amp;nbsp;&lt;b&gt;programmers&amp;nbsp;&lt;/b&gt;perspective - well.. What I would like to do, is save this modification to the &#39;base&#39; model, and have it propagated to all the application users.&amp;nbsp;&lt;/div&gt;
  211. &lt;/div&gt;
  212. &lt;div&gt;
  213. &lt;br /&gt;
  214. &lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
  215. &lt;/div&gt;
  216. &lt;br /&gt;
  217. &lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
  218. &lt;div style=&quot;margin: 0px;&quot;&gt;
  219. &lt;br /&gt;&lt;/div&gt;
  220. &lt;div style=&quot;margin: 0px;&quot;&gt;
  221. This (propagation of model changes) of course is do-able - by exploiting&amp;nbsp;&lt;a href=&quot;http://www.expandframework.com/#modeldifference&quot;&gt;Expand ModelDifference&lt;/a&gt;&amp;nbsp;but that&#39;s a topic for another post;&lt;/div&gt;
  222. &lt;/div&gt;
  223. &lt;/div&gt;
  224. &lt;div&gt;
  225. &lt;br /&gt;
  226. Verdict: This is a strong step in right direction, of enabling run-time application customization, though it might requite significant effort.&lt;/div&gt;
  227. &lt;div&gt;
  228. &lt;br /&gt;&lt;/div&gt;
  229. &lt;div&gt;
  230. &lt;br /&gt;&lt;/div&gt;
  231. &lt;div&gt;
  232. &lt;b&gt;Reports 2.0&lt;/b&gt;&lt;/div&gt;
  233. &lt;div&gt;
  234. How&#39;s this useful ?&lt;br /&gt;
  235. &lt;br /&gt;
  236. The good:&lt;br /&gt;
  237. &lt;br /&gt;
  238. &lt;ul&gt;
  239. &lt;li&gt;it allows You to&amp;nbsp;&lt;u&gt;&#39;join/merge&#39; predefined reports&lt;/u&gt;&amp;nbsp;made by You in VS, with &#39;Xaf&#39; reports, and&amp;nbsp;&lt;u&gt;show them under the same &#39;Reports&#39; button.&lt;/u&gt;&amp;nbsp;More about this functionality in this&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/embed/Jde5fVwKMKw?autoplay=1&quot;&gt;video&lt;/a&gt;&amp;nbsp;and this post &#39;&lt;a href=&quot;https://community.devexpress.com/blogs/eaf/archive/2013/11/08/easy-large-reports-in-13-2-ctp-of-reportsv2-module.aspx&quot;&gt;runtime integration&lt;/a&gt;&#39;.&amp;nbsp;(I personally this this is great. I&#39;ve personally spent way to many hour on this integration and this is really really great in terms of user experience !)&lt;/li&gt;
  240. &lt;li&gt;and what&#39;s even more exiting - it let&#39;s You edit (a copy) of the predefined report !&lt;/li&gt;
  241. &lt;li&gt;and (this is more than awesome) - You can&lt;a href=&quot;http://blog.zerosharp.com/devexpress-13-dot-2-review-part-1/&quot;&gt; move Your scripts&lt;/a&gt; to C# file - hooray :) You know longer have to code script&#39;s blindly, without the intelisense and all the help of VS environment !&lt;/li&gt;
  242. &lt;/ul&gt;
  243. &lt;br /&gt;
  244. &lt;br /&gt;
  245. Cons:&lt;br /&gt;
  246. &lt;br /&gt;
  247. &lt;ul&gt;
  248. &lt;li&gt;You can&#39;t have both v.1 and v.2 simultaneously&lt;/li&gt;
  249. &lt;li&gt;Migration support from v.1 to v.2 could be better&lt;/li&gt;
  250. &lt;/ul&gt;
  251. &lt;br /&gt;
  252. &lt;br /&gt;
  253. &lt;br /&gt;&lt;/div&gt;
  254. &lt;div&gt;
  255. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  256. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHNzG4mN0kfOJoYviYx0OQWHhSSxa5JLrGiBcXcXTDn3Wb4puueZs2oq4CbhLiN-sOxm5PIFmrH5_UREwL2GGmHhkgfNJ0QME32uh0EVBu-b2YU7q9uVYH6xhPlpyb_K5TR0wvpt2SAmw/s1600/2013-12-16+11-29-17.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHNzG4mN0kfOJoYviYx0OQWHhSSxa5JLrGiBcXcXTDn3Wb4puueZs2oq4CbhLiN-sOxm5PIFmrH5_UREwL2GGmHhkgfNJ0QME32uh0EVBu-b2YU7q9uVYH6xhPlpyb_K5TR0wvpt2SAmw/s320/2013-12-16+11-29-17.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  257. Let&#39;s start by Adding the new module.&lt;br /&gt;
  258. Notice - the new Icon, so it&#39;s easy to recognize&lt;br /&gt;
  259. &lt;br /&gt;
  260. Few issues on the road:&lt;br /&gt;
  261. &lt;br /&gt;
  262. &lt;ul&gt;
  263. &lt;li&gt;You have to remove existing &#39;Reports module&#39;&amp;nbsp;&lt;/li&gt;
  264. &lt;li&gt;You have to export Your existing reports, before adding the new module&lt;/li&gt;
  265. &lt;/ul&gt;
  266. &lt;br /&gt;
  267. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  268. &lt;/div&gt;
  269. &lt;/div&gt;
  270. &lt;div&gt;
  271. Verdict : I must say the &#39;gain&#39; of the module is pretty huge. It comes with some trouble, but in my personal opinion - it&#39;s worth it.&amp;nbsp;&lt;/div&gt;
  272. &lt;div&gt;
  273. &lt;br /&gt;&lt;/div&gt;
  274. &lt;div&gt;
  275. &lt;b&gt;XPView Support for XPObjectSpace&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
  276. &lt;div&gt;
  277. &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
  278. &lt;div&gt;
  279. Finally :) I&#39;m beginning to repeat myself, but still, I must mention this feature, as it has huge impact on the XAF application performance.&amp;nbsp;&lt;/div&gt;
  280. &lt;div&gt;
  281. &lt;br /&gt;&lt;/div&gt;
  282. &lt;div&gt;
  283. Why ?&amp;nbsp;&lt;/div&gt;
  284. &lt;div&gt;
  285. Because - as soon as You get past the first few iteration, and the application starts it life, most probably it&#39;s gonna start accumulating data quite quickly.&amp;nbsp;&lt;/div&gt;
  286. &lt;div&gt;
  287. What does that mean ? - It means that as soon as You have passed the barrier of the initial application adoption by the client, the next big thing is data analysis, reporting and displaying &#39;the same&#39; data in various &#39;Views&#39;, various &#39;directions&#39;, various &#39;cuts&#39; or &#39;aggregations&#39;&lt;/div&gt;
  288. &lt;div&gt;
  289. &lt;br /&gt;&lt;/div&gt;
  290. &lt;div&gt;
  291. And this is where XpView supports comes in very handy. According to this &lt;a href=&quot;http://blog.paraoffice.at/devexpress-13-2-review-part1&quot;&gt;blog post&amp;nbsp;&lt;/a&gt;&amp;nbsp;makes a difference from &lt;b&gt;20.000 ms &amp;nbsp;&lt;/b&gt;&amp;nbsp;down to &lt;b&gt;9 ms. &lt;/b&gt;This sounds like a huge gain for me !&lt;/div&gt;
  292. &lt;div&gt;
  293. &lt;br /&gt;&lt;/div&gt;
  294. &lt;div&gt;
  295. &lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
  296. &lt;div&gt;
  297. &lt;b&gt;&quot;Merge Changes&quot; &lt;/b&gt;&amp;nbsp;&lt;/div&gt;
  298. &lt;div&gt;
  299. &lt;br /&gt;&lt;/div&gt;
  300. &lt;div&gt;
  301. &lt;a href=&quot;https://www.devexpress.com/Subscriptions/i/13.1/xaf-merge.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://www.devexpress.com/Subscriptions/i/13.1/xaf-merge.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;This one - is one more for the user. And for the support team, who&#39;s likely to get much less calls from the clients with text &quot;I can&#39;t save my changes, what do I do ? &quot;&lt;/div&gt;
  302. &lt;div&gt;
  303. &lt;br /&gt;&lt;/div&gt;
  304. &lt;div&gt;
  305. I won&#39;t get into much detail about this module, as there&#39;s a quite descriptive &lt;a href=&quot;https://community.devexpress.com/blogs/eaf/archive/2013/05/16/merge-changes-when-two-users-edit-the-same-record-simultaneously.aspx&quot;&gt;Blog here&lt;/a&gt;&amp;nbsp;and a &lt;a href=&quot;https://www.youtube.com/embed/zYU1gW787xg?autoplay=1&quot;&gt;pro video here&lt;/a&gt;&lt;/div&gt;
  306. &lt;div&gt;
  307. &lt;br /&gt;&lt;/div&gt;
  308. &lt;div&gt;
  309. It&#39;s simple to implement, simple to use, and has a potentially big impact in support, especially for the new XAF users.&lt;/div&gt;
  310. &lt;div&gt;
  311. &lt;br /&gt;&lt;/div&gt;
  312. &lt;div&gt;
  313. &lt;b&gt;Final word&lt;/b&gt;&lt;br /&gt;
  314. &lt;br /&gt;
  315. What I&#39;ve found so far:&lt;br /&gt;
  316. &lt;br /&gt;
  317. &lt;ul&gt;
  318. &lt;li&gt;The upgrade is as smooth as possible&lt;/li&gt;
  319. &lt;li&gt;13.2 has modules, that solve &#39;huge&#39; problems, though some might require some effort to implementing&lt;/li&gt;
  320. &lt;li&gt;You should definitely Do it !&amp;nbsp;&lt;/li&gt;
  321. &lt;/ul&gt;
  322. &lt;br /&gt;
  323. &lt;br /&gt;&lt;/div&gt;
  324. &lt;div&gt;
  325. &lt;br /&gt;&lt;/div&gt;
  326. &lt;div&gt;
  327. &lt;br /&gt;&lt;/div&gt;
  328. &lt;div&gt;
  329. &lt;br /&gt;&lt;/div&gt;
  330. </content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/1846204170165034399/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2013/12/devexpress-132-review-why-bother.html#comment-form' title='2 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/1846204170165034399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/1846204170165034399'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2013/12/devexpress-132-review-why-bother.html' title='Devexpress 13.2 Review - why bother upgrading ?'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwwYReiE9lynNBy6qMbZXbWsxdNX3Fm0YL8toXEJOTVihBFeUT1O79Ry1_ZeeOB7-pBSNCH57KrmZszz7-z3BxuDdlSWHkPTdTFdUyipste-fmoDuTo0xZmlCPgUpHCqkH1gCHgmxjREM/s72-c/2013-12-14+15-41-22.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-3249851429226897278</id><published>2011-05-25T14:33:00.003+03:00</published><updated>2011-09-27T17:31:56.801+03:00</updated><title type='text'>How to Include eXpandFramework module into existing XAF application</title><content type='html'>&lt;head&gt;
  331.    &lt;style type=&quot;text/css&quot;&gt;
  332.        .style2
  333.        {
  334.            border-bottom: thin #000000 solid;
  335.        }
  336.        
  337.    &lt;/style&gt;
  338. &lt;/head&gt;
  339. &lt;p&gt;
  340.    &amp;nbsp;&lt;/p&gt;
  341. &lt;span&gt;This post describes how to add a feature from
  342. eXpandFramework into an existing XAF application.&lt;/span&gt;&lt;br /&gt;
  343. &lt;br /&gt;
  344. &lt;br /&gt;
  345. &lt;table &gt;
  346.    &lt;tr &gt;
  347.        &lt;td class=&quot;style2&quot; valign=&quot;top&quot;&gt;
  348.            &lt;b&gt;1.&lt;/b&gt; Download the latest sources or binaries from &lt;b&gt;&lt;a href=&quot;http://expandframework.com/downloads/download.html&quot;&gt;
  349.                here&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
  350.            &lt;br /&gt;
  351.            Make sure that DevExpress engine that You&#39;re using matches with the one that eXpand
  352.            was built on
  353.        &lt;/td&gt;
  354.        &lt;td class=&quot;style2&quot;&gt;
  355.            &lt;a href=&quot;http://expandframework.com/downloads/download.html&quot;&gt;
  356.                &lt;img border=&quot;1&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhScUaNqze3zPR1D44U8YKB3L3yxv5l5kLAuhl6U0loNDc8apIrpzm63xR2Zv8iTaL0MYs8FPo-QTI9VoGetKOAnEFLWwrdXju7WqI3yBv5kx_6-IV15nYy5CotsAQTjw6E9evMMORy6uY/s400/eXpand_DX_ver.png&quot;
  357.                    width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  358. &amp;nbsp;&lt;/td&gt;
  359.    &lt;/tr&gt;
  360.    &lt;tr&gt;
  361.        &lt;td class=&quot;style2&quot; valign=&quot;top&quot;&gt;
  362.            &lt;b&gt;2.&lt;/b&gt; In Case You&#39;ve decided to download Source&#39;s - You&#39;ll need to build them
  363.            first.&lt;br /&gt;
  364.            &lt;br /&gt;
  365.            First make sure thet DX version matches (if not run the DX Project converter tool)&lt;br /&gt;
  366.            &lt;br /&gt;
  367.            Then run&amp;nbsp;&lt;b&gt;buildall32bit.cmd &lt;/b&gt;or&amp;nbsp;&lt;b&gt;buildall64bit.cmd &lt;/b&gt;depending
  368.            on Your system.&lt;br /&gt;
  369.            &lt;br /&gt;
  370.            You&#39;ll find your build results &amp;nbsp;in&amp;nbsp;&lt;b&gt;Xpand.DLL &lt;/b&gt;folder
  371.        &lt;/td&gt;
  372.        &lt;td class=&quot;style2&quot;&gt;
  373.            &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjygekjn_D4rZG1HFUs7tg6JXjYJy_zdNQdb3Zl_2imApkCqJimLJeXbRbXRSBQZGs2zqDH3LMfk4xCL9ZTqQqh6JFKF_ZbVEaMQTCp7k2YVqN8Bf_yQ3OIUn4e2v4aZ5e_xyHk9VR2nE4/s1600/eXpand_build.png&quot;
  374.                imageanchor=&quot;1&quot;&gt;
  375.                &lt;img border=&quot;1&quot; height=&quot;352&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjygekjn_D4rZG1HFUs7tg6JXjYJy_zdNQdb3Zl_2imApkCqJimLJeXbRbXRSBQZGs2zqDH3LMfk4xCL9ZTqQqh6JFKF_ZbVEaMQTCp7k2YVqN8Bf_yQ3OIUn4e2v4aZ5e_xyHk9VR2nE4/s400/eXpand_build.png&quot;
  376.                    width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
  377. &amp;nbsp;&lt;/td&gt;
  378.    &lt;/tr&gt;
  379.    &lt;tr&gt;
  380.        &lt;td  valign=&quot;top&quot; class=&quot;style3&quot;&gt;
  381. &lt;b&gt;3.&lt;/b&gt; Add&amp;nbsp;necessary references to Your project.
  382. &lt;br /&gt;
  383.            &lt;br /&gt;
  384.            In this case : &lt;b&gt;How to Add Excel import Wizard&lt;/b&gt; module to an
  385. Existing XAF application.&lt;br /&gt;
  386.        &lt;/td&gt;
  387.        &lt;td &gt;
  388.        &lt;/td&gt;
  389.    &lt;/tr&gt;
  390.    &lt;tr&gt;
  391.        &lt;td class=&quot;style2&quot; valign=&quot;top&quot;&gt;
  392.            Add references, in Your&amp;nbsp;&lt;b&gt;main module&lt;/b&gt;, to:&lt;br /&gt;
  393.                &lt;ul&gt;
  394.                    &lt;li&gt;Xpand.ExpressApp.dll&lt;/li&gt;
  395.                    &lt;li&gt;Xpand.ExpressApp.ImportWiz.dll&lt;/li&gt;
  396.                &lt;/ul&gt;
  397.                &amp;nbsp; &amp;nbsp;Add reference, in Your&amp;nbsp;&lt;b&gt;Win module&lt;/b&gt;, to:&lt;br /&gt;
  398.                &lt;ul&gt;
  399.                    &lt;li&gt;Xpand.ExpressApp.dll&lt;/li&gt;
  400.                    &lt;li&gt;Xpand.ExpressApp.Win.dll&lt;/li&gt;
  401.                    &lt;li&gt;Xpand.ExpressApp.ImportWiz.Win.dl&lt;/li&gt;
  402.                &lt;/ul&gt;
  403.        &lt;/td&gt;
  404.        &lt;td class=&quot;style2&quot;&gt;
  405.                &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDtlSaooZQyQiy0WgXADiNabq7N_GW2V_HQ2a154xyaggJEabeyzJSnm-rcyDQLnB5nHSQxUhN9oJLftypENPHsLhQyxjYoQPrubT_L4VkH1pK0JYV5myaqO8N1e6DuFSL6XHYxdW_OMU/s1600/eXpand_module.png&quot;
  406.                    imageanchor=&quot;1&quot; style=&quot;clear: right; text-align: left;&quot;&gt;
  407.                    &lt;img border=&quot;1&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDtlSaooZQyQiy0WgXADiNabq7N_GW2V_HQ2a154xyaggJEabeyzJSnm-rcyDQLnB5nHSQxUhN9oJLftypENPHsLhQyxjYoQPrubT_L4VkH1pK0JYV5myaqO8N1e6DuFSL6XHYxdW_OMU/s400/eXpand_module.png&quot;
  408.                        width=&quot;193&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
  409.    &lt;/tr&gt;
  410. &lt;/table&gt;
  411. &lt;br /&gt;
  412. &lt;br /&gt;
  413. Add&amp;nbsp;following&amp;nbsp;code to&amp;nbsp;&lt;b&gt;Module.Designer.cs&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
  414. &lt;pre class=&quot;brush: csharp&quot;&gt;//
  415. this.RequiredModuleTypes.Add(typeof(Xpand.ExpressApp.ImportWiz.ImportWizModule))
  416. //
  417. &lt;/pre&gt;
  418. Add folowing code to&amp;nbsp;&lt;b&gt;WinModule.Designer.cs&lt;/b&gt;&lt;br /&gt;
  419. &lt;br /&gt;
  420. &lt;pre class=&quot;brush: csharp&quot;&gt;//
  421. this.RequiredModuleTypes.Add(typeof(ImportWizWinModule));
  422. //
  423. &lt;/pre&gt;
  424. &lt;br /&gt;
  425. &lt;br /&gt;
  426. &lt;b&gt;4.&lt;/b&gt; Run the application and use the New Module :)&lt;br /&gt;
  427. &lt;br /&gt;
  428. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
  429.    &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2M1eTxM_pVI-Uj_sT9saqlU63x__nz7BSc3mXl82P83nUSAPciCKilVHMrphWvDQe5ZQ_5Frd3Kt7Qqga-AYOtiV9iR09Z8_If3vXZewq0sW2YO1BW-C9pGC7IozHmyGEDLz4Ma3xiXg/s1600/eXpand_import.png&quot;
  430.        imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;
  431.        &lt;img border=&quot;1&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2M1eTxM_pVI-Uj_sT9saqlU63x__nz7BSc3mXl82P83nUSAPciCKilVHMrphWvDQe5ZQ_5Frd3Kt7Qqga-AYOtiV9iR09Z8_If3vXZewq0sW2YO1BW-C9pGC7IozHmyGEDLz4Ma3xiXg/s400/eXpand_import.png&quot;
  432.            width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  433. &lt;br /&gt;
  434. &lt;br /&gt;
  435. Here&#39;s a blog post with &lt;b&gt;&lt;a href=&quot;http://mdworkstuff.blogspot.com/2011/05/excel-import-wizard-demo-from.html&quot;&gt;
  436.    video on How it Works&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
  437. and a sample Solution that You can &lt;a href=&quot;http://dl.dropbox.com/u/26220441/TestImportModuleSolution.zip&quot;&gt;
  438.    &lt;b&gt;Download&lt;/b&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/3249851429226897278/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2011/05/how-to-include-expandframework-module.html#comment-form' title='24 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/3249851429226897278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/3249851429226897278'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2011/05/how-to-include-expandframework-module.html' title='How to Include eXpandFramework module into existing XAF application'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhScUaNqze3zPR1D44U8YKB3L3yxv5l5kLAuhl6U0loNDc8apIrpzm63xR2Zv8iTaL0MYs8FPo-QTI9VoGetKOAnEFLWwrdXju7WqI3yBv5kx_6-IV15nYy5CotsAQTjw6E9evMMORy6uY/s72-c/eXpand_DX_ver.png" height="72" width="72"/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-5616689036244444801</id><published>2011-05-24T18:28:00.004+03:00</published><updated>2011-06-09T19:48:06.760+03:00</updated><title type='text'>Excel Import Wizard Demo from eXpandFramework</title><content type='html'>Here&#39;s a short video on how Excel import wizard that I&#39;ve recently published to eXpandFramework works :) &lt;br /&gt;
  439. &lt;br /&gt;
  440. &lt;object id=&quot;scPlayer&quot;  width=&quot;640&quot; height=&quot;479&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://content.screencast.com/users/dauciunas/folders/Default/media/eb90e238-2c0f-4b3f-b36d-25e53aa0117c/scplayer.swf&quot; &gt; &lt;param name=&quot;movie&quot; value=&quot;http://content.screencast.com/users/dauciunas/folders/Default/media/eb90e238-2c0f-4b3f-b36d-25e53aa0117c/scplayer.swf&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;&lt;param name=&quot;flashVars&quot; value=&quot;thumb=http://content.screencast.com/users/dauciunas/folders/Default/media/eb90e238-2c0f-4b3f-b36d-25e53aa0117c/FirstFrame.png&amp;containerwidth=1243&amp;containerheight=932&amp;autohide=true&amp;autostart=false&amp;loop=false&amp;showendscreen=true&amp;showsearch=false&amp;showstartscreen=true&amp;tocdoc=left&amp;xmp=sc.xmp&amp;analytics=UA-21329833-1&amp;content=http://content.screencast.com/users/dauciunas/folders/Default/media/eb90e238-2c0f-4b3f-b36d-25e53aa0117c/InportExcelWizzard2.mp4&amp;blurover=false&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;scale&quot; value=&quot;showall&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;base&quot; value=&quot;http://content.screencast.com/users/dauciunas/folders/Default/media/eb90e238-2c0f-4b3f-b36d-25e53aa0117c/&quot; /&gt;&lt;iframe type=&quot;text/html&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;overflow:hidden;&quot; src=&quot;http://www.screencast.com/users/dauciunas/folders/Default/media/eb90e238-2c0f-4b3f-b36d-25e53aa0117c/embed&quot; height=&quot;932&quot; width=&quot;1243&quot; &gt;&lt;/iframe&gt; &lt;/object&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/5616689036244444801/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2011/05/excel-import-wizard-demo-from.html#comment-form' title='8 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/5616689036244444801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/5616689036244444801'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2011/05/excel-import-wizard-demo-from.html' title='Excel Import Wizard Demo from eXpandFramework'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-3731471225143021929</id><published>2011-03-03T02:25:00.003+02:00</published><updated>2011-05-05T17:33:39.412+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PropertyEditor"/><category scheme="http://www.blogger.com/atom/ns#" term="TimeSpan"/><category scheme="http://www.blogger.com/atom/ns#" term="XAF"/><title type='text'>TimeSpan Editor for XAF</title><content type='html'>Here&#39;s a simple solution for entering TimeSpan data in a casual style : &quot; 1 day 39 hours 78 min&quot;&lt;br /&gt;
  441. &lt;br /&gt;
  442. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbJnkjj0NYomwV6qMotZfl55vq68-7VwwDl1L-u_2G2z1QAKDWjKp8cuzZH2JEA6xO1GyFBK4rgiXo7TmyWItFOq-rHlGZtsiUlkLpqT3ibUdsmCr36doVxXY3hGCOegZtqOgIDLVVgE/s1600/TimeSpan.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;436&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbJnkjj0NYomwV6qMotZfl55vq68-7VwwDl1L-u_2G2z1QAKDWjKp8cuzZH2JEA6xO1GyFBK4rgiXo7TmyWItFOq-rHlGZtsiUlkLpqT3ibUdsmCr36doVxXY3hGCOegZtqOgIDLVVgE/s640/TimeSpan.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  443. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;The Solutions is to create a prpoperty editor that hosts simple Text editor, with some custom logic undeneath, that parses the string and converts it to TimeSpan after entering the string. And also Convert the timespan form the database to string, to be displayed in the casual format.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
  444. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;/div&gt;&lt;pre class=&quot;brush: csharp&quot;&gt;
  445. using System;
  446. using System.Text.RegularExpressions;
  447. using DevExpress.ExpressApp.Editors;
  448. using DevExpress.ExpressApp.Model;
  449. using DevExpress.ExpressApp.Win.Editors;
  450. using DevExpress.XtraEditors.Mask;
  451. using DevExpress.XtraEditors.Repository;
  452. namespace Solution2.Module.Win
  453. {
  454.    [PropertyEditor(typeof(TimeSpan))]
  455.    public class DurationPropertyEditor : DXPropertyEditor
  456.    {
  457.        public DurationPropertyEditor(Type objectType, IModelMemberViewItem model)
  458.            : base(objectType, model)
  459.        {
  460.            
  461.        }
  462.        protected override object CreateControlCore()
  463.        {
  464.            return new StringEdit();
  465.        }
  466.        protected override void SetupRepositoryItem(RepositoryItem item)
  467.        {
  468.            base.SetupRepositoryItem(item);
  469.            ((RepositoryItemStringEdit)item).Mask.MaskType = MaskType.RegEx;
  470.            ((RepositoryItemStringEdit)item).Mask.EditMask
  471.                = @&quot;\s*((\d?\d?\d?\s*(d(ays?)?)))?\s*((\d?\d?\s*(h(ours)?)?))?\s*(\d?\d?\s*(m(in(utes)?)?)?)?&quot;;
  472.            if (Control == null) return;
  473.            Control.ShowToolTips = true;
  474.            Control.ToolTip =
  475.                &quot; Examples:  &quot; + Environment.NewLine +
  476.                &quot; 1d                     = 1 Day&quot; + Environment.NewLine +
  477.                &quot; 1 day                  = 1 Day&quot; + Environment.NewLine +
  478.                &quot; 2d 5h 45 m             = 2 Days 5 Hours 45 minutes&quot; + Environment.NewLine +
  479.                &quot; 2 days 4 hours 25 min  = 2 Days 4 Hours 25 minutes&quot; + Environment.NewLine
  480. ;
  481.            Control.EditValueChanged += Control_EditValueChanged;
  482.        }
  483.        void Control_EditValueChanged(object sender, EventArgs e)
  484.        {
  485.            WriteValue();
  486.            OnControlValueChanged();
  487.        }
  488.        protected override object GetControlValueCore()
  489.        {
  490.            return ParseTimeSpan(Control.Text);
  491.        }
  492.        
  493.        protected override void ReadValueCore()
  494.        {
  495.            Control.EditValue = DecodeTimeSpan((TimeSpan) PropertyValue);
  496.            
  497.        }
  498.    
  499.        public static TimeSpan ParseTimeSpan(string s)
  500.        {
  501.            const string Quantity = &quot;quantity&quot;;
  502.            const string Unit = &quot;unit&quot;;
  503.            const string Days = @&quot;(d(ays?)?)&quot;;
  504.            const string Hours = @&quot;(h((ours?)|(rs?))?)&quot;;
  505.            const string Minutes = @&quot;(m((inutes?)|(ins?))?)&quot;;
  506.            const string Seconds = @&quot;(s((econds?)|(ecs?))?)&quot;;
  507.            var timeSpanRegex = new Regex(
  508.                string.Format(@&quot;\s*(?&lt;{0}&gt;\d+)\s*(?&lt;{1}&gt;({2}|{3}|{4}|{5}|\Z))&quot;,
  509.                              Quantity, Unit, Days, Hours, Minutes, Seconds),
  510.                              RegexOptions.IgnoreCase);
  511.            var matches = timeSpanRegex.Matches(s);
  512.            var ts = new TimeSpan();
  513.            foreach (Match match in matches)
  514.            {
  515.                if (Regex.IsMatch(match.Groups[Unit].Value, @&quot;\A&quot; + Days))
  516.                {
  517.                    ts = ts.Add(TimeSpan.FromDays(double.Parse(match.Groups[Quantity].Value)));
  518.                }
  519.                else if (Regex.IsMatch(match.Groups[Unit].Value, Hours))
  520.                {
  521.                    ts = ts.Add(TimeSpan.FromHours(double.Parse(match.Groups[Quantity].Value)));
  522.                }
  523.                else if (Regex.IsMatch(match.Groups[Unit].Value, Minutes))
  524.                {
  525.                    ts = ts.Add(TimeSpan.FromMinutes(double.Parse(match.Groups[Quantity].Value)));
  526.                }
  527.                else if (Regex.IsMatch(match.Groups[Unit].Value, Seconds))
  528.                {
  529.                    ts = ts.Add(TimeSpan.FromSeconds(double.Parse(match.Groups[Quantity].Value)));
  530.                }
  531.                else
  532.                {
  533.                    // Quantity given but no unit, default to Hours
  534.                    ts = ts.Add(TimeSpan.FromHours(double.Parse(match.Groups[Quantity].Value)));
  535.                }
  536.            }
  537.            return ts;
  538.        }
  539.        public static string DecodeTimeSpan(TimeSpan timeSpan)
  540.        {
  541.            var time = string.Empty;
  542.            if (timeSpan.Days &gt; 0)
  543.                time = timeSpan.Days + &quot; Days&quot;;
  544.            
  545.            
  546.            if (timeSpan.Hours &gt; 0)
  547.                time += (time != string.Empty ? &quot; &quot; : &quot;&quot;) + timeSpan.Hours + &quot; Hours&quot;;
  548.            
  549.            if (timeSpan.Minutes &gt; 0)
  550.                time += (time != string.Empty ? &quot; &quot; : &quot;&quot;) + timeSpan.Minutes + &quot; Minutes&quot;;
  551.            return time;
  552.        }
  553.    }
  554. }
  555.  
  556. &lt;/pre&gt;&lt;br /&gt;
  557. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  558. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/3731471225143021929/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2011/03/timespan-editor-for-xaf.html#comment-form' title='0 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/3731471225143021929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/3731471225143021929'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2011/03/timespan-editor-for-xaf.html' title='TimeSpan Editor for XAF'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbJnkjj0NYomwV6qMotZfl55vq68-7VwwDl1L-u_2G2z1QAKDWjKp8cuzZH2JEA6xO1GyFBK4rgiXo7TmyWItFOq-rHlGZtsiUlkLpqT3ibUdsmCr36doVxXY3hGCOegZtqOgIDLVVgE/s72-c/TimeSpan.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-8653071113377377439</id><published>2010-08-23T12:44:00.002+03:00</published><updated>2010-08-27T11:10:34.086+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="controller"/><category scheme="http://www.blogger.com/atom/ns#" term="Dirty dictionaries"/><category scheme="http://www.blogger.com/atom/ns#" term="merge objects"/><category scheme="http://www.blogger.com/atom/ns#" term="XAF"/><title type='text'>Merge similar referenced objects controller for XAF</title><content type='html'>I&#39;ve noticed that modern application usually have &lt;strong&gt;Dirty dictionaries&lt;/strong&gt;&lt;br /&gt;
  559. and there are no means of cleaning those dictionaries.&lt;br /&gt;
  560. &lt;br /&gt;
  561. What do i mean by Dirty dictionaries ? here&#39;s a sample:&lt;br /&gt;
  562. &lt;br /&gt;
  563. You have a list of whatever type of Objects, and You what to group them by one of the fields.&lt;br /&gt;
  564. In this situation We&#39;re trying to &lt;b&gt;group data object by property &quot;Class&quot;&lt;/b&gt;. Here&#39;s what we get:&lt;br /&gt;
  565. &lt;br /&gt;
  566. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiVJPw25Julcw_MYLppOqT6hLrBWmlZ68NGk1dOeryKb1_-YoGnVg4vqzlSvzt0Iu-x6IRPnqPP7vFCWgpkYsizYVbxB126min5XwAw9ItsHKQ5KTrNH0oXQotLoqdOMvNdu1doWAfY7E/s1600/Dirty+Dictionary+1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; ox=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiVJPw25Julcw_MYLppOqT6hLrBWmlZ68NGk1dOeryKb1_-YoGnVg4vqzlSvzt0Iu-x6IRPnqPP7vFCWgpkYsizYVbxB126min5XwAw9ItsHKQ5KTrNH0oXQotLoqdOMvNdu1doWAfY7E/s640/Dirty+Dictionary+1.png&quot; width=&quot;563&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  567. &lt;br /&gt;
  568. &lt;br /&gt;
  569. &lt;br /&gt;
  570. &lt;br /&gt;
  571. &lt;br /&gt;
  572. &lt;br /&gt;
  573. &lt;br /&gt;
  574. &lt;br /&gt;
  575. &lt;br /&gt;
  576. &lt;br /&gt;
  577. &lt;br /&gt;
  578. &lt;br /&gt;
  579. &lt;br /&gt;
  580. &lt;br /&gt;
  581. &lt;br /&gt;
  582. &lt;br /&gt;
  583. &lt;br /&gt;
  584. &lt;br /&gt;
  585. &lt;br /&gt;
  586. &lt;br /&gt;
  587. &lt;br /&gt;
  588. &lt;br /&gt;
  589. &lt;br /&gt;
  590. &lt;br /&gt;
  591. &lt;br /&gt;
  592. &lt;br /&gt;
  593. &lt;br /&gt;
  594. &lt;br /&gt;
  595. &lt;br /&gt;
  596. &lt;br /&gt;
  597. &lt;br /&gt;
  598. &lt;br /&gt;
  599. &lt;br /&gt;
  600. &lt;br /&gt;
  601. &amp;nbsp;If we take a look at the &quot;Dictionary&quot;, here&#39;s what we get:&lt;br /&gt;
  602. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrRm6uJKM6YQrasPBo06148andUImUB33TlW7-k00y-dZfJqo8oKpYMxDhOI8CaV9ilfnwQNVLXSTZsO1UxSgJ6ko3zFWPNcfjSLNdI3n-m0vdxYAC9CJxTHIqljszedrYi2matAb75EU/s1600/Dirty+Dictionary+2.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; ox=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrRm6uJKM6YQrasPBo06148andUImUB33TlW7-k00y-dZfJqo8oKpYMxDhOI8CaV9ilfnwQNVLXSTZsO1UxSgJ6ko3zFWPNcfjSLNdI3n-m0vdxYAC9CJxTHIqljszedrYi2matAb75EU/s320/Dirty+Dictionary+2.png&quot; width=&quot;284&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  603. Look&#39;s like that classe`es are identical... but.&lt;br /&gt;
  604. What You&#39;d what in such situation is somehow &lt;strong&gt;&quot;Join&quot; &lt;/strong&gt;the 2 instances. An inexperienced user would simply delete one of them. But that doesn&#39;t solve the problem.&lt;br /&gt;
  605. &lt;br /&gt;
  606. A clever SQL script here is not really possible. Why ?&lt;br /&gt;
  607. Because it&#39;s after 5 years of working with SQL I have no idea how to write simple a script to &lt;strong&gt;find all objects using this dictionary value.&lt;/strong&gt;&amp;nbsp;It is possible of course. but.. I&#39;ve found a better way :)&lt;br /&gt;
  608. &lt;br /&gt;
  609. &lt;br /&gt;
  610. &lt;br /&gt;
  611. &lt;br /&gt;
  612. &lt;br /&gt;
  613. &lt;br /&gt;
  614. &lt;br /&gt;
  615. Here&#39;s how it works.&lt;br /&gt;
  616. 1. You go the the dictionary. Select object&#39;s that You want to &lt;strong&gt;Join&lt;/strong&gt; and click &lt;strong&gt;Merge:&lt;/strong&gt;&lt;br /&gt;
  617. &lt;br /&gt;
  618. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqIkBucCMjg7YUAuR-UCQ6oG46rEQkG2vEUvtiI5pHZJuHJt4eBma_TQmYeYGou8Im1ciaHul-u52e6PHPUR2pF_2aW8P7lXpt66_h517ID0M36x7ccPIPSWPVX9MBtHLdXssDLdbVF-4/s1600/Dirty+Dictionary+3.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; ox=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqIkBucCMjg7YUAuR-UCQ6oG46rEQkG2vEUvtiI5pHZJuHJt4eBma_TQmYeYGou8Im1ciaHul-u52e6PHPUR2pF_2aW8P7lXpt66_h517ID0M36x7ccPIPSWPVX9MBtHLdXssDLdbVF-4/s400/Dirty+Dictionary+3.png&quot; width=&quot;298&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  619. &lt;br /&gt;
  620. &lt;br /&gt;
  621. &lt;br /&gt;
  622. &lt;br /&gt;
  623. &lt;br /&gt;
  624. &lt;br /&gt;
  625. &lt;br /&gt;
  626. &lt;br /&gt;
  627. &lt;br /&gt;
  628. &lt;br /&gt;
  629. &lt;br /&gt;
  630. &lt;br /&gt;
  631. &lt;br /&gt;
  632. &lt;br /&gt;
  633. &lt;br /&gt;
  634. &lt;br /&gt;
  635. &lt;br /&gt;
  636. &lt;br /&gt;
  637. &lt;br /&gt;
  638. &lt;br /&gt;
  639. &lt;br /&gt;
  640. Then You Get a screen that Show&#39;s what will be merged, and asks You to select one that You want to stay:&lt;br /&gt;
  641. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLbPg5FjCLaFKf15zwDCk8ghBewHN3riFt_XjDxJ4rCYlACiFZ_etYeL78odtwyC1Muwqu54u9lAUbzVN6wYRLP3FHEbDAc8bB6kLVG9Rs8ZN0gr0oDDBf9ibQv0lckMCGGQ2Ija9zOlI/s1600/Dirty+Dictionary+4.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;545&quot; ox=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLbPg5FjCLaFKf15zwDCk8ghBewHN3riFt_XjDxJ4rCYlACiFZ_etYeL78odtwyC1Muwqu54u9lAUbzVN6wYRLP3FHEbDAc8bB6kLVG9Rs8ZN0gr0oDDBf9ibQv0lckMCGGQ2Ija9zOlI/s640/Dirty+Dictionary+4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Click OK, and &lt;strong&gt;The Controller&lt;/strong&gt; collects (finds) &lt;strong&gt;ALL &lt;/strong&gt;referencing objects that use one of the values being merged (Joined), and replaces them with the correct value.</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/8653071113377377439/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/merge-similar-referenced-objects.html#comment-form' title='4 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/8653071113377377439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/8653071113377377439'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/merge-similar-referenced-objects.html' title='Merge similar referenced objects controller for XAF'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiVJPw25Julcw_MYLppOqT6hLrBWmlZ68NGk1dOeryKb1_-YoGnVg4vqzlSvzt0Iu-x6IRPnqPP7vFCWgpkYsizYVbxB126min5XwAw9ItsHKQ5KTrNH0oXQotLoqdOMvNdu1doWAfY7E/s72-c/Dirty+Dictionary+1.png" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-5305973222318157201</id><published>2010-08-18T18:16:00.001+03:00</published><updated>2010-08-27T11:12:20.698+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="import"/><category scheme="http://www.blogger.com/atom/ns#" term="wizard"/><category scheme="http://www.blogger.com/atom/ns#" term="XAF"/><title type='text'>Excel Importer for Express Application Framework (XAF)</title><content type='html'>One more common situation when working with XAF&amp;nbsp;is that in many cases You usually get a lot of &lt;b&gt;data in Excel SpreadSheets&lt;/b&gt;,You need to&lt;b&gt; import to Your New Application&lt;/b&gt;.&lt;br /&gt;
  642. &lt;br /&gt;
  643. So instead of writing a&amp;nbsp;separate&amp;nbsp;controller for each different excel file, o forcing people to use some predefined template, here what I came up with.&lt;br /&gt;
  644. &lt;br /&gt;
  645. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmA2uUKJ8TNivA3Cxv-z0ogAzVp6T6__GmjzAaeEZ4pqbomrhhbN6u0c89zE9CtLnV4RXLXKmgj0J97jaCr88jHZbeFi7LpPNuS-Zn34dT8R4qnQYL5BVI32SKhZWKV-W_mhOTViWkHB4/s1600/Excel+Import+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;348&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmA2uUKJ8TNivA3Cxv-z0ogAzVp6T6__GmjzAaeEZ4pqbomrhhbN6u0c89zE9CtLnV4RXLXKmgj0J97jaCr88jHZbeFi7LpPNuS-Zn34dT8R4qnQYL5BVI32SKhZWKV-W_mhOTViWkHB4/s640/Excel+Import+1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  646. Wizard Page 1 lets You select Excell 2007 or newer file, select a Sheet that You want to import data from and see a PreView of the Data:&lt;br /&gt;
  647. &lt;br /&gt;
  648. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIno_DWa8ejZUQbHVR242JuwZcONH9gpTpAfSMPMU-XjztCMenvq7YsQIkEAn08MXgMuZO2BA39E3UE-uVNOWci9lS-ByexvRzA0xdFQj_kl_l5Qy2MzKtD5MJJHQh5uWkTBbm5F5QnU8/s1600/Excel+Import+2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;441&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIno_DWa8ejZUQbHVR242JuwZcONH9gpTpAfSMPMU-XjztCMenvq7YsQIkEAn08MXgMuZO2BA39E3UE-uVNOWci9lS-ByexvRzA0xdFQj_kl_l5Qy2MzKtD5MJJHQh5uWkTBbm5F5QnU8/s640/Excel+Import+2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  649. Next You can Map Excel columns to Your object Properties (or Let the Import Wizard try to Guess the mappings)&lt;br /&gt;
  650. &lt;br /&gt;
  651. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxO-kG0q3Ns3-uSySEb7oC9igqYpo_uTkS7mdmo6so09nRy_NE1NTRzo7Adx5v5W-13gqBi6pRwyqiTZea5JOUaXdTsSVGSrH7Ps-s5daxb9ZK8Tt3Ldlo9Uq-lCj2ZEzM8rvNOGUTP2E/s1600/Excel+Import+3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;456&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxO-kG0q3Ns3-uSySEb7oC9igqYpo_uTkS7mdmo6so09nRy_NE1NTRzo7Adx5v5W-13gqBi6pRwyqiTZea5JOUaXdTsSVGSrH7Ps-s5daxb9ZK8Tt3Ldlo9Uq-lCj2ZEzM8rvNOGUTP2E/s640/Excel+Import+3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  652. And See the progress of data import that is done in a&amp;nbsp;separate&amp;nbsp;thread.&lt;br /&gt;
  653. &lt;br /&gt;
  654. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjofhDBLya7SAfBHh4lhhH9oKjidVBKf-9FSxnfhwjnBQrh-SQDQApPTrE8ZEivliPUvjTkKMrm4rrMYzxXTd_sE5YXw5Pp2WKV0cma4gtQN8AQkUDz1fNvPD9nvG9iyrapZHOORwBXK_k/s1600/Excel+Import+4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;590&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjofhDBLya7SAfBHh4lhhH9oKjidVBKf-9FSxnfhwjnBQrh-SQDQApPTrE8ZEivliPUvjTkKMrm4rrMYzxXTd_sE5YXw5Pp2WKV0cma4gtQN8AQkUDz1fNvPD9nvG9iyrapZHOORwBXK_k/s640/Excel+Import+4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/5305973222318157201/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/excel-importer-for-express-application.html#comment-form' title='6 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/5305973222318157201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/5305973222318157201'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/excel-importer-for-express-application.html' title='Excel Importer for Express Application Framework (XAF)'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmA2uUKJ8TNivA3Cxv-z0ogAzVp6T6__GmjzAaeEZ4pqbomrhhbN6u0c89zE9CtLnV4RXLXKmgj0J97jaCr88jHZbeFi7LpPNuS-Zn34dT8R4qnQYL5BVI32SKhZWKV-W_mhOTViWkHB4/s72-c/Excel+Import+1.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-4191080143518961268</id><published>2010-08-18T18:02:00.000+03:00</published><updated>2010-08-18T19:15:27.245+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MultiEdit"/><title type='text'>MultiEdit component for DevExpress Express Application Framework (XAF)</title><content type='html'>It is a common situation, that You want to &lt;b&gt;update multiple objects.&lt;/b&gt;&lt;br /&gt;
  655. &lt;div&gt;DevExpress&amp;nbsp;recommends&amp;nbsp;writing a controller for each and every time You want to do so.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
  656. &lt;/div&gt;&lt;div&gt;Well, i don&#39;t think so. I&#39;ve implemented a &quot;MultiEdit&quot; controller, so one can easily update a list of objects.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;
  657. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;
  658. &lt;/div&gt;&lt;div&gt;Say You have a list of objects - like this :&lt;br /&gt;
  659. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3rNd2a3EcEWi18e_gUEHSxQjqkGz_maglVh9MkwO89leqqVvLygbm-UrJIgKaEL0SJRz4l0JWW4ttFgcT17WquK1H0GFxxyyn3HyAvV6QLz5YiTZNlywI3MWwLHm7fHO1v-MdRYhvB5Y/s1600/MultiEdit+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;563&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3rNd2a3EcEWi18e_gUEHSxQjqkGz_maglVh9MkwO89leqqVvLygbm-UrJIgKaEL0SJRz4l0JWW4ttFgcT17WquK1H0GFxxyyn3HyAvV6QLz5YiTZNlywI3MWwLHm7fHO1v-MdRYhvB5Y/s640/MultiEdit+1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
  660. and You want to update Fields like &quot;Design pressure&quot; for all selected&amp;nbsp;objects.&lt;br /&gt;
  661. Of course You can open each of them, and change them one by one. But :)&lt;br /&gt;
  662. &lt;br /&gt;
  663. Select &quot;MultiEdit&quot; - that shows a Detail View for a objects selected, change the property You want, and press OK&lt;br /&gt;
  664. &lt;br /&gt;
  665. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx1wsFSne4iLwsXPJw9HstH3WL2WQ2v21hyphenhyphenZwV0Nj_nZ9_AeZBoEjalcaJp8vYQuLzbA2uTMdjoGEFAU3PwUAH88JqAAvNdDt9-l2IGiedmhOLuQa1bnHxjmNqHM-UE-IChaBxigYJ2SA/s1600/MultiEdit+2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx1wsFSne4iLwsXPJw9HstH3WL2WQ2v21hyphenhyphenZwV0Nj_nZ9_AeZBoEjalcaJp8vYQuLzbA2uTMdjoGEFAU3PwUAH88JqAAvNdDt9-l2IGiedmhOLuQa1bnHxjmNqHM-UE-IChaBxigYJ2SA/s640/MultiEdit+2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  666. &lt;br /&gt;
  667. It then Show&#39;s You what will be changed, and the progress of operation if very many objects are being updated.&lt;br /&gt;
  668. &lt;br /&gt;
  669. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibvB0oQIYHGEzmJ1O5JMU4MKj_xLLD34TJAeFCr0xOx7mb3dsaggF3huxd0Hp0FXbPhXbP0eUvLrU9XewPSnqcENI3DDUMKExhYXEwfHcMPvUrG0SGAeoFoXCUj_f3hR9-35vEtiMwJZc/s1600/MultiEdit+3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibvB0oQIYHGEzmJ1O5JMU4MKj_xLLD34TJAeFCr0xOx7mb3dsaggF3huxd0Hp0FXbPhXbP0eUvLrU9XewPSnqcENI3DDUMKExhYXEwfHcMPvUrG0SGAeoFoXCUj_f3hR9-35vEtiMwJZc/s640/MultiEdit+3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  670. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/4191080143518961268/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/multiedit-component-for-devexpress.html#comment-form' title='6 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/4191080143518961268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/4191080143518961268'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/multiedit-component-for-devexpress.html' title='MultiEdit component for DevExpress Express Application Framework (XAF)'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3rNd2a3EcEWi18e_gUEHSxQjqkGz_maglVh9MkwO89leqqVvLygbm-UrJIgKaEL0SJRz4l0JWW4ttFgcT17WquK1H0GFxxyyn3HyAvV6QLz5YiTZNlywI3MWwLHm7fHO1v-MdRYhvB5Y/s72-c/MultiEdit+1.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-890770735944581766</id><published>2010-08-18T17:39:00.001+03:00</published><updated>2010-08-18T23:11:22.591+03:00</updated><title type='text'>TP.Shell.XAF - ERP for manufacturing facilities</title><content type='html'>TP.Shell.XAF - ERP application, with unique&amp;nbsp;capabilities such like integrated ACad, Visio, Intergraph drawing Viewer, predefined custom industry specific data engineering data classes and other.&lt;br /&gt;
  671. &lt;br /&gt;
  672. Few screenshots of the application:&lt;br /&gt;
  673. &lt;br /&gt;
  674. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikzb9XNIgCJBfa6v3zIbzyO6B7pq4FiNlb8PRz6V40yxi-jtqjdvvZE5RlPM-64eJsx1sDACNTouYjjeVPwBxcZeHy3dORi4uTq01f6UGOmg4yXqyysfBqeDOZ0i58npkfz4aE69a8kgc/s1600/Shell.Splash.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikzb9XNIgCJBfa6v3zIbzyO6B7pq4FiNlb8PRz6V40yxi-jtqjdvvZE5RlPM-64eJsx1sDACNTouYjjeVPwBxcZeHy3dORi4uTq01f6UGOmg4yXqyysfBqeDOZ0i58npkfz4aE69a8kgc/s320/Shell.Splash.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  675. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  676. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  677. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Leak Detection and Repair Dashboard:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4A7P5kOVN16LsnCBaNuJxrsre3UQY3wc80S3gQIC9vNgM7jMt-jiCSHlkydJGTcIsC9MuopK6nnGUc206ALycku3uI3liVzUwFVxZxaAJANxqJZc0FX_X5QcFe6ISuzSU_a8MitZxeyE/s1600/LDAR+Graph+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;335&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4A7P5kOVN16LsnCBaNuJxrsre3UQY3wc80S3gQIC9vNgM7jMt-jiCSHlkydJGTcIsC9MuopK6nnGUc206ALycku3uI3liVzUwFVxZxaAJANxqJZc0FX_X5QcFe6ISuzSU_a8MitZxeyE/s400/LDAR+Graph+1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  678. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW0Xv3eNbRZyZa4IOVc_ChkzDFDcykF7KV8lJ5A5SYUH9neiTatPuX4kPLqkkOhyEVTQDg7g4_OzuigBgs4Z7jCqqV_kgp4n1Dyo4rDtdB382XoK8234Q8pn_Xy9CqGYQQ4RplDjN1pY0/s1600/LDAR+Graph+6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;335&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW0Xv3eNbRZyZa4IOVc_ChkzDFDcykF7KV8lJ5A5SYUH9neiTatPuX4kPLqkkOhyEVTQDg7g4_OzuigBgs4Z7jCqqV_kgp4n1Dyo4rDtdB382XoK8234Q8pn_Xy9CqGYQQ4RplDjN1pY0/s400/LDAR+Graph+6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  679. &lt;br /&gt;
  680. &lt;div style=&quot;text-align: center;&quot;&gt;Risk Based Inspection (interactive&amp;nbsp;questionnaire&amp;nbsp;and Risk Matrix)&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnCoL_caayp5sGwLGiCUKNwRfKLrFMkrMQ07D3PKzbJq2zzYZpre_azXTHX39TLIRKNsTq9tvlrjsKiqPSrohlfcf1EroXcrp18Ne1pp-Bhn9vnUEaaAg9SNBALlfZMRpwu_1GkboVyDA/s1600/RBI+Details.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnCoL_caayp5sGwLGiCUKNwRfKLrFMkrMQ07D3PKzbJq2zzYZpre_azXTHX39TLIRKNsTq9tvlrjsKiqPSrohlfcf1EroXcrp18Ne1pp-Bhn9vnUEaaAg9SNBALlfZMRpwu_1GkboVyDA/s400/RBI+Details.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  681. &lt;br /&gt;
  682. &lt;div style=&quot;text-align: center;&quot;&gt;Torque Calculator&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBIA22YqpRUfgoNsgFDTrVn_JWgPngEJSZjxsbtTHy_tcIXecgqT8_T3epjE6szF3fSCQXsily_eD_62hxJvVoI4RU2Am0-G54Fsk6IiujKfv81-mm2QtHWCj5agRS4Nub5hOmZ6iyBEs/s1600/Torque+Calc.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBIA22YqpRUfgoNsgFDTrVn_JWgPngEJSZjxsbtTHy_tcIXecgqT8_T3epjE6szF3fSCQXsily_eD_62hxJvVoI4RU2Am0-G54Fsk6IiujKfv81-mm2QtHWCj5agRS4Nub5hOmZ6iyBEs/s400/Torque+Calc.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  683. &lt;br /&gt;
  684. &lt;div style=&quot;text-align: center;&quot;&gt;Industry specific Valve Standard object&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGZQGc6akoNP4srEk90ZKYl-urxnzH-Y1sulROJjvDe8boId82kknfiPpycjHrLKUXKiz26hyDxLDiuAvuL7pfCW_YcA1q8QZe_3h3ygvy5forXiakz97Y2IsnLK4t5Hud0i4j1zrvqHA/s1600/ValveStandard.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;337&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGZQGc6akoNP4srEk90ZKYl-urxnzH-Y1sulROJjvDe8boId82kknfiPpycjHrLKUXKiz26hyDxLDiuAvuL7pfCW_YcA1q8QZe_3h3ygvy5forXiakz97Y2IsnLK4t5Hud0i4j1zrvqHA/s400/ValveStandard.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  685. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/890770735944581766/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/tpshellxaf-erp-for-manufacturing.html#comment-form' title='5 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/890770735944581766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/890770735944581766'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/tpshellxaf-erp-for-manufacturing.html' title='TP.Shell.XAF - ERP for manufacturing facilities'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikzb9XNIgCJBfa6v3zIbzyO6B7pq4FiNlb8PRz6V40yxi-jtqjdvvZE5RlPM-64eJsx1sDACNTouYjjeVPwBxcZeHy3dORi4uTq01f6UGOmg4yXqyysfBqeDOZ0i58npkfz4aE69a8kgc/s72-c/Shell.Splash.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-2978451533331014332</id><published>2010-08-16T15:00:00.000+03:00</published><updated>2010-08-18T19:16:55.180+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="portable Co2 calculator"/><title type='text'>Co2 Emission calculator</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOX5VbfA_xW4TWU34ksJSjpDiVDbaSDoyYYDstOuhwZvUc4cgF3lh5v7rqhvnGzsCvxNneCe02rO0i7vmP2-INKo3AlqwoUJurc7DAEv4f32P7ll_IFdycQ94fElXj4D8czucLY9uTnI/s1600-h/image038.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;131&quot; kt=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOX5VbfA_xW4TWU34ksJSjpDiVDbaSDoyYYDstOuhwZvUc4cgF3lh5v7rqhvnGzsCvxNneCe02rO0i7vmP2-INKo3AlqwoUJurc7DAEv4f32P7ll_IFdycQ94fElXj4D8czucLY9uTnI/s200/image038.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;This is a small tool that I did according specific client requirements.&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;Tool is based on&amp;nbsp;the &quot;Carbon Footprint&quot; method, which&amp;nbsp;gives magnitudes, not&amp;nbsp;the exact figures,&amp;nbsp;of the carbon emission linked to the activity of a company, taking into account&amp;nbsp;electricity production, transportation, raw material production, waste treatment, etc. &lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;The&amp;nbsp;objective was to supply the company with recommendations to mitigate Greenhouse Gas emissions at lowest cost.&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
  686. &lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;br /&gt;
  687. &lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;Key&amp;nbsp;features of the software:&lt;/div&gt;&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;&lt;ul&gt;&lt;li&gt;Portable (single executable)&lt;/li&gt;
  688.  
  689. &lt;ul&gt;&lt;li&gt;Doesn&#39;t require .Net framework 3.5 or SQL engine to be installed on the client machine, though both are being used by the software (which is fantastic for the developer and the customer)&lt;/li&gt;
  690. &lt;li&gt;Can be run by lowest privilege user on a Windows PC (doesn&#39;t require elevated privileges)&lt;/li&gt;
  691. &lt;/ul&gt;
  692. &lt;li&gt;Lightweight (all the software with SQL and .Net 3.5 framework embedded inside the executable - weighs only ~60Mb)&lt;/li&gt;
  693. &lt;li&gt;Rich&amp;nbsp;and Intuitive User Experience (DevExpress components)&lt;/li&gt;
  694. &lt;li&gt;MultiLanguage interface&lt;/li&gt;
  695. &lt;/ul&gt;&lt;/div&gt;Technology used:&lt;br /&gt;
  696. &lt;ul&gt;&lt;li&gt;ORM (XPO and Entity Framework)&lt;/li&gt;
  697. &lt;li&gt;Application Virtualization (XenoCode)&lt;/li&gt;
  698. &lt;/ul&gt;ScreenShots:&lt;br /&gt;
  699. &lt;br /&gt;
  700. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjna_3FU3ktQPCb8V2suvFPNBTUbprPgNT2p1RqWO2jCt-T6lYYrYK3F_8Qelen3lasq-FgNYnNjVhN9IpXcFjk4Czl0UMDtyCC7DhoG6rCCWo9JbaqvX3Xi2Cfndb_g-Ji2umGkguAA/s1600/Co2AppScreen.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;331&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjna_3FU3ktQPCb8V2suvFPNBTUbprPgNT2p1RqWO2jCt-T6lYYrYK3F_8Qelen3lasq-FgNYnNjVhN9IpXcFjk4Czl0UMDtyCC7DhoG6rCCWo9JbaqvX3Xi2Cfndb_g-Ji2umGkguAA/s400/Co2AppScreen.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  701. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS8PuVX2Ob83xysk4K-m-y-MhKmisEdON_X9Le4RQNPW5zQEzgjAPsSppb3mlLRR-29TN4RH4k1-vjGqFQIrUNV_UNFVm0b_uJXNGtrLtdTKd168SovemSdNcU8SXCHcJaaUnRTa4mGBQ/s1600/Co2LookUp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS8PuVX2Ob83xysk4K-m-y-MhKmisEdON_X9Le4RQNPW5zQEzgjAPsSppb3mlLRR-29TN4RH4k1-vjGqFQIrUNV_UNFVm0b_uJXNGtrLtdTKd168SovemSdNcU8SXCHcJaaUnRTa4mGBQ/s400/Co2LookUp.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  702. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
  703. &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnCsvlACIllPRdtvFSG2GTjAj5yrH2Y0cuPmLVWpPsHLg_YzjWvi_QsBouwPyjxjQSSzHqEalLYoEYRltdbromeyzv-9ZtfJYGGaUIEBqTOmHzv3xTqGKFQc7LhjuLLQRi6gRngDwofl8/s1600/Co2LookUpEdit.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;332&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnCsvlACIllPRdtvFSG2GTjAj5yrH2Y0cuPmLVWpPsHLg_YzjWvi_QsBouwPyjxjQSSzHqEalLYoEYRltdbromeyzv-9ZtfJYGGaUIEBqTOmHzv3xTqGKFQc7LhjuLLQRi6gRngDwofl8/s400/Co2LookUpEdit.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
  704. &lt;br /&gt;
  705. &lt;br /&gt;
  706. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiauKpwdWAMMQ87eVBga9WZAaBQUvuzgbnW8sZRSsS24353EWqOANcymgP869pC6FXOhGLlYvRbwEsCIdzi_c1Idz1CVQsV784PvjFnkrNC5oyhL082biAi-auSXcLp1Ev2KBLfJh90OQo/s1600/Co2Report.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;371&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiauKpwdWAMMQ87eVBga9WZAaBQUvuzgbnW8sZRSsS24353EWqOANcymgP869pC6FXOhGLlYvRbwEsCIdzi_c1Idz1CVQsV784PvjFnkrNC5oyhL082biAi-auSXcLp1Ev2KBLfJh90OQo/s400/Co2Report.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/2978451533331014332/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/co2-emission-calculator.html#comment-form' title='1 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/2978451533331014332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/2978451533331014332'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2010/08/co2-emission-calculator.html' title='Co2 Emission calculator'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOX5VbfA_xW4TWU34ksJSjpDiVDbaSDoyYYDstOuhwZvUc4cgF3lh5v7rqhvnGzsCvxNneCe02rO0i7vmP2-INKo3AlqwoUJurc7DAEv4f32P7ll_IFdycQ94fElXj4D8czucLY9uTnI/s72-c/image038.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-720780386177654236.post-4596392124594560265</id><published>2010-02-02T23:07:00.000+02:00</published><updated>2010-02-02T23:11:54.972+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="about software create"/><title type='text'>Whats this blog about ?</title><content type='html'>Well the whole idea of this blog is to post info about software I&#39;ve created or have participated in the process of creation.</content><link rel='replies' type='application/atom+xml' href='http://mdworkstuff.blogspot.com/feeds/4596392124594560265/comments/default' title='Rašyti komentarus'/><link rel='replies' type='text/html' href='http://mdworkstuff.blogspot.com/2010/02/whats-this-blog-about.html#comment-form' title='0 Komentarai (-ų)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/4596392124594560265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/720780386177654236/posts/default/4596392124594560265'/><link rel='alternate' type='text/html' href='http://mdworkstuff.blogspot.com/2010/02/whats-this-blog-about.html' title='Whats this blog about ?'/><author><name>Marty</name><uri>http://www.blogger.com/profile/01861036275248619650</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//mdworkstuff.blogspot.com/atom.xml%3Forderby%3Dpublished

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda