<?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>FASTER Software</title>
	<atom:link href="http://www.faster-software.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.faster-software.de</link>
	<description></description>
	<lastBuildDate>Thu, 15 Dec 2011 12:54:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Softwareberichte melden, einfach und effektiv!</title>
		<link>http://www.faster-software.de/2011/11/17/softwareberichte-melden-einfach-und-effektiv/</link>
		<comments>http://www.faster-software.de/2011/11/17/softwareberichte-melden-einfach-und-effektiv/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 11:38:40 +0000</pubDate>
		<dc:creator>Eva Eckle</dc:creator>
				<category><![CDATA[Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.faster-software.com/?p=615</guid>
		<description><![CDATA[Von Eva Eckle FASTER Software &#8211; 23. November 2011 Das Hauptziel eines Berichts ist es, ob Fehlermeldung oder der einer... <a href="http://www.faster-software.de/2011/11/17/softwareberichte-melden-einfach-und-effektiv/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p><em>Von Eva Eckle</em></p>
<p><em>FASTER Software &#8211; 23. November 2011</em><br />
<strong>Das Hauptziel eines Berichts ist es, ob Fehlermeldung oder der einer neuen Anforderung, den Programmierern, den Fehler oder die Anforderung »mit den eigenen Augen« sehen zu lassen. Sprich, je genauer die Anweisungen, umso effektiver wird die Kommunikation sein und spart damit viel Zeit und Nerven &#8211; auf beiden Seiten.</strong></p>
<p><span id="more-615"></span></p>
<p><img class="size-thumbnail wp-image-1379 alignleft" title="FASTER-Qualitaetssiegel" src="http://www.faster-software.de/wp-content/uploads/2011/11/FASTER-Qualitaetssiegel-200x200.jpg" alt="" width="200" height="200" />Hamburg/Neu Wulmstorf – Um die Kommunikation der  Softwareberichte für beide Seiten so effektiv wie möglich zu gestalten, haben wir hier auf der FASTER Webseite für Sie ein Formular integriert, indem sie einfach und nach unseren Vorgaben Ihre Berichte an uns weitergeben sollten. Diese werden dann direkt in das »FASTER-Issue-Tracking-System« eingetragen und wir werden entsprechend effektiv reagieren.</p>
<p>Versuchen Sie genau auseinander zu halten, was die tatsächlichen Vorkommnisse waren und was Ihre Interpretationen und Spekulationen sind. Diagnostizieren Sie gerne das Problem selbst. Wichtig für uns ist aber vor allem,  dass Sie uns stets die Symptome des Ausfalls sowie die tatsächlichen Vorkommnisse exakt erläutern.</p>
<p>Beschreiben Sie, was Sie sahen und auch, was Sie zu sehen erwartet haben. Erläutern Sie die Fehlermeldungen, vor allem dann, wenn sie Nummern enthalten.</p>
<p>Das allerwichtigste ist: Schreiben Sie klar und seien Sie präzise. Lieber zu viel als zu wenig.<br />
Softwareentwickler lieben Genauigkeit!</p>
<p>Gerne verweisen wir an dieser Stelle auf die Webseite von Simon Tatham; seines Zeichens Berufsprogrammierer und Programmierer freier Software. Er hat sich dort mit viel Herzblut und äußerst ausführlich dem Thema »Wie Sie Softwareberichte melden sollten« gewidmet. <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs-de.html" target="_blank">http://www.chiark.greenend.org.uk/~sgtatham/bugs-de.html</a></p>
<p>In diesem Sinne: Bei Auftreten von Fehlern und Vorkommnissen jeder Art nutzen Sie das FASTER-Formular oder kontaktieren Sie ihren zuständigen Softwareentwickler.</p>
<p>Wir zeigen Ihnen, wie Sie es uns zeigen sollten:<br />
<a href="http://www.faster-software.de/report">Zum FASTER Problembericht-Formular</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/11/17/softwareberichte-melden-einfach-und-effektiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Herzlich Willkommen! Unser Team erweitert sich um einen neuen Azubi</title>
		<link>http://www.faster-software.de/2011/08/08/herzlich-willkommen-unser-team-erweitert-sich-um-einen-neuen-azubi/</link>
		<comments>http://www.faster-software.de/2011/08/08/herzlich-willkommen-unser-team-erweitert-sich-um-einen-neuen-azubi/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 14:37:27 +0000</pubDate>
		<dc:creator>Eva Eckle</dc:creator>
				<category><![CDATA[Marktplatz]]></category>

		<guid isPermaLink="false">http://www.faster-software.de/?p=1331</guid>
		<description><![CDATA[Von Eva Eckle FASTER Software &#8211; 04. August 2011 Sebastian Hain, der nun seit Montag, den 01. August als Auszubildender... <a href="http://www.faster-software.de/2011/08/08/herzlich-willkommen-unser-team-erweitert-sich-um-einen-neuen-azubi/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p>Von Eva Eckle</p>
<p><em>FASTER Software &#8211; 04. August 2011<br />
</em><strong>Sebastian Hain, der nun seit Montag, den 01. August als Auszubildender bei FASTER Software seine Tätigkeit aufgenommen und sein Studium hier in Hamburg zum Fachinformatiker »Anwendungsentwicklung« begonnen hat, reiht sich nun in das FASTER Team als angehender Softwareentwickler ein.</strong></p>
<p>Hamburg/Neu Wulmstorf – Wir freuen uns über die Erweiterung unseres dynamischen Teams um einen jungen wissensdurstigen Softwareentwickler.<span id="more-1331"></span></p>
<p>Sebastian sieht der kommenden Zeit und der Ausbildung zum Fachinformatiker mit Fachrichtung Anwendungsentwicklung hier in Hamburg mit Freude entgegen. <a href="http://www.faster-software.de/wp-content/uploads/2011/08/sebastian.jpg" class="lightbox" rel="lightbox[1331]"><img class="size-full wp-image-1335 alignleft" title="sebastian" src="http://www.faster-software.de/wp-content/uploads/2011/08/sebastian.jpg" alt="" width="140" height="185" /></a>»Eine Wohnung zu finden war eine echte erste Herausforderung, aber ich freue mich darauf Hamburg kennen zu lernen« so Sebastian. Was Sebastian dann im Rahmen seiner Ausbildung für eine Softwarelösung entwickeln wird &#8211; wir sind gespannt. Darüber werden wir zur gegebenen Zeit wieder berichten.</p>
<p>So jetzt wünschen wir Dir Sebastian erst einmal einen guten Start hier in Hamburg. Auf das Du Dich gut einleben und die folgenden zwei Jahre eine bereichernde und erfolgreiche Zeit hier in der schönsten Stadt der Welt erleben mögest.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/08/08/herzlich-willkommen-unser-team-erweitert-sich-um-einen-neuen-azubi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veranstaltungen</title>
		<link>http://www.faster-software.de/2011/07/27/veranstaltungen/</link>
		<comments>http://www.faster-software.de/2011/07/27/veranstaltungen/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 10:47:26 +0000</pubDate>
		<dc:creator>Eva Eckle</dc:creator>
				<category><![CDATA[Veranstaltungen]]></category>

		<guid isPermaLink="false">http://www.faster-software.de/?p=1275</guid>
		<description><![CDATA[Neue Veranstaltungsreihe: »Tech@FASTER« in Neu Wulmstorf Kostenloser Workshop für neueste Technologien und Trends bei der Softwareentwicklung &#8211; aus der Praxis... <a href="http://www.faster-software.de/2011/07/27/veranstaltungen/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<h2>Neue Veranstaltungsreihe: »Tech@FASTER« in Neu Wulmstorf</h2>
<h2>Kostenloser Workshop für neueste Technologien und Trends bei der Softwareentwicklung &#8211; aus der Praxis für die Praxis</h2>
<p>Ohne IT geht gar nichts, die IT-Infrastruktur ist das zentrale Nervensystem eines jeden Unternehmens. Die effektive und reibungslose Organisation der IT-Landschaft wirkt sich unmittelbar auf die Rentabilität und Produktivität eines Unternehmens aus.</p>
<p>Nutzen Sie die Gelegenheit bei den »Tech@FASTER« Workshops in Neu Wulmstorf mehr über neueste Technologien und Techniken zu erfahren. Investieren Sie diese Zeit! Sie bekommen von uns Anregungen, um Softwareentwicklungstechniken effizienter einzusetzen und erhalten Ideen für zusätzliche Möglichkeiten des Technologieeinsatzes.</p>
<p>Diese FASTER Veranstaltungsreihe beginnt am:<br />
<strong>Mittwoch, den 28.09.2011 von 17:00 &#8211; 19:00 Uhr.</strong></p>
<p>Ab dem 01.02.2012 findet »Tech@FASTER« dann regelmäßig einmal pro Quartal jeweils an einem Mittwoch immer von 17:00 &#8211; 19:00 Uhr statt. Für Ihr leibliches Wohl ist selbstverständlich gesorgt. Den Veranstaltungsort sowie das Wunschthema einer jeden Veranstaltung können Sie zwei Wochen vor der nächsten Veranstaltung auf dieser Seite einsehen.</p>
<table style="margin-bottom: 16px;">
<tbody>
<tr>
<td style="padding-left: 0px; width: 25%;"><strong>Veranstalter?</strong></td>
<td>FASTER Software GmbH</td>
</tr>
<tr>
<td style="padding-left: 0px;"><strong>Wo?</strong></td>
<td>In Neu Wulmstorf; voraussichtlich in den Räumen von FASTER Software</td>
</tr>
<tr>
<td style="padding-left: 0px;"><strong>Warum?</strong></td>
<td>Wir möchten Ihnen zeigen, was wir können, Sie für neue Themen begeistern und Ihnen praxisorientiert neueste Microsoft Technologien vermitteln, die Sie dann direkt selber einsetzen können. </td>
</tr>
<tr>
<td style="padding-left: 0px;"><strong>Unser Ziel?</strong></td>
<td>Konzentration und Investition in Wunschkunden im direkten Umkreis</td>
</tr>
<tr>
<td style="padding-left: 0px;"><strong>Unser Wunsch?</strong></td>
<td>Sie als Kunden gewinnen und mit unserem Know-How unterstützen</td>
</tr>
<tr>
<td style="padding-left: 0px;"><strong>Referent?</strong></td>
<td>Leitung Softwareentwicklung, Matthias Loerke <a href="http://www.faster-software.de/menschen">Menschen</a></td>
</tr>
<tr>
<td style="padding-left: 0px;"><strong>ROI?</strong></td>
<td>Wir geben Ihnen Anregungen, Themen, Ideen und Beispiele aus der Praxis für die Praxis, damit Sie Softwareentwicklungstechniken noch effizienter einsetzen können.</td>
</tr>
</tbody>
</table>
<p>Damit Sie den größtmöglichen Nutzen aus der Veranstaltung ziehen, möchten wir Sie von Anfang an einbinden. Aus diesem Grund bitten wir Sie, in dem folgenden Formular Ihre Wunschthemen anzugeben. Wählen Sie gerne großzügig, so dass wir eine möglichst große Schnittmenge erhalten!</p>
<p>Das Top 1 Wunschthema wird dann bei der ersten »Tech@FASTER« behandelt.</p>
<p>Das Wunschthema für die anstehende Veranstaltung werden wir dann sowohl per E-Mail direkt an Sie als auch hier auf dieser Seite kommunizieren. Sollte Ihr Wunschthema bei dieser Veranstaltung nicht dabei sein, wird es sicherlich in einer der kommenden Veranstaltungen behandelt.</p>
<div class="frm_forms with_frm_style" id="frm_form_3_container">
<form enctype="multipart/form-data" method="post" class="frm-show-form" id="form_d8rj04" >

<div class="frm_form_fields">
<fieldset>
<div>
<input type="hidden" name="frm_action" value="create" />
<input type="hidden" name="form_id" value="3" />
<input type="hidden" name="form_key" value="d8rj04" />
<div id="frm_field_33_container" class="form-field  frm_required_field frm_top_container">
    <label class="frm_primary_label">Vor- und Nachname
        <span class="frm_required">*</span>
    </label>
    <input type="text" id="field_vor-undnachname" name="item_meta[33]" value=""  class="text required"/>
    

    
    
</div>
<div id="frm_field_34_container" class="form-field  frm_required_field frm_top_container">
    <label class="frm_primary_label">Position oder Jobtitel
        <span class="frm_required">*</span>
    </label>
    <input type="text" id="field_positionjobtitel" name="item_meta[34]" value=""  class="text required"/>
    

    
    
</div>
<div id="frm_field_35_container" class="form-field  frm_required_field frm_top_container">
    <label class="frm_primary_label">Firma
        <span class="frm_required">*</span>
    </label>
    <input type="text" id="field_firma" name="item_meta[35]" value=""  class="text required"/>
    

    
    
</div>
<div id="frm_field_36_container" class="form-field  frm_required_field frm_top_container">
    <label class="frm_primary_label">E-Mail-Adresse
        <span class="frm_required">*</span>
    </label>
    <input type="text" id="field_e-mail-adresse" name="item_meta[36]" value=""  class="text required"/>
    

    
    
</div>
<div id="frm_field_42_container" class="form-field  frm_required_field frm_top_container">
    <label class="frm_primary_label">Wie sind Sie auf diese Veranstaltung aufmerksam geworden?
        <span class="frm_required">*</span>
    </label>
    <div class="frm_radio"><input type="radio" name="item_meta[42]" id="field_42-0" value="Ich wurde von Ihnen eingeladen." checked="checked"  class="radio required"/><label for="field_42-0">Ich wurde von Ihnen eingeladen.</label></div>
    <div class="frm_radio"><input type="radio" name="item_meta[42]" id="field_42-1" value="Ich habe diese Veranstaltung über eine Suchmaschine gefunden."   class="radio required"/><label for="field_42-1">Ich habe diese Veranstaltung über eine Suchmaschine gefunden.</label></div>
    <div class="frm_radio"><input type="radio" name="item_meta[42]" id="field_42-2" value="Die Veranstaltung wurde mir empfohlen."   class="radio required"/><label for="field_42-2">Die Veranstaltung wurde mir empfohlen.</label></div>
    <div class="frm_radio"><input type="radio" name="item_meta[42]" id="field_42-3" value="(Siehe Kommentar unten)"   class="radio required"/><label for="field_42-3">(Siehe Kommentar unten)</label></div>
    
    
    
</div>
<div id="frm_field_38_container" class="form-field  frm_required_field frm_top_container">
    <label class="frm_primary_label">Welche Themen wünschen Sie sich für die Veranstaltung?
        <span class="frm_required">*</span>
    </label>
    <div class="frm_checkbox" id="frm_checkbox_38-0"><input type="checkbox" name="item_meta[38][]" id="field_38-0" value="Einführung in .NET (Sprache C#)"   class="checkbox required"/><label for="field_38-0">Einführung in .NET (Sprache C#)</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-1"><input type="checkbox" name="item_meta[38][]" id="field_38-1" value="Einführung in Windows Communication Foundation (WCF)"   class="checkbox required"/><label for="field_38-1">Einführung in Windows Communication Foundation (WCF)</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-2"><input type="checkbox" name="item_meta[38][]" id="field_38-2" value="Einführung in Windows Presentation Foundation (WPF)"   class="checkbox required"/><label for="field_38-2">Einführung in Windows Presentation Foundation (WPF)</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-3"><input type="checkbox" name="item_meta[38][]" id="field_38-3" value="Einführung in ASP.NET"   class="checkbox required"/><label for="field_38-3">Einführung in ASP.NET</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-4"><input type="checkbox" name="item_meta[38][]" id="field_38-4" value="Kontenprovisionierung mit ADSI für Active Directory"   class="checkbox required"/><label for="field_38-4">Kontenprovisionierung mit ADSI für Active Directory</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-5"><input type="checkbox" name="item_meta[38][]" id="field_38-5" value="Postfachprovisionierung mit PowerShell für Exchange 2010"   class="checkbox required"/><label for="field_38-5">Postfachprovisionierung mit PowerShell für Exchange 2010</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-6"><input type="checkbox" name="item_meta[38][]" id="field_38-6" value="Einführung in die Entwicklung von PowerShell Cmdlets"   class="checkbox required"/><label for="field_38-6">Einführung in die Entwicklung von PowerShell Cmdlets</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-7"><input type="checkbox" name="item_meta[38][]" id="field_38-7" value="Nutzung und Vorteile einer Versionskontrolle"   class="checkbox required"/><label for="field_38-7">Nutzung und Vorteile einer Versionskontrolle</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-8"><input type="checkbox" name="item_meta[38][]" id="field_38-8" value="Nutzung und Vorteile eines Issue-Tracking-Systems"   class="checkbox required"/><label for="field_38-8">Nutzung und Vorteile eines Issue-Tracking-Systems</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-9"><input type="checkbox" name="item_meta[38][]" id="field_38-9" value="Alternativen zu Scripting durch Entwicklung von Kommandozeilentools"   class="checkbox required"/><label for="field_38-9">Alternativen zu Scripting durch Entwicklung von Kommandozeilentools</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-10"><input type="checkbox" name="item_meta[38][]" id="field_38-10" value="Generierung von Sourcecode mit T4"   class="checkbox required"/><label for="field_38-10">Generierung von Sourcecode mit T4</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-11"><input type="checkbox" name="item_meta[38][]" id="field_38-11" value="Scripting mit PowerShell"   class="checkbox required"/><label for="field_38-11">Scripting mit PowerShell</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-12"><input type="checkbox" name="item_meta[38][]" id="field_38-12" value="Data Driven Unit Testing"   class="checkbox required"/><label for="field_38-12">Data Driven Unit Testing</label></div>
<div class="frm_checkbox" id="frm_checkbox_38-13"><input type="checkbox" name="item_meta[38][]" id="field_38-13" value="(Siehe Kommentar unten)"   class="checkbox required"/><label for="field_38-13">(Siehe Kommentar unten)</label></div>

    
    
</div>
<div id="frm_field_40_container" class="form-field  frm_top_container">
    <label class="frm_primary_label">Ihr Kommentar / Weitere Themenwünsche
        <span class="frm_required"></span>
    </label>
    <textarea name="item_meta[40]" id="field_ihrkommentaranuns" rows="5"  class="textarea"></textarea> 
    

    
    
</div>
<input type="hidden" name="item_key" value="" />
</div>
</fieldset>
</div>
<script type="text/javascript">
</script>

<p class="submit">
<input type="submit" value="Anmelden" />
</p>
</form>
</div>
<h2>Anmerkung für alle nicht vorab eingeladenen Gäste!</h2>
<p>Auch wenn Sie von uns nicht vorab eingeladen wurden – freuen wir uns über Ihr Interesse und<br />
Ihre Teilnahme. Bitten Sie allerdings darum, sich kurz mit uns in Verbindung zu setzen.<br />
Entweder per E-Mail oder per Telefon. <a href="http://www.faster-software.de/kontakt">Kontakt</a><br />
Gerne geben Sie auch schon in dem obigen Formular Ihre Wunschthemen an.</p>
<p>Wir freuen uns auf die Veranstaltung und auf einen konstruktiven Austausch mit Ihnen!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/07/27/veranstaltungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geschafft! Unser Team erweitert sich um einen MCPD Junior-Entwickler</title>
		<link>http://www.faster-software.de/2011/04/20/geschafft-unser-team-erweitert-sich-um-einen-mcpd-junior-entwickler/</link>
		<comments>http://www.faster-software.de/2011/04/20/geschafft-unser-team-erweitert-sich-um-einen-mcpd-junior-entwickler/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 14:31:34 +0000</pubDate>
		<dc:creator>Frank Schliefkowitz</dc:creator>
				<category><![CDATA[Marktplatz]]></category>

		<guid isPermaLink="false">http://www.faster-software.de/?p=1246</guid>
		<description><![CDATA[Von Eva Eckle FASTER Software &#8211; 20. April 2011 Tim Zielonka, der nun mehr seit Oktober 2008 Auszubildender bei FASTER Software... <a href="http://www.faster-software.de/2011/04/20/geschafft-unser-team-erweitert-sich-um-einen-mcpd-junior-entwickler/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p>Von Eva Eckle</p>
<p><em>FASTER Software &#8211; 20. April 2011<br />
</em><strong>Tim Zielonka, der nun mehr seit Oktober 2008 Auszubildender bei FASTER Software ist, hat -neben diversen weiteren Microsoft Zertifikaten- auch den MCPD erfolgreich bestanden und reiht sich nun in unserem Team als Junior-Entwickler ein.</strong></p>
<p>Hamburg/Neu Wulmstorf – Wir freuen uns darüber, dass Tim, den wir seit fast zweieinhalb Jahren in unserem Unternehmen bei seiner Ausbildung begleiten, nun mit Kreativität und technischer Leidenschaft unser dynamisches Team erweitern wird.<span id="more-1246"></span></p>
<p><img class="size-full wp-image-1250 alignleft" title="Zertifikat" src="http://www.faster-software.de/wp-content/uploads/2011/04/Zertifikat.png" alt="" width="164" height="124" />Tim erzählte mir, dass sich der MCPD aus dem Zertifikat »Microsoft Certified Technology Specialist« und einer zusätzlichen Prüfung ergäbe. »Die MCPD Prüfung an sich ging drei Stunden und umfasste 40 Multiple-Choice-Fragen. Meine aktive Vorbereitung auf die Prüfung betrug circa eine Woche« so Tim. Schwierigkeiten ergaben sich aus seiner Sicht während der Prüfung lediglich aus dem Umstand, dass die Fragen an sich eher kompliziert gestellt und recht exotische Probleme abgebildet wurden.</p>
<p>Seine Ausbildung zum Fachinformatiker mit Fachrichtung Anwendungsentwicklung geht dem Ende entgegen. <img class="size-full wp-image-1249 alignright" title="TimZ" src="http://www.faster-software.de/wp-content/uploads/2011/04/TimZ.png" alt="" width="113" height="150" />Zum Abschluss seiner Prüfungen im Juni dieses Jahres wird Tim für FASTER Software eine kleine intelligente Lösung entwickeln und implementieren. Darauf freuen wir uns intern schon sehr. Denn diese wird bei uns bestimmte interne Abläufe wesentlich effektiver gestalten und vieles vereinfachen. Aber darüber werden wir in naher Zukunft noch einmal gesondert berichten.</p>
<p>In diesem Sinne: Tim, für Deine abschließenden Prüfungen wünschen wir Dir weiterhin viel Erfolg und freuen uns, Dich dann ab Juni als vollwertigen Junior-Entwickler in unserem Team einzusetzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/04/20/geschafft-unser-team-erweitert-sich-um-einen-mcpd-junior-entwickler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ausbildungsplatz Fachinformatik</title>
		<link>http://www.faster-software.de/2011/02/03/ausbildungsplatz-fachinformatik/</link>
		<comments>http://www.faster-software.de/2011/02/03/ausbildungsplatz-fachinformatik/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 13:54:39 +0000</pubDate>
		<dc:creator>Frank Schliefkowitz</dc:creator>
				<category><![CDATA[Marktplatz]]></category>

		<guid isPermaLink="false">http://www.faster-software.de/?p=1014</guid>
		<description><![CDATA[Ausbildung zum/zur Fachinformatiker(in) Fachrichtung Anwendungsentwicklung Für das Ausbildungsjahr 2011/2012 suchen wir zum August 2011 oder ab sofort eine(n) Auszubildende/n Fachinformatiker... <a href="http://www.faster-software.de/2011/02/03/ausbildungsplatz-fachinformatik/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<h2>Ausbildung zum/zur Fachinformatiker(in) Fachrichtung Anwendungsentwicklung</h2>
<p>Für das Ausbildungsjahr 2011/2012 suchen wir zum August 2011 oder ab sofort eine(n) Auszubildende/n Fachinformatiker Anwendungsentwicklung für unseren Firmensitz in<br />
21629 Neu Wulmstorf direkt an der Stadtgrenze von Hamburg.<span id="more-1014"></span></p>
<p>Die FASTER Software GmbH bietet Ihnen eine fundierte und praxisorientierte Ausbildung und vielfältige Einsatzmöglichkeiten in einem breiten Themenumfeld. Während Ihrer Ausbildung werden Sie schon früh in anspruchsvolle IT-Projekte einbezogen. Ihre Ausbildungszeit ist geprägt von herausfordernden Tätigkeiten, selbständigem Arbeiten sowie netten und qualifizierten Kollegen.</p>
<h2>Ausbildungsinhalte</h2>
<ul style="margin: 0.5em 0px 1em 1em;">
<li>Konzeption, Realisierung und Modifikation kundenspezifischer Softwareanwendungen</li>
<li>Qualitätssicherung von Anwendungen und Erstellung von Dokumentationen, Projektplanung, -durchführung und -kontrolle</li>
<li>Entwicklung anwendungsgerechter und ergonomischer Benutzeroberflächen</li>
<li>Behebung von Fehlern durch den Einsatz von Experten- und Diagnosesystemen, Anwenderbetreuung</li>
</ul>
<h2>Unsere Anforderungen</h2>
<ul style="margin: 0.5em 0px 1em 1em;">
<li>Mathematisch-technisches Verständnis</li>
<li>Ausgeprägte IT-Begeisterung</li>
<li>Gute Deutsch- und Englischkenntnisse</li>
<li>Lern- und Einsatzbereitschaft, Analyse- und Problemlösefähigkeit sowie Zuverlässigkeit</li>
</ul>
<p>Es erwarten Sie abwechslungsreiche Aufgaben in einem kreativen Team. Wir freuen uns über eine aussagekräftige Bewerbung an folgende E-Mail-Adresse:</p>
<ul class="blue">
<li><a href="mailto:Kontakt@faster-software.de">Kontakt@faster-software.de</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/02/03/ausbildungsplatz-fachinformatik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verfügbarkeiten &#8211; kurzfristig!</title>
		<link>http://www.faster-software.de/2011/02/03/verfuegbarkeiten-kurzfristig/</link>
		<comments>http://www.faster-software.de/2011/02/03/verfuegbarkeiten-kurzfristig/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 13:35:31 +0000</pubDate>
		<dc:creator>Frank Schliefkowitz</dc:creator>
				<category><![CDATA[Marktplatz]]></category>

		<guid isPermaLink="false">http://www.faster-software.de/?p=1004</guid>
		<description><![CDATA[Neben unseren aktuellen Projekten können wir Ihnen Zeiten für »Kleinstprojekte« in den folgenden Zeiträumen bieten: 14.02.-18.02.2011 (7. KW) 21.02.-25.02.2011 (8. KW)... <a href="http://www.faster-software.de/2011/02/03/verfuegbarkeiten-kurzfristig/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p>Neben unseren aktuellen Projekten können wir Ihnen Zeiten für »Kleinstprojekte« in den folgenden Zeiträumen bieten:<span id="more-1004"></span></p>
<ul>
<li>14.02.-18.02.2011 (7. KW)</li>
<li>21.02.-25.02.2011 (8. KW)</li>
<li>04.04.-08.04.2011 (14. KW)</li>
<li>18.04.-22.04.2011 (16. KW)</li>
</ul>
<p>Sprechen Sie uns an.</p>
<table id="contact" style="margin-bottom: 8px;">
<tbody>
<tr>
<td style="padding: 0px;" width="100"><strong>Telefon</strong></td>
<td>+49 (0)700 &#8211; 00 FASTER<br />
+49 (0)700 &#8211; 00 327837</td>
</tr>
<tr>
<td style="padding: 0px;" width="100"><strong>E-Mail</strong></td>
<td><a style="background: none; padding: 0px; text-decoration: none;" href="mailto:Kontakt@faster-software.de">Kontakt@faster-software.de</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/02/03/verfuegbarkeiten-kurzfristig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marktplatz</title>
		<link>http://www.faster-software.de/2011/02/03/marktplatz/</link>
		<comments>http://www.faster-software.de/2011/02/03/marktplatz/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 13:27:13 +0000</pubDate>
		<dc:creator>Frank Schliefkowitz</dc:creator>
				<category><![CDATA[Marktplatz]]></category>

		<guid isPermaLink="false">http://www.faster-software.de/?p=991</guid>
		<description><![CDATA[FASTER Unternehmensmeldungen - aktuelle Angebote und Gesuche Von Job-Angeboten, Verfügbarkeiten, Ausbildungsplätzen bis hin zu Software-Lösungen und kleinen Tools - alles zentral auf... <a href="http://www.faster-software.de/2011/02/03/marktplatz/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<h2>FASTER Unternehmensmeldungen - aktuelle Angebote und Gesuche</h2>
<p>Von Job-Angeboten, Verfügbarkeiten, Ausbildungsplätzen bis hin zu Software-Lösungen und kleinen Tools - alles zentral auf einen Blick, immer auf dem neusten Stand.<span id="more-991"></span></p>
<p>In diesem neuen Bereich »Marktplatz« liegt uns sowohl der Servicegedanke als auch ein beidseitiger Synergieeffekt besonders am Herzen. Durch das zentrale Einstellen von aktuellen Unternehmensmeldungen, die wir regelmäßig über die sozialen Netzwerke kommunizieren, wollen wir die Kommunikationswege kurz und den Informationsfluss zentral und aktuell gestalten.</p>
<ul class="blue">
<li><a href="http://www.faster-software.de/2011/02/03/ausbildungsplatz">FASTER Ausbildungsplatz</a></li>
<li><a href="http://www.faster-software.de/2011/02/03/verfuegbarkeiten-kurzfristig">FASTER Verfügbarkeit &#8211; kurzfristig!</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/02/03/marktplatz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eine intelligente Verknüpfung von zwei Microsoft Produkten</title>
		<link>http://www.faster-software.de/2011/01/18/eine-intelligente-verknuepfung-von-zwei-microsoft-produkten/</link>
		<comments>http://www.faster-software.de/2011/01/18/eine-intelligente-verknuepfung-von-zwei-microsoft-produkten/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 23:00:45 +0000</pubDate>
		<dc:creator>Tim Zielonka</dc:creator>
				<category><![CDATA[Tipps & Tricks]]></category>

		<guid isPermaLink="false">http://www.faster-software.com/?p=454</guid>
		<description><![CDATA[Von Tim Zielonka FASTER Software &#8211; 18. Januar 2011 Microsoft OneNote &#38; SkyDrive &#8211; ermöglicht gemeinsames Schreiben bzw. Korrigieren an... <a href="http://www.faster-software.de/2011/01/18/eine-intelligente-verknuepfung-von-zwei-microsoft-produkten/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p>Von Tim Zielonka</p>
<p><em>FASTER Software &#8211; 18. Januar 2011<br />
</em><strong>Microsoft OneNote &amp; SkyDrive &#8211; ermöglicht gemeinsames Schreiben bzw. Korrigieren an denselben Dokumenten</strong></p>
<p>Hamburg/Neu Wulmstorf &#8211; Wer kennt es nicht? Wenn man im Team an einem Projekt arbeitet, sei es für die Schule, Privat oder im Beruf, stößt man häufig auf Probleme bei der Organisation. Aufgabenverteilung sowie der aktuelle Fortschritt sind nicht ohne Absprachen einsehbar. Beim Ausfall eines Teammitgliedes »brennt die Luft«, da unklar ist, welche Arbeitspakete bereits erledigt sind oder weil Notizen nicht greifbar sind.<span id="more-454"></span></p>
<h2>Lösung</h2>
<p>Mit Microsoft OneNote kann man sich vieler Probleme entledigen. So bietet es eine Plattform, auf der man mit mehreren Teilnehmern gleichzeitig in demselben Dokument arbeiten kann. Das kostenlose Angebot Skydrive von Microsoft rundet die Lösung noch ab. SkyDrive bietet die Möglichkeit, Dateien geschützt im Web zu hinterlegen und ausgewählte Windows Live Kontakte darauf zu berechtigen.</p>
<h2>Vorteile</h2>
<ul>
<li>Standortunabhängiges Arbeiten.</li>
<li>Gleichzeitiges Arbeiten mehrerer Nutzer an demselben Dokument.</li>
<li>Statusinformationen können schnell abgerufen werden.</li>
<li>Änderungen, die offline gemacht wurden, werden bei der nächsten Verbindung synchronisiert.</li>
</ul>
<h2>Voraussetzungen</h2>
<ul>
<li>Windows Live Konto</li>
<li>Microsoft OneNote (in allen Office 2010 Paketen enthalten)</li>
</ul>
<h2>Wie mache ich das?</h2>
<p>Beim Anlegen eines neuen Notebooks in OneNote 2010 kann, wie der Screenshot zeigt, direkt auf einen Ordner im Windows Live SkyDrive verwiesen werden. Hierfür die Windows Live Accountdaten bereithalten. Man hat hier die Möglichkeit, auf seinem SkyDrive einen neuen Ordner anzulegen und Kontakte hierauf zu berechtigen.</p>
<div id="attachment_741" class="wp-caption alignnone" style="width: 200px"><a href="http://www.faster-software.com/wp-content/uploads/2011/01/CreateNotebook.png" class="lightbox" rel="lightbox[454]"><img class="size-thumbnail wp-image-741 " src="http://www.faster-software.com/wp-content/uploads/2011/01/CreateNotebook-200x119.png" alt="" width="200" height="119" /></a><p class="wp-caption-text">Hier auf »New Shared Folder« klicken</p></div>
<div id="attachment_740" class="wp-caption alignnone" style="width: 200px"><a href="http://www.faster-software.com/wp-content/uploads/2011/01/Create-SkydriveFolder.png" class="lightbox" rel="lightbox[454]"><img class="size-thumbnail wp-image-740" src="http://www.faster-software.com/wp-content/uploads/2011/01/Create-SkydriveFolder-200x140.png" alt="" width="200" height="140" /></a><p class="wp-caption-text">Über »Select from your contact list« können Sie einzelne Windows Live Kontakte berechtigen</p></div>
<p class="clear">Die berechtigten Personen erhalten eine Benachrichtigungs-E-Mail.</p>
<p>In OneNote können Sie nun Ihre Kollegen und Freunde einladen, auf ihrem SkyDrive Notebook zu arbeiten. Mit diesem Schritt versenden Sie direkte Links, mit denen Ihre Kollegen das Notebook in ihr OneNote einbinden können und den Zugriff per Web-Applikation gewährleisten.</p>
<div id="attachment_742" class="wp-caption alignnone" style="width: 200px"><a href="http://www.faster-software.com/wp-content/uploads/2011/01/InvitePeople.png" class="lightbox" rel="lightbox[454]"><img class="size-thumbnail wp-image-742 " src="http://www.faster-software.com/wp-content/uploads/2011/01/InvitePeople-200x115.png" alt="" width="200" height="115" /></a><p class="wp-caption-text">Hier auf »Invite people to this notebook« klicken</p></div>
<p class="clear">Nun kann es losgehen. In OneNote können Sie Ihr Projekt problemlos in Arbeitspakete gliedern und eine logische Struktur einbringen, indem Sie für jedes Paket eine Seite erstellen. Hier kann nun jede mehr oder weniger wichtige Information hinterlegt werden. Eine bewährte Technik ist es, das Paket in Einzelschritte zu unterteilen, welche dann nach und nach abgearbeitet werden können. So hat man stets einen Überblick über den Fortschritt des Paketes.</p>
<div id="attachment_739" class="wp-caption alignnone" style="width: 200px"><a href="http://www.faster-software.com/wp-content/uploads/2011/01/Anwendungsbeispiel-OneNote1.png" class="lightbox" rel="lightbox[454]"><img class="size-thumbnail wp-image-739 " src="http://www.faster-software.com/wp-content/uploads/2011/01/Anwendungsbeispiel-OneNote1-200x169.png" alt="" width="200" height="169" /></a><p class="wp-caption-text">Den Status auf einen Blick einsehen mithilfe von »Tags«</p></div>
<p class="clear">OneNote bietet auch Funktionen, um nicht-abgehakte »To Do«-Tags des gesamten Notebooks bzw. Projektes schnell zu finden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/01/18/eine-intelligente-verknuepfung-von-zwei-microsoft-produkten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein generischer »Comparer« mit Hilfe von Lambda-Ausdrücken</title>
		<link>http://www.faster-software.de/2011/01/18/ein-generischer-comparer-mit-hilfe-von-lambda-ausdruecken/</link>
		<comments>http://www.faster-software.de/2011/01/18/ein-generischer-comparer-mit-hilfe-von-lambda-ausdruecken/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 23:00:37 +0000</pubDate>
		<dc:creator>Matthias Loerke</dc:creator>
				<category><![CDATA[Technische Artikel]]></category>
		<category><![CDATA[IEqualityComparer]]></category>
		<category><![CDATA[Lambda Expressions]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.faster-software.com/?p=675</guid>
		<description><![CDATA[Von Matthias Loerke FASTER Software - 18. Januar 2011 Typsicherheit und die Notwendigkeit des Vergleiches Hamburg/Neu Wulmstorf  &#8211; Basierend auf verschiedenen... <a href="http://www.faster-software.de/2011/01/18/ein-generischer-comparer-mit-hilfe-von-lambda-ausdruecken/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p>Von Matthias Loerke</p>
<p><em>FASTER Software - 18. Januar 2011<br />
</em><strong>Typsicherheit und die Notwendigkeit des Vergleiches</strong><strong></strong></p>
<p>Hamburg/Neu Wulmstorf  &#8211; Basierend auf verschiedenen Ideen und inspiriert von LINQ und Lambda Ausdrücken haben wir kürzlich einen generischen »EqualityComparer« erstellt. Auch wenn wir nicht empfehlen würden, diesen zu häufig in kritischem Code zu verwenden, so kann er doch in Situationen hilfreich sein, in denen Flexibilität wichtiger ist als Lesbarkeit (z.B. Test-Applikationen, T4-Skripte oder Entwicklungswerkzeuge).<strong><span id="more-675"></span></strong></p>
<p>Wenn man ein komplexes Projekt erstellt, so hat man oftmals eine Reihe verschiedener eigener Klassen, um mit den Anwendungsdaten zu arbeiten. Normalerweise wird ein Teil der Sortierungs- und Filtervorgänge in der Applikation selbst durchgeführt, auch wenn man ein externes System (wie z.B. ein SQL-Server) zur Datenspeicherung und -abfrage verwendet. Typische Probleme bei der Behandlung von Listen mit Datenobjekten sind Typsicherheit und objektspezifische Vergleiche. In diesem Artikel werde ich die Probleme der Vergleiche und Listenoperationen auf die Gleichheitsprüfung reduzieren. Diese ist ein relativ häufiges Problem und bildet zudem die Basis für viele andere Operationen. Andere Vergleichsarten können leicht mit Hilfe des Beispiels abgeleitet werden.</p>
<p>Das .NET-Framework wurde von jeher erweitert, um die Entwickler bei einfachen Aufgaben besser zu unterstützen. Während zur Zeit von .NET 1.X die meisten Collection-Klassen nicht einmal typsicher waren (der Typ der Listenelemente war »object«), wurden mit .NET 2.0 generische Datentypen, die Generics eingeführt. Dies erlaubte typsichere Varianten der Standard-Collections (z.B. »List&lt;T&gt;«, »Dictionary&lt;T&gt;«) zu verwenden, ohne neue Klassen zu schreiben und sie boten sogar einige Methode für Filter- und Sortieroperationen. Ein Schwachpunkt blieb jedoch der Vergleich eigener Klassen. Während das Framework für die meisten Standardtypen »Comparer« bereits mitlieferte gab es kaum Unterstützung für eigene Klassen. Wie auch, woher sollte Microsoft denn auch wissen welche Eigenschaften Ihre eigene Klassen hat und welche davon in welcher Weise verglichen werden müssen um eine Gleichheitsprüfung durchzuführen? Ja, es gibt »Predicate«-Klassen und man kann auch einen »Comparer« für jeden beliebigen Typ registrieren. Allerdings funktioniert keine dieser Lösungen ohne eine klassenspezifische Lösung (d.h. zusätzlicher Code für jede eigene Klasse). Selbst mit der Verwendung von Generics muss eine gemeinsame Basisklasse oder ein gemeinsames Interface definiert werden, dass die zu vergleichenden Eigenschaften enthält. Es wird sogar noch »lustiger« wenn man verschiedene Vergleiche für die gleichen Klassen benötigt.</p>
<p>Mit der Version 3.5 wurde das Framework um LINQ erweitert, was Funktionalität zu vielen bestehenden Komponenten des Frameworks hinzufügte (LINQ-to-entity, LINQ-to SQL, etc), darunter auch die Collection-Klassen. Neben den komplexen LINQ-Komponenten führte Microsoft ebenfalls eine Reihe von »Extensions« (ebenfalls ein neues Konzept) im Namespace »System.Linq« ein welche Lambda-Ausdrücke verwenden. Soweit ich weiß, wurden Lambda-Ausdrücke bereits mit Visual Studio 2008 eingeführt, aber ich habe sie erst relativ spät für mich entdeckt. Mein erster wirklicher Kontakt fand erst mit der Verwendung der LINQ-Extensions statt. Wie können nun diese Ausdrücke bei unseren Listenproblemen helfen? Sie ersparen uns Assemblies voller Copy-Paste-Code, machen langweilige Standard-Probleme zu Einzeilern &#8230; und können einem das Leben zur Hölle machen. Zumindest der letzte Teil ist jedoch eine andere Geschichte &#8230;</p>
<h2>Implementierung eines generischen »Comparers«</h2>
<p>Um einen wiederverwendbaren »Comparer« zu erstellen, werden wir die Möglichkeiten der Generics mit der Flexibilität der Lambda-Ausdrücke verbinden. Die Basis ist eine generische Klasse mit dem Typparameter »T« der ein Platzhalter für den tatsächlich zu vergleichenden Typ ist. Das .NET-Framework enthält ein Interface »IEqualityComparer« dass die erforderlichen Klassen-Member definiert die eine »Comparer«-Implementierung benötigt. Neben der »klassischen« Version gibt es noch eine neuere, generische Version “IEqualityComparer&lt;T&gt;” die aufgrund der Typsicherheit vorzuziehen ist. Das Interface definiert zwei Methoden: »Equals« and »GetHashCode«. Die »Equals«-Methode benötigt keine weitere Erklärung and liefert einen boolschen Wert als Rückgabe bei Eingabe von zwei zu vergleichenden Instanzen. Die »GetHashCode«-Methode ist ein wenig abstrakter: Sie liefert einen Integer-Wert bei Eingabe einer einzelnen Instanz. Wie der Name bereits vermuten lässt, wird erwartet, dass sich die Implementierung wie eine Hash-Funktion verhält. D.h. sie gibt jeweils einen eindeutigen Wert für unterschiedliche Objekte (unterschiedlich im Sinne der Wertigkeit, nicht der Referenz) aber den gleichen Wert für »gleiche« Objekte. Die meisten der Standard-Collections verwenden die »GetHashCode«-Methode bei der Verwaltung ihrer Elemente.</p>
<p>Beide Methoden sind im Grunde einfache Funktionen, die sich in den meisten Fällen nur durch die zum Vergleich verwendete Objekt-Eigenschaft des spezifischen Typs unterscheiden. Um einen generischen »Comparer« zu erhalten, ist es daher lediglich notwendig die Funktionen generisch zu definieren. Eine einfache Möglichkeit um dies zu erreichen, ist die Verwendung von Delegates, die unter dem Namen »Func« ebenfalls als Generic verfügbar sind. Eine Funktion, die als »Equals«-Methode verwendet werden kann, lässt sich als »Func&lt;T, T, bool&gt;« definieren, was »bool F(T x, T y)« entspricht. Das Äquivalent für »GetHashCode« ist »Func&lt;T, int&gt;«, was »int F(T x)« entspricht. Im Prinzip kann jede Methode mit passender Signatur übergeben werden.</p>
<p>Als Letztes benötigen wir jetzt noch eine Funktion ohne sie statisch zu deklarieren. Eine Möglichkeit sind anonyme Funktionen, die andere sind Lamda-Ausdrücke! Während anonyme Funktionen immer noch eine vollständige Deklarierung und Implementierung benötigen, definieren Lambda-Ausdrücke Typen implizit durch ihre Verwendung und bieten zusätzlich eine kurze, praktische Syntax. Lassen Sie uns einmal eine Funktion anschauen welche die »Equals«-Implementierung für einen »Comparer« für Strings sein könnte:</p>
<pre><span style="color: #2b91af;">Func</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">string</span>, <span style="color: blue;">bool</span>&gt; f = (a, b) =&gt; a.Equals(b);</pre>
<p>Die Typen für »a« und »b« werden beim Aufruf durch die verwendeten Variablen festgelegt und der Typ des Rückgabewertes wird durch den Rückgabewert der Transformation definiert.</p>
<h2>Eine beispielhafte Implementierung</h2>
<p>Die Implementierung eines generischen »Comparers« ist recht gradlinig. Die generische Klasse selbst muss das generische “IEqualityComparer&lt;T&gt;”-Interface implementieren und verwendet zwei anonyme Funktionen, die im Konstruktor übergeben werden. Die Funktionen sind ebefalls generisch und verwenden den Typ-Parameter der Klasse.</p>
<pre><span style="color: gray;">/// &lt;summary&gt;
/// </span><span style="color: green;">Generic equality comparer that compares items based on provided functions
</span><span style="color: gray;">/// &lt;/summary&gt;
/// &lt;typeparam name="T"&gt;</span><span style="color: green;">A class type</span><span style="color: gray;">&lt;/typeparam&gt;
</span><span style="color: blue;">public class </span><span style="color: #2b91af;">DynamicEqualityComparer</span>&lt;T&gt; : <span style="color: #2b91af;">IEqualityComparer</span>&lt;T&gt;
{
<span style="color: blue;">    private </span><span style="color: #2b91af;">Func</span>&lt;T, T, <span style="color: blue;">bool</span>&gt; _equalsFunction;
<span style="color: blue;"><span style="color: #444444;">    </span>private </span><span style="color: #2b91af;">Func</span>&lt;T, <span style="color: blue;">int</span>&gt; _hashFunction;

    <span style="color: blue;">#region </span>Constructor

    <span style="color: gray;">/// &lt;summary&gt;
    /// </span><span style="color: green;">Creates a new instance of the class
    </span><span style="color: gray;">/// &lt;/summary&gt;
    /// &lt;param name="equalsFunction"&gt;</span><span style="color: green;">A compare function </span><span style="color: gray;">&lt;see cref="IEqualityComparer{T}.Equals"/&gt;&lt;/param&gt;
    /// &lt;param name="hashFunction"&gt;</span><span style="color: green;">A hash function </span><span style="color: gray;">&lt;see cref="IEqualityComparer{T}.GetHashCode"/&gt;&lt;/param&gt;
    </span><span style="color: blue;">public </span>DynamicEqualityComparer(<span style="color: #2b91af;">Func</span>&lt;T, T, <span style="color: blue;">bool</span>&gt; equalsFunction,
                                   <span style="color: #2b91af;">Func</span>&lt;T, <span style="color: blue;">int</span>&gt; hashFunction)
    {
        <span style="color: green;">// Store functions
        </span><span style="color: blue;">this</span>._equalsFunction = equalsFunction;
        <span style="color: blue;">this</span>._hashFunction = hashFunction;
    }

    <span style="color: blue;">#endregion

    #region </span>Public

    <span style="color: gray;">/// &lt;summary&gt;
    /// &lt;see cref="IEqualityComparer{T}.Equals"/&gt;
    /// &lt;/summary&gt;
    /// &lt;param name="x"&gt;&lt;see cref="IEqualityComparer{T}.Equals"/&gt;&lt;/param&gt;
    /// &lt;param name="y"&gt;&lt;see cref="IEqualityComparer{T}.Equals"/&gt;&lt;/param&gt;
    /// &lt;returns&gt;&lt;see cref="IEqualityComparer{T}.Equals"/&gt;&lt;/returns&gt;
    </span><span style="color: blue;">public bool </span>Equals(T x, T y)
    {
        <span style="color: blue;">return this</span>._equalsFunction(x, y);
    }

    <span style="color: gray;">/// &lt;summary&gt;
    /// &lt;see cref="IEqualityComparer{T}.GetHashCode"/&gt;
    /// &lt;/summary&gt;
    /// &lt;param name="obj"&gt;&lt;see cref="IEqualityComparer{T}.GetHashCode"/&gt;&lt;/param&gt;
    /// &lt;returns&gt;&lt;see cref="IEqualityComparer{T}.GetHashCode"/&gt;&lt;/returns&gt;
    </span><span style="color: blue;">public int </span>GetHashCode(T obj)
    {
        <span style="color: blue;">return this</span>._hashFunction(obj);
    }

    <span style="color: blue;">#endregion
</span>}</pre>
<p>Das Instanzieren des »DynamicEqualityComparers« um Strings zu vergleichen würde z.B. so aussehen:</p>
<pre><span style="color: #2b91af;">DynamicEqualityComparer</span>&lt;<span style="color: blue;">string</span>&gt; comparer
 = <span style="color: blue;">new </span><span style="color: #2b91af;">DynamicEqualityComparer</span>&lt;<span style="color: blue;">string</span>&gt;((a, b) =&gt; a.Equals(b),
                                       a =&gt; a.GetHashCode());</pre>
<p>Von dieser Beispielimplementierung gibt es sicherlich eine Menge Möglichkeiten für Variationen.</p>
<h2>Nachteile</h2>
<p>Wie bereits erwähnt, würde ich nicht empfehlen dieses Konstrukt übermäßig in kritischem Code zu verwenden. Der Grund hierfür ist, dass selbst Funktionen mit geringer Komplexität sehr schnell unleserlich und übersichtlich werden. Dadurch steigt die Anfälligkeit für Fehler. Da man sogar zwei Funktionen im Konstruktor übergeben muss, ist das Ergebnis zwar cool, State of the art, aber sicher kein Muster an Wartbarkeit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/01/18/ein-generischer-comparer-mit-hilfe-von-lambda-ausdruecken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein Bild sagt mehr als 1.000 Worte</title>
		<link>http://www.faster-software.de/2011/01/18/ein-bild-sagt-mehr-als-1000-worte/</link>
		<comments>http://www.faster-software.de/2011/01/18/ein-bild-sagt-mehr-als-1000-worte/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 23:00:12 +0000</pubDate>
		<dc:creator>Eva Eckle</dc:creator>
				<category><![CDATA[Anwendungsberichte]]></category>
		<category><![CDATA[ScreenToWeb]]></category>

		<guid isPermaLink="false">http://www.faster-software.com/?p=442</guid>
		<description><![CDATA[Von Eva Eckle FASTER Software &#8211; 18. Januar 2011 Zeit, Geld und Nerven sparen mithilfe einer intelligenten Lösung für die... <a href="http://www.faster-software.de/2011/01/18/ein-bild-sagt-mehr-als-1000-worte/">  Mehr...</a>]]></description>
			<content:encoded><![CDATA[<p>Von Eva Eckle</p>
<p><em>FASTER Software &#8211; 18. Januar 2011<br />
</em><strong>Zeit, Geld und Nerven sparen mithilfe einer intelligenten Lösung für die Visualisierung von Sachverhalten im Bereich der Echtzeitkommunikation.</strong></p>
<p>Hamburg/Alt Osdorf &#8211; Man kommuniziert heutzutage über unzählige Kanäle. Während das Telefon klingelt, ist man noch in einer Web-Konferenz, beantwortet parallel eben schnell eine Frage über Skype, indessen poppt im Messenger eine Anfrage hoch, gleichzeitig hinterlässt jemand eine »Message« auf der Mailbox des Handys und das Wetter »App« sagt mir, dass die Regenwahrscheinlichkeit heute bei 100% liegt. DHL klingelt an der Tür und will seine Pakete loswerden, gleichzeitig trudeln über Outlook leise und unaufhaltsam E-Mails ein. Der Themenalarm hält einen nun mal kostenlos per E-Mail, SMS, RSS, Twitter, XING und Facebook auf dem Laufenden. Alltag eben.<span id="more-442"></span></p>
<p>Die Kommunikation über Kurzmitteilungen via Skype &amp; Co. wie auch die Sprache selbst haben aber bisweilen Ihre Grenzen. Vor allem im Bereich der geschäftlichen Echtzeitkommunikation. Gerade dann, wenn man während eines Telefonats »mal eben schnell was zeigen bzw. veranschaulichen« will, um beiden Seiten erschöpfende und dann doch nicht zielführende Erklärungen zu ersparen.</p>
<p>Da braucht man was, wo man schnell sagen kann »Guckst Du hier«. Ein Tool für visuelle Unterstützung, welches hilft Kommunikation nicht nur effektiver zu gestalten, sondern auch sie zu beschleunigen. »Zeit ist Geld« oder wie war das?</p>
<p>Und siehe da: es gibt eine intelligente und einfache Lösung! FASTER Screen ToWeb.<br />
Schnell installiert. Sofort einsatzbereit. Effektiv und zeitsparend. Das erquickt die eh schon kommunikationsüberlasteten Nerven!<br />
Lästige Screenshots, die man dann mehr oder weniger aufwendig speichern und dann wieder versenden muss – entfallen! Mal abgesehen von Problematiken wie z.B. Firewall-Einschränkungen beim Chatpartner oder wenn das Instant Messaging Tool die Zwischenablage für Bilder nur unzureichend unterstützt…</p>
<p>FASTER ScreenToWeb löst all diese Probleme auf elegante Weise: Ein einziger Klick erzeugt den Screenshot und publiziert diesen Screenshot auf dem eingestellten Webserver. Gleichzeitig wird ein Link auf den Screenshot in die Zwischenablage kopiert, so dass man den Link dann prompt über den Kurztastenbefehl Strg + V an den Chatpartner –ganz gleich über welchen Kanal – übermitteln kann. Klickt der Chatpartner auf diesen Link, wird dieser in seinem Standardbrowser geöffnet.</p>
<p>Die Aktualisierung eines Screenshots erfolgt durch einen <span style="text-decoration: underline;">einzigen</span> weiteren Mausklick auf das Ordner-Symbol im System Tray. Im Browser des Chatpartners wird der Screenshot dann umgehend aktualisiert – ohne dass man erneut einen Link versenden muss&#8230; Herrlich.</p>
<div id="attachment_885" class="wp-caption alignnone" style="width: 200px"><a href="http://www.faster-software.de/wp-content/uploads/2010/12/00d3a39a-e6a8-44e5-80fb-a9e6a1e5b561.htm" target="_blank"><img class="size-thumbnail wp-image-885 " title="00d3a39a-e6a8-44e5-80fb-a9e6a1e5b561" src="http://www.faster-software.de/wp-content/uploads/2010/12/00d3a39a-e6a8-44e5-80fb-a9e6a1e5b561-200x155.jpg" alt="" width="200" height="155" /></a><p class="wp-caption-text">Beispiel für einen Screenshot</p></div>
<p class="clear">Der Nutzen ist meiner Meinung nach für sämtliche Geschäftsbereiche gleichermaßen hoch. Ob zum Beispiel bei der Softwareentwicklung oder wie in meinem Fall im Bereich des Marketings. Egal, ob bei einer Telefonkonferenz oder während der Kommunikation über Instant Messaging Tools.</p>
<p>In einem Softwareprojekt kommt ein Fehlerbericht rein, dann muss der Softwareentwickler schnell in der Lage sein, diesen genau zu verstehen. Oder bei einer Besprechung über Designänderungen möchte ich schnell meine Vorschläge, die ich in Photoshop zusammengebastelt habe, visuell veranschaulichen. In beiden Fällen ersparen Visualisierungen des Sachverhalts, die man sofort per Link kommunizieren kann, lange erschöpfende Erklärungen via Text oder Sprache.</p>
<p>Danke liebes FASTER-Team für diese kleine aber feine Lösung.</p>
<p>Mehr dazu finden Sie <a href="http://www.faster-software.de/loesungen/tools/screentoweb/">hier</a>.</p>
<p>Und das Schöne ist, Sie können sich das Tool »FASTER ScreenToWeb« hier kostenlos herunterladen: <a href="http://download.faster-software.de/ScreenToWeb/setup.exe">Free Download</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.faster-software.de/2011/01/18/ein-bild-sagt-mehr-als-1000-worte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

