<?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"
	>

<channel>
	<title>flickdotnet.de &#187; Uncategorized</title>
	<atom:link href="http://www.flickdotnet.de/index.php/categories/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flickdotnet.de</link>
	<description>Opinions, reviews and software for the Microsoft .NET Framework - focusing on Linq, ECO &#38; XPO</description>
	<pubDate>Thu, 06 May 2010 17:59:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Programming on the Mac/iPhone</title>
		<link>http://www.flickdotnet.de/index.php/2010/03/programming-on-the-maciphone/</link>
		<comments>http://www.flickdotnet.de/index.php/2010/03/programming-on-the-maciphone/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 15:15:22 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[MacOS]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Xcode]]></category>

		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/?p=239</guid>
		<description><![CDATA[In my last post I spilled where my major focus lies right now. I am looking at something completely different: not a new language, but a new language, with new tools on a different platform. And believe me, it is different.
Why different? Well, not only is the syntax of the programming language on Mac very [...]]]></description>
			<content:encoded><![CDATA[<p>In my last post I spilled where my major focus lies right now. I am looking at something completely different: not a new language, but a new language, with new tools on a different platform. And believe me, it is different.</p>
<p>Why different? Well, not only is the syntax of the programming language on Mac very odd getting used to for a Delphi or C# developer, but even more using the computer is also needing some time getting used to. Shortcuts are different, there are way less visible shortcuts than on a Windows system and the general approach how to get things done is very much different. With regard to the shortcuts it is sometimes a real pain to find them and they often differ from application to application. Mac OS is very much designed for mouse users, it seems, and keyboard enthusiasts will have to read the docs carefully. A lot of people claim that it is easier and more intuitive to get started, especially if you have not used Windows before. I would not sign that statement as Mac OS has also quite some oddities just as Windows has. Just yesterday, I dragged a file onto my desktop which did not show. When I dragged it again, Mac OS told me the file was already there and if I wanted to overwrite it. Thus, it is not without flaws either. And ever since Windows 7 one can completely forget the generalization &#8220;Mac is more stable than Windows&#8221;. My Windows systems are just as stable. However, I am derailing from my train of thoughts&#8230;</p>
<p>&#8220;How would one get started to code on the Mac or code applications for the iPhone?&#8221; was the question I had to get an answer to. Firstly, give yourself time to get used to the system.  Do not try to start developing right away. It will not work. Believe me. I tried. Give it some time. Fiddle around with a Mac system at least for 1 or 2 moths before you start developing. You need to get some insight in how the system works, how applications are assembled etc. This will not happen in a week and you definitely cannot read it in a book and hope to get the same understanding as learning by doing. Of course, a book to get started with Mac OS can help. Maybe, you are as lucky as me and have some hardcore Apple Affiliates at your workplace you can nag all day long&#8230; They will forgive you for the frequent interruptions sooner or later (thanks, Volker&#8230; <img src='http://www.flickdotnet.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).</p>
<p>Secondly, get the tools for the job. With Apple it is very easy to get the right tools in order to develop Applications for the platform as the company publishes the development environment with the operating system itself. Be sure to have a look at your Leopard DVD and install the additional features. Besides, you will miss the command-line tools after a month or so anyways and they are there as well.</p>
<p>The main development environment is called Xcode and if you ever dare to load one of the sample projects you will be overmanned. Yes, you will. There is no way around it. The code simply hits you and it might result in an abrupt thought that may say something like &#8220;How did I ever think to develop for this platform in that language?&#8221; &#8212; It definitely feels like that at first.</p>
<p>Thus, get a book. Or get two actually. One is free, the other is not. I started learning the language with a book that is just about the language. Not about any platform. Just the language. The book is called &#8216;Programming in Objective-C 2.0&#8242; bz Stephen Kochan and it gives you a very good introduction and gets you used to the funny syntax. Funny is an adjective every Delphi developer I know has used so far for that particular syntax.</p>
<p>For me it was very clear that I wanted to develop applications for the iPod Touch and iPhone. Thus, book number two. Apple has a huge archive of free documentation that comes in a very printer-friendly PDF format. The PDFs are seperated by certain topics, not just a simple reference that has been generated from source files or generated in some other way. It is like a big library at your fingertips. I read quite a few of them and they are very good to read and contain lots of useful information. Access is granted if you join the iPhone Developer Program. Unlike frequent misinformation about this topic, joining this program is free of charge. You get all the documentation and all the programming tools for free. No charge. Not once, not yearly. The only thing you are being charged for on a yearly basis is the ability to deploy to physical devices. There are several different subscription packages available, but in order to get started, you can use the free account. The software development kit (SDK) even comes with an iPhone simulator that allows you to test your application like it was running on an actual physical device. There are only a few restrictions that make using a physical device a necessity. But believe me, these will not affect you in the first couple of weeks of developing applications.</p>
<p>When you got your login details, you can use your iTunes Account as a sidenote, you can download the SDK which includes all the tools you need. Furthermore, during the download I had lots of time to read as the SDK is huge and take a long time to download through my pitiful bandwidth of 2MBits.</p>
<p>After the download, installation is only a double-click away and takes from 10 to 30 minutes. Be sure to drag Xcode into the dock - you will need it all the time.</p>
<p>But how to get started? Well, Daniel Magin suggested a book to me and that really got me started:</p>
<ul>
<li> iPhone SDK 3 (Visual QuickStart Guides) by Duncan Campbell</li>
</ul>
<p>It gives an introduction with use-cases to the most important classes that you need to use in any project and it also describes all the visual components hands-on. After reading this book - it is not that big, so I did read it completely -  you are able to write little apps and are ready to dive into the details. Oh, and be sure to download the free bonus chapters of that book. I did that with two books from Apress from the same group of authors:</p>
<ul>
<li>Beginning iPhone 3 Development: Exploring the iPhone SDK by Dave Mark and Jeff Lamarche</li>
<li>More iPhone 3 Development: Tackling iPhone SDK 3</li>
</ul>
<p>Those will keep you busy, but afterwards you will be ready to write applications for the iPhone for sure. Patience is most important while typing the new language. Furthermore, Xcode is very different when entering source code. If it felt strange using Visual Studio when being used to Delphi, it is like that&#8230;</p>
<p>For the German audience one additional hint. The German Mac keyboard is a bit odd as it has not all keys printed completely. E.g. the {} and [] are nowhere to be found. I have no idea why the German Apple keyboards are built that way. Furthermore, typing source code on a German keyboard is very clumsy. Due to that,  I have coding-keyboard with US typeface, so that I can type source code more easily. It helps quite a lot.</p>
<p>Next time I will introduce you to some architectural ideas and implementations I am dealing with right now. I have some applications that need to work on a Windows Desktop as well as offer access using the iPhone. Furthermore, a web application is not an option  I consider for the iPhone. The usability employing a native iPhone application is just so much better in my opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2010/03/programming-on-the-maciphone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>One thing that made me smile in Windows 7</title>
		<link>http://www.flickdotnet.de/index.php/2009/06/one-thing-that-made-me-smile-in-windows-7/</link>
		<comments>http://www.flickdotnet.de/index.php/2009/06/one-thing-that-made-me-smile-in-windows-7/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 13:05:50 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/?p=214</guid>
		<description><![CDATA[Well, we spend a lot of time in front of our PCs every day and it can get pretty frustrating now and then.
However, being an only-child myself, one of the new help links that have been introduced in Windows 7 to help users connect to each other, made me laugh. See for yourselves&#8230;

As an only-child, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, we spend a lot of time in front of our PCs every day and it can get pretty frustrating now and then.</p>
<p>However, being an only-child myself, one of the new help links that have been introduced in Windows 7 to help users connect to each other, made me laugh. See for yourselves&#8230;</p>
<p><a href="http://www.flickdotnet.de/wp-content/uploads/2009/06/troublesharing.png"><img class="aligncenter size-full wp-image-215" title="Having Trouble sharing?" src="http://www.flickdotnet.de/wp-content/uploads/2009/06/troublesharing.png" alt="" width="500" height="366" /></a></p>
<p><em>As an only-child, who doesn&#8217;t, eh? </em></p>
<p>Even though Microsoft means something totally different in that context and it is a great addition to that dialog, it still made me smile <img src='http://www.flickdotnet.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2009/06/one-thing-that-made-me-smile-in-windows-7/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Evaluation of using the MacBook to view your HD movies (on TV)</title>
		<link>http://www.flickdotnet.de/index.php/2009/02/evaluation-of-using-the-macbook-to-view-your-hd-movies-on-tv/</link>
		<comments>http://www.flickdotnet.de/index.php/2009/02/evaluation-of-using-the-macbook-to-view-your-hd-movies-on-tv/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 19:06:36 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/index.php/2009/02/evaluation-of-using-the-macbook-to-view-your-hd-movies-on-tv/</guid>
		<description><![CDATA[A couple of weeks ago I got a MacBook. The MacBook can be bought with a DVI-plug so that you can hook it up to your TV or bigger monitor. 
We all know that Apple delivers great content in iTunes so that you can watch HD movies on your Mac and with the correct cables [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I got a MacBook. The MacBook can be bought with a DVI-plug so that you can hook it up to your TV or bigger monitor. </p>
<p>We all know that Apple delivers great content in iTunes so that you can watch HD movies on your Mac and with the correct cables also on a TV. I use a Windows system right now to play movies on my TV, but I ran into quite some issues with iTunes. The videos get sluggish and if you play the very same content on a Mac it jut looks better and fluent. The problem seems to be the graphics card and the compression of the movie files&#8230;</p>
<p>However, the big question mark for me were a couple of things:</p>
<ul>
<li>Can I hook up my 5.1/7.1 sound system?</li>
<li>Can I play BluRay movies or BluRay movie streams?</li>
</ul>
<p>The first question is pretty quickly answered. However, you need to google to get a reply. You can switch your audio output to &quot;digital&quot; which allows you to hook up an optical toslink cable to the MacBook. Yes, the very same plug that you normally use with a well known headphone jack. The important thing is that Apple uses a mini-Toslink plug, so you need an adaptor plug that allows you to plug in a &quot;normal&quot; toslink cable that almost every TV or stereo uses these days. Thus, you need to order an additional adaptor and can get digital&#160; audio, which I did today&#8230;.</p>
<p>Now to the big problem. If you play DVD content on your MacBook you can listen to the audio on the speakers. Surprisingly, this works with any DVD. DVDs have mostly 5.1 audio which is either in DTS or AC3 format. Still, it works. However, if you create a mp4-video file with embedded AC3 audio with 6 channels (aka 5.1) you will not be able to hear anything over the speakers of your MacBook. Well, that is what I thought at first. As I dug deeper, I found out that not the hardware was the problem, the software was. If you download a different application to play the movie file, the 5.1 audio stream will just be played nicely on your MacBook stereo speakers. </p>
<p>I have not&#160; tried so far to use Quicktime and deliver the audio using my stereo. I cannot make Quicktime play the audio over the internal speakers though. This has only been possible with other software products like XBMC Media Center, for example.</p>
<p>Furthermore, I found absolutely no way to play a BluRay movie on my MacBook. I simply could not find any software that plays BluRay movies. The only thing I could do was create a custom BluRay disk stream on my Windows system using an Image Writer, added 5.1 audio and converted that using Handbrake to a mp4 file with AC3 audio. </p>
<p>I will keep you posted on my findings which software combination works out best if I get the necessary cables to hook up my system.</p>
<p>Note: The Windows PC system is not able to play the mp4 with AC3 content at all. Quicktime needs a plugin which is not available afaik.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2009/02/evaluation-of-using-the-macbook-to-view-your-hd-movies-on-tv/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iPhone Applications from the Delphi Community</title>
		<link>http://www.flickdotnet.de/index.php/2009/02/iphone-applications-from-the-delphi-community/</link>
		<comments>http://www.flickdotnet.de/index.php/2009/02/iphone-applications-from-the-delphi-community/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 18:50:32 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/index.php/2009/02/iphone-applications-from-the-delphi-community/</guid>
		<description><![CDATA[I was surfing the AppStore today and found that two well-known people from the Delphi Community publish iPhone Applications.
One is Jacob Thurman who also develops Castalia, an amazing IDE plugin for the Galileo-IDE.
The second is Daniel Magin. You may know Daniel from many conferences and other developer events. His sessions are legendary for the way [...]]]></description>
			<content:encoded><![CDATA[<p>I was surfing the AppStore today and found that two well-known people from the Delphi Community publish iPhone Applications.</p>
<p>One is Jacob Thurman who also develops Castalia, an amazing IDE plugin for the Galileo-IDE.</p>
<p>The second is Daniel Magin. You may know Daniel from many conferences and other developer events. His sessions are legendary for the way he names the classes and objects in his examples. The class TEumel is my personal favourite&#8230;.</p>
<p>Jacob published four applications so far: Boomshine, Scriptures, IdiotBox and iBelched. I know the Boomshine game from the web which is very much hooking you to the screen even though the rules and objectives are pretty quick to learn and master.</p>
<p><a href="http://www.flickdotnet.de/wp-content/uploads/2009/02/img-0001.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="IMG_0001" src="http://www.flickdotnet.de/wp-content/uploads/2009/02/img-0001-thumb.jpg" width="324" border="0" /></a> </p>
<p>Daniel published his first application just yesterday and it is an awesome tool , especially if you do not have a Mac at home. The application allows you to group your contacts and send an email to a group of people. A feature that is completely missing from an iPhone/iPod Touch without the application.</p>
<p><a href="http://www.flickdotnet.de/wp-content/uploads/2009/02/img-0002.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="250" alt="IMG_0002" src="http://www.flickdotnet.de/wp-content/uploads/2009/02/img-0002-thumb.jpg" width="323" border="0" /></a> </p>
<p>Here is the complete description of Daniel&#8217;s application in German copied from the AppStore:</p>
<p><a href="http://www.flickdotnet.de/wp-content/uploads/2009/02/img-0006.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="IMG_0006" src="http://www.flickdotnet.de/wp-content/uploads/2009/02/img-0006-thumb.jpg" width="324" border="0" /></a> </p>
<p>The application is available in English, Italian, French, Dutch, Spanish and Portugese as well. </p>
<p>I never realized Daniel could speak that many languages. I wonder what TEumel is called in Spanish <img src='http://www.flickdotnet.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Great job guys! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2009/02/iphone-applications-from-the-delphi-community/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ModelMaker Tools releases ModelMaker 10 with support for Delphi 2009</title>
		<link>http://www.flickdotnet.de/index.php/2008/09/modelmaker-tools-releases-modelmaker-10-with-support-for-delphi-2009/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/09/modelmaker-tools-releases-modelmaker-10-with-support-for-delphi-2009/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 12:08:28 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/index.php/2008/09/modelmaker-tools-releases-modelmaker-10-with-support-for-delphi-2009/</guid>
		<description><![CDATA[I just got an email from ModelMaker Tools that ModelMaker 10 has been released. With my interest in MDA, ModelMaker is a tool I simply cannot miss in my toolbox in order to create UML class diagrams. 
Reading through the new feature list it is being said that the new syntax for the Delphi 2009 [...]]]></description>
			<content:encoded><![CDATA[<p>I just got an email from ModelMaker Tools that ModelMaker 10 has been released. With my interest in MDA, ModelMaker is a tool I simply cannot miss in my toolbox in order to create UML class diagrams. </p>
<p>Reading through the new feature list it is being said that the new syntax for the Delphi 2009 language constructs is being supported, i.e. Anonymous Methods and Generics. Furthermore, a lot of productivity features habe been added to make creation of diagrams and navigating from those to your source code much easier.</p>
<p>Have a look at <a href="http://www.modelmakertools.com/modelmaker/history/mm1000.html">http://www.modelmakertools.com/modelmaker/history/mm1000.html</a> for a complete list of features. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/09/modelmaker-tools-releases-modelmaker-10-with-support-for-delphi-2009/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Holger Flick: A huge thank you to Bruno Fierens and TMS Software!</title>
		<link>http://www.flickdotnet.de/index.php/2008/04/holger-flick-a-huge-thank-you-to-bruno-fierens-and-tms-software/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/04/holger-flick-a-huge-thank-you-to-bruno-fierens-and-tms-software/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 15:43:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:473</guid>
		<description><![CDATA[<p>Due to recent blog postings about TMS Software and their Ribbon Toolbar Component set I do feel the need to state a few things about a fellow CodeGear Technology Partner. </p>
<p>I met Bruno Fierens in 2006 at EKON. I was a student back then and amazingly he took my criticism about his components very seriously. I was not even a paying customer back then, still he made amends to his</p>]]></description>
			<content:encoded><![CDATA[<p><i>Due to recent blog postings about TMS Software and their Ribbon Toolbar Component set I do feel the need to state a few things about a fellow CodeGear Technology Partner. </i></p>
<p>I met Bruno Fierens in 2006 at EKON. I was a student back then and amazingly he took my criticism about his components very seriously. I was not even a paying customer back then, still he made amends to his components, so that I could use them more efficiently in the future. </p>
<p>I was truly surprised back then, but since then the business relation grew and all my software products prosper from the component sets that TMS Software offers. These are primarily the VCL and ASP.NET component sets. I would like to tell you all about a &#8220;support case&#8221; I encountered with TMS. This all happened over the Christmas Holidays. As it is with software, amends are being made at the end of a year so the new version can be used right from the start of the next year. I was stuck with a bug right after Christmas and emailed the support of TMS Software. Long story short: I got the necessary fix so that the software could be taken live at the beginning of the new year. The response was amazingly fast and uncomplicated. I also did not pay anything extra for this kind of service. Bruno acknowledged that my issue was a valid concern, fixed it and made it available to all his customers.</p>
<p>All in all, I think it&nbsp;can never be considered&nbsp;an incorrect approach to have a look at any component written by TMS Software&#8230;</p>
<p>Most members of the community have been doing business with TMS Software for over 10 years and the experience has been nothing like one could guess from the already mentioned postings. I would like to post about these experiences that I had. Maybe those descriptions will erase the other blog posts from your mind - as the internet is relentless and all “information” will stay for a long time to come as it seems and it is really bad for somebody to get a bad review and no word from happy customers or business partners.</p>
<p>&nbsp;</p>
<p>If you are afraid of support not being there for you, from my experience, there are very few companies which can match what TMS Software offers.</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=473" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/04/holger-flick-a-huge-thank-you-to-bruno-fierens-and-tms-software/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Refactoring &#224; la carte - JetBrains ReSharper</title>
		<link>http://www.flickdotnet.de/index.php/2008/03/refactoring-la-carte-jetbrains-resharper/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/03/refactoring-la-carte-jetbrains-resharper/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 17:57:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:470</guid>
		<description><![CDATA[<p>Two weeks ago, at EKON, Hadi Hariri (<a href="http://www.hadihariri.com/">www.hadihariri.com</a>) introduced me to a Visual Studio plugin called "JetBrains ReSharper". I never could associate anything with the name, so he offered to give me a quick demo of the feature set.  As I am a happy customer of Castalia in the CodeGear Delphi IDE (<a href="http://www.twodesk.com/">www.twodesk.com</a>) and really appreciate the time it saves me to write code, I missed quite a</p>]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago, at EKON, Hadi Hariri (<a href="http://www.hadihariri.com/">www.hadihariri.com</a>) introduced me to a Visual Studio plugin called &#8220;JetBrains ReSharper&#8221;. I never could associate anything with the name, so he offered to give me a quick demo of the feature set.&nbsp; As I am a happy customer of Castalia in the CodeGear Delphi IDE (<a href="http://www.twodesk.com/">www.twodesk.com</a>) and really appreciate the time it saves me to write code, I missed quite a lot comfort when refactoring code in VS.&nbsp;Now&nbsp;I can say &#8220;Thankfully there was Hadi &#8230;&#8221; because ReSharper is definitely the tool to get if you need to write a lot of C# or VB code. Not only does it offer the usual refactoring options like renaming, moving code, extracting methods and the likes, no, it really &#8220;digs&#8221; into your code and makes suggestions about things you could change or that would make your code better. one of those things is the &#8220;null&#8221; check. Whenever you use a variable and you have not checked for null you can tell ReSharper to&nbsp;implement the &#8220;null&#8221;-check for you. One could think that if you write this piece of code:</p>
<p><code>if (myName.Equals("..."))</code> </p>
<p>Resharper will generate simply</p>
<p><code>if (myName != null ) { if ...</code> </p>
<p>Nope, it is not that stupid. It first analyses the usage of the variable and might even create a new code level (using { }) so that not only the one line is being properly checked, but also the following lines that depend on that variable. </p>
<p>The null-check is only a very easy example. ReSharper offers extensive anaylsis features that always take your code into account and I have not had a single case that my code did not compile or the code was not yielding the same result as before the transformation. Variable types are also handled perfectly by ReSharper so that you can invoke &#8220;type-safe code completion&#8221; (my personal term). If you call a method and it expects a certain type, code completion will not only list the types, but will also complete the line for you, if there is only one variable of the matching type in the current namespace available. It is just a huge time safer when writing code!</p>
<p>However, my favourite feature so far is that the software really knows usage patterns. E.g. if you write</p>
<p><code>List&lt;Customer&gt; customerList = getCustomerList();</code> </p>
<p>And you then write</p>
<p><code>foreach</code> </p>
<p>and press &lt;Tab&gt; it guesses (!)</p>
<p><code>foreach ( Customer customer in customerList )</code> </p>
<p>It would not be so amazing if you could not &#8220;toggle&#8221; the different variable names to be used. E.g. ReSharper offers you many possible variable names if you use camel case or another known way to name your variables. One thing is sure though: if you use ReSharper you definitely have to write a huge amount less code.</p>
<p>There is a trial edition available on <a href="http://www.jetbrains.com/">www.jetbrains.com</a> . Students get a really fair bargain and there are special licenses for educational institutions available.</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=470" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/03/refactoring-la-carte-jetbrains-resharper/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How complex is my code? Ask NDepend!</title>
		<link>http://www.flickdotnet.de/index.php/2008/03/how-complex-is-my-code-ask-ndepend/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/03/how-complex-is-my-code-ask-ndepend/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 17:30:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:469</guid>
		<description><![CDATA[<p>Analysis of source code has become quite a "business" topic in the last few years. Due to that a lot of software tools have been released to help the developer to analyse the source code. In the Delphi World there is the well-known product called Code Healer by Sock Software (<a href="http://www.socksoftware.com/codehealer.php">http://www.socksoftware.com/codehealer.php</a>). However, a product called NDepend has come to my attention which offers a way to really dive into your code! </p>
<p>You can use</p>]]></description>
			<content:encoded><![CDATA[<p>Analysis of source code has become quite a &#8220;business&#8221; topic in the last few years. Due to that a lot of software tools have been&nbsp;released to help the developer to analyse&nbsp;the source&nbsp;code. In the Delphi World&nbsp;there is&nbsp;the well-known product called Code Healer by Sock Software (<a href="http://www.socksoftware.com/codehealer.php">http://www.socksoftware.com/codehealer.php</a>). However, a product called NDepend has come to my attention which offers a way to really dive into your code! </p>
<p>You can use NDepend in association with many products. There is an IDE integration for Visual Studio and Lutz Röder&#8217;s Refelctor available, for example, but you can also start a seperate GUI that allows you to select the source you want to analyse. An analysis consists of two things: For one, a huge easily navigable report in html format will be generated. Furthermore, and this came as a surprise to me, as an earlier version of NDepend did not offer this tool, the GUI has been extended so that you can query and browse the results. This is actually what makes this tool so useful. We all have heard the principle of creating &#8220;loose couplings&#8221; between separate source code groups. E.g. you should encapsulate persistence, user interface and business logic seperately. Can a tool like NDepend help me to verify that I succeeded in doing so? You might have guessed that this is a rethorical question&#8230;so&#8230;yes. </p>
<p>Thus, I do not want to list all the fancy features that NDepend offers you (you can simply look them up here: <a href="http://www.ndepend.com/Features.aspx">http://www.ndepend.com/Features.aspx</a>), instead I want to offer an example why NDepend is something I do not want to miss anymore while developing applications.</p>
<p>So, let&#8217;s get started with the example.</p>
<p>People, who attend my sessions about ECO, will always hear: ECO will take care that you get a great basis for encapsulating your code properly. Fine. But does it really? Did I do something while writing my application that defies this princriple?</p>
<p>To verify this statement, I started the NDepend Graphical User Interface (aka VisualNDepend.exe) and selected the assemblies my application consisted of. Be aware, if you analyse an application that is built upon a framework, you should include the framework assemblies as well. After selecting my assemblies, I generated a report (it&#8217;s a click of a button)&nbsp;and directed my attention to the dependency matrix. Sounds geeky and complicated,&nbsp; but it is not. Every row and column are labeled with the name of&nbsp; a namespace. The numbers in the cells designate the number of&nbsp;types, members&nbsp; etc. (you can actually select that in a combo box) used by the other namespace. So, looking at the screenshot below, we want information about the number of types used in the different namespaces.</p>
<p>&nbsp;</p>
<p><img style="WIDTH:529px;HEIGHT:495px;" height=495 src="/gfx/complexity.png" width=529/></p>
<p>Interestingly, we can clearly see that any persistence operation is only being dealt with in the Eco Space as the Eco Space embodies the Persistence Mapper and the Data Connection Components. How can we see that? Look at the namespaces Eco.Persistence and its sub-namespaces. Any type from that namespace is only used by the EcoSpace namespace, but not by the business model, which is in the namespace marked with &#8220;.Model&#8221;. Same applies to any class from the System.Data namespace, which includes all the database-related classes in .NET. On the other hand, System.Windows.Forms, which contains all the GUI classes, is&nbsp;not being used by the EcoSpace or the business model. Thus, my encapsulation is perfect in this example and NDepend made it really easy to verify. </p>
<p>As the matrix is a tree you can&nbsp; drill down in any of the namespaces and get detailed information. You can also double click on any of the numbers in order to get a graphical representation in a state-machine-like fashion that allows you to quickly get a clear view on the structurre of your code.</p>
<p>This is just one brief example how NDepend can really make your life easier. If&nbsp;I encounter another useful result that also proves my points about what I say about ECO in my sessions (*ironical grin*), I will post it here asap.</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=469" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/03/how-complex-is-my-code-ask-ndepend/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting ready for EKON Spring</title>
		<link>http://www.flickdotnet.de/index.php/2008/02/getting-ready-for-ekon-spring/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/02/getting-ready-for-ekon-spring/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 23:08:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:462</guid>
		<description><![CDATA[<p>For the first time, there will be two EKONs in Germany in one year. EKON Spring will be next week in Frankfurt. "The Road To Delphi" is the tagline of the conference and I am in the process of putting the finishing touches to my talks. I will be talking about Webservices and ECO in the VCL world. Two exciting topics. I am looking forward to it as I will</p>]]></description>
			<content:encoded><![CDATA[<p>For the first time, there will be two EKONs in Germany in one year. EKON Spring will be next week in Frankfurt. &#8220;The Road To Delphi&#8221; is the tagline of the conference and I am in the process of putting the finishing touches to my talks. I will be talking about Webservices and ECO in the VCL world. Two exciting topics. I am looking forward to it as I will be meeting a lot of Delphi friends (Olaf Monien, Thomas Pfister, Nick Hodges, Marco Cantu, Alois Schmidt, Sabine Rothe, Matthias Eißing, Roland Appel, Bernd&nbsp;Ua, Hadi Hariri, Daniel Wischnewski, Michael Li, Masoud Kamali and the&nbsp;names that I sadly forgot&#8230;)&nbsp;again. I will also be able to get a beer refill as I love the beer in that region <img src='http://www.flickdotnet.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>For more information on the conference go to <a href="http://www.entwickler-konferenz.de/">www.entwickler-konferenz.de</a> . Would be very&nbsp;nice meeting you there in person!</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=462" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/02/getting-ready-for-ekon-spring/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ECO IV: New templates for servers</title>
		<link>http://www.flickdotnet.de/index.php/2008/02/eco-iv-new-templates-for-servers/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/02/eco-iv-new-templates-for-servers/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 22:23:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:459</guid>
		<description><![CDATA[<p>The ECO team released a new beta version of ECO which will install into VS 2005, 2008 and RAD Studio 2007. Interestingly, there seem to be some nice new wizard features being developed right now. As you can see in the figure below, you can select the server-type you want to include into your project group/solution.</p>
<p><img src="/gfx/ecostorage.jpg"/></p>
<p>There are templates for a server that is run in a console window, a</p>]]></description>
			<content:encoded><![CDATA[<p>The ECO team released a new beta version of ECO which will install into VS 2005, 2008 and RAD Studio 2007. Interestingly, there seem to be some nice new wizard features being developed right now. As you can see in the figure below, you can select the server-type you want to include into your project group/solution.</p>
<p><img src="/gfx/ecostorage.jpg"/></p>
<p>There are templates for a server that is run in a console window, a Windows Service, a WinForms Application and a server type called &#8220;Web Service&#8221;. It was announced in the field test newsgroup that the features have not been implemented yet completely, but it is really good to see that it will be much easier in the future to create custom ECO servers. (Think of an ECO server as an abstract data storage your application communicates with that bridges the connection to a database or any other data storage you want to use)</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=459" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/02/eco-iv-new-templates-for-servers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ECO for VS: Great blog available to getting used to short cuts and other &#34;different&#34; things in the Microsoft IDE</title>
		<link>http://www.flickdotnet.de/index.php/2008/01/eco-for-vs-great-blog-available-to-getting-used-to-short-cuts-and-other-different-things-in-the-microsoft-ide/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/01/eco-for-vs-great-blog-available-to-getting-used-to-short-cuts-and-other-different-things-in-the-microsoft-ide/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 10:23:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:455</guid>
		<description><![CDATA[<p>Borland's IDE have been a part of my life since I am 9 years old. I got used to the short-cuts and thus know the IDE by heart. In school we had to look at different versions of VB, but I never really got used to the different approach to do things and I also got confused as Microsoft used different short-cuts. Now with ECO IV for VS being in</p>]]></description>
			<content:encoded><![CDATA[<p>Borland&#8217;s IDE have been a part of my life since I am 9 years old. I got used to the short-cuts and thus know the IDE by heart. In school we had to look at different versions of VB, but I never really got used to the different approach to do things and I also got confused as Microsoft used different short-cuts. Now with ECO IV for VS being in the beta stage, I am stepping on VS territory again. The F5 key&nbsp;is definitely&nbsp;worst. In Borland IDEs (and now in CodeGear&#8217;s) the F5 key sets a breakpoint whereas in VS you run the application in debugging mode. Of course, in the Borland IDE there is a setting to change the shortcuts to the MS-style and there is a plugin available for VS to make&nbsp;the shortcuts&nbsp;work like in a Borland IDE.</p>
<p>All great. However, there are so many things that are not related to short-cuts and be it as simple as docking and undocking a window. It works very differently in VS. Yesterday, I found an awesome blog. Sara Ford writes one tip per day on Visual Studio 2008 on her blog. Actually, she sometimes blogs more than once a day and if you are just interested in the VS 2008 tips, use this URL to access them: <a href="http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx">http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx</a>&nbsp;</p>
<p>Sara Ford works for Microsoft and is part of the Visual Studio core team, so she definitely knows what she is talking about. Thanks for the great blog! </p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=455" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/01/eco-for-vs-great-blog-available-to-getting-used-to-short-cuts-and-other-different-things-in-the-microsoft-ide/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IEnumerable&#60;&#62; - the &#34;difference&#34; between Count&#60;&#62;() and Count()</title>
		<link>http://www.flickdotnet.de/index.php/2008/01/ienumerable-the-difference-between-count-and-count/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/01/ienumerable-the-difference-between-count-and-count/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 15:33:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:449</guid>
		<description><![CDATA[<p>After posting my last blog entry regarding LINQ, Jonas Högström pinged me on Skype. He asked me, why I had used Count<string>() instead of Count(). As IEnumerable<> already was only carrying string objects, there was no need to do that. I agreed, but said that I fell into a trap with Intellisense. Visual Studio makes it so easy to enter code that you sometimes make your code too verbose. However</string></p>]]></description>
			<content:encoded><![CDATA[<p>After posting my last blog entry regarding LINQ, Jonas Högström pinged me on Skype. He asked me, why I had used Count&lt;string&gt;() instead of Count(). As IEnumerable&lt;&gt; already was only carrying string objects, there was no need to do that. I agreed, but said that I fell into a trap with Intellisense. Visual Studio makes it so easy to enter code that you sometimes make your code too verbose. However, I waondered if there was a performance penalty to be paid as I definitely was calling a method that seems to be more complicated. So I used my good old friend the ildasm and asked him what he thought. </p>
<p>I wrote a short test case which called Count() and then Count&lt;string&gt;(). This is the reply he gave me:&nbsp; </p>
<pre>  int32 [System.Core]System.Linq.Enumerable::Count(class       [mscorlib]System.Collections.Generic.IEnumerable`1)
  call       void [mscorlib]System.Console::WriteLine(int32)
  nop
  ldloc.1
  call       int32 [System.Core]System.Linq.Enumerable::Count(class      [mscorlib]System.Collections.Generic.IEnumerable`1)
  call       void [mscorlib]System.Console::WriteLine(int32)
  nop
</pre>
<p>Thus, we can see that both calls to Count&lt;string&gt;() and to Count() result in the very same intermediate assembly code. So, the compiler makes the choice for us. There is absolutely no performance penalty involved as the same method is being called internally.<img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=449" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/01/ienumerable-the-difference-between-count-and-count/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free e-Books from MS Press</title>
		<link>http://www.flickdotnet.de/index.php/2008/01/free-e-books-from-ms-press/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/01/free-e-books-from-ms-press/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 12:14:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:446</guid>
		<description><![CDATA[<p>Thanks to Lex Li (<a href="http://lextm.blogspot.com/">http://lextm.blogspot.com/</a>) I found a link to three great e-books from MS Press. The topics are not outdated what one may think when reading "free".  Only the LINQ book is complete, the rest are restricted to some essential chapters.</p>
<p>The books are:</p>
<ul>
<li>Introducing Microsoft LINQ by Paolo Pialorsi and Marco Russo</li>
<li>Introducing Microsoft ASP.NET AJAX by Dino Esposito (Chapters </li>
<li>Introducing Microsoft Silverlight 1.0 by Laurence Moroney</li></ul>
<p> </p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=446" width="1" height="1"/>]]></description>
			<content:encoded><![CDATA[<p>Thanks to Lex Li (<a href="http://lextm.blogspot.com/">http://lextm.blogspot.com/</a>) I found a link to three great e-books from MS Press. The topics are not outdated what one may think when reading &#8220;free&#8221;.&nbsp; Only the LINQ book is complete, the rest are restricted to some essential&nbsp;chapters.</p>
<p>The books are:</p>
<ul>
<li><strong>Introducing Microsoft LINQ</strong> <br />by Paolo Pialorsi and Marco Russo</li>
<li><strong>Introducing Microsoft ASP.NET AJAX</strong> <br />by Dino Esposito (Chapters </li>
<li><strong>Introducing Microsoft Silverlight 1.0</strong> <br />by Laurence Moroney</li>
</ul>
<p>&nbsp;</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=446" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/01/free-e-books-from-ms-press/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using LinQ in your ECO Models</title>
		<link>http://www.flickdotnet.de/index.php/2008/01/using-linq-in-your-eco-models/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/01/using-linq-in-your-eco-models/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 10:56:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:444</guid>
		<description><![CDATA[<p>LinQ is much more than just being able to write database applications easier. People, who say that LinQ is limited to databases, should really have a look at it first. The strength of LinQ is that you can apply SQL-like queries to framework objects. Mostly, those are the same people who say that WCF is a new framework from Microsoft to force users to use new protocols invented by MS --</p>]]></description>
			<content:encoded><![CDATA[<p>LinQ is much more than just being able to write database applications easier. People, who say that LinQ is limited to databases, should really have a look at it first. The strength of LinQ is that you can&nbsp;apply SQL-like queries to framework objects. Mostly, those are the same people who say that WCF is a new framework from Microsoft to force users to use new protocols invented by MS &#8212; which is just as wrong. But back to the topic.</p>
<p>Assume, I have a class named &#8220;Person&#8221; and a person can have write documents. Thus, I add an one-to-many association to the class &#8220;Document&#8221;. I also add a method named &#8220;GetDocument&#8221; to the class &#8220;Person&#8221;. Every document is identified by a name, which is unique. The previously mentioned method &#8220;GetDocument&#8221; has exactly one parameter so I can specify the name of the document I want to retrieve. I make sure that the name is unique by always using &#8220;GetDocument&#8221; which uses LinQ to get the document I want.</p>
<p>It becomes very simple as the class &#8220;Person&#8221; already offers a list of &#8220;Document&#8221; with all the linked documents. I just need to find a document with a certain name. LinQ can be used with list classes in the .NET framework that implement IEnumerable and thus, you can use the following code to find a document. Furthermore, the following method creates a new document and hooks it up to the instance of person if there is no document by the name one is looking for.</p>
<p><img style="WIDTH:591px;HEIGHT:355px;" height=355 src="/gfx/ecolinq.png" width=591/></p>
<p>As my previous blog post indicates, you can use this comfort with VCL.NET and RAD Studio 2007 just as long as you build your models with the Visual Studio version of ECO. Sadly, there is no Delphi .NET support for LinQ yet. </p>
<p>For the people, who are 100% certain that LinQ is just something to make database access easier&#8230; where is the database in my example? <img src='http://www.flickdotnet.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=444" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/01/using-linq-in-your-eco-models/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ECO for VS and ECO for RAD Studio 2007 &#8230; are they compatible?</title>
		<link>http://www.flickdotnet.de/index.php/2008/01/eco-for-vs-and-eco-for-rad-studio-2007-are-they-compatible/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/01/eco-for-vs-and-eco-for-rad-studio-2007-are-they-compatible/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 10:50:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:443</guid>
		<description><![CDATA[<p>As blogs are supposed to be matter of fact style and without suspense: yes, you can use ECO Models that have been created with Visual Studio 2005/2008 in RAD Studio 2007 and vice versa. It even works if you target .NET 3.0/3.5 in Visual Studio 2008. You just have to add "System.Core.dll" from .NET 3.5 to your Delphi project that references the model and ECO will be able to pick</p>]]></description>
			<content:encoded><![CDATA[<p>As blogs are supposed to be matter of fact style and without suspense: yes, you can use ECO Models that have been created with Visual Studio 2005/2008 in RAD Studio 2007 and vice versa. It even works if you target .NET 3.0/3.5 in Visual Studio 2008. You just have to add &#8220;System.Core.dll&#8221; from .NET 3.5 to your Delphi project that references the model and ECO will be able to pick up all the packages inside of the assembly.</p>
<p>What advantages does that bring me using models from VS in RAD Studio 2007? Personally, I prefer the VCL to Winforms quite a lot and this way <strong>one can write client applications in VCL.NET without having the drawback of not being able to use LinQ</strong>! Linq is being used in all my models by now and I simply cannot compile them in RAD Studio 2007 as Delphi for .NET has no LinQ support at this stage.</p>
<p>&nbsp;</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=443" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/01/eco-for-vs-and-eco-for-rad-studio-2007-are-they-compatible/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ASP.NET 2.0, GridView and those few events that just have to fire twice once in a while&#8230;</title>
		<link>http://www.flickdotnet.de/index.php/2007/12/aspnet-20-gridview-and-those-few-events-that-just-have-to-fire-twice-once-in-a-while/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/12/aspnet-20-gridview-and-those-few-events-that-just-have-to-fire-twice-once-in-a-while/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 12:51:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:441</guid>
		<description><![CDATA[<p>Firstly, Merry Christmas! Yup, it's the season of X-Mas coding as I refer to it. Mostly, one fiddles around and tries new things ... </p>
<p>For me, I looked closely at ASP.NET 2.0. Sadly, there are actually some things MS introduced that really make me ask myself if it is progress or a big step backwards. Furthermore, some bugs that seem to be in the framework since version 2.0 are still</p>]]></description>
			<content:encoded><![CDATA[<p>Firstly, Merry Christmas! Yup, it&#8217;s the season of X-Mas coding as I refer to it. Mostly, one fiddles around and tries new things &#8230; </p>
<p>For me, I looked closely at ASP.NET 2.0. Sadly, there are actually some things MS introduced that really make me ask myself if it is progress or a big step backwards. Furthermore, some bugs that seem to be in the framework since version 2.0 are still in 3.5 &#8212; big bugs.</p>
<p>So, let&#8217;s say you have a grid on your page and instead of having a button or a link with text that says &#8220;Delete&#8221; in a row to give the user the option to delete a row from the grid, you define an image. Perfect. It looks great. However, you always end up with an exception in your code at some point that you refer to a tuple that is not in the grid. &#8220;How can that be?&#8221; you ask yourself as the &#8220;Delete&#8221; text is only inserted in the grid if there actually is something to be deleted. If you debug your application you will soon find out that the event is called twice by the framework. Wow, you think that must be some new invention called &#8220;AutoEventWireup&#8221; that supports lazy programming in its best. Yes,&nbsp;since ASP.NET 2.0 you do not need to tell the framework &#8220;That method in my code, is supposed to be fired for that control with that event&#8221; &#8212; the framework parses the method names using reflection and then decides &#8220;Oh, goodie, that&nbsp;method must be called when the user deletes a row from the grid.&#8221; If you make the bad mistake of defining the event in the designer and have AutoEventWireup set to true &#8212; yup, it&#8217;s called once by your definition and again because of the automatic mechanism. But it gets worse&#8230;. Switch it off and for an ImageLink it will be called twice anyways. It&#8217;s a bug. Go to MSDN and you can read all about it. What concerns me is the fact that this bug is in there since 2005. What has MS done with its new innovative frameworks branded 3.0 and 3.5 ? Exactly. Nada. I changed the target to the respective version numbers, the bug prevails. So, what can you do as a developer? I don&#8217;t know, sadly, my users will have to live without nice glyph images in their grids now. I don&#8217;t care. I use a textual link now and it works. The event only fires once now.</p>
<p>This is yet again one of the many examples that some bugs are simply&nbsp;never addressed. Every software product has those. Be it Visual Studio or RAD Studio. So, my resolution for 2008 will be to do my best to report bugs in QC and RAID so that the next Delphi will fewer&nbsp;annoying bugs like that.</p>
<p>With CodeGear we have a great public bug tracking system called Quality Central - at Microsoft I am still looking for something similar, but have not found something except the MSDN user forums&#8230;</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=441" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/12/aspnet-20-gridview-and-those-few-events-that-just-have-to-fire-twice-once-in-a-while/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First look at ECO IV for Visual Studio 2005/2008&#8230;</title>
		<link>http://www.flickdotnet.de/index.php/2007/12/first-look-at-eco-iv-for-visual-studio-20052008/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/12/first-look-at-eco-iv-for-visual-studio-20052008/#comments</comments>
		<pubDate>Sat, 22 Dec 2007 11:45:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:437</guid>
		<description><![CDATA[<p>I recently blogged about the fact that the ECO Team started a Field Test for ECO for Visual Studio. </p>
<p>Christmas is near... thus, the ECO Team released a new Field Test build for ECO for Visual Studio. The new installer supports automatic installation in Visual Studio 2005, Visual Studio 2008. The builds come with a modeler now. Whenever you create ECO models, VS starts an instance of EcoModeler by ModelMaker Tools. As I have</p>]]></description>
			<content:encoded><![CDATA[<p>I&nbsp;recently blogged about the fact that the ECO Team started a Field Test for ECO for&nbsp;Visual Studio.&nbsp;</p>
<p>Christmas is near&#8230; thus, the ECO Team released a new Field Test build for ECO for Visual Studio. The new installer supports automatic installation in Visual Studio 2005, Visual Studio 2008. The builds come with a modeler now. Whenever you&nbsp;create ECO models, VS starts an instance of EcoModeler by ModelMaker Tools. As I have used EcoModeler with ECO III already, I like this quite a lot. After installation you can see immediately that the installation was successful as ECO registers in the VS splash screen.</p>
<p><img style="WIDTH:536px;HEIGHT:326px;" height=326 src="/gfx/ecovs_splash.png" width=536 align=middle/></p>
<p>I have to note that it was quite difficult to take this screenshot. VS 2008 comes up in 1 second on my system. Thus, one has hardly time to press &#8220;Print Screen&#8221;. Sadly, there are some operations in VS that seem to take ages the first time you invoke them as almost nothing is being loaded into memory when you start it. I have to say though that&nbsp; I like this quite a lot. Whenever you edit a XML file e.g. VS comes up and it is there just after you double click the XML file. If you double-click a pas-file it takes about 10-20 seconds until RAD Studio 2007 shows the file. I much rather had a short start time&#8230;but I know just as many folks at conferences who prefer a snappy IDE without load on demand and accept the long boot time. But back to ECO&#8230;</p>
<p>&nbsp;If you select &#8220;File / New Project&#8230;&#8221;, ECO comes with a &#8220;solution wizard&#8221;. As MS has to use another terminology for anything (seen from the Delphi perspective *grin*), it had to be called a &#8220;Solution wizard&#8221;. Solutions are project groups in Delphi terms. However, as you will see shortly, ECO really makes use of solutions now as a single ECO application is split in different projects.</p>
<p><img style="WIDTH:540px;HEIGHT:482px;" height=482 src="/gfx/ecovs_newproject.png" width=540/></p>
<p>As you can see, ECO supports any .NET framework in Visual Studio 2008. Thus, you can target version 2.0, 3.0 or 3.5. This is awesome as version 3.5 comes with Linq and even if you do not want to use any databases or datasets, Linq is really useful for data structures as well. I hardly&nbsp;implement a C# class that does not make use of Linq. If you select &#8220;Eco solution&#8221; (not a&nbsp;good name yet, but it is beta&#8230;), the wizard appears:</p>
<p><img style="WIDTH:359px;HEIGHT:486px;" height=486 src="/gfx/ecovs_wizard.png" width=359/></p>
<p>Just as you can do in RAD Studio 2007, the wizard allows you to select from a number of presets to get started quickly. However, you can customize anything. In my opinion, the new structure of the wizard is much clearer than before. If you select the &#8220;Winform Application&#8221; preset and click &#8220;OK&#8221;, the wizard creates 3 projects in the solution:</p>
<p><img style="WIDTH:400px;HEIGHT:928px;" height=928 src="/gfx/ecovs_solution.png" width=400/></p>
<p>The project marked with 1 is the actual application that contains your main form and will be the exe file that you run. Of course, you can have more than one &#8220;assembly&#8221; with Winforms, the wizard gets you set. A new feature is the separate project for the ECO Space. Furthermore, the ECO Space always has the same &#8220;structure&#8221;. In all previous ECO versions the ECO Space for an ASP.NET&nbsp;Web application looked differently from a Winforms application. Finally, there is one approach for all application types! The model is also always seperate in a different assembly, which makes it easy to use one model for different applications. You can as many model projects to your solution as you want. Visual Studio compiles the complete solution automatically and the wizard sets up the dependencies for you. Thus, you do not need to be careful when changing the model that your application picks up these changes. The IDE takes care of that for you. If you right click on a ECO package, you can start the modeler:</p>
<p><img style="WIDTH:500px;HEIGHT:367px;" height=367 src="/gfx/ecovs_modeler.png" width=500/></p>
<p>This is ECO Modeler as we know it, with lots of improvements. I do not know when the last version was released, but this version &#8220;feels&#8221; much improved with regard to the last version for ECO III. You have visual shortcuts to add classes, attributes, methods and even to create associations between classes. More of that in another blog post.</p>
<p>Finally, if you design your user interface you will meet old friends. Borland Developer Studio 2006 had all those components, but since Winforms was dropped in RAD Studio 2007, the Winform features of ECO were no longer available.</p>
<p><img style="WIDTH:256px;HEIGHT:693px;" height=693 src="/gfx/ecovs_tools.png" width=256/></p>
<p>The worst thing about Visual Studio 2008 which just drives me crazy becomes very evident when having a lot of components in the toolbox. There is no filter function as in RAD Studio. It drives me crazy! You have to use the mouse all the time to add components to your form. </p>
<p>Summed up, ECO is already rock solid in VS. I have had no crashes using it. Some of the integration features need some fine-tuning, the name of the wizard being one example. Also the feedback to the user when doing some actions could be more, but I have to point out that it is a&nbsp; Field Test build. I love the approach to use separate projects. The build process is being made very easy. Sadly, I miss some of the comfort that the VCL gives me using RAD Studio 2007. However, there are quite a few features that are only available in Winforms, so you really have to weigh in both sides. As we are in the .NET world, we can gladly write the GUI in Delphi using VCL.NET!</p>
<p>If you are interested in trying ECO for Visual Studio, go to <a class="" href="http://www.capableobjects.com/" target=_blank>capableobjects.com</a>, the Field Test is public and thus open to anybody. Be aware that you need Visual Studio 2005 or 2008, the Express Editions are not supported.</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=437" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/12/first-look-at-eco-iv-for-visual-studio-20052008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Expression Blend: Design-time support for ECO objects</title>
		<link>http://www.flickdotnet.de/index.php/2007/11/expression-blend-design-time-support-for-eco-objects/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/11/expression-blend-design-time-support-for-eco-objects/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 22:11:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:433</guid>
		<description><![CDATA[<p>The easiest way to bind to CLR objects with WPF (or Blend) is to derive a list from ObservableCollection. Furthermore, in order to get design-time support, you need to implement a constructor that fills up the list with "dummy" data that can be displayed by Blend.</p>
<p>Thus, I added this class to my CD cover example:</p>
<p><img style="WIDTH:528px;HEIGHT:294px;" height=294 src="/gfx/ecodummy.png" width=528/></p>
<p>I create an ECO space, open it and retrieve 10 objects from</p>]]></description>
			<content:encoded><![CDATA[<p>The easiest way to bind to CLR objects with WPF (or Blend) is to derive a list from ObservableCollection. Furthermore, in order to get design-time support, you need to implement a constructor that fills up the list with &#8220;dummy&#8221; data that can be displayed by Blend.</p>
<p>Thus, I added this class to my CD cover example:</p>
<p><img style="WIDTH:528px;HEIGHT:294px;" height=294 src="/gfx/ecodummy.png" width=528/></p>
<p>I create an ECO space, open it and retrieve 10 objects from the database. Finally, I add them to the list.</p>
<p>You can now easily bind to CoverDummyCollection in Blend and design your listbox or any other control having a real design-time view that gives you a clear impression of what everything will look like during run-time.</p>
<p>&nbsp;</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=433" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/11/expression-blend-design-time-support-for-eco-objects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WPF, ECO and Expression Blend &#8230; it works!</title>
		<link>http://www.flickdotnet.de/index.php/2007/11/wpf-eco-and-expression-blend-it-works/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/11/wpf-eco-and-expression-blend-it-works/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 21:27:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:432</guid>
		<description><![CDATA[<p>After a weekend of reading, more reading, and listening to conference sessions about WPF I finally had the guts to try writing an ECO application with WPF. And wow ... it worked. I have still some things to work out and I will do my best to pitch some ideas to the ECO development team what I would like to see in the future with regard to WPF... but writing applications</p>]]></description>
			<content:encoded><![CDATA[<p>After a weekend of reading, more reading, and&nbsp;listening to conference sessions about WPF I finally had the guts to try writing an ECO application with WPF. And wow &#8230; it worked. I have still some things to work out and I will do my best to pitch some ideas to the ECO development team what I would like to see in the future with regard to WPF&#8230; but writing applications is possible already. The ECO space has design time support and you can use XAML to bind to ECO objects. As I am still a beginner regarding XAML, I use Blend for a lot of things. I also would like to be able to bind to ECO domain objects instead of &#8220;regular&#8221; .NET objects using a IValueConverter, but I have still some learning to do before I will be able to set that up.</p>
<p>My estimate was right that the learning curve is pretty high to get started with WPF. However, it really pays off in the end. The possibilities are endless with regard to component design and behavior. Blend gives you the power to buil your own custom component set without having to be a component devleoper per se. </p>
<p>Finally, I want to show you a screenshot of a 10 line app that uses WPF to display the album covers of my CD collection model. I actually really used the ECO package that I created using Delphi for .NET. The XAML was completely generated by Blend and has not been modified manually.</p>
<p>Click on the picture to see some &#8220;surrounding&#8221; bits taken from Blend. Note that the cover items in the listbox have shadows added to them using the shadow bitmap effect of WPF. </p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=432" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/11/wpf-eco-and-expression-blend-it-works/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LINQ: Another technology to look at</title>
		<link>http://www.flickdotnet.de/index.php/2007/11/linq-another-technology-to-look-at/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/11/linq-another-technology-to-look-at/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 11:27:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:427</guid>
		<description><![CDATA[<p>I am still busy enough with catching up on WPF, however, Stefan Cruysberghs (hope I spelled it correctly) published a three part article series on his web page that gets you familiar with all the things you can do with Linq. Personally, I still prefer ECO as I am familiar with it and need to look at WPF and WCF first. Still, it is always good to at least know</p>]]></description>
			<content:encoded><![CDATA[<p>I am still busy enough with catching up on WPF, however, Stefan Cruysberghs (hope I spelled it correctly) published a three part article series on his web page that gets you familiar with all the things you can do with Linq. Personally, I still prefer ECO as I am familiar with it and need to look at WPF and WCF first. Still, it is always good to at least know what capabilities Linq offers and thus I refer to Stefan&#8217;s great article series. Part 1 is at &nbsp;<a href="http://scip.be/index.php?Page=ArticlesNET02&amp;Lang=EN">http://scip.be/index.php?Page=ArticlesNET02&amp;Lang=EN</a>.</p>
<p>&nbsp;</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=427" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/11/linq-another-technology-to-look-at/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
