<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5158407681628613385</atom:id><lastBuildDate>Fri, 13 Sep 2024 13:12:57 +0000</lastBuildDate><category>TFS</category><category>VS2012</category><category>books</category><category>c#</category><category>code smells</category><category>ilmerge</category><category>patterns</category><category>regex</category><title>Simple things</title><description></description><link>http://proggress.blogspot.com/</link><managingEditor>noreply@blogger.com (Elena)</managingEditor><generator>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:category text="Technology"><itunes:category text="Software How-To"/></itunes:category><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-3841468536894237493</guid><pubDate>Thu, 13 Jun 2013 12:59:00 +0000</pubDate><atom:updated>2013-06-13T16:59:36.028+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">regex</category><title>Regex helpers</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
RegexBuddy tool - very powerfull but not free.&lt;br /&gt;
http://regexlib.com - online resource, not used that much. I'll just keep the link here for feature use.&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2013/06/regex-helpers.html</link><author>noreply@blogger.com (Elena)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-1742547384449545025</guid><pubDate>Fri, 18 Jan 2013 10:29:00 +0000</pubDate><atom:updated>2013-01-18T14:39:54.042+04:00</atom:updated><title>Remove rows from DataGridView</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Today I faced with funny bug.&lt;br /&gt;
Once I set some collection as DataSource for DataGridView, the collection becomes read-only and I can't remove anything from there.&lt;br /&gt;
&lt;br /&gt;
I needed just to remove selected rows from DataGridView. And I've tried to do that with very straightforward way:&lt;br /&gt;
&lt;div style="background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;dataGridView1.SelectedRows.Clear();
&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- HTML generated using hilite.me --&gt;And got exception:&lt;br /&gt;
&lt;div style="background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: grey;"&gt;System.NotSupportedException: Operation not supported. Collection is read-only.&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
Workaround I found is:&lt;br /&gt;
&lt;div style="background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #303090; font-weight: bold;"&gt;var&lt;/span&gt; selectedRow = dataGridView1.SelectedRows[&lt;span style="color: #6000e0; font-weight: bold;"&gt;0&lt;/span&gt;];
&lt;span style="color: #303090; font-weight: bold;"&gt;var&lt;/span&gt; cellValue= selectedRow.Cells[&lt;span style="background-color: #fff0f0;"&gt;"RowName"&lt;/span&gt;].FormattedValue;

&lt;span style="color: #303090; font-weight: bold;"&gt;var&lt;/span&gt; collection = (DataView) dataGridView1.DataSource;
collection.Sort = &lt;span style="background-color: #fff0f0;"&gt;"&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;&lt;span style="background-color: #fff0f0;"&gt;RowName&lt;/span&gt;"&lt;/span&gt;;

&lt;span style="color: #303090; font-weight: bold;"&gt;var&lt;/span&gt; rowIndex = collection.Find(cellValue);
collection.Delete(rowIndex);
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Here I used &lt;br /&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;SelectedRows[&lt;span style="color: #6000e0; font-weight: bold;"&gt;0&lt;/span&gt;]&lt;/pre&gt;
&lt;div style="line-height: 125%; margin: 0px; text-align: left;"&gt;
since in my case multiple selection is turned off. &lt;/div&gt;
&lt;div style="line-height: 125%; margin: 0px; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="line-height: 125%; margin: 0px; text-align: left;"&gt;
So 6 lines of code just to remove 1 row from DataGridView.... Maybe is there more elegant way to do that?&lt;/div&gt;
&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2013/01/remove-rows-from-datagridview.html</link><author>noreply@blogger.com (Elena)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-6369900605311844761</guid><pubDate>Tue, 23 Oct 2012 08:12:00 +0000</pubDate><atom:updated>2013-01-18T14:02:47.330+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VS2012</category><title>Wonderfull parallelism in Visual Studio 2012</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgI_rErVXFWi60HpzHuCgFk0Wc6LqPedakPyY_wC4B8mb-T4_a_dCq3p7zS3tHM9dPe0kUKL0f_SgXrX14DDQ2lePQjDEc4xJlmyWSyxqV8qLX4s0vpsCOTJYrlLEpFFzA_KQAAehrd44/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgI_rErVXFWi60HpzHuCgFk0Wc6LqPedakPyY_wC4B8mb-T4_a_dCq3p7zS3tHM9dPe0kUKL0f_SgXrX14DDQ2lePQjDEc4xJlmyWSyxqV8qLX4s0vpsCOTJYrlLEpFFzA_KQAAehrd44/s320/Untitled.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2012/10/wonderfull-parallelism-in-visual-studio.html</link><author>noreply@blogger.com (Elena)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgI_rErVXFWi60HpzHuCgFk0Wc6LqPedakPyY_wC4B8mb-T4_a_dCq3p7zS3tHM9dPe0kUKL0f_SgXrX14DDQ2lePQjDEc4xJlmyWSyxqV8qLX4s0vpsCOTJYrlLEpFFzA_KQAAehrd44/s72-c/Untitled.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-5790135334389000313</guid><pubDate>Fri, 05 Oct 2012 12:48:00 +0000</pubDate><atom:updated>2012-10-05T16:54:43.199+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS</category><title>Installattion and configuration of TFS2012</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: left;"&gt;
Team Foundation Server (TFS) is popular application lifecycle management (ALM) system. It includes such services as source control, build service, reporting service etc.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
TFS is pretty flexible system, you can add services you need (for instance, alarms, custom work item's controls and chek-in policies). By adding custom components you will enlarge functionality as you need.&lt;br /&gt;
Let's have a look how to start using TFS. &lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4 style="text-align: left;"&gt;
&lt;b&gt;Installation&lt;/b&gt;&lt;/h4&gt;
Just follow &lt;a href="http://www.microsoft.com/visualstudio/eng/downloads" target="_blank"&gt;this link&lt;/a&gt;, press "+" near the label "Team Foundation Server"&amp;nbsp; and download trial version of TFS2012.&lt;br /&gt;
Before to start installation make sure you have MS SQL Server 2008 R2 or higher installed on your machine. If needed version is not installed, install new instance (or update the old one).&lt;br /&gt;
Installation is very simple. You have to go through several windows and choose some options.They are all very intuitive.&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;
Configuration &lt;/h4&gt;
Right after the end of installation process you get the window of Team Foundation Server Administartion Console opened:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHBe7AuIKPUpW8_L9REqANdlkS0WYj02WkYm1NkxrVL1OO2wLC9rnGFM_aG8x_TcvYWVxrJ5eE7-PFMZb9u-Xmo0lHHYzm7ENbl45A1MKVZwtuYYVqdCy43CGAmn145IREW49baz-J0dk/s1600/TFS+Administration+Console.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="427" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHBe7AuIKPUpW8_L9REqANdlkS0WYj02WkYm1NkxrVL1OO2wLC9rnGFM_aG8x_TcvYWVxrJ5eE7-PFMZb9u-Xmo0lHHYzm7ENbl45A1MKVZwtuYYVqdCy43CGAmn145IREW49baz-J0dk/s640/TFS+Administration+Console.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Most intersting setting in this window is Notification URL. This is addres that you are going to use for connect this TFS server from Visual Studio.&lt;br /&gt;
&lt;br /&gt;
You can change Notification URL and Server URL by pressing the link Change Urls. For instance, you may need to change these settings when the port of tfs application on IIS was changed.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYMZGUXB8mBcgyTr1KcklTS5zZq_f1tbTkWXzL8yl_G7rhaffTo7vE18SFsM693R3UlWtb_dFgqlBfhkJlvpbS9tyu1K2gR1kHuZeW9AZAvebiu0Ts82iTaSOd2kNXYAIS1QUY1S3qjAg/s1600/Change+Urls.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYMZGUXB8mBcgyTr1KcklTS5zZq_f1tbTkWXzL8yl_G7rhaffTo7vE18SFsM693R3UlWtb_dFgqlBfhkJlvpbS9tyu1K2gR1kHuZeW9AZAvebiu0Ts82iTaSOd2kNXYAIS1QUY1S3qjAg/s320/Change+Urls.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There is one project collection in TFS server by default. It's called DefaultCollection and it's impossible to rename it. You can only add description for this collection (available by click on Edit Settings link).&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOkdB96tQfGGduOPo_C4rV15sphE6J9vL4hJ1w4Dqx0JUWobmhNzBBOSh1NqLJJSXhKKhI3N0QiH5eCfu-C1r0c3r2zd6_lB5BZMdYeNQQfaBsnHmyoY6-7XIzjzVx1nJ3G-UzVptXo7Y/s1600/Team+Project+Collections.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="420" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOkdB96tQfGGduOPo_C4rV15sphE6J9vL4hJ1w4Dqx0JUWobmhNzBBOSh1NqLJJSXhKKhI3N0QiH5eCfu-C1r0c3r2zd6_lB5BZMdYeNQQfaBsnHmyoY6-7XIzjzVx1nJ3G-UzVptXo7Y/s640/Team+Project+Collections.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;By clicking Create Collection link you can create a new collection. Or attach existing collection using existing database (seems like before it should be detached from previous TFS server).&lt;br /&gt;
&lt;br /&gt;
If you would like to be able to build your projects on TFS automaticaly then you need to configure &lt;b&gt;Build Configuration&lt;/b&gt; feature. When you open this tab right after installation you see that this feature is already installed.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6NgSWMgjOykrCOc68_PwiFFDtyw1KGsseUVoVixWjfHNbD1iDms240MT9bgyPSyQslz7gSnCUNbo-1OptkCpXjrOKcmQhgqw-zqjOx9F-wo0Tl6AIt2PIL5cbjZMmZ9CKewfVZhP-YiY/s1600/Build+Configuration.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6NgSWMgjOykrCOc68_PwiFFDtyw1KGsseUVoVixWjfHNbD1iDms240MT9bgyPSyQslz7gSnCUNbo-1OptkCpXjrOKcmQhgqw-zqjOx9F-wo0Tl6AIt2PIL5cbjZMmZ9CKewfVZhP-YiY/s640/Build+Configuration.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
1. Click Configure Installed Features link here&lt;br /&gt;
2. Push Start Wizard button in the window that appears&lt;br /&gt;
3. Push Next button in the Welcome window (there are no fields to complete there).&lt;br /&gt;
4. Choose TFS collection to configure Build service for (leave it unchanged if you didn't create or attach new collections):&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Vp-c1XBapFUVl_WBWpUDpSjvm2VIfTBWfUY2X3REpVBkgryAknFiatJneWOrzoMw48166tZXc224DXLi-3sMeUSO-DhYI-57XUW-EqDMO6bMKKAnaYeWPcveLaMITLd_ErNTTO0Dr50/s1600/Build+Configuration+-+collection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Vp-c1XBapFUVl_WBWpUDpSjvm2VIfTBWfUY2X3REpVBkgryAknFiatJneWOrzoMw48166tZXc224DXLi-3sMeUSO-DhYI-57XUW-EqDMO6bMKKAnaYeWPcveLaMITLd_ErNTTO0Dr50/s400/Build+Configuration+-+collection.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
5. Choose the number of build agents for your build controller (that is machine where we configure our build service). I chose recomended count of agents per controller - one (by default):&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf28pPWIp3pSyxFyp727S5CRdEcpyVmHy9wJuxEusJ1zORE8XzODgNKSz-VjAanktwepvNZ5Pr3SWeKZVD3aTDItalXZDjwRXWn63TLvvRnyXeQzq5vdhQ7ysJsDMYo1uOIdNiI630PxA/s1600/Build+Configuration+-+agents.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf28pPWIp3pSyxFyp727S5CRdEcpyVmHy9wJuxEusJ1zORE8XzODgNKSz-VjAanktwepvNZ5Pr3SWeKZVD3aTDItalXZDjwRXWn63TLvvRnyXeQzq5vdhQ7ysJsDMYo1uOIdNiI630PxA/s400/Build+Configuration+-+agents.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
6. Choose account for build service. Under this account your builds will be run in feature. If you have a domain, it would be good to have several account in there and use this account for such purpose.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdEu-IQtKaOSf9tZmLkU8esBic6A23U5s16S03u98IDi6MJDGEcbVru-6UVwuqVC4hLnXQalwwHioJ0nEB8FJ1N76fm92pp3bLsjkBdZDDAcKqHfy6_TIr_AmZs0GbhLTibpatDx8PhZA/s1600/Build+Configuration+-+account.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdEu-IQtKaOSf9tZmLkU8esBic6A23U5s16S03u98IDi6MJDGEcbVru-6UVwuqVC4hLnXQalwwHioJ0nEB8FJ1N76fm92pp3bLsjkBdZDDAcKqHfy6_TIr_AmZs0GbhLTibpatDx8PhZA/s400/Build+Configuration+-+account.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
7. Push Next button in Review window&lt;br /&gt;
8. Puch Configure button in Readiness Checks window (after checks have been performed)&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPvr8NA-Ak3y3IuFD10JJh2Y-eekWSvuqERUCERzaS4jyZNUpnsVnANgWy4lXKeF4XNNAOlR6uWnJj68NUNeA-m2ZhLfQpiwPVu0h67DAv8a83wGurBMMZm3bwdJ3N2NiCHTt1VMv_OXc/s1600/Build+Configuration+-+checks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPvr8NA-Ak3y3IuFD10JJh2Y-eekWSvuqERUCERzaS4jyZNUpnsVnANgWy4lXKeF4XNNAOlR6uWnJj68NUNeA-m2ZhLfQpiwPVu0h67DAv8a83wGurBMMZm3bwdJ3N2NiCHTt1VMv_OXc/s400/Build+Configuration+-+checks.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
9. Push next button in Configure button after configuration passed&lt;br /&gt;
10. Congratulations! Build service has been configured. Push Close button in Complete window and Close button in Wizard window to close wizard.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQKSBjx_qZ_bH5WThPTColBwdvbpjjXNP01J3MbqSrm1r69UM0BooO_8YLr532kbHtwlH_n664MivqXrJ2JHjIQ1YL9QyWB1-PjEw9PpPMX9OXpbiO75SB8GPbIeQbRGoG_H7VB4iPOGE/s1600/Build+Configuration+-+complete.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQKSBjx_qZ_bH5WThPTColBwdvbpjjXNP01J3MbqSrm1r69UM0BooO_8YLr532kbHtwlH_n664MivqXrJ2JHjIQ1YL9QyWB1-PjEw9PpPMX9OXpbiO75SB8GPbIeQbRGoG_H7VB4iPOGE/s400/Build+Configuration+-+complete.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Basic TFS configuration is done and TFS is ready for use.&lt;br /&gt;
Next article is going to be about how to add project to TFS, do basic actions (check-in, check-out) and use command line interface.&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2012/10/installattion-and-configuration-of.html</link><author>noreply@blogger.com (Elena)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHBe7AuIKPUpW8_L9REqANdlkS0WYj02WkYm1NkxrVL1OO2wLC9rnGFM_aG8x_TcvYWVxrJ5eE7-PFMZb9u-Xmo0lHHYzm7ENbl45A1MKVZwtuYYVqdCy43CGAmn145IREW49baz-J0dk/s72-c/TFS+Administration+Console.png" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-8156262087811343109</guid><pubDate>Wed, 19 Sep 2012 11:52:00 +0000</pubDate><atom:updated>2012-09-19T15:54:16.868+04:00</atom:updated><title>SQL exersice</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
One of my mates asked me a question related to building of sql query. She was asked that question on the interview for one IT company and had a difficulties with finding a solution.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Task: &lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
There are 2 tables in database. One table containes 2 fields: ID (int, primary key) and client account number (int). The other table contains 4 fields: ID (int), date (Date), the counter (int), the client account number (key, linked to first table).&lt;br /&gt;
Result of query should show client account number, the counter's value for latest date from table 2 for this account, that latest date.&lt;/blockquote&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: green; font-weight: bold;"&gt;SELECT&lt;/span&gt; 
 AN.AccountNumber,
 &lt;span style="color: green; font-weight: bold;"&gt;C&lt;/span&gt;.&lt;span style="color: #007020;"&gt;Date&lt;/span&gt;,
 &lt;span style="color: green; font-weight: bold;"&gt;C&lt;/span&gt;.Counter    
&lt;span style="color: green; font-weight: bold;"&gt;FROM&lt;/span&gt; 
 AccountNumbers &lt;span style="color: green; font-weight: bold;"&gt;AS&lt;/span&gt; AN 
&lt;span style="color: green; font-weight: bold;"&gt;INNER&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;JOIN&lt;/span&gt; 
(&lt;span style="color: green; font-weight: bold;"&gt;SELECT&lt;/span&gt; 
 Counters.AccountNumber,
 Counters.&lt;span style="color: #007020;"&gt;Date&lt;/span&gt;,
 Counters.Counter,
 &lt;span style="color: green; font-weight: bold;"&gt;MAX&lt;/span&gt;(Counters.&lt;span style="color: #007020;"&gt;Date&lt;/span&gt;) OVER(PARTITION &lt;span style="color: green; font-weight: bold;"&gt;BY&lt;/span&gt; Counters.AccountNumber) &lt;span style="color: green; font-weight: bold;"&gt;AS&lt;/span&gt; &lt;span style="color: #a06000;"&gt;"MaxDate"&lt;/span&gt;
&lt;span style="color: green; font-weight: bold;"&gt;FROM&lt;/span&gt;
 Counters)
&lt;span style="color: green; font-weight: bold;"&gt;AS&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;C&lt;/span&gt;
&lt;span style="color: green; font-weight: bold;"&gt;ON&lt;/span&gt; AN.ID &lt;span style="color: #303030;"&gt;=&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;C&lt;/span&gt;.AccountNumber
&lt;span style="color: green; font-weight: bold;"&gt;WHERE&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;C&lt;/span&gt;.&lt;span style="color: #007020;"&gt;Date&lt;/span&gt; &lt;span style="color: #303030;"&gt;=&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;C&lt;/span&gt;.MaxDate
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The question looks simple but there is a little trick in solution.&lt;br /&gt;
After solving this exercise I was interested in this question and looked for possibly more optimal solutions. There is a lot of information about getting the max in group &lt;a href="http://sqlblog.com/blogs/adam_machanic/archive/2008/02/08/who-s-on-first-solving-the-top-per-group-problem-part-1-technique.aspx" target="_blank"&gt;on this page&lt;/a&gt;.&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2012/09/sql-exersice.html</link><author>noreply@blogger.com (Elena)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-2042588393010933902</guid><pubDate>Sun, 16 Sep 2012 06:56:00 +0000</pubDate><atom:updated>2012-09-18T18:15:25.972+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">books</category><category domain="http://www.blogger.com/atom/ns#">code smells</category><title>Code smells</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
A couple of days ago I finished reading the wonderful book by &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" target="_blank"&gt;Robert Martin "Clean code"&lt;/a&gt;. Despite all examples were on Java I dived into code in the book with a big pleasure. Robert explains things any developer should know and use every day. Closer to the end of the book he formulates all rules he told about as short and clear "code smells".&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
By my opinion most important of them are:&lt;/div&gt;
&lt;div&gt;
1. &lt;b&gt;Understandable names of entities.&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
The classes, methods, variables and all entities in a code should (even must:) have good names. These names should clearly show the idea and purpose of current entity. The developer has to spent some time to choose good names. And don't be afraid to go back in code and change name if he came up with something better. Our days it's easy to do such things. I use Visual Studio + Resharper and don't have any problems with renaming.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
The new thing that I learned from this book was that then bigger the area of visibility for variable then more long and detailed its name should be. Actually the idea is quite clear. When we use the variables just as counter for cycle it doesn't make much sense to give them long names. It can be even annoying to read code with such cycle's counters, so everybody use short names here. But now I see that this is just separate case of more general rule: more the area of visibility - more detailed name of variable. That's quite logically.&lt;br /&gt;
If there are standards of naming in company you work for - use them. If not - use general standards and common sense. To invent a bicycle is not the best idea. Extravagant or funny names can be good for you (if you are the only reader of code) but developer has to think about people which are going to read this code. Not everybody have the same sense of humor :) And not everybody want to spent time trying to figure out what the name "show_me_the_power" means (this is the name of variable from real code I worked with when I was&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;&amp;nbsp;in web development. Yep, my colleague was funny guy :)).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;2. &lt;b&gt;Separate different logic levels&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;That means to divide more and less abstract things and don't mess them up in one class\method. &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;That wouldn't be nice to have in one methods things like showing of some data to user and realization of some low level algorithm.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;3. &lt;b&gt;Move unobvious things to separate methods or involve additional variables&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;I know people that really like calculations and constructions which take several lines. I can't see such code without tears. It takes time to understand what author meant. Would be great to make the live a little bit easier at once, devide such long calculations to separate pieces and move them to separate variable or even methods&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;4. &lt;b&gt;Write unit tests&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;This is very clear thing. Tests help a lot to catch mistakes after changes in code.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;And they help to improve the structure of code. The using of dependency injection and inversion of control will come itself if developer thinks about tests in the very begining.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;On the other hand here (as probably everywhere) fanatism is not required. Robert claims that developer should cover with tests as many lines of code as possible. I believe that the balanse is more important then to follow the rules blindly. If the deadline is almost here and a customer waits for his prototype, it's not time to care about 100% code covering. &lt;/span&gt;&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;:)&lt;/span&gt; But production code requires tests of course.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class="Apple-style-span" style="-webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875);"&gt;There were much more smells mentioned in that book. Some of them are obvious, some - not. Anyway books like this should be read by developers from time to time. It helps to look at things wider.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2012/09/code-smells.html</link><author>noreply@blogger.com (Elena)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-6695819245004100863</guid><pubDate>Fri, 31 Aug 2012 08:56:00 +0000</pubDate><atom:updated>2012-10-03T16:17:56.371+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ilmerge</category><title>Some tips on the use ILMerge</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;b&gt;What is it?&lt;/b&gt;&lt;br /&gt;
IlMerge is a small utility produced by Microsoft. It's free and you can &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=17630" target="_blank"&gt;download the last version&lt;/a&gt; in Microsoft Download Center. Before to start using it you have to install downloaded .msi package. After installation you could find ILMerge.exe file in folder c:\Program Files\Microsoft\ILMerge\ (or c:\Program Files (x86)\Microsoft\ILMerge\ for x64 OS).&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Run it with /? from command line and you'll see the list of available options. For my version this list is:&lt;br /&gt;
&lt;i&gt;Usage: ilmerge [/lib:directory]* [/log[:filename]] [/keyfile:filename [/delaysign]] [/internalize[:filename]] [/t[arget]:(library|exe|winexe)] [/closed] [/ndebug] [/ver:version] [/copyattrs [/allowMultiple] [/keepFirst]] [/xmldocs] [/attr:filename] [/targetplatform:&amp;lt;version&amp;gt;[,&amp;lt;platformdir&amp;gt;] | /v1 | /v1.1 | /v2 | /v4] [/useFullPublicKeyForReferences] [/wildcards] [/zeroPeKind] [/allowDup:type]* [/union] [/align:n] /out:filename &amp;lt;primary assembly&amp;gt; [&amp;lt;other assemblies&amp;gt;...]&lt;/i&gt;&lt;br /&gt;
Simple example of use:&lt;i&gt; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;"c:\Program Files\Microsoft\ILMerge\ILMerge.exe" "c:\InputApp.exe" "c:\InputLib.dll" /t:winexe /out:"c:\OutputApp.exe"&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Where to use?&lt;/b&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;
The main idea of using ILMerge is getting one file from banch of files. I mean if you have several files (libraries or application and libraries) and are interested to deliver the only one executable\library to user, then you can use ILMerge to combine all your stuff to one file.&lt;br /&gt;
When may you need it? Definitelly in case of getting one file for setup of your application. Users won't be happy if you suggest them to copy many files and run one of them to install your application. Probably they would like just get and run one .exe file to install application.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;My experience&lt;/b&gt; &lt;br /&gt;
In some projects where I used ILMerge it worked great. But in one project &lt;b&gt;I got problem during merge&lt;/b&gt; that I still cannot solve. The problems is when I try to do merge usin this ustility I get an error:&lt;br /&gt;
An exception occurred during merging:&lt;br /&gt;
&amp;nbsp;&lt;i&gt;ILMerge.Merge: The assembly 'MyAssembly' was not merged in correctly. It is still listed as an external reference in&lt;br /&gt;&amp;nbsp;&amp;nbsp; the target assembly.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at ILMerging.ILMerge.Merge()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at ILMerging.ILMerge.Main(String[] args)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Possible reasons. By scaning internet I found that this error can appear if something from this list isn't true:&lt;br /&gt;
1. The language of assembly MyAssembly should have the same as programming language of another assemblies in merge set. &lt;br /&gt;
2. The assembly MyAssembly should be signed with the same key as another input files.&lt;br /&gt;
3. Added /closed attribute to merge to get 'transitive closure' (why so, see &lt;a href="http://stackoverflow.com/questions/1807652/ilmerge-dll-not-merged-in-correctly" target="_blank"&gt;here&lt;/a&gt;)&lt;br /&gt;
4. Set MyAssembly as first assembly in list of input assemblies (why so, see &lt;a href="http://stackoverflow.com/questions/1341267/is-it-possible-to-successfully-merge-transitive-assembly-references-with-ilmerge" target="_blank"&gt;here&lt;/a&gt; in answers).&lt;br /&gt;
And here I got surprise! If I set assembly as first file in input list then I'll get output file with type 'dll' even if parameter /t:winexe was specified in command line. Yes, default behavior is that type of output file equals the type of key file (that is exactly the first file in input list). But documentation says if 'target' parameter is specified then it should rewrite default behavior. Seems like it should work (in theory) so, but it doesn't.&lt;br /&gt;
I checked pp 1-4. Nothing did work out for me...&lt;br /&gt;
&lt;br /&gt;
I still have some qustions about how several things in ILMerge  work. But anyway I think it is nice utility that can be very useful for not big tasks and input files without complicated references between each other. &lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2012/08/some-tips-of-use-ilmerge.html</link><author>noreply@blogger.com (Elena)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5158407681628613385.post-7022636296853082123</guid><pubDate>Tue, 17 May 2011 18:31:00 +0000</pubDate><atom:updated>2012-08-30T18:32:58.151+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">patterns</category><title>Singletone.</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Let's start from simpliest things.&lt;br /&gt;
&lt;br /&gt;
The main idea of Singletone pattern is: private class constructor, private field with the only instance of class and public method that returns this instance. &lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
We can implement it this way (there are variations, but as I can see this is the most popular way):&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: green; font-weight: bold;"&gt;class&lt;/span&gt; &lt;span style="color: #b00060; font-weight: bold;"&gt;SingletoneExample&lt;/span&gt;
{
 &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;static&lt;/span&gt; SingletoneExample instance = &lt;span style="color: green; font-weight: bold;"&gt;null&lt;/span&gt;;

 &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #0060b0; font-weight: bold;"&gt;SingletoneExample&lt;/span&gt;()
 {
 }

 &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;static&lt;/span&gt; SingletoneExample getInstance
 {
  &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;get&lt;/span&gt;
  {
   &lt;span style="color: green; font-weight: bold;"&gt;if&lt;/span&gt; (instance == &lt;span style="color: green; font-weight: bold;"&gt;null&lt;/span&gt;)
   {
    instance = &lt;span style="color: green; font-weight: bold;"&gt;new&lt;/span&gt; SingletoneExample();
   }
   &lt;span style="color: green; font-weight: bold;"&gt;return&lt;/span&gt; instance;
  }
  &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;set&lt;/span&gt;;
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
To test this pattern you can use next code:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; background: white; border-width: .1em .1em .1em .8em; border: solid gray; color: black; overflow: auto; padding: .2em .6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: green; font-weight: bold;"&gt;using&lt;/span&gt; &lt;span style="color: #0e84b5; font-weight: bold;"&gt;System&lt;/span&gt;;
&lt;span style="color: green; font-weight: bold;"&gt;namespace&lt;/span&gt; &lt;span style="color: #0e84b5; font-weight: bold;"&gt;Singletone&lt;/span&gt;
{
 &lt;span style="color: green; font-weight: bold;"&gt;class&lt;/span&gt; &lt;span style="color: #b00060; font-weight: bold;"&gt;Program&lt;/span&gt;
 {
  &lt;span style="color: green; font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;void&lt;/span&gt; &lt;span style="color: #0060b0; font-weight: bold;"&gt;Main&lt;/span&gt;(&lt;span style="color: #303090; font-weight: bold;"&gt;string&lt;/span&gt;[] args)
  {
   SingletoneExample singl = SingletoneExample.getInstance;
   singl.Prop = &lt;span style="background-color: #fff0f0;"&gt;"op"&lt;/span&gt;;
   Console.WriteLine(singl.Prop);
   SingletoneExample singl1 = SingletoneExample.getInstance;
   Console.WriteLine(singl1.Prop);
   Console.ReadLine();
  }
 }

 &lt;span style="color: green; font-weight: bold;"&gt;class&lt;/span&gt; &lt;span style="color: #b00060; font-weight: bold;"&gt;SingletoneExample&lt;/span&gt;
 {
  &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;static&lt;/span&gt; SingletoneExample instance = &lt;span style="color: green; font-weight: bold;"&gt;null&lt;/span&gt;;
  &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #303090; font-weight: bold;"&gt;string&lt;/span&gt; prop;
  
  &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: #0060b0; font-weight: bold;"&gt;SingletoneExample&lt;/span&gt;()
  {
  }

  &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;static&lt;/span&gt; SingletoneExample getInstance
  {
   &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;get&lt;/span&gt;
   {
    &lt;span style="color: green; font-weight: bold;"&gt;if&lt;/span&gt; (instance == &lt;span style="color: green; font-weight: bold;"&gt;null&lt;/span&gt;)
    {
     instance = &lt;span style="color: green; font-weight: bold;"&gt;new&lt;/span&gt; SingletoneExample();
    }
    &lt;span style="color: green; font-weight: bold;"&gt;return&lt;/span&gt; instance;
   }
   &lt;span style="color: green; font-weight: bold;"&gt;private&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;set&lt;/span&gt;;
  }

  &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #303090; font-weight: bold;"&gt;string&lt;/span&gt; Prop
  {
   &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;get&lt;/span&gt;
   {
    &lt;span style="color: green; font-weight: bold;"&gt;return&lt;/span&gt; prop;
   }
   &lt;span style="color: green; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: green; font-weight: bold;"&gt;set&lt;/span&gt;
   {
    prop = &lt;span style="color: green; font-weight: bold;"&gt;value&lt;/span&gt;;
   }
  }
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://proggress.blogspot.com/2011/05/singletone.html</link><author>noreply@blogger.com (Elena)</author><thr:total>0</thr:total></item></channel></rss>