<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://studentguru.gr/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Development Romance</title><subtitle type="html">WPF and C#</subtitle><id>http://studentguru.gr/blogs/solidus/atom.aspx</id><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/default.aspx" /><link rel="self" type="application/atom+xml" href="http://studentguru.gr/blogs/solidus/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2009-10-25T18:08:00Z</updated><entry><title>watiN: How to automate your browser to do forum posts for you</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2010/03/15/watin-how-to-automate-your-browser-to-do-forum-posts-for-you.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2010/03/15/watin-how-to-automate-your-browser-to-do-forum-posts-for-you.aspx</id><published>2010-03-15T12:05:54Z</published><updated>2010-03-15T12:05:54Z</updated><content type="html">&lt;p&gt;In this post, we are going to see how to automate our browser to do forum posts for us. The tool that is used for browser automation is called &lt;a href="http://watin.sourceforge.net/documentation.html"&gt;watiN&lt;/a&gt;. Download the package, unzip it, put it in the program files folder and we are ready to create our first automation program.&lt;/p&gt;  &lt;p&gt;Create a new WPF project (as you can see, you don’t need any special project template to do your job):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_363C61C4.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_5A1F5615.png" width="644" height="461" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Add the following XAML code in your window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_7032951C.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_3FC3C2B9.png" width="652" height="342" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_4EB7C548.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_40A3190F.png" width="653" height="346" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, your window should look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_018EBC29.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_34ED1036.png" width="644" height="407" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It’s time to use watiN, thankfully, the only thing we need to do is add a .dll reference. Right click on your project ---&amp;gt; add reference ---&amp;gt; navigate to the folder where you put the watiN folder, open it, open the bin folder and choose the &lt;strong&gt;WatiN.Core.dll&lt;/strong&gt; library:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_29E83141.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_2B4EE4C4.png" width="571" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now it’s time for some real action, add a using of the &lt;strong&gt;WatiN.Core&lt;/strong&gt; namespace, add a private variable just like the following one:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_17EB51DA.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_05A28B18.png" width="244" height="26" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Go to the &lt;u&gt;SubmitButton_Click&lt;/u&gt; event and lets get started to use this fine tool:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_48152D4E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_6FDDC41C.png" width="644" height="153" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this part we create a browser instance and command it to navigate to a specific url. The &lt;strong&gt;IE&lt;/strong&gt; class handles an instance of the Internet Explorer browser.&amp;#160; For more information about the watiN classes, have a look at the watiN &lt;a href="http://watin.sourceforge.net/documentation.html"&gt;documentation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Now, we need to know the name of the html input controls that form the html form of the login action. A very good tool for such purposes is the &lt;a href="http://getfirebug.com/"&gt;firebug&lt;/a&gt; plugin for firefox and the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;amp;displaylang=en"&gt;developer toolbar&lt;/a&gt; for Internet Explorer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_6BF590EE.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_49C5377B.png" width="644" height="421" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The image above is an example of the firebug plugin with which we find the name attribute of the username text input. Using such tools we may now write the following code:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_1C01B17A.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_4A13AF87.png" width="644" height="260" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We search for a username text input, if it’s found, then we must login, else ti means tha we are already logged in. We type our username and password in the appropriate text inputs, we click on the checkbox in order to be remebered and finally we click on the “Log in” button to log in. If the username text input is found again, it means tha the credentials we provided are invalid.&lt;/p&gt;  &lt;p&gt;Finally, we add the following code in order to make a new post:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_1EF3C3D5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_0B68F4E5.png" width="644" height="106" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We find the text input for the quick reply and click on the button to submit our post.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lets see an example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_25CB78AD.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_1C08A1E6.png" width="644" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_7A552541.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_52FD2123.png" width="644" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see, the post was made successfully.&lt;/p&gt;  &lt;p&gt;You can download the program &lt;a href="http://comealong.xelixis.net/files/SolidBot.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I hope you enjoy it !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=watiN: How to automate your browser to do forum posts for you&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2010/03/15/watin-how-to-automate-your-browser-to-do-forum-posts-for-you.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="watiN: How to automate your browser to do forum posts for you";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2010/03/15/watin-how-to-automate-your-browser-to-do-forum-posts-for-you.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=111038" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>Getting started with WPF validation</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2010/02/20/getting-started-with-wpf-validation.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2010/02/20/getting-started-with-wpf-validation.aspx</id><published>2010-02-20T20:08:26Z</published><updated>2010-02-20T20:08:26Z</updated><content type="html">&lt;p&gt;In this post we are going to see how we can validate input controls in WPF&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;1.&amp;#160; Gettting started&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Create a new WPF application and add the following controls:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_153BF534.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_5FC85470.png" width="667" height="70" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It should look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_2ECB3474.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_7548247C.png" width="466" height="242" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finally, change the code behind so that it looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_50B696F8.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_2505CCFC.png" width="395" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;2.&amp;#160; Create the validation rule&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This form is valid only if the text box is not empty, so we need a rule that validates the text box. Create a new class and name it &lt;u&gt;RequiredValidator:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_3AF1CFFD.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_5E43E604.png" width="644" height="166" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Inherits the &lt;u&gt;ValidationRule&lt;/u&gt; class and overrides the &lt;u&gt;Validate&lt;/u&gt; function. This function is responsible for validation of any input. If the text box is empty, it returns a new &lt;u&gt;ValidationResult&lt;/u&gt; object which indicates that input is invalid, else, it returns the ValidationResult object which indicates that input is valid.&lt;/p&gt;  &lt;p&gt;Now we must add this class to the previous window like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_53A8A953.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_4BB62853.png" width="644" height="107" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Change text box’s properties so that it looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_73128C2C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_14944C6D.png" width="644" height="154" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now the text box is bound to a property named &lt;u&gt;Text&lt;/u&gt; which resides in our &lt;u&gt;Window1&lt;/u&gt; class, when its text is changed, ti automatically updates the value of the property it’s bound to. As you can see, we have added the RequiredValidator class in the validation rules of this binding. Build and run and you should see something lie this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_437C1FB3.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_305D83B8.png" width="404" height="258" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The red border indicates that input is invalid. If you type anything and after that press the button, the red border is gone.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;3.&amp;#160; Change the error template&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As we saw earlier, the default error template is the red border around the text box, but this is not that useful, so lets see how to create our own error template.&lt;/p&gt;  &lt;p&gt;We are going to change the style of this text box and add a new &lt;u&gt;ControlTemplate&lt;/u&gt; for the &lt;u&gt;ErrorTemplate&lt;/u&gt;. Add the following in the window resources (&lt;u&gt;Window.Resources&lt;/u&gt;):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_228DCE6E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_598CCE09.png" width="732" height="293" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, it should look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_09DB54D3.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_493B9914.png" width="531" height="339" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;4.&amp;#160; Disable button if input is invalid&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Make the following changes in the xaml code:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_788F9F4F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_1D45D829.png" width="713" height="246" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Handle the &lt;u&gt;TextChanged&lt;/u&gt; event of the text box and disable the button.&lt;/p&gt;  &lt;p&gt;In the TextChanged event handler:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_20133F2F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_7152A7EE.png" width="644" height="141" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This means that if input is invalid, the button is disabled.&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=Getting started with WPF validation&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2010/02/20/getting-started-with-wpf-validation.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="Getting started with WPF validation";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2010/02/20/getting-started-with-wpf-validation.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=110293" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="WPF validation" scheme="http://studentguru.gr/blogs/solidus/archive/tags/WPF+validation/default.aspx" /></entry><entry><title>Creating applications with plug-in support</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2010/01/23/creating-applications-with-plug-in-support.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2010/01/23/creating-applications-with-plug-in-support.aspx</id><published>2010-01-23T14:32:32Z</published><updated>2010-01-23T14:32:32Z</updated><content type="html">&lt;p&gt;In order to let your application to have plug-in support, you need to follow these steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create an interface that every plug-in will implement&lt;/li&gt;    &lt;li&gt;Choose a place in which the plug-ins will reside&lt;/li&gt;    &lt;li&gt;Make your application find those plug-ins and invoke their actions&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Lets see an example, in which we have a window that contains a TextBox and a Button and when the button is pressed, all plug-ins are invoked:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_1B94DC75.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_2FD53504.png" width="242" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You may press the button as many times as you like, but nothing is going to happen. It may be an unuseful application, but we are going to let users add their own functionality with plug-ins.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 1: Create an interface that every plug-in will implement&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In order to recognize our plug-ins, they need to have a specific form (implement an interface). Create a new &lt;u&gt;class library &lt;/u&gt;project and create the following interface:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_7D86CA40.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_2CDAD07C.png" width="313" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is the interface that every plug-in is going to implement. As you can see, there is also another class: The PluginContext class. This class is, actually, the parameters passed from the main application. In this example, it is like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_0BF0DEF2.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_65255962.png" width="315" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It only passes the text of the textbox.&lt;/p&gt;  &lt;p&gt;Build the project and now that the library is ready, add a reference to it in the main application.&lt;/p&gt;  &lt;p&gt;Lets create our first plug-in now:&lt;/p&gt;  &lt;p&gt;Create a new &lt;u&gt;class library&lt;/u&gt; project, add a reference to the library that contains the plug-ins’ interface and create a class like the following one:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_5E2AC83F.png" width="548" height="484" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt; The purpose of this plug-in is to keep only the english letters in the textbox. Build it and we are ready to move on.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;&lt;u&gt;Step 2: Choose a place in which the plug-ins will reside&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;They may reside anywhere you like. In this example, we are going to create a directory named &lt;u&gt;Plugins:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_5EAF8C19.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_17EB1471.png" width="644" height="271" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Every plug-in we create will be put inside this directory. Lets add the plug-in we created earlier:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_32E695DF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_42D518FC.png" width="644" height="201" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 3: Make your application find those plug-ins and invoke their actions&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We are ready for the final step, create a handler for button’s click event and add the following code:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_1C635BA0.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_5535D92B.png" width="624" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_6A353C76.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_4CE796BF.png" width="644" height="145" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It check the &lt;u&gt;Plugins&lt;/u&gt; directory for files with a &lt;u&gt;.dll&lt;/u&gt; extension and if finds one, load the assembly, checks all its types and if it finds a type that implements the &lt;u&gt;IPlugin&lt;/u&gt; interface, invokes its action and saves the results in the textbox.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is the &lt;a href="http://comealong.xelixis.net/files/10/Plugins.zip"&gt;code of this example&lt;/a&gt;,&amp;#160; i hope you like it and, why not, create new plug-ins for this example &lt;img src="http://www.studentguru.gr/emoticons/emotion-2.gif" alt="Big Smile" /&gt; !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=Creating applications with plug-in support&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2010/01/23/creating-applications-with-plug-in-support.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="Creating applications with plug-in support";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2010/01/23/creating-applications-with-plug-in-support.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=109977" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term=".NET application plug in" scheme="http://studentguru.gr/blogs/solidus/archive/tags/.NET+application+plug+in/default.aspx" /></entry><entry><title>Beginning with windows mobile SDK</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2010/01/22/beginning-with-windows-mobile-sdk.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2010/01/22/beginning-with-windows-mobile-sdk.aspx</id><published>2010-01-22T20:40:39Z</published><updated>2010-01-22T20:40:39Z</updated><content type="html">&lt;p&gt;Recently, i purchased a samsung omnia in a very good price and decided to create a small application for it. All i needed was the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06111A3A-A651-4745-88EF-3D48091A390B&amp;amp;displaylang=en"&gt;windows mobile SDK 6.0 professional&lt;/a&gt; and &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&amp;amp;displaylang=en"&gt;windows Mobile 6.5 Developer Tookit&lt;/a&gt;. Thankfully, i finished my application and decided to make this blog post in order to write a small guide into beginning using the mobile SDK with smartphone’s special features, like &lt;u&gt;sending sms messages&lt;/u&gt;, &lt;u&gt;making phone calls&lt;/u&gt;, &lt;u&gt;detecting sms messages&lt;/u&gt;, &lt;u&gt;doing operations with your contacts, pictures etc&lt;/u&gt;, &lt;u&gt;using the camera&lt;/u&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;1st part: Windows Forms&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The platform in which you develop your applications, is a subset of the windows forms. You can download my application &lt;a href="http://comealong.xelixis.net/files/9/GroupContacts.zip"&gt;here&lt;/a&gt;, so that you can have a look at the way a windows mobile application is made. It’s a small program that groups your contacts and lets you send an sms message to all members of a group (it’s temporary in greek).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;2nd part: smartphone special features&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Here are examples of some special features:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Send sms message:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_0ADA68E8.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_3E6289AC.png" width="644" height="156" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Make a phone call:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_5C6CA96E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_1850ED77.png" width="644" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Detect sms messages:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_303B72B1.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_7BCA3F06.png" width="644" height="153" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Choosing contact:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_603FA5B6.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_2FF1B665.png" width="644" height="121" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Choosing picture:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_100BC686.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_3725C421.png" width="644" height="80" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Using camera:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/image_4D390328.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.studentguru.gr/blogs/solidus/image_thumb_7A0B89B8.png" width="644" height="77" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I hope you like it….!!!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=Beginning with windows mobile SDK&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2010/01/22/beginning-with-windows-mobile-sdk.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="Beginning with windows mobile SDK";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2010/01/22/beginning-with-windows-mobile-sdk.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=109973" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="windows mobile SDK" scheme="http://studentguru.gr/blogs/solidus/archive/tags/windows+mobile+SDK/default.aspx" /></entry><entry><title>CSS Tips – Tip 2 – Stretch background image</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2010/01/04/css-tips-tip-2-stretch-background-image.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2010/01/04/css-tips-tip-2-stretch-background-image.aspx</id><published>2010-01-03T23:53:00Z</published><updated>2010-01-03T23:53:00Z</updated><content type="html">&lt;p&gt;Today is a special day, do you know why ? Because i am finally able to put my favorite band’s album cover as a background image on my web site and let it stretch so that it covers the whole page without any loops. Do you want to know how ? Lets have a look together.&lt;/p&gt;  &lt;p&gt;In CSS 3, there is a straight way to stretch a background image, but in CSS 2, there is no straight way, so we are going to use the following trick:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;put an image in your page via the &amp;lt;img&amp;gt; tag&lt;/li&gt;    &lt;li&gt;position it at the top left corner via CSS&lt;/li&gt;    &lt;li&gt;make it use all of the available page height and width via CSS&lt;/li&gt;    &lt;li&gt;make it be under every element on your page via CSS&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Here are the answers:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&amp;lt;img src=”image url” id=”background_image” /&amp;gt;&lt;/li&gt;    &lt;li&gt;body, html { width: 100%; height: 100%; }&amp;nbsp; #background_image { position: fixed;&amp;nbsp; top: 0px;&amp;nbsp; left: 0px; }&lt;/li&gt;    &lt;li&gt;body, html { width: 100%; height: 100%; }&amp;nbsp; #background_image { position: fixed;&amp;nbsp; top: 0px;&amp;nbsp; left: 0px;&amp;nbsp; width: 100%;&amp;nbsp; height: 100%; }&lt;/li&gt;    &lt;li&gt;body, html { width: 100%; height: 100%; }&amp;nbsp; #background_image { position: fixed;&amp;nbsp; top: 0px;&amp;nbsp; left: 0px;&amp;nbsp; width: 100%;&amp;nbsp; height: 100%;&amp;nbsp; z-index: –1; }&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Hope you enjoy it !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=CSS Tips – Tip 2 – Stretch background image&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2010/01/04/css-tips-tip-2-stretch-background-image.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="CSS Tips – Tip 2 – Stretch background image";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2010/01/04/css-tips-tip-2-stretch-background-image.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=109692" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>&lt;?php include(…) ?&gt;: strange extra white space at the beginning of page</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/12/30/lt-php-include-gt-strange-extra-white-space-at-the-beginning-of-page.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/12/30/lt-php-include-gt-strange-extra-white-space-at-the-beginning-of-page.aspx</id><published>2009-12-30T21:15:26Z</published><updated>2009-12-30T21:15:26Z</updated><content type="html">&lt;p&gt;Well, recently i took my first steps with php, created a header, a footer, saved them as &lt;strong&gt;UTF-8&lt;/strong&gt; pages, and included them in each page. By the time i tested my web application for the first time, i recognized a strange extra white space at the beginning of each page, just like the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/php_white_space_55388587.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="php_white_space" border="0" alt="php_white_space" src="http://www.studentguru.gr/blogs/solidus/php_white_space_thumb_071BEC46.png" width="644" height="152" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I began checking my css rules and my javascript scripts, but none of these had anything to do with this feature. My next step was to search the internet for a similar case. What i found is that if you choose to save your pages as &lt;strong&gt;UTF-8&lt;/strong&gt;, a special signature is also included at the beginning of the file, indicating that it is a &lt;strong&gt;UTF-8 &lt;/strong&gt;file. Hopefully, we can remove that signature without problem, but it isn’t recognised by every editor, only the “low-level” ones are capable of showing the signature. I opened my file with the &lt;strong&gt;edit&lt;/strong&gt; command of the DOS command prompt:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/php_utf8_58CC7F2D.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="php_utf8" border="0" alt="php_utf8" src="http://www.studentguru.gr/blogs/solidus/php_utf8_thumb_11F3CDB9.png" width="644" height="336" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see, a chunk of bytes is included at the beginning of the file, i deleted it, saved and all my problems were solved.&lt;/p&gt;  &lt;p&gt;Now my page looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/php_no_white_space_2434424E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="php_no_white_space" border="0" alt="php_no_white_space" src="http://www.studentguru.gr/blogs/solidus/php_no_white_space_thumb_36CB811C.png" width="644" height="119" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I hope this helps. Have a happy new year’s eve !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=&amp;lt;?php include(…) ?&amp;gt;: strange extra white space at the beginning of page&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/12/30/lt-php-include-gt-strange-extra-white-space-at-the-beginning-of-page.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="&amp;lt;?php include(…) ?&amp;gt;: strange extra white space at the beginning of page";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/12/30/lt-php-include-gt-strange-extra-white-space-at-the-beginning-of-page.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=109648" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>Unit Testing</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/12/24/unit-testing.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/12/24/unit-testing.aspx</id><published>2009-12-24T17:52:00Z</published><updated>2009-12-24T17:52:00Z</updated><content type="html">&lt;p&gt;One of the worst things a developer is anxious for is being sure that their application is fully correct. There are many ways to test your applications&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Using messages to test if your procedures are correct&lt;/li&gt;    &lt;li&gt;Setting breakpoints in order to debug your application&lt;/li&gt;    &lt;li&gt;e.t.c.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here comes the &lt;b&gt;unit testing&lt;/b&gt; feature. Unit testing is not just another way to debug your application, but a way to put some tests to it in order to secure that it is correct if they are passed.&lt;/p&gt;  &lt;p&gt;Lets have a look at how we can set such tests:&lt;/p&gt;  &lt;p&gt;1.&amp;nbsp; Assume that we have a project with the following file:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/calc_47DA26BB.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/calc_thumb_244319C5.png" style="border:0px none;display:inline;" title="calc" alt="calc" width="478" border="0" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and we want to check if it is totally correct. &lt;u&gt;Add a new project&lt;/u&gt; with the following template:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/new_test_project_12F4D391.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/new_test_project_thumb_534F9860.png" style="border:0px none;display:inline;" title="new_test_project" alt="new_test_project" width="644" border="0" height="413" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;2.&amp;nbsp; &lt;u&gt;Add existing file&lt;/u&gt;&amp;nbsp; --&amp;gt; the above file. The &lt;b&gt;test project &lt;/b&gt;should look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/test_explorer_33C7FA9E.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/test_explorer_thumb_79D8B7B1.png" style="border:0px none;display:inline;" title="test_explorer" alt="test_explorer" width="165" border="0" height="117" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3.&amp;nbsp; Open the &lt;u&gt;UnitTest1.cs&lt;/u&gt; file and have a look at the &lt;u&gt;TestMethod1&lt;/u&gt; function. As you can see, it has a &lt;u&gt;TestMethod Attribute&lt;/u&gt;, this assumes that this function is used for testing purposes. You may create any function you want to test your application but it must contain a &lt;u&gt;TestMethod Attribute&lt;/u&gt;. Lets put some testing functions like the following ones:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/test_code_37D4D921.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/test_code_thumb_2A937170.png" style="border:0px none;display:inline;" title="test_code" alt="test_code" width="557" border="0" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4.&amp;nbsp;&amp;nbsp; Run the &lt;u&gt;test project&lt;/u&gt; and have a look at the tab which is shown. It Indicates which tests are passed and which not:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/test_view_07F6E508.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/test_view_thumb_7E9DB084.png" style="border:0px none;display:inline;" title="test_view" alt="test_view" width="644" border="0" height="226" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I hope you find it useful. Merry Christmas and happy testing !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=Unit Testing&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/12/24/unit-testing.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="Unit Testing";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/12/24/unit-testing.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=109538" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>IKVM:  Write Java with C#</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/12/11/ikvm-write-java-with-c.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/12/11/ikvm-write-java-with-c.aspx</id><published>2009-12-11T19:59:09Z</published><updated>2009-12-11T19:59:09Z</updated><content type="html">&lt;p&gt;Recently, i had a project in which i had to use weka for data mining, but the only libraries i found can only be used with Java, so i wondered if i could use C# instead of Java. I began searching for such a tool and found the&lt;strong&gt; IKVM (&lt;a href="http://www.ikvm.net/"&gt;http://www.ikvm.net/&lt;/a&gt;).&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Using the IKVM, you may use Java libraries straight from C# code.&lt;/p&gt;  &lt;p&gt;Lets have a look at the following example:&lt;/p&gt;  &lt;p&gt;1. Download the &lt;strong&gt;IKVM &lt;/strong&gt;from &lt;a href="http://www.ikvm.net/download.html"&gt;http://www.ikvm.net/download.html&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;2. Extract the files included, create a new project and add a reference to the following .dll files from the those extracted:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/IKVM_references_61CF70D7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="IKVM_references" border="0" alt="IKVM_references" src="http://www.studentguru.gr/blogs/solidus/IKVM_references_thumb_640BF993.png" width="210" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. Add the following code and run it to see the results:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/IKVM_code_0B6AEE1E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="IKVM_code" border="0" alt="IKVM_code" src="http://www.studentguru.gr/blogs/solidus/IKVM_code_thumb_07EEEDE5.png" width="644" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4. IKVM is also capable of converting &lt;strong&gt;.jar &lt;/strong&gt;files into &lt;strong&gt;.dll&lt;/strong&gt; libraries. In the extracted files, search for an executable named &lt;strong&gt;ikvmc.exe&lt;/strong&gt;. Open a command prompt and run this executable giving &lt;u&gt;the path to the .jar file&lt;/u&gt; as the first argument.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/IKVM_dll_48B354F8.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="IKVM_dll" border="0" alt="IKVM_dll" src="http://www.studentguru.gr/blogs/solidus/IKVM_dll_thumb_4A83AABF.png" width="644" height="67" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If the .jar file contains a &lt;u&gt;main&lt;/u&gt; method, it produces a &lt;u&gt;.exe&lt;/u&gt; file instead.&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=IKVM:  Write Java with C#&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/12/11/ikvm-write-java-with-c.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="IKVM:  Write Java with C#";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/12/11/ikvm-write-java-with-c.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=109202" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>WPF και Facebook + Twitter training για τους συμμετέχοντες του Imagine Cup 2010</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/11/25/wpf-facebook-twitter-training-imagine-cup-2010.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/11/25/wpf-facebook-twitter-training-imagine-cup-2010.aspx</id><published>2009-11-25T08:45:00Z</published><updated>2009-11-25T08:45:00Z</updated><content type="html">&lt;p&gt;Την περασμένη Παρασκευή έλαβε χώρα το training για το Windows Presentation Foundation (WPF) και χθες το training για τα Facebook και Twitter APIs. Καλή συνέχεια στους συμμετέχοντες, happy coding and may the force be with you &lt;img src="http://studentguru.gr/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; !!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Τα links με το υλικό του training:&lt;/p&gt;&lt;p&gt;&lt;a href="http://cid-b9e4336a1111233a.skydrive.live.com/browse.aspx/WPFTraining"&gt;WPF training&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://cid-b9e4336a1111233a.skydrive.live.com/browse.aspx/FacebookTwitterTraining"&gt;Facebook + Twitter APIs training &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=WPF και Facebook + Twitter training για τους συμμετέχοντες του Imagine Cup 2010&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/11/25/wpf-facebook-twitter-training-imagine-cup-2010.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="WPF και Facebook + Twitter training για τους συμμετέχοντες του Imagine Cup 2010";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/11/25/wpf-facebook-twitter-training-imagine-cup-2010.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=108699" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>CSS Tips - Tip 1: IE specific css</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/11/21/css-tips-tip-1-ie-specific-css.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/11/21/css-tips-tip-1-ie-specific-css.aspx</id><published>2009-11-21T17:08:00Z</published><updated>2009-11-21T17:08:00Z</updated><content type="html">&lt;p&gt;Have you ever found yourself in a situation in which you want to add a css style only for IE ? If yes, today is your lucky day. Have a look at this example:&lt;/p&gt;&lt;p&gt;#myDiv { padding-top: 10px; height: 40px; }&amp;nbsp;&amp;nbsp;&amp;nbsp; /* css style for all browsers */&lt;/p&gt;&lt;p&gt;&lt;b&gt;html&amp;gt;body&lt;/b&gt; #myDiv&amp;nbsp; { padding-top: 10px; height: 50px; }&amp;nbsp;&amp;nbsp; /* css style for all browsers except IE */&lt;/p&gt;&lt;p&gt;Add both of them in your css file and see the results. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://studentguru.gr/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;img src="http://studentguru.gr/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;img src="http://studentguru.gr/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=CSS Tips - Tip 1: IE specific css&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/11/21/css-tips-tip-1-ie-specific-css.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="CSS Tips - Tip 1: IE specific css";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/11/21/css-tips-tip-1-ie-specific-css.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=108617" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author></entry><entry><title>SolidTube: A new Youtube desktop client</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/11/15/solidtube-a-new-youtube-desktop-client.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/11/15/solidtube-a-new-youtube-desktop-client.aspx</id><published>2009-11-15T11:19:15Z</published><updated>2009-11-15T11:19:15Z</updated><content type="html">&lt;p&gt;Recently, i started searching for a new API to play with, hopefully i found the Youtube REST API, so i decided to create a desktop client with it. &lt;/p&gt;  &lt;p&gt;Here’s how it works:&lt;/p&gt;  &lt;p&gt;You enter a title to search:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/solidtube_search_45E8566A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="solidtube_search" border="0" alt="solidtube_search" src="http://www.studentguru.gr/blogs/solidus/solidtube_search_thumb_24FA0525.png" width="588" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on the title of the video you want:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/solidtube_click_5A28AEF9.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="solidtube_click" border="0" alt="solidtube_click" src="http://www.studentguru.gr/blogs/solidus/solidtube_click_thumb_1901960E.png" width="591" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And voila, you may watch it from your desktop without having to open any browser:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/solidtube_watch_421094C5.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="solidtube_watch" border="0" alt="solidtube_watch" src="http://www.studentguru.gr/blogs/solidus/solidtube_watch_thumb_601D4538.png" width="590" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I hope you like it and i’d be grateful to see your comments. Have a nice time !!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://studentguru.gr/files/folders/code/entry108465.aspx"&gt;download&lt;/a&gt;&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=SolidTube: A new Youtube desktop client&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/11/15/solidtube-a-new-youtube-desktop-client.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="SolidTube: A new Youtube desktop client";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/11/15/solidtube-a-new-youtube-desktop-client.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=108466" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="SolidTube youtube client WPF" scheme="http://studentguru.gr/blogs/solidus/archive/tags/SolidTube+youtube+client+WPF/default.aspx" /></entry><entry><title>WPF Youtube player user control</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/11/08/wpf-youtube-player-user-control.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/11/08/wpf-youtube-player-user-control.aspx</id><published>2009-11-08T19:30:54Z</published><updated>2009-11-08T19:30:54Z</updated><content type="html">&lt;p&gt;Today, i had a fine idea to create a Youtube desktop client, but first, i had to create a user control in order to embed youtube video player in a window.&lt;/p&gt;  &lt;p&gt;An example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/video_player_1EE30A4B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="video_player" border="0" alt="video_player" src="http://www.studentguru.gr/blogs/solidus/video_player_thumb_01506DA5.png" width="487" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can download this user control from &lt;a href="http://wpfyoutubeplayer.codeplex.com"&gt;codeplex&lt;/a&gt; (source code available).&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=WPF Youtube player user control&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/11/08/wpf-youtube-player-user-control.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="WPF Youtube player user control";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/11/08/wpf-youtube-player-user-control.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=108320" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="youtube wpf" scheme="http://studentguru.gr/blogs/solidus/archive/tags/youtube+wpf/default.aspx" /></entry><entry><title>Download file using ASP.NET</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/11/05/download-file-with-asp-net.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/11/05/download-file-with-asp-net.aspx</id><published>2009-11-04T23:22:00Z</published><updated>2009-11-04T23:22:00Z</updated><content type="html">&lt;p&gt;Well, ASP.NET gives us an upload control, but what happens when we like to download a file ? &lt;img src="http://www.studentguru.gr/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt; One way is to add an anchor link (&amp;lt;a&amp;gt;…&amp;lt;/a&amp;gt;) pointing to a file, in this case, when users click on the link, are able to download the specified file. However, what happens when we add a button that when clicked, user downloads a file ?&lt;/p&gt;  &lt;p&gt;The follwing code lets us download a file using the &lt;b&gt;Response&lt;/b&gt; object:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/response_7E6B4A9A.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/response_thumb_7AEF4A61.png" style="border:0px none;display:inline;" title="response" alt="response" width="644" border="0" height="111" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=Download file using ASP.NET&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/11/05/download-file-with-asp-net.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="Download file using ASP.NET";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/11/05/download-file-with-asp-net.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=108147" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="asp.net download file" scheme="http://studentguru.gr/blogs/solidus/archive/tags/asp.net+download+file/default.aspx" /></entry><entry><title>WPF Toolkit Tutorial – Part 2</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/10/27/wpf-toolkit-tutorial-part-2.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/10/27/wpf-toolkit-tutorial-part-2.aspx</id><published>2009-10-26T23:30:00Z</published><updated>2009-10-26T23:30:00Z</updated><content type="html">&lt;p&gt;In the last episode &lt;img src="http://www.studentguru.gr/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;, we saw what we can do with WPF toolkit’s charts, today, we are going to see the last masterpiece of this tutorial: &lt;b&gt;The DataGrid&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;If you have worked previously with windows forms, you certainly know the DataGrid, if not, then i’ll make a simple explanation: It’s a control which can visualize, in a grid, the contents of a &lt;u&gt;DataTable&lt;/u&gt;, whose content may vary from simple data to database data.&lt;/p&gt;  &lt;p&gt;The following example shows how to visualize northwind database’s categories using the DataGrid:&lt;/p&gt;  &lt;p&gt;Create a new WPF project with visual studio.&lt;/p&gt;  &lt;p&gt;Have a look at the toolbox:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/toolbox_74657FBA.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/toolbox_thumb_5DA63831.png" style="border:0px none;display:inline;" title="toolbox" alt="toolbox" width="244" border="0" height="169" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, add a DataGrid to your window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/xaml_5B000D31.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/xaml_thumb_1AC9F3B7.png" style="border:0px none;display:inline;" title="xaml" alt="xaml" width="644" border="0" height="23" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You must bind your DataGrid with its data. You can do it like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/code_2EE31040.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/code_thumb_70EC1032.png" style="border:0px none;display:inline;" title="code" alt="code" width="644" border="0" height="107" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You are now ready to watch your progress:&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;You may add a new row:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/add_09120B3F.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/add_thumb_70A71943.png" style="border:0px none;display:inline;" title="add" alt="add" width="644" border="0" height="380" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You may delete (by pressing “delete”) or edit a row (by double clicking on it).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/delete_6942E5DC.png"&gt;&lt;img src="http://www.studentguru.gr/blogs/solidus/delete_thumb_506BC0EC.png" style="border:0px none;display:inline;" title="delete" alt="delete" width="644" border="0" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;It contains a lot more features that await you to discover. Keep coding and having fun !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=WPF Toolkit Tutorial – Part 2&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/10/27/wpf-toolkit-tutorial-part-2.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="WPF Toolkit Tutorial – Part 2";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/10/27/wpf-toolkit-tutorial-part-2.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=107322" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="WPF Toolkit DataGrid" scheme="http://studentguru.gr/blogs/solidus/archive/tags/WPF+Toolkit+DataGrid/default.aspx" /></entry><entry><title>Visual Studio Setup Project: How to add Uninstall option</title><link rel="alternate" type="text/html" href="http://studentguru.gr/blogs/solidus/archive/2009/10/25/visual-studio-setup-project-how-to-add-uninstall-option.aspx" /><id>http://studentguru.gr/blogs/solidus/archive/2009/10/25/visual-studio-setup-project-how-to-add-uninstall-option.aspx</id><published>2009-10-25T16:08:00Z</published><updated>2009-10-25T16:08:00Z</updated><content type="html">&lt;p&gt;I suppose you have made, at least once, a setup project to deploy your application, using visual studio’s special setup project template. As you already know, every program you install in your computer has an option to let you uninstall it. But, visual studio’s setup project doesn’t have such an option, so we’re going to see a simple way on how to add it.&lt;/p&gt;  &lt;p&gt;Click on the setup project:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/projects_769AF0CC.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="projects" border="0" alt="projects" src="http://www.studentguru.gr/blogs/solidus/projects_thumb_67ADDEA9.png" width="162" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on the &lt;strong&gt;properties tab&lt;/strong&gt; and copy the &lt;strong&gt;product code&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/properties_720B14D7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="properties" border="0" alt="properties" src="http://www.studentguru.gr/blogs/solidus/properties_thumb_3078606F.png" width="258" height="772" /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now, create a new file named &lt;strong&gt;Uninstall.bat&lt;/strong&gt; with the following content:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;@echo off&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;msiexec /x “product code”&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Where “product code” is the product code you copied earlier. For example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/bat_34BA5BD0.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="bat" border="0" alt="bat" src="http://www.studentguru.gr/blogs/solidus/bat_thumb_118CF11E.png" width="644" height="70" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After that, add the &lt;strong&gt;Uninstall.bat &lt;/strong&gt;file in the application folder.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.studentguru.gr/blogs/solidus/add_4AF2462C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="add" border="0" alt="add" src="http://www.studentguru.gr/blogs/solidus/add_thumb_0B53FB68.png" width="244" height="203" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can also create a &lt;u&gt;shortcut&lt;/u&gt; for the &lt;strong&gt;Uninstall.bat&lt;/strong&gt; file in &lt;u&gt;user’s desktop&lt;/u&gt; and &lt;u&gt;user’s programs menu&lt;/u&gt; folders.&lt;/p&gt;  &lt;p&gt;Finally, build the setup project and your application is ready to be installed and uninstalled later :p !!&lt;/p&gt;&lt;div class="shareit-div"&gt;&lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?linkname=Visual Studio Setup Project: How to add Uninstall option&amp;amp;linkurl=http://studentguru.gr/blogs/solidus/archive/2009/10/25/visual-studio-setup-project-how-to-add-uninstall-option.aspx"&gt;
    &lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark"/&gt;
&lt;/a&gt;
&lt;script type="text/javascript"&gt;a2a_linkname="Visual Studio Setup Project: How to add Uninstall option";a2a_linkurl="http://studentguru.gr/blogs/solidus/archive/2009/10/25/visual-studio-setup-project-how-to-add-uninstall-option.aspx";&lt;/script&gt;
&lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://studentguru.gr/aggbug.aspx?PostID=107210" width="1" height="1"&gt;</content><author><name>solidus</name><uri>http://studentguru.gr/members/solidus.aspx</uri></author><category term="visual studio setup uninstall" scheme="http://studentguru.gr/blogs/solidus/archive/tags/visual+studio+setup+uninstall/default.aspx" /></entry></feed>