<?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>Bitpage.de - Der Technikblog &#187; Programmierung</title>
	<atom:link href="http://www.bitpage.de/category/programmierung/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bitpage.de</link>
	<description>IT-News und Reports für Technikaffine</description>
	<lastBuildDate>Tue, 31 Aug 2010 06:56:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>C#: Die Google Search API benutzen</title>
		<link>http://www.bitpage.de/2010/programmierung/c-die-google-search-api-benutzen</link>
		<comments>http://www.bitpage.de/2010/programmierung/c-die-google-search-api-benutzen#comments</comments>
		<pubDate>Sun, 28 Feb 2010 00:45:08 +0000</pubDate>
		<dc:creator>BulldoZer</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Google Search API]]></category>

		<guid isPermaLink="false">http://www.bitpage.de/?p=260</guid>
		<description><![CDATA[Seit dem Google die SOAP API für Google Search eingestellt hat, läuft alles über die neue Google Ajax API. Dabei werden sogenannte JSON-Objekte bei Anfragen über die Google Ajax API übergeben. Leider gibt Google keine Beispiele für C#, sondern nur für PHP, Java, Flash, Python und Perl, wie man die Google Ajax API benutzt. Aus [...]]]></description>
			<content:encoded><![CDATA[<p><img class="ngg-singlepic ngg-right  alignright" style="margin: 5px;" title="Die Google Search API" src="http://www.bitpage.de/wp-content/gallery/programmierung/googlesdk.jpg" alt="googlesdk" width="127" height="128" alt="Google SDK" /></p>
<p>Seit dem Google die <a href="http://googlecode.blogspot.com/2009/08/well-earned-retirement-for-soap-search.html" target="_blank">SOAP API für Google Search</a> eingestellt hat, läuft alles über die neue Google Ajax API. Dabei werden sogenannte <a href="http://de.wikipedia.org/wiki/JSON" target="_blank">JSON</a>-Objekte bei Anfragen über die Google Ajax API übergeben. Leider gibt Google keine Beispiele für C#, sondern nur für <a href="http://code.google.com/intl/de-DE/apis/ajaxsearch/documentation/#fonje" target="_blank">PHP, Java, Flash, Python und Perl, wie man die Google Ajax API</a> benutzt. Aus diesem Grund habe ich mich dazu entschlossen ein eigenes kleines Tutorial zu schreiben, wie man einfach und schnell Google Suchergebnisse in CSharp bekommt.<span id="more-260"></span></p>
<p>Hierzu gibt es bereits eine hilfreiche Dotnet-Library namens <a href="http://gapidotnet.codeplex.com/" target="_blank">GAPI.NET</a>, die einem das ungewohnte Hantieren mit JSON-Objekten erspart. Der Vorteil des Einsatzes einer externen Library ist, dass man sich nicht um das Ansprechen von Google kümmern muss und auch kein Einarbeiten in JSON notwendig ist. Wer sich trotzdem nicht auf fremden Code verlässt kann alles selbst nachvollziehen, denn GAPI ist Open Source.</p>
<p>Nachdem GAPI.NET heruntergeladen wurde muss die Assembly nur noch als Referenz in ein Visual Studio Projekt und die Using-Direktive &#8220;Gapi.Search&#8221; hinzugefügt werden. Jetzt geht es auch schon mit einem Beispiel-Codeschnipsel los, wie wir unsere Antworten von Google über C# bekommen.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">SearchResults googleResults <span style="color: #008000;">=</span> Searcher.<span style="color: #0000FF;">Search</span><span style="color: #000000;">&#40;</span>SearchType.<span style="color: #0000FF;">Web</span>, <span style="color: #666666;">&quot;Stephan Hawking&quot;</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> pageIndex <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> pageIndex <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> googleResults.<span style="color: #0000FF;">EstimatedResultCount</span><span style="color: #008000;">;</span> pageIndex <span style="color: #008000;">=</span> pageIndex <span style="color: #008000;">+</span> <span style="color: #FF0000;">8</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
      googleResults <span style="color: #008000;">=</span> Searcher.<span style="color: #0000FF;">Search</span><span style="color: #000000;">&#40;</span>SearchType.<span style="color: #0000FF;">Web</span>, keyword, pageIndex<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
      <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>SearchResult item <span style="color: #0600FF;">in</span> googleResults.<span style="color: #0000FF;">Items</span><span style="color: #000000;">&#41;</span>
         <span style="color: #000000;">&#123;</span>
              Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>item.<span style="color: #0000FF;">Title</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot; &quot;</span> <span style="color: #008000;">+</span> item.<span style="color: #0000FF;">Url</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
         <span style="color: #000000;">&#125;</span>
   <span style="color: #000000;">&#125;</span></pre></div></div>

<p>Dieser Code bewirkt, dass eine Suchabfrage nach &#8220;Stephan Hawking&#8221; gestartet wird. Bei jeder Suchanfrage spuckt GAPI bzw. Google nur 8 Ergebnisse aus, sodass jedesmal die Search-Methode erneut aufgerufen werden muss, wenn man die nächsten 8 Suchergebnisse haben möchte. Um zu verdeutlichen, wie die Search-Methode aufgerufen werden muss habe ich hier ein weiteres Code-Beispiel, die dies verdeutlichen soll.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// Gibt die zweite Seite mit 8 Suchergebnissen aus</span>
Searcher.<span style="color: #0000FF;">Search</span><span style="color: #000000;">&#40;</span>SearchType.<span style="color: #0000FF;">Web</span>, <span style="color: #666666;">&quot;Stephan Hawking&quot;</span>, <span style="color: #FF0000;">8</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Gibt die dirtte Seite mit 8 Suchergebnissen aus</span>
Searcher.<span style="color: #0000FF;">Search</span><span style="color: #000000;">&#40;</span>SearchType.<span style="color: #0000FF;">Web</span>, <span style="color: #666666;">&quot;Stephan Hawking&quot;</span>, <span style="color: #FF0000;">16</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Gibt die vierte Seite mit 8 Suchergebnissen aus</span>
Searcher.<span style="color: #0000FF;">Search</span><span style="color: #000000;">&#40;</span>SearchType.<span style="color: #0000FF;">Web</span>, <span style="color: #666666;">&quot;Stephan Hawking&quot;</span>, <span style="color: #FF0000;">24</span><span style="color: #000000;">&#41;</span></pre></div></div>

<p>Jetzt dürfte jedem klar sein, wie er GAPI bis zum letztem Suchergebnis ausquetscht. GAPI kann aber nicht nur die Google Web Search API ansprechen, sondern alle anderen APIs wie beispielsweise die Google Maps API ansprechen. Hierzu muss in der Search-Methode der gewünschte Search-Typ, der als Enum definiert ist, eingestellt werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitpage.de/2010/programmierung/c-die-google-search-api-benutzen/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PaperC: Kostenlos Fachbücher von O&#8217;Reilly, Markt+Technik und Addison Wesley lesen</title>
		<link>http://www.bitpage.de/2010/internet/paperc-kostenlos-fachbucher-von-oreilly-markttechnik-und-addison-wesley-lesen</link>
		<comments>http://www.bitpage.de/2010/internet/paperc-kostenlos-fachbucher-von-oreilly-markttechnik-und-addison-wesley-lesen#comments</comments>
		<pubDate>Thu, 25 Feb 2010 21:47:37 +0000</pubDate>
		<dc:creator>BulldoZer</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[bestes startup 2009]]></category>
		<category><![CDATA[fachbücher online lesen]]></category>
		<category><![CDATA[it-fachbücher kostenlos]]></category>
		<category><![CDATA[o'reilly bücher kostnelos lesen]]></category>
		<category><![CDATA[paperc]]></category>

		<guid isPermaLink="false">http://www.bitpage.de/?p=234</guid>
		<description><![CDATA[PaperC wagt einen mutigen Schritt in der Verlagswelt und bietet kostenlos mehr als 2.700 Fachbücher zum Lesen an. Darunter sind gerade frisch 600 Bücher vom O&#8217;Reilly-Verlag gelandet. Neben O&#8217;Reilly sind aber auch Bücher von Markt+Technik sowie Addison Wesley im Sortiment. IT-Fachbücher kosten viel Geld und kostenlose Online-Varianten gab es bisher nur wenige von O&#8217;reilly und [...]]]></description>
			<content:encoded><![CDATA[<p><img class="ngg-singlepic ngg-right" src="http://www.bitpage.de/wp-content/gallery/logos-und-ahnliches/paperc_logo_rgb_72dpi.png" alt="paperc_logo_rgb_72dpi" /><a href="http://www.paperc.de/" target="_blank">PaperC</a> wagt einen mutigen Schritt in der Verlagswelt und bietet kostenlos mehr als 2.700 Fachbücher zum Lesen an. Darunter sind gerade frisch 600 Bücher vom O&#8217;Reilly-Verlag gelandet. Neben <strong>O&#8217;Reilly</strong> sind aber auch Bücher von <strong>Markt+Technik</strong> sowie <strong>Addison Wesley</strong> im Sortiment. IT-Fachbücher kosten viel Geld und kostenlose Online-Varianten gab es bisher nur wenige von <a href="http://www.oreilly.de/online-books/" target="_blank">O&#8217;reilly</a> und <a title="Galileo Openbooks" href="http://www.galileocomputing.de/katalog/openbook" target="_blank">Galileo Computing</a>. <strong>Wie aber finanziert sich PaperC?</strong> Wer bei PaperC <span style="text-decoration: underline;">online lesen</span> möchte, muss sich kurz registrieren. Das ist kostenlos.<span id="more-234"></span></p>
<p><a class="thickbox" href="http://www.bitpage.de/wp-content/gallery/internet/screenshot-start-paperc.png"><img class="ngg-singlepic ngg-left" src="http://www.bitpage.de/wp-content/gallery/internet/thumbs/thumbs_screenshot-start-paperc.png" alt="screenshot-start-paperc" /></a>Möchte der Benutzer die Bücher als PDF downloaden, einzelne Buchseiten kommentieren oder Seiten drucken bezahlt pro Seite 10 Cent. Dabei muss das Benutzerkonto vorher via Paypal in vordefinierten Beträgen mit 1, 5 oder 10 Euro aufladen. Nach dem &#8220;Kauf &#8221; einer einzelnen Seite kann der Text auch problemlos via Copy &amp; Paste kopiert werden bspw. in ein Word-Dokument. Das Durchsuchen eines Buches ist trotz <a href="http://de.wikipedia.org/wiki/Freemium" target="_blank">&#8220;Freemium&#8221;-Modells</a> für registrierte Benutzer kostenlos.</p>
<p><a class="thickbox" href="http://www.bitpage.de/wp-content/gallery/internet/screenshot-paperc.png"><img class="ngg-singlepic ngg-right" src="http://www.bitpage.de/wp-content/gallery/internet/thumbs/thumbs_screenshot-paperc.png" alt="screenshot-paperc" /></a>Die Gründer von PaperC sind Felix Hofmann, Martin Fröhlich und Lukas Rieder. Der Sitz von PaperC ist in Leipzig. PaperC ist <a href="http://www.deutsche-startups.de/2009/11/30/paperc-ist-das-start-up-des-jahres/" target="_blank">deutsches Startup des Jahres 2009</a> und Gewinner des AKEP Award für Innovationen im digitalen Publizieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitpage.de/2010/internet/paperc-kostenlos-fachbucher-von-oreilly-markttechnik-und-addison-wesley-lesen/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C# Quelltext mit WP-Syntax in WordPress darstellen</title>
		<link>http://www.bitpage.de/2010/programmierung/c-quelltext-mit-wp-syntax-in-wordpress-darstellen</link>
		<comments>http://www.bitpage.de/2010/programmierung/c-quelltext-mit-wp-syntax-in-wordpress-darstellen#comments</comments>
		<pubDate>Thu, 25 Feb 2010 18:29:05 +0000</pubDate>
		<dc:creator>BulldoZer</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.bitpage.de/?p=220</guid>
		<description><![CDATA[Ich war schon länger auf der Suche nach einem gescheitem WordPress-Plugin, das CSharp-Code ordentlich darstellt. Mein erster Versuch war Googles Syntax Highlighter für WordPress, doch das hat aus irgendwelchen Gründen nicht auf meinem Blog richtig funktioniert und sorgte komischerweise für hohen Performance-Verlust. In Christians Blog habe ich dann das Plugin WP-Syntax gesehen und sofort installiert. [...]]]></description>
			<content:encoded><![CDATA[<p>Ich war schon länger auf der Suche nach einem gescheitem WordPress-Plugin, das CSharp-Code ordentlich darstellt. Mein erster Versuch war <a href="http://wordpress.org/extend/plugins/google-syntax-highlighter/" target="_blank">Googles Syntax Highlighter für WordPress</a>, doch das hat aus irgendwelchen Gründen nicht auf meinem Blog richtig funktioniert und sorgte komischerweise für hohen Performance-Verlust. In <a title="Singleton in C#" href="http://blog.dream-coder.de/2010/01/singlton-muster/" target="_blank">Christians Blog</a> habe ich dann das <a href="http://wordpress.org/extend/plugins/wp-syntax/" target="_blank">Plugin WP-Syntax</a> gesehen und sofort installiert. <span id="more-220"></span></p>
<p>So sieht C#-Code mit WP-Syntax in WordPress aus:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> GetSourceCode<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> url<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
     <span style="color: #008080; font-style: italic;">// Comment: Initialize the web client and download the source code</span>
     WebClient webClient <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> WebClient<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
     <span style="color: #FF0000;">string</span> sourceCode <span style="color: #008000;">=</span> webClient.<span style="color: #0000FF;">DownloadString</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;http://www.bitpage.de&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
     <span style="color: #0600FF;">return</span> sourceCode<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>In Zukunft wird es von mir ab und zu auch mal einen Code-Schnipsel für C-Sharp geben. Im Moment bin ich ein wenig mit der Google API am testen und da die Dokumentation seitens Google sehr schlecht ist, was CSharp angeht wäre das genau das Richtige.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitpage.de/2010/programmierung/c-quelltext-mit-wp-syntax-in-wordpress-darstellen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008: Hintergrundbild im Code-Editor</title>
		<link>http://www.bitpage.de/2010/programmierung/visual-studio-2008-hintergrundbild-im-code-editor</link>
		<comments>http://www.bitpage.de/2010/programmierung/visual-studio-2008-hintergrundbild-im-code-editor#comments</comments>
		<pubDate>Mon, 22 Feb 2010 14:41:52 +0000</pubDate>
		<dc:creator>BulldoZer</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.bitpage.de/?p=207</guid>
		<description><![CDATA[Der Desktop-Hintergrund hat bei jedem Benutzer meist immer ein individuelles, ansprechendes Foto als Hintergrundbild deklariert. Wenn man nun aber in Visual Studio programmiert wird der komplette Desktop verdeckt, denn neben den Code braucht man auch noch diverse Fenster wie den Project Explorer, die Error-List oder das Reference-Fenster. Standardmäßig ist die Hintergrundfarbe weiß in Visual Studio [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bitpage.de/wp-content/uploads/2010/02/visualstudio-code-editor-hintergrundbild.jpg" target="_blank"><img class="alignright size-thumbnail wp-image-209" style="margin: 5px;" title="visualstudio-code-editor-hintergrundbild" src="http://www.bitpage.de/wp-content/uploads/2010/02/visualstudio-code-editor-hintergrundbild-150x150.jpg" alt="" width="150" height="150" /></a>Der Desktop-Hintergrund hat bei jedem Benutzer meist immer ein individuelles, ansprechendes Foto als Hintergrundbild deklariert. Wenn man nun aber in Visual Studio programmiert wird der komplette Desktop verdeckt, denn neben den Code braucht man auch noch diverse Fenster wie den Project Explorer, die Error-List oder das Reference-Fenster. Standardmäßig ist die Hintergrundfarbe weiß in Visual Studio und auf Dauer langweilig. Wem das helle, freundliche Design schon auf den Wecker fällt und es auch anstrengend findet acht Stunden am Tag auf einen weißen Hintergrund zu starren, kann sich vorab erst einmal <a href="http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx" target="_blank">mit verschiedenen Farb-Schemen</a> helfen. <span id="more-207"></span></p>
<p><a href="http://www.bitpage.de/wp-content/uploads/2010/02/visualstudio-code-editor-hintergrundbild-melbourne-at-night.jpg" target="_blank"><img class="alignleft size-thumbnail wp-image-210" style="margin: 5px;" title="visualstudio-code-editor-hintergrundbild-melbourne-at-night" src="http://www.bitpage.de/wp-content/uploads/2010/02/visualstudio-code-editor-hintergrundbild-melbourne-at-night-150x150.jpg" alt="" width="150" height="150" /></a>Wer jetzt neben einem dunklem Farb-Schema auch noch ein Hintergrund-Bild haben möchte, ist hier genau richtig. Ohne Addin für Visual-Studio geht es hier aber leider nicht, denn Microsoft bietet diese Funktion nicht von Haus aus an. Um dennoch den Code-Editor bzw. die Code-Ansicht von Visual Studio 2008 verschönern zu können, benötigen wir die <a href="http://www.slickedit.com/products/slickedit-gadgets" target="_blank">Slickedit Gadgets</a>, die es zum kostenfreien Download gibt.  Einfach herunterladen, installieren und schon taucht in Visual Studio oben ein neuer Menüpunkt namens &#8220;Slickedit&#8221; auf. Klickt man dort auf &#8220;Editor gadgets&#8221; findet sich in einem neu geöffnetem Dialog der Reiter &#8220;editor graphic&#8221;. Hier kann nun das Hintergrundbild für die Code-Ansicht bzw. dem Code-Editor von Visual Studio 2008 eingestellt werden. Natürlich gibt es an dieser Stelle auch die Funktion das Hintergrund prozentual transparent erscheinen zu lassen. Je höher die Transparenz in Prozent, desto weniger ist das Hintergrundbild sichtbar. Neben Wallpapern eignen sich auch Figuren, Artworks oder Logos die an einer der Ecken oder zentriert angezeigt werden können.</p>
<p>Für mich hat sich diese Addin auf jeden Fall gelohnt und ich muss nicht mehr frustriert sein, dass ich meine Desktop-Wallpaper nur selten zu Gesicht bekomme. Wer eine Lizenz für CodeRush besitzt kann es auch noch mit dem &#8220;<a href="http://www.mobilebits.de/Blog/post/2009/06/02/Most-distracting-addin-ever-for-Visual-Studio-Changing-background-images.aspx" target="_blank">Random Background Changer</a>&#8221; von <a href="http://www.mobilebits.de/Blog/author/Benjamin.aspx" target="_blank">Benjamin Nitschke</a> so weit treiben, dass sich das Hintergrundbild ständig ändert und der Programmieralltag noch abwechslungsreicher wird. Wer jetzt nur noch das passende Wallpaper sucht, wird <a href="http://www.planetwallpapers.de/" target="_blank">hier</a> eventuell fündig.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitpage.de/2010/programmierung/visual-studio-2008-hintergrundbild-im-code-editor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sind Struktogramme hilfreich?</title>
		<link>http://www.bitpage.de/2010/programmierung/sind-struktogramme-hilfreich</link>
		<comments>http://www.bitpage.de/2010/programmierung/sind-struktogramme-hilfreich#comments</comments>
		<pubDate>Mon, 01 Feb 2010 22:19:47 +0000</pubDate>
		<dc:creator>BulldoZer</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.bitpage.de/?p=169</guid>
		<description><![CDATA[Struktogramme oder besser gesagt das Nassi-Shneiderman-Diagramm stellt den Ablauf eines Programms bzw. einer Funktion dar. Ein Struktogramm ist in einer einheitlichen Sprache definiert und lediglich die Funktionen DIV (ganzzahlige Division) und MOD (Modulo-Operation [Divison, mit der anstatt das Ergebnis der Rest der Division ausgegeben wird]) neben den normalen Operatoren &#8220;*&#8221; (Multiplikation), &#8220;/&#8221; (Division), &#8220;+&#8221; (Addition) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bitpage.de/wp-content/uploads/2010/02/BOF0097_3.jpg" target="_blank"><img class="size-thumbnail wp-image-174 alignright" style="border: 1px solid black; margin: 10px;" src="http://www.bitpage.de/wp-content/uploads/2010/02/BOF0097_3-150x150.jpg" alt="" width="150" height="150" /></a>Struktogramme oder besser gesagt das <a href="http://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm" target="_blank">Nassi-Shneiderman-Diagramm</a> stellt den Ablauf eines Programms bzw. einer Funktion dar. Ein Struktogramm ist in einer einheitlichen Sprache definiert und lediglich die Funktionen DIV (ganzzahlige Division) und MOD (Modulo-Operation [Divison, mit der anstatt das Ergebnis der Rest der Division ausgegeben wird]) neben den normalen Operatoren &#8220;*&#8221; (Multiplikation), &#8220;/&#8221; (Division), &#8220;+&#8221; (Addition) und &#8220;-&#8221; (Subtraktion) erlaubt sind. Funktionen wie Round(), die eine Zahl auf- oder abrunden, gibt es nicht. Ebenso sind andere spezifischen Eigenschaften einer Programmiersprache wie das erhöhen einer Laufvariabel mit der Kurzform &#8220;i++; &#8221; nicht erlaubt. Es gibt lediglich die genannten Operationen. Zuweisungen von Variabeln finden mit einem Doppelpunkt und Gleichheitszeichen statt.<span id="more-169"></span></p>
<p>Ein einfaches Beispiel für ein Struktogramm wäre ein kleines Programm, das den BMI einer Person errechnet. Die <a href="https://www.uni-hohenheim.de/wwwin140/info/interaktives/bmi.htm" target="_blank">Body Mass Index</a>-Formel lautet Körpergewicht / Körpergroesse ². Der Programmablauf sähe in einem Struktogramm etwa wie folgt aus:</p>
<div><a href="http://www.bitpage.de/wp-content/uploads/2010/02/BMI-berechnen.png"><img class="aligncenter size-full wp-image-170" title="BMI berechnen" src="http://www.bitpage.de/wp-content/uploads/2010/02/BMI-berechnen.png" alt="" width="330" height="293" /></a></div>
<p>DFA steht für <strong>d</strong>atei<strong>f</strong>reie <strong>A</strong>usgabe und DFE für <strong>d</strong>atei<strong>f</strong>reie <strong>E</strong>ingabe. Nachdem ich nun kurz darauf eingegangen bin, was ein Struktogramm ist und wie es in etwa aufgebaut ist, bleibt nun die Frage, ob so ein Struktogramm hilfreich ist. Kurz und einfach: Ja, es ist hilfreich, aber nicht unbedingt ein Muss. Ein guter Entwickler macht sich, bevor er wild in der Entwickl</p>
<p>ungsumgebung seinen Code zusammenhackt, darüber Gedanken, was sein Programm können muss. Hierzu hilft oft schon <a href="http://de.wikipedia.org/wiki/Unified_Modeling_Language" target="_blank">UML</a>, wobei das Struktogramm sich auf einen kleineren Kontext bezieht. Das Programm bzw. die Funktion BMIberechnen() könnte ein Teil einer Fitness-Softwarelösung sein und während in UML das Gesamtkonzept steht, hilft ein Struktogramm sich gedanklich mit einer einfachen oder komplexen Funktion auseinanderzusetzen.</p>
<p>Natürlich ist ein Struktogramm nicht immer die beste Lösung für alle Aufgaben, denn durch das Erstellen eines Nassi-Shneiderman-Diagramms muss man vorher abwägen, ob sich die Zeit lohnt dafür zu investieren. Bei schwierigen und unübersichtlichen Aufgabenstellungen kann dies aber sehr hilfreich sein! Man vermeidet Flüchtigkeits- und vor allem verherende Logikfehler. Logikfehler können große Ausmaße annehmen, vor allem wenn das Programm scheinbar erst einmal fehlerfrei funktioniert. Natürlich ist ein Struktogramm keine Garantie dafür, einen Logikfehler zu vermeiden, doch das Risiko sinkt, da der Programmierer sich zuvor sich mit dem Programm intensiv &#8211; ohne eine Zeile Code zu schreiben &#8211; mit folgenden Punkten auseinandergesetzt hat:</p>
<ul>
<li>Welche Variablen brauche ich?</li>
<li>Welche Eingaben müssen vom Benutzer gemacht werden?</li>
<li>Welche Fehler muss ich abfangen?</li>
<li>Auf welche Besonderheiten muss ich achten?</li>
<li>Welche Verschachtelungen von Bedinungsabfragen sind sinnvoll und optimal?</li>
<li>Benötige ich eine Kopf- oder fussgesteuerte Schleife?</li>
<li>Welche Variabel muss initialisiert werden?</li>
</ul>
<p>Meiner Meinung nach unterscheidet dies einen guten Programmierer von den Schlechten. &#8220;Trial and Error&#8221; ist nicht mehr die moderne Programmierform. Sich Gedanken machen und dann loslegen spart oftmals Zeit und Nerven.</p>
<p>Bildquelle (erstes Bild oben): © 2008 Bernd Boscolo / pixelio.de</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitpage.de/2010/programmierung/sind-struktogramme-hilfreich/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neues Projekt: System.AddIns bzw. Managed AddIn Framework</title>
		<link>http://www.bitpage.de/2009/programmierung/neues-projekt-system-addins-bzw-managed-addin-framework</link>
		<comments>http://www.bitpage.de/2009/programmierung/neues-projekt-system-addins-bzw-managed-addin-framework#comments</comments>
		<pubDate>Thu, 05 Nov 2009 21:24:47 +0000</pubDate>
		<dc:creator>BulldoZer</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.bitpage.de/?p=102</guid>
		<description><![CDATA[Juhu! Endlich fange ich in meiner Ausbildung ein neues Projekt an, dass mir wieder sehr viel Spass bereiten wird! Ich werde mich mit meinem Kollegem ausführlich mit dem Managed AddIn Framework von Microsoft beschäftigen, dass eine Architektur für die Erweiterung von .NET-Anwendungen bereitstellt und es fast &#8220;kinderleicht&#8221; ist zu implementieren. Allerdings gibt es leider auch [...]]]></description>
			<content:encoded><![CDATA[<p>Juhu! Endlich fange ich in meiner Ausbildung ein neues Projekt an, dass mir wieder sehr viel Spass bereiten wird! Ich werde mich mit meinem Kollegem ausführlich mit dem Managed AddIn Framework von Microsoft beschäftigen, dass eine Architektur für die Erweiterung von .NET-Anwendungen bereitstellt und es fast &#8220;kinderleicht&#8221; ist zu implementieren. Allerdings gibt es leider auch sehr viele veraltete Quellen im Internet, sodass es sich garantiert für mich lohnen wird hier etwas darüber zu schreiben. Bis dahin werde ich mich aber noch sehr ausführlich mit der Add-In Architektur von Microsoft beschäftigten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitpage.de/2009/programmierung/neues-projekt-system-addins-bzw-managed-addin-framework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
