<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>tools &#8211; martinklinke.com</title>
	<atom:link href="https://www.martinklinke.com/tag/tools/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.martinklinke.com</link>
	<description>IT&#039;s my business</description>
	<lastBuildDate>Wed, 01 Jun 2016 22:14:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Interactive coding in Visual Studio with Alive</title>
		<link>https://www.martinklinke.com/2016/06/02/interactive-coding-in-visual-studio-with-alive/</link>
		
		<dc:creator><![CDATA[Martin Klinke]]></dc:creator>
		<pubDate>Wed, 01 Jun 2016 22:14:03 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[interactive-coding]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">http://www.martinklinke.com/?p=121</guid>

					<description><![CDATA[If you like NCrunch, you should take a look atÂ the Visual Studio pluginÂ Alive. I stumbled upon this tool while researching for my previous post about C# code generation. Just like NCrunch, it executes your code while you type. But instead of test outcomes, it focusses on the details of the code execution and provides invaluable [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>If you like <a href="http://www.ncrunch.net/">NCrunch</a>, you should take a look atÂ the Visual Studio pluginÂ <a href="https://comealive.io/">Alive</a>. I stumbled upon this tool while researching for my previous post about C# code generation.</p>
<p>Just like NCrunch, it executes your code while you type. But instead of test outcomes, it focusses on the details of the code execution and provides invaluable insight into the contents of variables and even the control flow as you type. You can even drag a slider to see differentÂ iterations in loops. All you need is a starting point like a static method, a test method or any method where the parent type can be instantiated with some generic defaults.</p>
<p>This short video (~6 minutes) gives a great first impression so far:</p>
<p><span id="more-121"></span></p>
<p><iframe title="Alive - Helps you catch bugs quickly." width="500" height="281" src="https://www.youtube.com/embed/C40Ozwohgm8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>I might take a look at the free 30 day trial as soon as I am back in Visual Studio.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to generate C# code in 2016</title>
		<link>https://www.martinklinke.com/2016/06/01/how-to-generate-c-code-in-2016/</link>
		
		<dc:creator><![CDATA[Martin Klinke]]></dc:creator>
		<pubDate>Wed, 01 Jun 2016 21:15:21 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">http://www.martinklinke.com/?p=117</guid>

					<description><![CDATA[Today I wanted to generate a bit of rather trivial C# code to provide a convenient facade to an internal library. After creating a T4 template, loadingÂ the required assembly and adding some namespace imports,Â I found it rather inefficientÂ to write code in that simple text editor without IntelliSense. So of course, there is always the option [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Today I wanted to generate a bit of rather trivial C# code to provide a convenient facade to an internal library. After creating a <a href="https://msdn.microsoft.com/en-us/library/bb126445.aspx">T4 template</a>, loadingÂ the required assembly and adding some namespace imports,Â I found it rather inefficientÂ to write code in that simple text editor without IntelliSense. So of course, there is always the option to write a code generator class with a method that returns a string. The T4 template can instantiate that class, call the method and emit the value directly:</p>
<blockquote><p>&lt;#= new CodeGenerator().Generate() #&gt;</p></blockquote>
<p>Next comes the question of how to implement the generator. StringBuilder? Come on, there must be a better way. I checked in another library that I knew was using code generation. Then IÂ sawÂ thatÂ the library was usingÂ <a href="https://msdn.microsoft.com/en-us/library/y2k85ax6(v=vs.110).aspx">CodeDOM</a>. For my simple needs, I decided that this would be sufficient for the time being (and efficient, since I didn&#8217;t want to spend too much time there).</p>
<p>But then I started toÂ wonder. WillÂ CodeDOMÂ still work with the newÂ <a href="https://dotnet.github.io/">.NET Core</a>?</p>
<p><span id="more-117"></span></p>
<p>The answer was <a href="http://stackoverflow.com/questions/7852926/microsoft-roslyn-vs-codedom">no</a>.</p>
<p>The linked StackOverflow question already includes the &#8220;replacement&#8221; of CodeDOM (CodeDOM is referred to as someÂ precursor to part of what Roslyn does): The &#8220;new&#8221; <a href="https://github.com/dotnet/roslyn">Roslyn compiler platform</a> (which has been around for a while by now). More specifically, the <a href="https://johnkoerner.com/csharp/creating-code-using-the-syntax-factory/">SyntaxFactory</a>Â that comes with Roslyn.</p>
<p>The only draw-back I see immediately: The code that uses the SyntaxFactoryÂ seemsÂ a lot more verbose than the CodeDOM API. On the plus side, theÂ Roslyn way should beÂ superior toÂ CodeDOM regarding features and support for language constructs.</p>
<p>There are already articlesÂ available for <a href="https://dogschasingsquirrels.com/2014/07/16/generating-code-with-roslyn/">generating code with Roslyn</a>, so I will leave the details to the interested reader.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MDSD Survey 2010</title>
		<link>https://www.martinklinke.com/2010/06/10/mdsd-survey-2010/</link>
		
		<dc:creator><![CDATA[Martin Klinke]]></dc:creator>
		<pubDate>Thu, 10 Jun 2010 12:25:27 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mdsd]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[uml]]></category>
		<guid isPermaLink="false">http://www.martinklinke.com/?p=94</guid>

					<description><![CDATA[The Generative Software GmbH and the FZI have done a survey about the usage of Model-Driven Software Development approaches with around 300 participants. Almost 90% of the respondents have prior experience with the topic, so the report might give interesting general insights. Please see theÂ MDSD report 2010 (sorry, only in German) for details on the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://www.generative-software.de/">Generative Software GmbH</a> and the <a href="http://www.fzi.de/">FZI</a> have done a survey about the usage of Model-Driven Software Development approaches with around 300 participants. Almost 90% of the respondents have prior experience with the topic, so the report might give interesting general insights.</p>
<p>Please see theÂ <a title="MDSD Report 2010" href="http://www.mdsd-umfrage.de/mdsd-report-2010.pdf">MDSD report 2010</a> (sorry, only in German) for details on the results.</p>
<p>Do you make use of MDSD techniques?</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Speedometer with JFreeChart in Eclipse</title>
		<link>https://www.martinklinke.com/2009/02/18/speedometer-with-jfreechart-in-eclipse/</link>
					<comments>https://www.martinklinke.com/2009/02/18/speedometer-with-jfreechart-in-eclipse/#comments</comments>
		
		<dc:creator><![CDATA[Martin Klinke]]></dc:creator>
		<pubDate>Wed, 18 Feb 2009 22:25:18 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[visualization]]></category>
		<guid isPermaLink="false">http://www.martinklinke.com/?p=51</guid>

					<description><![CDATA[There is a great tutorial on vogella.de describing how to add a pie chart with JFreeChart to an Eclipse RCP application or plug-in. The ChartFactory that is used to create the pie chart does not include a method to create a speedometer (or dial) as shown in the sample section of JFreeChart. The following code [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>There is a great tutorial on <a href="http://www.vogella.de">vogella.de</a> describing how to <a title="JFreeChart in Eclipse RCP" href="http://www.vogella.de/articles/EclipseJFreeChart/article.html">add a pie chart with JFreeChart to an Eclipse RCP application or plug-in</a>. The ChartFactory that is used to create the pie chart does not include a method to create a speedometer (or dial) as shown in the <a title="JFreeChart Samples" href="http://www.jfree.org/jfreechart/samples.html">sample section of JFreeChart</a>. The following code fragment creates a view that displays a very basic speedometer using the <strong>org.jfree.chart.plot.MeterPlot</strong> class:</p>
<pre lang="Java">package com.martinklinke.eclipse.jfreechart.demo.views;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.MeterPlot;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.experimental.chart.swt.ChartComposite;

/**
* @author martin
*
*/
public class MeterChartView extends ViewPart {
   public static final String ID = "com.martinklinke.eclipse.jfreechart.demo.views.MeterChartView";

   public void createPartControl(Composite parent) {
      JFreeChart chart = createChart();
      final ChartComposite frame = new ChartComposite(parent, SWT.NONE, chart, true);
   }

   public void setFocus() {
   }

   /**
    * Creates the Chart based on a dataset
    */
   private JFreeChart createChart() {
      DefaultValueDataset data = new DefaultValueDataset(20.0);
      MeterPlot plot = new MeterPlot(data);
      JFreeChart chart = new JFreeChart("Meter Chart",
      JFreeChart.DEFAULT_TITLE_FONT, plot, false);
      plot.setNoDataMessage("No data available");
      return chart;
   }
}</pre>
<p>The result should look like the following screenshot:</p>
<div id="attachment_59" style="width: 579px" class="wp-caption alignnone"><a href="https://www.martinklinke.com/wp-content/uploads/2009/02/speedometer.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-59" class="size-full wp-image-59" title="speedometer" src="https://www.martinklinke.com/wp-content/uploads/2009/02/speedometer.jpg" alt="JFreeChart Speedometer in Eclipse View" width="569" height="329" srcset="https://www.martinklinke.com/wp-content/uploads/2009/02/speedometer.jpg 569w, https://www.martinklinke.com/wp-content/uploads/2009/02/speedometer-300x173.jpg 300w" sizes="(max-width: 569px) 100vw, 569px" /></a><p id="caption-attachment-59" class="wp-caption-text">JFreeChart Speedometer in Eclipse View</p></div>
<p>Of course, the MeterPlot can be further customized by calling the plot.setXXX(&#8230;) methods. However, this exercise is left to the willing reader ;)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.martinklinke.com/2009/02/18/speedometer-with-jfreechart-in-eclipse/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Eclipse JBoss server runtime library lost</title>
		<link>https://www.martinklinke.com/2008/07/11/eclipse-jboss-server-runtime-library-lost/</link>
		
		<dc:creator><![CDATA[Martin Klinke]]></dc:creator>
		<pubDate>Fri, 11 Jul 2008 14:50:29 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">http://www.martinklinke.com/?p=41</guid>

					<description><![CDATA[Today, I had a strange problem with Eclipse. I have an EJB project with JBoss v4.2 selected in targeted runtimes (project properties) and as such the JBoss v4.2 server runtime classpath variable. I have really no idea what happened, but the effect was that the JBoss classpath entry didn&#8217;t show up any longer. My first [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Today, I had a strange problem with Eclipse. I have an EJB project with JBoss v4.2 selected in targeted runtimes (project properties) and as such the JBoss v4.2 server runtime classpath variable. I have really no idea what happened, but the effect was that the JBoss classpath entry didn&#8217;t show up any longer. My first thought was that maybe the .classpath file got mixed up, but it still contained the required entry. The project properties also contained all the correct information. Just the package explorer didn&#8217;t show the entry and it definitely wasn&#8217;t there as the build for the project failed because the required classes could not be found.</p>
<p>The &lt;workspace&gt;/.metadata/.log file contained the following error message many times:</p>
<blockquote><p>!ENTRY org.eclipse.jst.server.core 4 0 2008-07-11 16:24:46.251<br />
!MESSAGE Error calling delegate RuntimeClasspathProviderWrapper[org.eclipse.jst.server.generic.runtimeTarget]: null</p></blockquote>
<p>So this must have been a bug in resolving the server classpath. I couldn&#8217;t find an equivalent problem description, and after playing around with the project settings, adding and removing the library manually, which didn&#8217;t help any further, I tried updating the Java Standard Tools. There was indeed a patch available. My previous version of JST was <strong>org.eclipse.jst_2.0.2.v200802150100-7B-7_8dDTOvmuz0di_U5vgUfz0em</strong> and I installed the patch <strong>org.eclipse.jst.web_core.feature.patch_2.0.2.v200803241913-208i8s733I395D6BA7</strong>. My Eclipse SDK version used is <strong>3.3.2</strong>, Build id <strong>M20080221-1800</strong>.</p>
<p>After the installation of the patch and a restart of Eclipse, the JBoss v4.2 entry showed up again and the error message didn&#8217;t occur any longer in the log file. As I said, I don&#8217;t really know what had happened, but the patch might have resolved the issue for me, so maybe this helps someone out there, who runs into the same problem.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tools for Eclipse build automation</title>
		<link>https://www.martinklinke.com/2008/07/10/tools-for-eclipse-build-automation/</link>
					<comments>https://www.martinklinke.com/2008/07/10/tools-for-eclipse-build-automation/#comments</comments>
		
		<dc:creator><![CDATA[Martin Klinke]]></dc:creator>
		<pubDate>Thu, 10 Jul 2008 21:55:13 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tools]]></category>
		<guid isPermaLink="false">http://www.martinklinke.com/?p=40</guid>

					<description><![CDATA[Eclipse is a great IDE for developing any kind of Java code, e.g. Rich Client (RCP), Web or standalone applications. However, when a project is built using any IDE (yes, there are others &#8211; e.g. Netbeans or IntelliJ IDEA), there may be some dependencies towards the chosen tool when it comes to compiling and packaging [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a title="Eclipse.org" href="http://www.eclipse.org">Eclipse</a> is a great IDE for developing any kind of Java code, e.g. Rich Client (<a title="Eclipse Rich Client Platform" href="http://wiki.eclipse.org/index.php/Rich_Client_Platform">RCP</a>), Web or standalone applications. However, when a project is built using any IDE (yes, there are others &#8211; e.g. <a title="Netbeans" href="http://www.netbeans.org/">Netbeans</a> or <a title="IntelliJ IDEA" href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a>), there may be some dependencies towards the chosen tool when it comes to compiling and packaging the code. This doesn&#8217;t matter too much as long as there is no requirement to <a title="Build and Test Automation for plug-ins and features - Eclipse Article" href="http://www.eclipse.org/articles/Article-PDE-Automation/automation.html">automate the build process</a>. This will happen, as soon as you decide to set up <a title="Continuous Integration - martinfowler.com" href="http://martinfowler.com/articles/continuousIntegration.html">Continuous Integration</a> for your project.</p>
<p><span id="more-40"></span></p>
<p>In many cases, <a title="Apache Ant" href="http://ant.apache.org/">Ant</a> is the tool of choice for automating the build process. As far as I know, Netbeans already uses Ant as build tool by default. Eclipse has its own way of describing the project configuration (source/binary folders, required libraries etc.) with files like &#8220;.project&#8221; and &#8220;.classpath&#8221;. The naive approach for building an Eclipse project with Ant would be to duplicate all the information and write a separate Ant build file that does all the work and is independent of an Eclipse instance. There are several disadvantages that come along with this approach:</p>
<ol>
<li>Inconsistencies may occur whenever a new library is added or the structure of the project changes in a significant way (e.g. a new source folder is introduced) =&gt; the build file has to be updated manually when the build fails.</li>
<li>There is no real guarantee that both the Eclipse and the Ant build produce the same output =&gt; Problems may not be visible until runtime tests are performed.</li>
</ol>
<p>So what could be a more elegant solution? Of course, to use the information for the build that is contained in the Eclipse project artifacts already. The only tool I found up to now that does right this is <a title="ant4eclipse" href="http://ant4eclipse.sourceforge.net/">ant4eclipse</a>. Basically, it defines some Ant tasks that enable the following actions (from ant4eclipse&#8217;s website):</p>
<blockquote>
<ul>
<li>Setup classpathes as defined in Eclipse&#8217;s  					<code>.classpath</code>-file</li>
<li>checkout complete workspaces as it&#8217;s possible with the <code>Team Project Set</code> feature of eclipse</li>
<li>run your Java applications as you have defined them in an Eclipse <code>Launch Configuration</code></li>
</ul>
</blockquote>
<p>This avoids the redundancy and leverages the information that is already present as soon as the project compiles in Eclipse. To be honest, I haven&#8217;t evaluated ant4eclipse yet, but I probably will as soon as the next Continuous Integration project will start. Seriously, who would like to write dozens of Ant files to do the work that Eclipse already does?</p>
<p>Another interesting project that seems to focus solely on Eclipse plugins, features and RCP apps is <a title="Pluginbuilder.org" href="http://www.pluginbuilder.org">Pluginbuilder</a>. The <a title="Tutorial movie - Pluginbuilder.org" href="http://www.pluginbuilder.org/documentation/tutorialmovie/">tutorial movie</a> looks really impressive. The homepage says that Pluginbuilder consists of two parts:</p>
<ul>
<blockquote>
<li>An <strong>Eclipse plug-in </strong>allows to configure the build in the project&#8217;s workspace and run the build locally</li>
<li>Then the configuration can be uploaded to the <strong>server platform</strong> where the build can be scheduled</li>
</blockquote>
</ul>
<p>That&#8217;s a nice alternative to the manual configuration of the Eclipse headless build and integration with e.g. <a title="CruiseControl" href="http://cruisecontrol.sourceforge.net/">CruiseControl</a>. Haven&#8217;t evaluated that one neither, but this is definitely a very interesting and promising tool for Eclipse plugin and RCP development which I can imagine may be indispensable once you are used to it.</p>
<p>Which other tools for Eclipse build automation do you know?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.martinklinke.com/2008/07/10/tools-for-eclipse-build-automation/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
