<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Jochen Kalmbach’s Blog</title>
	<link>http://blog.kalmbach-software.de/de</link>
	<description>Mein Blog über Win32 und .NET - Endlich mein Blog auch in Deutsch</description>
	<pubDate>Thu, 06 May 2010 14:39:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>SQL Server 2008 R2 Express jetzt mit 10 GB Database limit</title>
		<link>http://blog.kalmbach-software.de/de/2010/05/06/sql-server-2008-r2-express-jetzt-mit-10-gb-database-limit/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/05/06/sql-server-2008-r2-express-jetzt-mit-10-gb-database-limit/#comments</comments>
		<pubDate>Thu, 06 May 2010 14:39:12 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/05/06/sql-server-2008-r2-express-jetzt-mit-10-gb-database-limit/</guid>
		<description><![CDATA[Ab sofort gibt es den aktualisierten SQL Server 2008 R2 Express zum konstenlos runterladen.
Eines der wichtigesten neuerung der Express Edition dürfte wohl die erhöhung des Datenabnk-Größe-Limits von 4 GB auf 10 GB sein 
Hier der Link zur SQL 2008 R2 Express Startseite
http://www.microsoft.com/express/Database/
Download x86 Edition (235 MB)
Download x64 Edition (247 MB)
]]></description>
			<content:encoded><![CDATA[<p>Ab sofort gibt es den aktualisierten SQL Server 2008 R2 Express zum konstenlos runterladen.<br />
Eines der wichtigesten neuerung der Express Edition dürfte wohl die erhöhung des Datenabnk-Größe-Limits von 4 GB auf 10 GB sein <img src='http://blog.kalmbach-software.de/de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Hier der Link zur SQL 2008 R2 Express Startseite<br />
<a href="http://www.microsoft.com/express/Database/">http://www.microsoft.com/express/Database/</a></p>
<p><a href="http://go.microsoft.com/?linkid=9729746">Download x86 Edition (235 MB)</a><br />
<a href="http://go.microsoft.com/?linkid=9729747">Download x64 Edition (247 MB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/05/06/sql-server-2008-r2-express-jetzt-mit-10-gb-database-limit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft Public Newsgroups werden geschlossen</title>
		<link>http://blog.kalmbach-software.de/de/2010/05/05/microsoft-public-newsgroups-werden-geschlossen/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/05/05/microsoft-public-newsgroups-werden-geschlossen/#comments</comments>
		<pubDate>Wed, 05 May 2010 17:11:27 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/05/05/microsoft-public-newsgroups-werden-geschlossen/</guid>
		<description><![CDATA[No comment:
Microsoft Responds to the Evolution of Communities
]]></description>
			<content:encoded><![CDATA[<p>No comment:<br />
<a href="http://www.microsoft.com/communities/newsgroups/default.mspx">Microsoft Responds to the Evolution of Communities</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/05/05/microsoft-public-newsgroups-werden-geschlossen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sharepoint Foundation 2010 verfügbar</title>
		<link>http://blog.kalmbach-software.de/de/2010/05/03/sharepoint-foundation-2010-verfugbar/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/05/03/sharepoint-foundation-2010-verfugbar/#comments</comments>
		<pubDate>Mon, 03 May 2010 18:14:02 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/05/03/sharepoint-foundation-2010-verfugbar/</guid>
		<description><![CDATA[Ich bin schon länger ein Fan von Sharepoint und verwendet dies auch für mehrere interne Projekte.
Seit einigen Tagen ist jetzt auch der Nachfolger der &#8220;Sharepoint Services 3.0&#8243; verfügbar (natürlich immer noch kostenlos). Aber natürlich mit einem neuen Namen:
Sharepoint Foundation 2010
Der einzige Nachteil des Nachfolgers ist, dass es nur noch auf einem x64 System installiert werden [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin schon länger ein Fan von Sharepoint und verwendet dies auch für mehrere interne Projekte.<br />
Seit einigen Tagen ist jetzt auch der Nachfolger der &#8220;Sharepoint Services 3.0&#8243; verfügbar (natürlich immer noch kostenlos). Aber natürlich mit einem neuen Namen:<br />
<a href="http://www.microsoft.com/downloads/details.aspx?displaylang=de&#038;FamilyID=49c79a8a-4612-4e7d-a0b4-3bb429b46595">Sharepoint Foundation 2010</a></p>
<p>Der einzige Nachteil des Nachfolgers ist, dass es nur noch auf einem x64 System installiert werden kann.<br />
Wenn man es auch auf einem Entwicklungsrechner installieren will, so kann man es auf <a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx">Vista (SP1-x64) oder Win7 (x64) installieren</a>. Produktiv wird dies aber nicht unterstützt.<br />
Hier wird dann schon <a href="http://technet.microsoft.com/en-us/library/cc288751(office.14).aspx">mehr verlangt</a>: </p>
<ul>
<li>x64 - 4 cores
<li>8 GB RAM
<li>80 GB HD
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/05/03/sharepoint-foundation-2010-verfugbar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Zusätzliche Include-Pfad in VC++ 2010</title>
		<link>http://blog.kalmbach-software.de/de/2010/04/17/zusatzliche-include-pfad-in-vc-2010/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/04/17/zusatzliche-include-pfad-in-vc-2010/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 08:40:59 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[Win32]]></category>

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/04/17/zusatzliche-include-pfad-in-vc-2010/</guid>
		<description><![CDATA[Bis VS2008 konnte man zusätzliche Include-Pfad für den aktuellen Benutzer einfach hinzufügen, indem man einfach die nötigen Verzeichnisse unter &#8220;Tools&#124;Options&#124;Projects and Solutions&#124;VC++ Directories&#8221; eingetragen hat. Dies sieht per Default so aus:

Ab VS2010 sieht man an dieser Stelle nur noch:

Der Grund hinter der Änderung liegt daran, dass ab VS2010 die IDE das &#8220;Multi-Targeting&#8221; unterstützt. D.h. man [...]]]></description>
			<content:encoded><![CDATA[<p>Bis VS2008 konnte man zusätzliche Include-Pfad für den aktuellen Benutzer einfach hinzufügen, indem man einfach die nötigen Verzeichnisse unter &#8220;Tools|Options|Projects and Solutions|VC++ Directories&#8221; eingetragen hat. Dies sieht per Default so aus:<br />
<a href="http://blog.kalmbachnet.de/files/IncludeDirs2008.png"><img src="http://blog.kalmbachnet.de/files/IncludeDirs2008.png" alt="VS2008 Include Verzeichnisse" /></a></p>
<p>Ab VS2010 sieht man an dieser Stelle nur noch:<br />
<a href="http://blog.kalmbachnet.de/files/IncludeDirs2010.png"><img src="http://blog.kalmbachnet.de/files/IncludeDirs2010.png" alt="VS2010 Include Verzeichnisse" /></a></p>
<p>Der Grund hinter der Änderung liegt daran, dass ab VS2010 die IDE das &#8220;<a href="http://blogs.msdn.com/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx">Multi-Targeting</a>&#8221; unterstützt. D.h. man kann mit der gleichen IDE z.B. für VS2010 und auch für VS2008 compilieren! Deshalb kann man natürlich die C++ Pfade nicht mehr der IDE zuordnen, sondern diese müssen dem jeweiligen Projekt zugeordnet sein.</p>
<p>Man kann aber auch weiterhin Pfad Benutzerspezifisch hinzufügen. Dies wird dann über Property-Sheets realisiert. Dies zu finden, ist aber etwas komplizierter, deshlab hier eine kurze Erklärung:</p>
<ol>
<li>Öffne irgendein VC++ Projekt
<li>Zeige den Property-Manager an (View|Other Windows|Property Manager)
<li>Expandiere die Knoten dort (i.d.R. Debug/Release)
<li>Wähle dort alle Einträge mit &#8220;Microsoft.cpp.<Platform>.user&#8221; aus (Multi-Select)
<li>Dann ein rechter Mausklick auf eine der Selektionen und &#8220;Properties&#8221; auswählen
<li>In dem Dialog kannst Du nun &#8220;Common Properties|VC++ Directories&#8221; auswählen und dort die entsprechenden Einträge hinzufügen.<br />
<a href="http://blog.kalmbachnet.de/files/IncludeDirs2010New.png"><img src="http://blog.kalmbachnet.de/files/IncludeDirs2010New.png" alt="VS2010 Include Verzeichnisse - Neu" /></a></p>
<li>Ich persönlich würde links die Dropdown-Liste auswählen und dort dann Edit drücken und die Pfade in dem dann Folgenden Dialog eingeben.
</ol>
<p>Noch mehr Infos zum Upgrade auf VS2010 gibt es hier:<br />
<a href="http://blogs.msdn.com/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx">Visual Studio 2010 C++ Project Upgrade Guide</a></p>
<p>Anmerkung: <strong>Es sei noch erwähnt, dass man zusätzliche Include-Pfad für ein Projekt immer noch in den Projekteinstellungen vornehmen kann! Dazu sind diese Anpassungen NICHT nötig!</strong></p>
<p>Anmerkung2: Um bei der Express Version den Property-Manager zu sehen, muss man erst die Expretenansicht aktivieren:</p>
<pre>Tools | Setting | Expert settings</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/04/17/zusatzliche-include-pfad-in-vc-2010/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wünsche/Anregungen für VC++???</title>
		<link>http://blog.kalmbach-software.de/de/2010/03/22/wunscheanregungen-fur-vc/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/03/22/wunscheanregungen-fur-vc/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 21:39:13 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[Win32]]></category>

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/03/22/wunscheanregungen-fur-vc/</guid>
		<description><![CDATA[Jetzt kommt ja bald VS2010 heraus&#8230;. und wie bei MS so üblich, verabschieded sich jetzt das Produkteam von der (dann) aktuellen Version und pplant schon die nächste Version (VS2012?).
Wer hierzu speziell im VC++ Bereich sein Feedback einfliessen lassen will, der kann dies mit einem Fragebogen vom Produkt-Team tun:
http://blogs.msdn.com/vcblog/archive/2010/03/22/vc-developer-survey.aspx
Ich kann es wirklich nur jemdem empfehlen daran [...]]]></description>
			<content:encoded><![CDATA[<p>Jetzt kommt ja bald VS2010 heraus&#8230;. und wie bei MS so üblich, verabschieded sich jetzt das Produkteam von der (dann) aktuellen Version und pplant schon die nächste Version (VS2012?).<br />
Wer hierzu speziell im VC++ Bereich sein Feedback einfliessen lassen will, der kann dies mit einem Fragebogen vom Produkt-Team tun:<br />
<a href="http://blogs.msdn.com/vcblog/archive/2010/03/22/vc-developer-survey.aspx">http://blogs.msdn.com/vcblog/archive/2010/03/22/vc-developer-survey.aspx</a></p>
<p>Ich kann es wirklich nur jemdem empfehlen daran teilzunehmen, der auch zukünftig noch VC++ einsetzen will!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/03/22/wunscheanregungen-fur-vc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RemoteFX</title>
		<link>http://blog.kalmbach-software.de/de/2010/03/18/remotefx/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/03/18/remotefx/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 19:00:27 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/03/18/remotefx/</guid>
		<description><![CDATA[Mit Server 2008 R2 Service Pack 1 wird es endlich eine Erweiterung des RDP (Remote Desktop Protocols) geben: 3D!
Es ist also zukünftig möglich via RDP die schöne, neue 3D-Welt zu erfahren.
Dies bedeutet natürlich auch, dass ein Arbeiten mit VS2010, welches ja WPF verwendet, vermutlich flüssig über RDP möglich ist!
Also, ich bin mal gespannt und freue [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Server 2008 R2 <a href="http://blogs.msdn.com/taylorb/archive/2010/03/18/windows-server-2008-sp1-here-we-come-with-dynamic-memory-and-remotefx-for-hyper-v.aspx">Service Pack 1</a> wird es endlich eine Erweiterung des RDP (Remote Desktop Protocols) geben: 3D!</p>
<p>Es ist also zukünftig möglich via RDP die schöne, neue 3D-Welt zu erfahren.<br />
Dies bedeutet natürlich auch, dass ein Arbeiten mit VS2010, welches ja WPF verwendet, vermutlich flüssig über RDP möglich ist!</p>
<p>Also, ich bin mal gespannt und freue mich schon auf dieses Feature, da ich oft RDP verwende!</p>
<p><strong><a href="http://blogs.technet.com/virtualization/archive/2010/03/18/Explaining-Microsoft-RemoteFX.aspx">RemoteFX</a>!</strong></p>
<p>Edit 2010-03-27:<br />
Hier gibt es auch noch eine ausführlichere Erklärng wie RemoteFX funktioniert:<br />
<a href="http://blogs.msdn.com/rds/archive/2010/03/26/microsoft-remotefx-the-problem-we-are-solving.aspx">http://blogs.msdn.com/rds/archive/2010/03/26/microsoft-remotefx-the-problem-we-are-solving.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/03/18/remotefx/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C++/CLI und WinForms macht keinen Sinn</title>
		<link>http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 14:42:03 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/</guid>
		<description><![CDATA[Vielen Anfänger, welche C/C++ lernen wollen, suchen sich nach einer kostenlosen Entwicklungsumgebung und stossen dann früher oder später auf die Visual Studio 2008/2010 Express Edition.
Und ein Anfänger will natürlich gleich sichtbare Erfolge sehen und beginnt logischerweise gleich mit einer Fenster-Anwendung.
Leider enthält die VC2008/2010EE nur WinForms als graphische Oberfläche. Deshalb entwicklen die meisten dann nicht mit [...]]]></description>
			<content:encoded><![CDATA[<p>Vielen Anfänger, welche C/C++ lernen wollen, suchen sich nach einer kostenlosen Entwicklungsumgebung und stossen dann früher oder später auf die <a href="http://www.microsoft.com/express/downloads/">Visual Studio 2008/2010 Express Edition</a>.</p>
<p>Und ein Anfänger will natürlich gleich sichtbare Erfolge sehen und beginnt logischerweise gleich mit einer Fenster-Anwendung.</p>
<p>Leider enthält die VC2008/2010EE nur WinForms als graphische Oberfläche. Deshalb entwicklen die meisten dann nicht mit C/C++, sondern mit C++/CLI, was eine komplett andere Sprache ist und für die meisten nur zu Verwirrung führt.</p>
<p>Ich Rate jedem Anfänger davon ab VC 2008/2010 Express Edition für graphische Oberflächen zu verwenden, aus folgenden Gründen:</p>
<ul>
<li>Der WinForms-Designer ist miserabel, da er die Implementierung von Methoden in der h-Datei vornimmt, was spätestens zu Problemen führt, wenn man mehr als ein Form hat und auf Methoden/Properties des anderen Forms zugreifen will (da man dann zyklische Abhängigkeiten in den h-Dateien hat, die man nur lösen kann, wenn man die Implementierung in die cpp-Datei verlegt)
<li>Wenn man die Anwendung <a href="http://blog.kalmbach-software.de/de/2009/12/17/ccli-programme-auf-einem-anderen-rechner-ausfuhren/">verteilen will</a>, so muss man neben dem .NET-Framework auch die C-Runtime installieren; das muss man bei einer reinen .NET-Anwendung (z.B. C#) nicht
<li>C++/CLI ist primär als InterOp Sprache zwischen .NET und native Code gedacht; das sieht man auch schon daran, dass seit VC2008 auch der Data-Wizward für C++/CLI entfernt wurde. Daraus ergibt sich gleich der nächste Punkt:
<li>Der <a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=292118">Data-Wizard wurde in VC 2008 entfernt</a> um auch deutlich zu machen, dass der Focus auf native-managed InterOp liegt
<li>Ca. 99% aller Beispiele im Internet sind mit C#; man findet fast keine Beispiele in C++/CLI
<li>C++/CLI ist eine <a href="http://www.ecma-international.org/publications/standards/Ecma-372.htm">eigene Sprache</a> und hat mit (ISO) C/C++ nichts zu tun; und das ganze zu mischen ist meistens noch viel sinnfreier, es sei denn, man weiss was man tut (was zu 99% nicht der Fall ist; zumindest in den Fragen, die ich aus den Foren entnehme)
<li>C++/CLI wird oft als &#8220;Erweiterung&#8221; von C/C++ gesehen. Diese Sicht ist aber komplett falsch! Ganz einfacher Beweis: Versuch in einen STL-Vector ein CLR Objekt reinzustopfen (z.B. std::vector<String^>). Wenn es gehen würde, dann könnte man C++/CLI als Erweiterung sehen. Es geht aber nicht. Deshalb sind es zwei komplett getrennte Welten!
<li>In VS 2010 wird es für C++/CLI Projekte <a href="http://blogs.msdn.com/vcblog/archive/2010/03/09/intellisense-browsing-options-in-vc-2010.aspx">kein Intellisense</a> geben; das deutet auch stark darauf hin, dass es nicht als primäre Sprache für .NET geeignet ist
</ul>
<p>Meine Empfehlung für Anfäger:<br />
Wenn Ihr unbedingt graphische Oberflächen machen wollt, dann nehmt lieber C# (gibt es auch als Express Edition).</p>
<p>Meine Empfehlung für Microsoft:<br />
Wenn Ihr auch mit VC++ Anfänger erreichen wollt, dann liefert bitte die MFC in der Express-Edition mit; oder bindet von mir aus <a href="http://www.wxwidgets.org/">wxWidgets</a> ein <img src='http://blog.kalmbach-software.de/de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Die Shim Datenbank</title>
		<link>http://blog.kalmbach-software.de/de/2010/02/22/die-shim-datenbank/</link>
		<comments>http://blog.kalmbach-software.de/de/2010/02/22/die-shim-datenbank/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 10:02:54 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[Win32]]></category>

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2010/02/22/die-shim-datenbank/</guid>
		<description><![CDATA[Wenn jemand mal interesse an den Tiefen der Shim-Datenbank hat, der kann gerne auf mein Projekt verweisen, welches ich in meinem englischen Blog gepostet habe:
The Shim Database
]]></description>
			<content:encoded><![CDATA[<p>Wenn jemand mal interesse an den Tiefen der Shim-Datenbank hat, der kann gerne auf mein Projekt verweisen, welches ich in meinem englischen Blog gepostet habe:<br />
<a href="http://blog.kalmbach-software.de/2010/02/22/the-shim-database/">The Shim Database</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2010/02/22/die-shim-datenbank/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C++/CLI Programme auf einem anderen Rechner ausführen</title>
		<link>http://blog.kalmbach-software.de/de/2009/12/17/ccli-programme-auf-einem-anderen-rechner-ausfuhren/</link>
		<comments>http://blog.kalmbach-software.de/de/2009/12/17/ccli-programme-auf-einem-anderen-rechner-ausfuhren/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 20:06:33 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2009/12/17/ccli-programme-auf-einem-anderen-rechner-ausfuhren/</guid>
		<description><![CDATA[In Foren kommt oft die Frage: Mein C++/CLI Programm läuft nicht auf anderen Rechner! Was brauche ich damit es läuft?
Die Frage ist einfach zu beantworten, wenn wir davon ausgehen, dass das Programm mit VS2008 erstellt wurde:

Zuerst wird das .NET Framework benötigt (da C++/CLI ja die CLR verwendet). Aktuell ist dies die Version 3.5SP1:
.NET 3.5 SP1 [...]]]></description>
			<content:encoded><![CDATA[<p>In Foren kommt oft die Frage: Mein C++/CLI Programm läuft nicht auf anderen Rechner! Was brauche ich damit es läuft?</p>
<p>Die Frage ist einfach zu beantworten, wenn wir davon ausgehen, dass das Programm mit VS2008 erstellt wurde:</p>
<ol>
<li>Zuerst wird das .NET Framework benötigt (da C++/CLI ja die CLR verwendet). Aktuell ist dies die Version 3.5SP1:<br />
<a href="http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe">.NET 3.5 SP1 (Full download)</a><br />
Damit es aber auch Problemlos läuft wird min. noch dieser Hotfix anschliessend benötigt:<br />
<a href="http://support.microsoft.com/kb/959209/en-us">An update for the .NET Framework 3.5 Service Pack 1 is available</a></p>
<li>Und da Du C++/CLI (also C++) verwendet hast, benötigst Du noch die C-Runtime DLLs, da C++/CLI (CLR) nur mit der DLL-Version der C-Runtime (CRT) verwendet werden kann:<br />
<a href="http://www.microsoft.com/downloads/details.aspx?familyid=2051a0c1-c9b5-4b0a-a8f5-770a549fd78c&#038;displaylang=en">VC2008 Runtime with SP1 and ATL hotfix</a>
</ol>
<p>PS: Falls man <strong>kein</strong> CLI (CLR / .NET) verwendet hat, so ist es meistens einfacher, <a href="http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/">wenn man statisch gegen die CRT linkt</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2009/12/17/ccli-programme-auf-einem-anderen-rechner-ausfuhren/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Source-Indexing (TFS) und Symbol-Store</title>
		<link>http://blog.kalmbach-software.de/de/2009/11/09/source-indexing-tfs-und-smbols-store/</link>
		<comments>http://blog.kalmbach-software.de/de/2009/11/09/source-indexing-tfs-und-smbols-store/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 14:51:33 +0000</pubDate>
		<dc:creator>jkalmbach</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

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

		<guid isPermaLink="false">http://blog.kalmbach-software.de/de/2009/11/09/source-indexing-tfs-und-smbols-store/</guid>
		<description><![CDATA[Wer von Euch kennt das Problem: Der Kunde hat ein Absturz oder einen Hänger Deines Programmes. Das einzige was Du bekommst ist ein Dump-File (z.B. entweder via WER oder durch eigenes schreiben von MiniDumpWriteDump).
Jetzt beginnt für Dich das Problem:

Welche Version hat der Kunde?
Welche Source-Files brauche ich für diese Version?
Wo zum teu.. sind nochmals die passenden [...]]]></description>
			<content:encoded><![CDATA[<p>Wer von Euch kennt das Problem: Der Kunde hat ein Absturz oder einen Hänger Deines Programmes. Das einzige was Du bekommst ist ein Dump-File (z.B. entweder via <a href="http://msdn.microsoft.com/en-us/isv/bb190483.aspx">WER</a> oder durch eigenes schreiben von <a href="http://blog.kalmbach-software.de/2008/12/13/writing-minidumps-in-c/">MiniDumpWriteDump</a>).<br />
Jetzt beginnt für Dich das Problem:</p>
<ol>
<li>Welche Version hat der Kunde?
<li>Welche Source-Files brauche ich für diese Version?
<li>Wo zum teu.. sind nochmals die passenden PDBs und EXEn für diese Version?
</ol>
<p>Mit diesem Fragen braucht man sich nicht beschäftigen, wenn man bei seinem Build Prozess noch zusätzlich zwei Dinge einbaut</p>
<ol>
<li>Source-Indexing
<li>Symbols-Store
</ol>
<h3>Source-Indexing (mit dem TFS)</h3>
<p>Source-Indexing sorgt dafür, dass in die Debug-Symole (PDB-Dateien) auch zusätzlich noch ein verweis auf die richtige TFS-Version eingefügt wird. Dadurch kann der Debugger (z.B. VS) man mit der PDB-Datei genau den passenden Source aus dem TFS holen, mit dem die DLL/EXE gebuildet wurde.<br />
Um dies zu machen braucht man zwei Dinge: &#8220;<a href="http://www.microsoft.com/whdc/DevTools/Debugging/">Debugging Tools For Windows</a>&#8221; und &#8220;<a href="https://www.activestate.com/activeperl/downloads/">ActivePerl</a>&#8220;). Das Source-Indexing findet sich bei den Debugging Tools im Unterverzeichnis &#8220;srcsrv&#8221; (also z.B. C:\Program Files\Debugging Tools for Windows\srcsrv). Da die &#8220;Skripts&#8221; (leider) in Perl geschrieben sind, ist auch noch ActivePerl notwendig. Es reicht aber, wenn man die <a href="http://downloads.activestate.com/ActivePerl/Windows/5.10/ActivePerl-5.10.1.1006-MSWin32-x86-291086.zip">ZIP-Datei</a> runterlädt und vor dem Aufruf einfach den Pfad auch noch auf das entpackte ActivePerl setzt.</p>
<p>Damit beim Source-Indexing auch der korrekte TFS-Server verwendet wird, muss man in der Datei &#8220;srcsrv.ini&#8221; die Zeile mit &#8220;MYSERVER&#8221; auf den richtigen TSF zeigen lassen.<br />
<code>MYSERVER=http://my-tfs-machine:8080</code></p>
<p>Jetzt muss man nach einen Build nur noch das Source-Indexing aufrufen und angeben, wo denn der Workstore und die PDBs liegen. Ich gebe der Einfachheithalber immer den Root aller Projekte an, welche ich gebuildet habe. Die Natchdatei sieht dann z.B. so aus (es kann auch direkt als eigenes Task in msbuild laufen):<br />
<code lang="DOS"><br />
rem Merke mit mal den aktuellen Pfad, was die Root meiner Projekte und Ausgabe ist<br />
set srvOrgDir=%CD%</p>
<p>rem Setze den pfad auch zu dem Perl Zeugs...<br />
path=%path%;"%CD%\Tools\srcsrv\ActivePerl-5.10.1.1006-MSWin32-x86-291086\perl\bin"</p>
<p>rem Wechsle in das Verzeichnis wo die Source-Indexing Tools liegen (liegt bei mir auch im TFS)<br />
cd .\Tools\srcsrv</p>
<p>rem Rufe das Source-Indexing auf<br />
call tfsindex.cmd -ALLROOT="%srvOrgDir%"</p>
<p>rem Setze wieder den ursprünglichen Pfad<br />
cd /D %srvOrgDir%<br />
</code></p>
<p>Alternativ kann man natürlich auch das srcsrv-Verzeichnis im TFS ablegen (so hab ich es gemacht), dann muss man nicht sicherstellen, dass man auf dem Build-Rechner auch die Debugging-Tools installiert hat.</p>
<p>Jetzt sollten nach einem Build alle PDB-Dateien mit der korrekten TFS-Version indiziert worden sein (dies erkennt man daran, dass ziemlich weit hinten in der PDB-Datei Einträge mit &#8220;MYSERVER&#8221; kommen&#8230;; kann man z.B. in Notepad anschauen).</p>
<h3>Symbol-Store</h3>
<p>Oben haben wir jetzt die PDB-Dateien mit dem passenden Verweis auf den TFS ausgestattet. Jetzt müssen wir nur noch sicherstellen, dass wir zu einem beliebigen späteren Zeitpunkt nicht mehr nach dieser PDB-Datei (und den dazugehörigen EXEn) suchen müssen. Dies geschieht am einfachsten mit dem &#8220;symstore&#8221; aus den Debugging Tools for Windows. Dies speichert einfach alle PDBs/EXEn in ein Verzeichnis (am besten ein Netzwerkverzeichnis, wenn es später mehrere Verwenden wollen).<br />
Das ablegen erfolgt dann ganz Simple durch:<br />
<code lang="DOS"><br />
.\Tools\SymStore\Symstore.exe add /r /f .\*.* /s G:\MyProject\SymbolStore\Files /t "Project Name"<br />
</code></p>
<p>Das war alles <img src='http://blog.kalmbach-software.de/de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Einstellungen in VS</h3>
<p>Ok, fast&#8230; denn man will das ganze ja auch noch verwenden&#8230; dazu muss man in VS noch ein paar Einstellungen machen, da per default der &#8220;Source-Server&#8221; deaktiviert ist. Dies muss aktiviert werden:<br />
<a href="http://blog.kalmbachnet.de/files/SourceServerSupport01.PNG"><img src="http://blog.kalmbachnet.de/files/SourceServerSupport01.PNG" /></a></p>
<p>Jetzt muss man noch den Pfad zu den zuvor abgelegten Dateien eintragen:<br />
<a href="http://blog.kalmbachnet.de/files/SourceServerSupport02.PNG"><img src="http://blog.kalmbachnet.de/files/SourceServerSupport02.PNG" /></a></p>
<p>Bekommt man jetzt ein Dump oder will in dieser EXE/DLL debuggen, so werden die Sourcen direkt vom TFS geholt (und in einem temporären Verzeichnis gespeichert) und man kann dies dann direkt debuggen.</p>
<p>Ich hoffe, dass hilft dem ein oder anderen.</p>
<p>PS: Beide Verfahren werden übrigens auch intern von Microsoft schon sehr lange eingesetzt (deswegen auch das Source-Indexing in Perl; PowerShell gab es damals noch nicht). Die gesamten Windows Sourcen sind so indiziert und (der wer darf <img src='http://blog.kalmbach-software.de/de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) können dann via CCP die passenden indizierten PDB-Dateien abgefragt werden, welche dann z.B: in VS/WinDbg die passenden Source runterlädt.</p>
<p>PPS: Wer das ganze noch für SubVersion haben will, kann es bei Stefan nachlesen:<br />
<a href="http://mcblogs.craalse.de/sku?title=source_server_und_symbol_server_setup_mi">Source Server und Symbol Server Setup mit Subversion</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kalmbach-software.de/de/2009/11/09/source-indexing-tfs-und-smbols-store/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
