<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="de-de" xmlns="http://www.w3.org/2005/Atom">
  <title>artiso Blog</title>
  <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/" />
  <link rel="self" href="http://www.artiso.com/ProBlog/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2008-05-16T17:53:18.5613966+02:00</updated>
  <author>
    <name>Thomas</name>
  </author>
  <subtitle>Neues rund um's Thema .Net</subtitle>
  <id>http://www.artiso.com/ProBlog/</id>
  <generator uri="http://www.dasblog.net" version="1.9.6264.0">DasBlog</generator>
  <entry>
    <title>Assembly versionen bei Web-Anwendungen ausgeben</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,442e27de-28f9-4f44-a6c5-14fdd432e09d.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,442e27de-28f9-4f44-a6c5-14fdd432e09d.aspx</id>
    <published>2008-05-16T17:50:11.0445715+02:00</published>
    <updated>2008-05-16T17:50:11.0445715+02:00</updated>
    <category term="ASP.Net" label="ASP.Net" scheme="http://www.artiso.com/ProBlog/CategoryView,category,ASP.Net.aspx" />
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Für eine ASP.Net Anwendung möchte ich gerne die Versionen meiner Anwendung und aller
referenzierten Assemblies ausgeben. Bei Winforms kann ich für die Anwendung mit Application.ProductVersion
die Version meiner Anwendung abfragen, die ich in der AssemblyInfo.cs eingestellt
habe. Das geht bei ASP.Net nicht. Hier die Lösung, wie man das im Web macht, gleich
mit Sortierung:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();

<span style="color: #0000ff">if</span> (assembly
!= <span style="color: #0000ff">null</span>) { lblProductVersion.Text = assembly.GetName().Name
+ <span style="color: #006080">" - "</span> + assembly.GetName().Version.ToString();
var referenceAssemblies = from a <span style="color: #0000ff">in</span> assembly.GetReferencedAssemblies()
orderby a.Name select a; <span style="color: #0000ff">foreach</span> (AssemblyName
referenceAssemblyName <span style="color: #0000ff">in</span> referenceAssemblies)
{ lblProductVersion.Text += <span style="color: #006080">"&lt;br&gt;"</span> + referenceAssemblyName.Name
+ <span style="color: #006080">" - "</span> + referenceAssemblyName.Version; } }</pre>
        </div>
        <p>
 
</p>
        <p>
Die Ausgabe sieht dann ungefähr so aus:
</p>
        <p>
          <span id="ctl00_ContentPlaceHolder1_ucSysInfo1_lblProductVersion">MyApplication -
1.0.3058.30144<br />
AjaxControlToolkit - 1.0.10618.0<br />
ArtisoAssertLib - 1.0.0.0<br />
CommonComponents - 1.0.3056.28557<br />
CommonContracts - 1.0.3056.28555<br />
CrystalDecisions.CrystalReports.Engine - 11.5.3700.0<br />
CrystalDecisions.ReportSource - 11.5.3700.0<br />
CrystalDecisions.Shared - 11.5.3700.0<br />
cTextBox - 1.0.3058.27781<br />
DataContracts - 1.0.0.0<br />
Infragistics35.WebUI.Misc.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.Shared.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.UltraWebChart.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.UltraWebGrid.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.UltraWebNavigator.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.UltraWebTab.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.UltraWebToolbar.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.WebDataInput.v8.1 - 8.1.20081.1000<br />
Infragistics35.WebUI.WebDateChooser.v8.1 - 8.1.20081.1000<br />
ListValuesComponents - 1.0.3057.30147<br />
ListValuesContracts - 1.0.3057.30146<br />
LoginManagerComponents - 1.0.3033.29632<br />
LoginManagerContracts - 1.0.0.0<br />
mscorlib - 2.0.0.0<br />
NavigationComponents - 1.0.3058.27781<br />
NavigationContracts - 1.0.3058.27780<br />
PCMAreaComponents - 1.0.3058.27781<br />
PCMAreaContracts - 1.0.3058.27779<br />
ProductsAreaComponents - 1.0.3058.27779<br />
ProjectsAreaComponents - 1.0.3058.27780<br />
ProjectsAreaContracts - 1.0.3058.27778<br />
ReportingComponents - 1.0.3058.27781<br />
ReportingContracts - 1.0.3058.27780<br />
SearchComponents - 1.0.3058.27779<br />
SearchContracts - 1.0.3058.27779<br />
System - 2.0.0.0<br />
System.Configuration - 2.0.0.0<br />
System.Core - 3.5.0.0<br />
System.Data - 2.0.0.0<br />
System.Data.DataSetExtensions - 3.5.0.0<br />
System.Data.Linq - 3.5.0.0<br />
System.Drawing - 2.0.0.0<br />
System.Web - 2.0.0.0<br />
System.Web.Extensions - 3.5.0.0<br />
System.Web.Services - 2.0.0.0<br />
System.Xml - 2.0.0.0<br />
TaskListComponent - 1.0.3056.28564<br />
TaskListContract - 1.0.3056.28560<br />
TypesComponents - 1.0.3057.30147<br />
TypesContracts - 1.0.3057.30147<br />
UserManagementContracts - 1.0.0.0<br />
Validators - 1.0.0.0<br />
wwDataBinder - 1.0.2908.21817</span>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=442e27de-28f9-4f44-a6c5-14fdd432e09d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>SQL Snapshot Tool</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,971e427f-b4f6-4ff3-a115-c9ee34e6072b.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,971e427f-b4f6-4ff3-a115-c9ee34e6072b.aspx</id>
    <published>2008-05-16T16:12:05.6319051+02:00</published>
    <updated>2008-05-16T17:53:18.5613966+02:00</updated>
    <category term="Tools" label="Tools" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tools.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Für manuelle Tests muss man einen definierten Ausgangszustand schaffen um diese sinnvoll
durchführen zu können. Dieser Ausgangszustand bezieht sich meist auf eine Datenbank.
Um diesen Vorgang nun zu vereinfachen haben wir ein kleines Tool erstellt. Damit können
Snapshots von Datenbanken erstellt und wiederhergestellt werden.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLSnapshotTool_E144/image_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="227" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLSnapshotTool_E144/image_thumb.png" width="409" border="0" />
          </a>
        </p>
        <p>
Das Tool erstellt dazu einfach ein Backup der Datenbank und kann dieses Backup auch
wiederherstellen. Das ist sicher nicht extrem elegant, aber sehr einfach und praktikabel.
Damit das Tool funktioniert, muss man zunächst ein parr Einstellungen in der config
vornehmen:
</p>
        <div>
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">&lt;?</span>
              <span style="color: #800000">xml</span>
              <span style="color: #ff0000">version</span>
              <span style="color: #0000ff">="1.0"</span>
              <span style="color: #ff0000">encoding</span>
              <span style="color: #0000ff">="utf-8"</span> ?<span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">configuration</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">configSections</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">sectionGroup</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="applicationSettings"</span>
              <span style="color: #ff0000">type</span>
              <span style="color: #0000ff">="System.Configuration.ApplicationSettingsGroup,
System, Version=2.0.0.0, Culture=neutral, 
<br />
PublicKeyToken=b77a5c561934e089"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">section</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="SQLSnapshotTool.Properties.Settings"</span>
              <span style="color: #ff0000">type</span>
              <span style="color: #0000ff">="System.Configuration.ClientSettingsSection,
System, Version=2.0.0.0, 
<br />
Culture=neutral, PublicKeyToken=b77a5c561934e089"</span>
              <span style="color: #ff0000">requirePermission</span>
              <span style="color: #0000ff">="false"</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">sectionGroup</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">configSections</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">applicationSettings</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 9:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">SQLSnapshotTool.Properties.Settings</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="Password"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 11:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 13:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="IntegratedSecurity"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">&gt;</span>True<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 15:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="Database"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 17:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">&gt;</span>Zeiterfassung<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 19:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="User"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 20:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">/&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 21:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 22:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="LocalBackupPath"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 23:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">&gt;</span>C:\Temp\DBSnapshots<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 24:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 25:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="Server"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 26:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">&gt;</span>MyServer<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 27:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 28:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">setting</span>
              <span style="color: #ff0000">name</span>
              <span style="color: #0000ff">="UNCBackupPath"</span>
              <span style="color: #ff0000">serializeAs</span>
              <span style="color: #0000ff">="String"</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 29:</span>
              <span style="color: #0000ff">&lt;</span>
              <span style="color: #800000">value</span>
              <span style="color: #0000ff">&gt;</span>\\MyServer\DBSnapshots<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 30:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">setting</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 31:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">SQLSnapshotTool.Properties.Settings</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 32:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">applicationSettings</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 33:</span>
              <span style="color: #0000ff">&lt;/</span>
              <span style="color: #800000">configuration</span>
              <span style="color: #0000ff">&gt;</span>
            </pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
Die wichtigsten Einstellungen hier kurz beschrieben:
</p>
        <p>
Zeile 11 : Das Kennwort für den Datenbankzugriff (kann leer sein, wenn integrated
Security verwendet wird)<br />
Zeile 14 : Angabe ob integrated Security verwendt werden soll.<br />
Zeile 17 : Name der Datenbank 
<br />
Zeile 20 : Name des Users (kann leer sein, wenn integrated Security verwendet wird)<br />
Zeile 23 : Der lokale Pfad auf dem DB-Server in den die Snapshots geschrieben werden
sollen<br />
Zeile 26 : Der Name des DB-Servers<br />
Zeile 29 : Der UNC-Pfad über den auf das Sbnapshot-Verzeichnis auf dem DB-Server vom
Client aus zugegriffen werden kann.
</p>
        <p>
Die Bedienung ist denkbar einfach. Man gibt einfach den Namen des gewünschten Snapshots
an und klickt auf "Create Snapshot". Damit wird eine Backup-Datei in das Snapshot-Verzeichnis
auf dem Server geschrieben. In der Liste sieht man alle BAK-Dateien aus dem Verzeichnis
und kann eine auswählen um diese dann wiederherzustellen. Das ganze ist so einfach,
dass sogar Anwender damit klarkommen.
</p>
        <p>
Eine Einschränkung gibt es, das Tool läuft nur mit dem SQL-Server.
</p>
        <p>
Wenn jemand das Tool nützlich findet, würde ich mich über ein kurzes Feedback freuen.
</p>
        <div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:442e201f-431a-4c7e-b483-fb5a845c1420" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <p>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLSnapshotTool_E144/SQLSnapshotTool.zip" target="_blank">Hier
kann das Tool heruntergeladen werden</a>
          </p>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=971e427f-b4f6-4ff3-a115-c9ee34e6072b" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Eine absolut coole Pr&amp;auml;sentation</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,5d9ed2bc-ed61-41c4-bfdc-4ff7b042366e.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,5d9ed2bc-ed61-41c4-bfdc-4ff7b042366e.aspx</id>
    <published>2008-05-16T15:50:15.9828984+02:00</published>
    <updated>2008-05-16T15:50:15.9828984+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Technologie kann auch Spaß machen und solche Demos würde ich mir gerne öfter wünschen.
Macht weiter so Jungs!
</p>
        <p>
Unbedingt anschauen!
</p>
        <p>
          <a href="http://blogs.msdn.com/dparys/archive/2008/05/09/yet-another-windows-live-demo-video.aspx">Dariusz
quatscht : Yet Another Windows Live Demo Video</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=5d9ed2bc-ed61-41c4-bfdc-4ff7b042366e" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Per VBA auf Webservices zugreifen</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,05873727-e0af-4e9e-9702-8f12d3300e59.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,05873727-e0af-4e9e-9702-8f12d3300e59.aspx</id>
    <published>2008-05-11T21:54:13.9376265+02:00</published>
    <updated>2008-05-11T21:55:57.7368385+02:00</updated>
    <category term="Excel" label="Excel" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Excel.aspx" />
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ich wollte aus Excel auf einen Webservice zugreifen. Also kurz gegoogelt (oder gelived
;-)), eigentlich gar nicht so schwer...
</p>
        <p>
Aber wie so oft liegt der Teufel im Detail und es waren doch ein paar Kleinigkeiten
zu beachten, deshalb hier nochmals der komplette Lösungsweg:
</p>
        <p>
Zunächst habe ich einen WebService erstellt, zum Testen was ganz triviales, eigentlich
das Webservice Template nur noch um den Parameter Name erweitert:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">using</span> System; <span style="color: #0000ff">using</span> System.Web; <span style="color: #0000ff">using</span> System.Web.Services; <span style="color: #0000ff">using</span> System.Web.Services.Protocols;
[WebService(Namespace = <span style="color: #006080">"http://tempuri.org/"</span>)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] <span style="color: #0000ff">public</span><span style="color: #0000ff">class</span> Service
: System.Web.Services.WebService { <span style="color: #0000ff">public</span> Service
() { } [WebMethod] <span style="color: #0000ff">public</span><span style="color: #0000ff">string</span> HelloWorld(<span style="color: #0000ff">string</span> Name)
{ <span style="color: #0000ff">return</span><span style="color: #006080">"Hello World
"</span> + Name; } }</pre>
        </div>
        <p>
 
</p>
        <p>
Die URL um auf den Webservice mit ausgefülltem Parameter zuzugreifen lautet <a href="http://localhost:49408/WebSite2/Service.asmx/HelloWorld?Name=Test">http://localhost:49408/WebSite2/Service.asmx/HelloWorld?Name=Test</a>,
jedoch funktioniert das standardmäßig noch nicht. Wir müssen erst noch in der web.config
folgenden Eintrag hinzufügen:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">webServices</span>
            <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">protocols</span>
            <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">add</span>
            <span style="color: #ff0000">name</span>
            <span style="color: #0000ff">="HttpGet"</span>
            <span style="color: #0000ff">/&gt;</span>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">add</span>
            <span style="color: #ff0000">name</span>
            <span style="color: #0000ff">="HttpPost"</span>
            <span style="color: #0000ff">/&gt;</span>
            <span style="color: #0000ff">&lt;/</span>
            <span style="color: #800000">protocols</span>
            <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;/</span>
            <span style="color: #800000">webServices</span>
            <span style="color: #0000ff">&gt;</span>
          </pre>
        </div>
        <p>
Nun bekommen wir mit diesem Aufruf den XML-Response des Webservices direkt zurückgegeben.
Nun wollen wir den Webservice aus VBA aufrufen. 
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">Sub</span> CallWebService() <span style="color: #0000ff">Dim</span> MSXML <span style="color: #0000ff">As</span><span style="color: #0000ff">New</span> MSXML2.DOMDocument <span style="color: #0000ff">Dim</span> strAnfrage <span style="color: #0000ff">As</span><span style="color: #0000ff">String</span> strAnfrage
= <span style="color: #006080">"http://localhost:49408/WebSite2/Service.asmx/HelloWorld?Name=Test"</span><span style="color: #0000ff">With</span> MSXML
.async = <span style="color: #0000ff">False</span> .preserveWhiteSpace = <span style="color: #0000ff">False</span> .validateOnParse
= <span style="color: #0000ff">True</span> .resolveExternals = <span style="color: #0000ff">False</span><span style="color: #0000ff">End</span><span style="color: #0000ff">With</span><span style="color: #0000ff">If</span> MSXML.Load(strAnfrage)
= <span style="color: #0000ff">True</span><span style="color: #0000ff">Then</span> Response
= MSXML.DocumentElement.Text <span style="color: #0000ff">Else</span> Response = <span style="color: #006080">"Fehler"</span><span style="color: #0000ff">End</span><span style="color: #0000ff">If</span><span style="color: #0000ff">End</span> Sub</pre>
        </div>
        <div> 
</div>
        <div>Damit das funktioniert müssen wir noch die Bibliothek "Microsoft XML, vx.0" einfügen.
Wir werten im Moment das XML-Dokument sehr einfach aus, da wir davon ausgehen, dass
der Rückgabewert einfach als Textim XML-Dokument zurückgegeben wird. Damit können
wir einfach mit MSXML.DocumentElement.Text den gewünschten Wert auslesen. Natürlich
können auf diese Weise auch komplexer Rückgabewerte ausgewertet werden, aber das wollen
wir hier nicht näher beleuchten.
</div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=05873727-e0af-4e9e-9702-8f12d3300e59" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Zeitzonen in DataSets</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,108b2c8d-3b7a-4030-b404-32d5107dac4c.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,108b2c8d-3b7a-4030-b404-32d5107dac4c.aspx</id>
    <published>2008-05-08T08:36:13.7562933+02:00</published>
    <updated>2008-05-08T09:27:39.1822899+02:00</updated>
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Verwendet man ein DataSet mit DateTime-Werten in unterschiedlichen Zeitzonen, wird
man zu seiner Überraschung feststellen, dass das DataSet eine Umrechnung der Zeiten
vornimmt. Bei uns war das Problem konkret, dass ein DataSet per WCF zu einem Service
übertragen wurde. Der Service war aber in einer anderen Zeitzone als der Client. In
einem DateTime-Feld wurde ein Datumswert abgelegt, also z.B. 08.05.2008. Die automtische
Umrechnung hat davon jedoch eine Stunde abgezogen, so dass am Service 07.05.2008 23:00
ankam. Damit war das Datum immer um einen Tag verschoben.
</p>
        <p>
Das Problem kann aber behoben werden, indem man auf dem Client und auf dem Service
den DateTime-Wert vor bzw. nach der Serialisierung konvertiert.
</p>
        <p>
Auf dem Client sieht das dann z.B. so aus:
</p>
        <div>
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">foreach</span> (DataSet1.DataTable1Row
dr <span style="color: #0000ff">in</span> ds.DataTable1.Rows)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> dr.Date
= dr.Date.ToLocalTime();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> }</pre>
          </div>
        </div>
        <p>
Und dann auf dem Service das Gegenstück:
</p>
        <div>
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">foreach</span> (DataSet1.DataTable1Row
dr <span style="color: #0000ff">in</span> ds.DataTable1.Rows)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> dr.Date
= dr.Date.ToUniversalTime();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> }</pre>
          </div>
        </div>
        <p>
Damit kommt genau der Wert, der im Client eingetragen wurde auch im Service an. Zwar
gibt es wohl auch eine Möglichkeit, die Datumskonvertierung zu unterdrücken, aber
das hat bei mir nicht sauber funktioniert. Wenn also jemand eine elegantere Lösung
kenn, nur her damit ;-)
</p>
        <p>
          <strong>Update:</strong>
        </p>
        <p>
Wir habe doch noch eine elegantere Lösung gefunden. Auf dem DataSet kann man auf der
DateTime Column das Property DateTimeMode auf Unspecified umstellen. Dann wird die
Zeitzonen-Konvertierung nicht durchgeführt. Danke an Luke für den Tipp.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ZeitzoneninDataSets_76BC/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="511" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ZeitzoneninDataSets_76BC/image_thumb.png" width="247" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=108b2c8d-3b7a-4030-b404-32d5107dac4c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio Team System Licensing</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,911f8480-1aa5-465e-9aae-96c0f121512f.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,911f8480-1aa5-465e-9aae-96c0f121512f.aspx</id>
    <published>2008-05-07T17:56:09.5917536+02:00</published>
    <updated>2008-05-07T17:56:09.5917536+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft ist ja ein Meister darin, das Thema Lizenzierung zu einer WIssenschaft zu
machen und inzwischen gibt es wohl Leute, die ihr Geld damit verdienen, Firmen durch
den Lizenz-Dschungel von MS zu führen. Für alle, die Fragen bezgl. der Lizenzierung
von Visual Studio Team System 2008 haben, sei dieses Dokument empfohlen. Fragen dazu
aber bitte nicht an mich ;-) 
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1FA86E00-F0A3-4290-9DA9-6E0378A3A3C5&amp;displaylang=en#filelist">Download
details: Visual Studio Team System Licensing</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=911f8480-1aa5-465e-9aae-96c0f121512f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Team Foundation Server 2008 mit AssemblyVersion Task - rekursive Builds vermeiden</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,4fbc8e31-c8b9-4037-b401-2163ba095dfe.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,4fbc8e31-c8b9-4037-b401-2163ba095dfe.aspx</id>
    <published>2008-05-05T08:23:37.2470578+02:00</published>
    <updated>2008-05-05T08:23:37.2470578+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blog.alexonasp.net/Default.aspx">Alex</a> beschreibt in seinem Artiekel
eine sehr elegante Möglichkeit, wie man vermeiden kann, dass bei Continous Integration
Checkins durch den Build einen erneuten Build auslösen.
</p>
        <p>
          <a href="http://blog.alexonasp.net/archive/2008/05/01/team-foundation-server-2008-mit-assemblyversion-task---rekursive-builds.aspx">Team
Foundation Server 2008 mit AssemblyVersion Task - rekursive Builds vermeiden</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4fbc8e31-c8b9-4037-b401-2163ba095dfe" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2008 Team System 2008 - {&amp;Uuml;berblick}</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,ca05fb23-29fb-4f79-b02f-43d800b1bf22.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,ca05fb23-29fb-4f79-b02f-43d800b1bf22.aspx</id>
    <published>2008-05-01T02:48:48.9242057+02:00</published>
    <updated>2008-05-01T02:49:37.0651388+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <category term="Vortr&amp;#228;ge" label="Vortr&amp;#228;ge" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Vortr%c3%a4ge.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Die Videos zu den Sessions vom Launch-Event in Frankfurt im Februar sind jetzt für
alle frei verfügbar. 
</p>
        <p>
Ich hatte ja die Möglichkeit, am Ende einer Session von <a href="http://blogs.msdn.com/cbinder" target="_blank">Christian
Binder</a> kurz vorzustellen, wie wir den TFS in unserem Entwicklungsprozess nutzen. 
</p>
        <p>
Das Video kann man <a href="http://www.microsoft.com/germany/msdn/launch2008/library.aspx?id=T04_MI_1100" target="_blank">hier</a> abrufen.
Mein Einsatz beginnt dann ab der Minute 54. Mein Video, das ich in dem Vortrag nutze,
kann <a href="http://www.artiso.com/ProBlog/ct.ashx?id=944da1ef-2f47-4857-824e-bd30586abd58&amp;url=http%3a%2f%2fwww.artiso.com%2fdownloads%2fartisoWebCastTeil1.wmv" target="_blank">hier</a> heruntergeladen
werden.<br />
War echt ne coole Sache vor mehr als 500 Leuten zu reden. 
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VisualStudio2008TeamSystem2008berblick_2514/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="277" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VisualStudio2008TeamSystem2008berblick_2514/image_thumb.png" width="546" border="0" />
          </a>
        </p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/launch2008/library.aspx?id=T04_MI_1100">Visual
Studio 2008 Team System 2008 - {Überblick}</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=ca05fb23-29fb-4f79-b02f-43d800b1bf22" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2008 Product Comparison</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,bf95c4fc-a44a-40d1-b905-13eefe04be22.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,bf95c4fc-a44a-40d1-b905-13eefe04be22.aspx</id>
    <published>2008-05-01T01:04:12.8840393+02:00</published>
    <updated>2008-05-01T01:04:12.8840393+02:00</updated>
    <category term="VS 2008" label="VS 2008" scheme="http://www.artiso.com/ProBlog/CategoryView,category,VS%2B2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Welche Funktion finde ich in welcher Edition von Visual Studio? Wie unterscheiden
sich VS Standard und VS Professional? Wann brauche ich eine Team Edition?
</p>
        <p>
Fragen wie diese beantwortet die Visual Studio Product Comparison.
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/vstudio/products/cc149003.aspx">Visual Studio
2008 Product Comparison</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=bf95c4fc-a44a-40d1-b905-13eefe04be22" />
      </div>
    </content>
  </entry>
  <entry>
    <title>&amp;Auml;ndern der Default-Action f&amp;uuml;r Workitems beim Checkin</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,26b94f90-0250-450d-9d3d-0a850b34754e.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,26b94f90-0250-450d-9d3d-0a850b34754e.aspx</id>
    <published>2008-05-01T00:31:52.1372436+02:00</published>
    <updated>2008-05-01T00:31:52.1372436+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Beim Checkin in den TFS können beim Checkin Workitems verknüpft werden. Hier können
standardäßig zwei verschiedene Chck-In Actions ausgewählt werden. Associate verknüpft
den Checkin nur mit dem Workitem währen Resolve das Workitem auf geschlossen setzt.
Vor allem wenn man Workuiems mit größerem Umfang plant, kann es vorkommen, dass man
als Default-Einstellung Associate haben möchte statt Resolve. Leider funktioniert
das nicht so. Einen Workaround stellt Martin Woodward vor. Mit seiner Methode wird
Resolved einfach aus den Check-In Actions entfernt und damit Associate automatisch
als Default-Wert verwendet. Der Nachteil bei dieser Lösung: Man muss die Workitems
außerhalb des Checkin-Prozesses auf Resolved setzen. Das ist nicht besonders schön,
aber momentan leider die einzige Möglichkeit das Standard-Verhalten zu ändern.
</p>
        <p>
          <img alt="A bug with the Resolve and Associate actions displayed.  Resolve is the default." src="http://www.woodwardweb.com/blog/remove_resolve.png" border="0" /> 
</p>
        <p>
          <a href="http://www.woodwardweb.com/vsts/000230.html">Martin Woodward: TFS Top Tip
#3: Removing the Resolve Check-In Action from a Work Item</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=26b94f90-0250-450d-9d3d-0a850b34754e" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Toolbars unter Vista am Desktop docken</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,ac50af5a-73d1-4363-b253-c1d8d2aab6d7.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,ac50af5a-73d1-4363-b253-c1d8d2aab6d7.aspx</id>
    <published>2008-04-30T08:58:27.3938061+02:00</published>
    <updated>2008-04-30T09:18:21.2764469+02:00</updated>
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Oft hat man einen bestimmten Ordner, auf den man of zugreifen muss. Hier ist mir nun
ein Feature von Vista aufgefallen (gab es wohl auch schon in früheren Windows-Versionen,
aber da habe ich das gar nicht bemerkt). Man kann Toolbars einrichten und diese einfach
oben, rechts oder links am Desktop andocken. Mit der AutoHide-Funktion benötigen die
Toolbars auch keinen unnötigen Platz. Ein nettes Feature, das ich bei meinen Vorträgen
gut gebrauchen kann.
</p>
        <p>
Das Video zeigt, wie's gemacht wird.
</p>
        <object codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" type="application/x-oleobject" height="545" standby="Loading Microsoft Windows Media Player components..." width="640" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" name="Video">
          <param name="URL" value="http://content.screencast.com/?parameters=13468270-6754-4344-9ff3-f146231886ff_12328d41-dda7-4a1d-bd38-17794493e326_static_1048576_video/x-ms-wmv_DockingToolbar_media/DockingToolbar.wmv" />
          <param name="rate" value="1" />
          <param name="balance" value="0" />
          <param name="currentPosition" value="0" />
          <param name="defaultFrame" value="" />
          <param name="playCount" value="1" />
          <param name="autoStart" value="0" />
          <param name="currentMarker" value="0" />
          <param name="invokeURLs" value="-1" />
          <param name="baseURL" value="" />
          <param name="volume" value="50" />
          <param name="mute" value="0" />
          <param name="uiMode" value="full" />
          <param name="stretchToFit" value="0" />
          <param name="windowlessVideo" value="0" />
          <param name="enabled" value="-1" />
          <param name="enableContextMenu" value="-1" />
          <param name="fullScreen" value="0" />
          <param name="SAMIStyle" value="" />
          <param name="SAMILang" value="" />
          <param name="SAMIFilename" value="" />
          <param name="captioningID" value="" />
          <param name="enableErrorDialogs" value="0" />
          <param name="_cx" value="16933" />
          <param name="_cy" value="14420" />
          <embed name="Video" type="application/x-mplayer2" src="http://content.screencast.com/?parameters=13468270-6754-4344-9ff3-f146231886ff_12328d41-dda7-4a1d-bd38-17794493e326_static_1048576_video/x-ms-wmv_DockingToolbar_media/DockingToolbar.wmv" autostart="0" showcontrols="1" uimode="full" playcount="1" currentposition="0" width="640" height="545">
          </embed>
        </object>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=ac50af5a-73d1-4363-b253-c1d8d2aab6d7" />
      </div>
    </content>
  </entry>
  <entry>
    <title>TFS Workitems l&amp;ouml;schen</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,06176a3b-2e17-4536-bb42-bc2ca6bf127d.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,06176a3b-2e17-4536-bb42-bc2ca6bf127d.aspx</id>
    <published>2008-04-29T22:27:44.994298+02:00</published>
    <updated>2008-04-29T22:27:44.994298+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Auch wenn das unter dem Gesichtspunkt Traceability äußerst problematisch ist, gibt
es im TFS 2008 die Möglichkeit Workitems zu löschen - ein Feature das oftmals gefordert
wurde. Dazu benötigt man die <a href="http://msdn2.microsoft.com/en-us/tfs2008/bb980963.aspx" target="_blank">TFS
Powertools</a>. Danach kann man mit folgendem Befehl ein Workitem löschen:
</p>
        <p>
          <font face="Courier New" size="2">tfpt destroywi /server:sartfsx01 /workitemID:8719</font>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=06176a3b-2e17-4536-bb42-bc2ca6bf127d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Ausblick :  Team Foundation Server 2008 SP1</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,7f8c0fa5-9fad-49ff-be8b-512fbebaac4e.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,7f8c0fa5-9fad-49ff-be8b-512fbebaac4e.aspx</id>
    <published>2008-04-29T00:37:00.3666366+02:00</published>
    <updated>2008-04-29T00:37:00.3666366+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
In Kürze wird wohl das SP1 zum Team Foundation Server als Beta veröffentlich. Brian
Harry beschreibt schon mal ein paar Fetures auf di wir uns freuen dürfen.
</p>
        <p>
          <a href="http://blogs.msdn.com/bharry/archive/2008/04/28/team-foundation-server-2008-sp1.aspx">bharry's
WebLog : Team Foundation Server 2008 SP1 Preview</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=7f8c0fa5-9fad-49ff-be8b-512fbebaac4e" />
      </div>
    </content>
  </entry>
  <entry>
    <title>TeamConf 2008 R&amp;uuml;ckblick</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,0c7ebdcc-1597-4f5f-a590-a7776713a508.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,0c7ebdcc-1597-4f5f-a590-a7776713a508.aspx</id>
    <published>2008-04-25T00:57:49.426+02:00</published>
    <updated>2008-04-25T15:46:45.4806464+02:00</updated>
    <category term="Vortr&amp;#228;ge" label="Vortr&amp;#228;ge" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Vortr%c3%a4ge.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ich war in den letzten Tagen auf der <a href="http://www.teamconf.de/" target="_blank">TeamConf
2008</a> in München. Es war sehr schön zu sehen, dass Team System inzwischen recht
gut etabliert. Es gab auf dieser Konferenz eine ganze Reihe von Praxisberichten die
darstellten, welche Erfahrungen Anwender bereits mit Team System gesammelt haben.
Und es war sehr interessant, mit vielen Leuten aus dem ALM-Umfeld zu diskutieren.
Ein persönliches Highlight war für mich, ein Treffen mit Sam Guckenheimer, Group Product
Planner bei Microsoft, der sich unseren WorkitemManager angesehen hat und mit dem
ich einige Ideen diskutieren konnte.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/TeamConf2008Rckblick_98F/P1010021.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="238" alt="P1010021" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/TeamConf2008Rckblick_98F/P1010021_thumb.jpg" width="316" border="0" />
          </a>
        </p>
        <p>
Ich habe auf der TeamConf einen Vortrag zu Programmierung mit dem TFS API am Beispiel
einer hierarchsichen Workitem-Organisation gehalten. 
</p>
        <p>
        </p>
        <div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:f66ad4fd-88b9-481f-b65e-1a12d8c63629" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
          <p>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/TeamConf2008Rckblick_98F/TFS%20SDK.pptx" target="_blank">Download
Folien</a>
            <br />
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/TeamConf2008Rckblick_98F/WIM%20Lite.zip" target="_blank">Download
Beispielcode</a>
          </p>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=0c7ebdcc-1597-4f5f-a590-a7776713a508" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Workitem Templates</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,9aaa24f6-fb8d-42c0-9985-b32d8a82dcda.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,9aaa24f6-fb8d-42c0-9985-b32d8a82dcda.aspx</id>
    <published>2008-04-25T00:34:36.3862631+02:00</published>
    <updated>2008-04-25T00:34:36.3862631+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mit dem <a href="http://download.microsoft.com/download/2/0/e/20e75000-79ff-43d4-894f-40da9e185c3f/tfpt.msi" target="_blank">Team
Foundation Server Power Tools March 2008</a> gibt es ein cooles Features, Workitem
Templates. Haben Sie sich nicht schon mal geärgert, dass Sie beim Anlegen eines Bugs
immer den Namen des gleichen Entwicklers eingeben müssen oder dass sie immer die aktuelle
Iteration auswählen müssen? Genau hier helfen Workitem-Templates weiter. Und das geht
so:
</p>
        <p>
Nach der Installation der Power Tools gibt es im Team Explorer eine neuen Knoten "Work
Item Templates". Hier können neue Templates angelegt werden.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/image_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="235" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/image_thumb.png" width="244" border="0" />
          </a>
        </p>
        <p>
Für jeden Workitem-Typ können beliebig viele Templates angelegt werden. Hier können
nun die gewünschten Felder vorbelegt werden.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/image_4.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="411" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/image_thumb_1.png" width="454" border="0" />
          </a>
        </p>
        <p>
Auf Basis dieses Templates kann nun ein neues Workitem erstellt werden (Rechter Mausklick
auf das Template) oder auf ein bestehendes Template angewandt werden.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/image_6.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/image_thumb_2.png" width="457" border="0" />
          </a>
        </p>
        <p>
Weitere Informationen finden sich in der 
</p>
        <div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:3f55001b-d936-4c5e-89c1-c6e002618029" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <p>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/WorkitemTemplates_22F/TeamFoundationPowertool.doc" target="_blank">Power
Tools Dokumentation</a>
          </p>
        </div>
oder auf dem Blog von <a href="http://blogs.msdn.com/bharry/archive/2007/09/29/september-tfs-power-tools-released.aspx" target="_blank">Brian
Harry</a><img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=9aaa24f6-fb8d-42c0-9985-b32d8a82dcda" /></div>
    </content>
  </entry>
  <entry>
    <title>MSDN WebCast zum UI-Testing mit dem UI Automation Framework</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,723fe3a3-b97e-4eb2-90c7-0e8515580937.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,723fe3a3-b97e-4eb2-90c7-0e8515580937.aspx</id>
    <published>2008-04-22T11:28:00.0866352+02:00</published>
    <updated>2008-04-22T11:28:00.0866352+02:00</updated>
    <category term="Eigene Tutorials" label="Eigene Tutorials" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Eigene%2BTutorials.aspx" />
    <category term="News" label="News" scheme="http://www.artiso.com/ProBlog/CategoryView,category,News.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img height="100" alt="MSDN Webcasts" src="http://www.microsoft.com/germany/msdn/images/vkey/vkey_webcasts.jpg" width="550" />
        </p>
        <p>
Zusammen mit <a href="http://blogs.msdn.com/cbinder" target="_blank">Christian Binder</a> habe
ich einen MSDN Webcast zum Thema UI-Testing mit dem UI Automation Framework erstellt.
Der Webcast zeigt, wie man mit dem UI Automation Framework Anwendungen aus einer anderen
Anwendung heraus steuern kann. Diese Methode eignet sich sehr gut um z.B. Unit-Tests
zu erstellen, die die Oberfläche einer Anwendung testen. Damit lassen sich Oberflächentests
sehr schön automatisieren. Und das beste ist, dass UI Automation Framework ist Bestandteil
des .Net Framework 3.0 und damit kostenlos.
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032376565">Download
des Webcasts</a>
        </p>
        <div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:aa255f87-6233-4e5f-b0f6-7e6ead8d0720" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <p>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/MSDNWebCastzumUITestingmitdemUIAutomatio_9F54/UITests.zip" target="_blank">Download
der Beispiele aus dem Webcast</a>
          </p>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=723fe3a3-b97e-4eb2-90c7-0e8515580937" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Freier Plattenplatz &amp;uuml;ber Freigabe abfragen</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,3f35b34a-ab39-4d93-8425-ddd69f34df98.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,3f35b34a-ab39-4d93-8425-ddd69f34df98.aspx</id>
    <published>2008-04-21T09:45:50.9060448+02:00</published>
    <updated>2008-04-21T16:20:47.5342044+02:00</updated>
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Gerade hatte ich eine vermeintlich Fragestellung. ich wollte einfach nur wissen, wieviel
Platz auf einem Laufwerk im Netzwerk noch frei ist. Das hat sich aber als problematischer
herausgestellt als gedacht, da ich nur eine Freigabe auf dem Laufwerk hatte. Das ist
wohl gar nicht so einfach, damit herauszufinden, wieviel Platz auf der entsprechenden
Platte noch frei ist. Erst über die gute alte Command-Shell und den dir-Befehl hat
das geklappt. Damit wird der freie Plattenplatz problemlos angezeigt. 
</p>
        <p>
Na ja, es scheint manchmal wirklich so, dass früher einiges besser war ;-)
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FreierPlattenplatzberFreigabeabfragen_8715/image_4.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="295" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FreierPlattenplatzberFreigabeabfragen_8715/image_thumb_1.png" width="581" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3f35b34a-ab39-4d93-8425-ddd69f34df98" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Verkn&amp;uuml;pfung zum Sharepoint einrichten</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,19c7d7c6-c1e3-4636-ab91-11ddb63ed5fe.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,19c7d7c6-c1e3-4636-ab91-11ddb63ed5fe.aspx</id>
    <published>2008-04-17T22:48:02.2795482+02:00</published>
    <updated>2008-04-17T22:48:02.2795482+02:00</updated>
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Möchte man aus Anwendungen wie z.B. Word auf Dokumente auf einem SharePoint Portal
zugreifen. kann man dies sowohl über einen UNC-Pfad (\\ServerName\sites\SiteName)
oder über eine URL (<a href="http://ServerName/sites/SiteName">http://ServerName/sites/SiteName</a>)
zugrifen. Nöch schöner wäre allerdings, wenn man eine direkte Verknüpfung hätte, die
auch im Browse-Fenster der Anwendungen genutzt werden kann. Wie man eine solche Verknüpfung
einrichtet, zeige ich im folgenden Video:
</p>
        <p>
          <object codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" type="application/x-oleobject" height="545" standby="Loading Microsoft Windows Media Player components..." width="640" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" name="Video">
            <param name="URL" value="http://content.screencast.com/media/3d588af4-c393-4f52-ad55-b73a2a947efe_12328d41-dda7-4a1d-bd38-17794493e326_static_0_0_Untitled.wmv" />
            <param name="rate" value="1" />
            <param name="balance" value="0" />
            <param name="currentPosition" value="0" />
            <param name="defaultFrame" value="" />
            <param name="playCount" value="1" />
            <param name="autoStart" value="0" />
            <param name="currentMarker" value="0" />
            <param name="invokeURLs" value="-1" />
            <param name="baseURL" value="" />
            <param name="volume" value="50" />
            <param name="mute" value="0" />
            <param name="uiMode" value="full" />
            <param name="stretchToFit" value="0" />
            <param name="windowlessVideo" value="0" />
            <param name="enabled" value="-1" />
            <param name="enableContextMenu" value="-1" />
            <param name="fullScreen" value="0" />
            <param name="SAMIStyle" value="" />
            <param name="SAMILang" value="" />
            <param name="SAMIFilename" value="" />
            <param name="captioningID" value="" />
            <param name="enableErrorDialogs" value="0" />
            <param name="_cx" value="16933" />
            <param name="_cy" value="14420" />
            <embed name="Video" type="application/x-mplayer2" src="http://content.screencast.com/media/3d588af4-c393-4f52-ad55-b73a2a947efe_12328d41-dda7-4a1d-bd38-17794493e326_static_0_0_Untitled.wmv" autostart="0" showcontrols="1" uimode="full" playcount="1" currentposition="0" width="640" height="545">
            </embed>
          </object>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=19c7d7c6-c1e3-4636-ab91-11ddb63ed5fe" />
      </div>
    </content>
  </entry>
  <entry>
    <title>File Extension per ClickOnce mit Anwendung assoziieren</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,3dbc8064-f5dd-4e49-b962-99d095ea3403.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,3dbc8064-f5dd-4e49-b962-99d095ea3403.aspx</id>
    <published>2008-04-14T00:16:09.5366822+02:00</published>
    <updated>2008-04-14T00:16:09.5366822+02:00</updated>
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jens Häupel beschreibt in einem Blog-Eintrag, wie man per ClickOnce Setup DateiTypen
mit seiner Anwendung verknüpfen kann. Klasse, dass das nun endlich funktioniert. Danke
für den Artikel Jens. 
</p>
        <p>
          <a href="http://blogs.msdn.com/jensha/archive/2008/04/10/file-extension-per-clickonce-mit-anwendung-assoziieren.aspx">File
Extension per ClickOnce mit Anwendung assoziieren</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3dbc8064-f5dd-4e49-b962-99d095ea3403" />
      </div>
    </content>
  </entry>
  <entry>
    <title>PowerCommands for Visual Studio 2008 Verion 1.1 ver&amp;ouml;ffentlicht</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,75488fed-f383-4c3b-bdc3-f15580af3343.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,75488fed-f383-4c3b-bdc3-f15580af3343.aspx</id>
    <published>2008-04-13T14:48:05.871059+02:00</published>
    <updated>2008-04-13T14:48:05.871059+02:00</updated>
    <category term="Tools" label="Tools" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tools.aspx" />
    <category term="VS 2008" label="VS 2008" scheme="http://www.artiso.com/ProBlog/CategoryView,category,VS%2B2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Die PowerCommands for Visual Studio 2008 sind jetzt in der Version 1.1 veröffentlicht
worden und bieten in dieser neuen Version einige neue Funktionen. Bei den PowertCommends
for Visual Studio 2008 handelt es sich um eine kostenlose Sammlung von nützlichen
Erweiterungen für die Visual Studio IDE. Einen Überblick über die Funktionen bietet
dieses <a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=PowerCommands&amp;DownloadId=952" target="_blank">Dokument</a>.
Da hat es viele Sachen dabei, die sicher schon jeder beim Arbeiten mit Visual Studio
2008 vermisst hat.
</p>
        <p>
          <a href="http://code.msdn.microsoft.com/PowerCommands">PowerCommands for Visual Studio
2008 - Home</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=75488fed-f383-4c3b-bdc3-f15580af3343" />
      </div>
    </content>
  </entry>
  <entry>
    <title>AfterLaunch in K&amp;ouml;ln - ich war dabei!</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,db1ee1b5-7f84-487a-b906-cec9a39ad917.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,db1ee1b5-7f84-487a-b906-cec9a39ad917.aspx</id>
    <published>2008-04-13T13:22:50.368+02:00</published>
    <updated>2008-04-13T13:46:26.448707+02:00</updated>
    <category term="Vortr&amp;#228;ge" label="Vortr&amp;#228;ge" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Vortr%c3%a4ge.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Der AfterLaunch Event in Köln war eine sehr gute Veranstaltung und sehr professionell
organisiert. Für die lächerliche Teilnahmegebühr von nur 8,-- € haben die Teilnehmer
hochkarätige Vorträge rund um die 2008er Launch-Produkte von Microsoft erhalten. Großer
Wert wurde dabei auf den Praxisbezug der Vorträge gelegt. Auch ich war dabei und hatte
zwei Sessions zum Einsatz des Team Foundation Servers 2008 in der Praxis. Leider hatte
ich etwas mit dem Beamer zu kämpfen, ich hoffe aber dass die Teilnehmer dennoch einige
Tipps zum Einsatz des TFS mitnehmen konnte und ich den einen oder anderen animieren
konnte dieses Tool nun doch einmal zu installieren und sich näher damit zu beschäftigen.
</p>
        <div class="wlWriterSmartContent" id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:ed0cb9f7-3d0a-49ac-aa38-d0eb8eadf43d" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
          <p>
          </p>
          <div>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AfterLaunchinKlnichwardabei_BC28/AfterLaunch_Vortrag.pptx" target="_blank">Download
der Folien zum Vortrag</a>
          </div>
          <p>
          </p>
        </div>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AfterLaunchinKlnichwardabei_9B79/P1010005.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="184" alt="P1010005" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AfterLaunchinKlnichwardabei_9B79/P1010005_thumb.jpg" width="244" border="0" />
          </a>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AfterLaunchinKlnichwardabei_9B79/P1010011.jpg">
            <img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="184" alt="P1010011" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AfterLaunchinKlnichwardabei_9B79/P1010011_thumb.jpg" width="244" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=db1ee1b5-7f84-487a-b906-cec9a39ad917" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Vortrag zu QM mit VSTS 2008 bei der UG Braunschweig</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,b8102f65-ed2e-41b6-ae88-e5a4f71d9b92.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,b8102f65-ed2e-41b6-ae88-e5a4f71d9b92.aspx</id>
    <published>2008-04-12T12:10:04+02:00</published>
    <updated>2008-04-13T14:13:18.2505878+02:00</updated>
    <category term="Vortr&amp;#228;ge" label="Vortr&amp;#228;ge" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Vortr%c3%a4ge.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
          <img alt=".NET Developer Group Braunschweig Logo" src="http://www.dotnet-braunschweig.de/App_Themes/Default/images/logo.gif" />
        </p>
        <p>
Am Donnerstag, 10.04 war ich zu Gast bei der Usergroup Braunschweig und habe dort
den Vortrag zum Thema Qualitätsmanagement mit Visual Studio Team System 2008 und Team
Foundation Server gehalten. Der Vortrag war für mich sehr interessant, da es eine
rege Beteiligung und viele Fragen durch die Teilnehmer gab. 
</p>
        <p>
Vielen Dank an <a href="http://blog.lars-keller.net/">Lars</a> für die Einladung.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VortragQMmitVSTS2008beiderUGBraunschweig_BECD/Qualit%C3%A4tsmanagement%20mit%20VSTS_artiso2_1.pptx" target="_blank">Folien
zum Vortrag</a>
        </p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/QADemoProject.zip" target="_blank">Beispielcode
zum Vortrag</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b8102f65-ed2e-41b6-ae88-e5a4f71d9b92" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Fehler beim Ausf&amp;uuml;hren eines Web-Tests</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,d08e1129-8009-4b4b-95c4-8dd7ba0ed470.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,d08e1129-8009-4b4b-95c4-8dd7ba0ed470.aspx</id>
    <published>2008-04-09T22:41:35.2163954+02:00</published>
    <updated>2008-04-09T22:51:17.4113474+02:00</updated>
    <category term="VS 2008" label="VS 2008" scheme="http://www.artiso.com/ProBlog/CategoryView,category,VS%2B2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wenn man aus Visual Studio einen Web-Test startet und diese Meldung bekommt, muss
man die Bowser-Extensions im IE enablen.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeimAusfhreneinesWebTests_13E60/image_4.png">
          </a> <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeimAusfhreneinesWebTests_13E60/image_4.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeimAusfhreneinesWebTests_13E60/image_thumb_1.png" border="0" /></a></p>
        <p>
Hierzu im IE unter Internetoptionen auf dem Reiter Advanced die Option "Enable third-party
browser extensions" aktivieren. Dann kann der Web Test Recorder im IE ausgeführt werden.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeimAusfhreneinesWebTests_13E60/image_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="414" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeimAusfhreneinesWebTests_13E60/image_thumb.png" width="336" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=d08e1129-8009-4b4b-95c4-8dd7ba0ed470" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Vorlesung BA Heidenheim - Verteilte Anwendungen mit WCF</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,662d2ae0-8072-44cd-84f4-69165112e2c2.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,662d2ae0-8072-44cd-84f4-69165112e2c2.aspx</id>
    <published>2008-04-09T14:29:33+02:00</published>
    <updated>2008-04-09T14:33:07.8086786+02:00</updated>
    <category term="Eigene Tutorials" label="Eigene Tutorials" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Eigene%2BTutorials.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VorlesungBAHeidenheimVerteilteAnwendunge_D75D/image_2.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="56" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VorlesungBAHeidenheimVerteilteAnwendunge_D75D/image_thumb.png" width="564" border="0" />
          </a>
        </p>
        <p>
Ich halte momentan eine Vorleseung bei der Berufsakademie Heidenheim mit dem Titel
"Implementierung verteilter Anwendungen auf Basis von Microsoft .NET". Im Zentrum
dabei steht natürlich WCF. Hier nun die Folien und das WCF-Demo vom ersten Tag. Die
Demos der beiden folgenden Termine werde ich hier auch noch veröffentlichen.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VorlesungBAHeidenheimVerteilteAnwendunge_D75D/WCFHelloWorld.zip" target="_blank">Folien
(Powerpoint 2007)</a>
          <br />
        </p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VorlesungBAHeidenheimVerteilteAnwendunge_D75D/Verteilte%20Anwendungen.pdf" target="_blank">Folien
(PDF)</a>
          <br />
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VorlesungBAHeidenheimVerteilteAnwendunge_D75D/Verteilte%20Anwendungen.zip" target="_blank">Code</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=662d2ae0-8072-44cd-84f4-69165112e2c2" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Fehler beim installieren von NetAdvantage 2008.1 unter Vista</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,853ce4e9-ee0e-4dce-9600-55abd4d989ff.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,853ce4e9-ee0e-4dce-9600-55abd4d989ff.aspx</id>
    <published>2008-04-08T23:30:23.284859+02:00</published>
    <updated>2008-04-08T23:30:23.284859+02:00</updated>
    <category term="Komponenten und Bibliotheken" label="Komponenten und Bibliotheken" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Komponenten%2Bund%2BBibliotheken.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Habe gerade die neue Infragistics Netadvantage Suite 2008.1 intalliert. Bei der Installation
der ASP-Komponenten muss man allerdings eine kleine Einstellung machen, sonst erhält
mein einen "Fatal error".
</p>
        <p>
Erst wenn man in den Windows Features die IIS6 Management Compatibility aktiviert
hat, klappt die Installation
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeiminstallierenvonNet.1unterVista_149DE/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="303" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/FehlerbeiminstallierenvonNet.1unterVista_149DE/image_thumb.png" width="346" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=853ce4e9-ee0e-4dce-9600-55abd4d989ff" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Vortrag UG M&amp;uuml;nchen - Qualit&amp;auml;tsmanagement mit VSTS</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,e6be32bb-1de9-4a27-a362-05afd228872d.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,e6be32bb-1de9-4a27-a362-05afd228872d.aspx</id>
    <published>2008-04-08T18:00:21.6301046+02:00</published>
    <updated>2008-04-08T18:00:31.1614766+02:00</updated>
    <category term="News" label="News" scheme="http://www.artiso.com/ProBlog/CategoryView,category,News.aspx" />
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <category term="VS 2008" label="VS 2008" scheme="http://www.artiso.com/ProBlog/CategoryView,category,VS%2B2008.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Zusammen mit meinem Kollegen Mark werde ich am 22.04.08 bei der <a href="http://www.munichdot.net/" target="_blank">UG
München</a> den Vortrag zum Thema Qualitätsmanagement mit VSTS nachholen.
</p>
        <p>
Thema des Vortrags:
</p>
        <p>
Dass Qualitätsmanagement heute ein fester Bestandteil eines modernen Entwicklungsprozesses
sein sollte, ist inzwischen - zumindest in der Theorie – keine Frage mehr. Die Wirklichkeit
ist aber leider immer noch sehr häufig eine andere. Woran liegt das? Terminstress,
sich ändernde Anforderungen im Projektverlauf und in vielen Fällen ein erheblicher
bürokratischer Overhead bei der Ausführung von QM vereitelt erfolgreich, die definierten
Maßnahmen auch zu leben. 
<br />
Die Test-Tools von Visual Studio hat wohl schon fast jeder einmal gesehen, evtl. auch
genutzt. Entscheidend beim Einsatz dieser Tools ist aber die Integration in den Gesamtprozess.
So besteht ein erfolgreiches QM nicht nur aus Tests, sondern auch Requirementmanagement,
Releasemanagement, Testability und andere Aspekte spielen hierbei eine wichtige Rolle.
Die Kunst besteht darin, diese verschiedenen Aspekte über den Gesamtprozess miteinander
zu verbinden. Wie dieses Ziel mit VSTS und TFS erreicht werden kann, zeigt der Vortrag. 
<br />
Die ideale Zielgruppe für diesen Vortrag sind: Entwickler, Qualitätsmanager, Testexperten
und IT-Entscheider mit der Bereitschaft, sich auch das ein oder andere Prozessdetail
live anzusehen. 
</p>
        <p>
  
</p>
        <p>
          <a href="http://www.munichdot.net/Events/519.aspx">Weitere Details finden sich hier</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=e6be32bb-1de9-4a27-a362-05afd228872d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Problem beim Anlegen eines Ordners in der TFS Versionsverwaltung</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,68e5403f-e817-4c61-a3a4-4f2947791a0a.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,68e5403f-e817-4c61-a3a4-4f2947791a0a.aspx</id>
    <published>2008-04-08T15:40:22.7882258+02:00</published>
    <updated>2008-04-08T15:40:22.7882258+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mit der Versionsverwaltung im Team Foundation Server kann man ja bekannter maßen nicht
nur Code verwalten, sondern auch andere Dateien wie z.B. SQL-Skripte, Dokumentationen
etc. Hierzu ist es sinnvoll, entsprechende Ordner anzulegen. Doch das will manchmal
nicht recht gelingen. Will man unterhalb dem Root eines Projektes einen neuen Ordner
anlegen, kann es vorkommen, dass der Button dazu disabled ist.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ProblembeimAnlegeneinesOrdnersinderTFSVe_DBBF/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="165" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ProblembeimAnlegeneinesOrdnersinderTFSVe_DBBF/image_thumb.png" width="221" border="0" />
          </a>
        </p>
        <p>
Der Grund dafür ist einfach (wenn man's weiß). Ein Blick in den Workspace verdeutlicht
das Problem.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ProblembeimAnlegeneinesOrdnersinderTFSVe_DBBF/image_8.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="175" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ProblembeimAnlegeneinesOrdnersinderTFSVe_DBBF/image_thumb_3.png" width="616" border="0" />
          </a>
        </p>
        <p>
Hier sieht man, dass im Workspace ein Mapping für den Unterordner "Benutzerverwaltung"
eingerichtet ist. Da die Versionsverwaltung alle Operationen, also auch das Anlegen
eines neuen Ordners aber auf dem lokalen Pfad ausführen muss, tritt hier ein Problem
auf. Die Anwendung weiß nicht, wo sie den Ordner lokal anlegen soll. Abhilfe schafft
hier, wenn man das Mapping auf der Projkektebene einstellt, also so:
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ProblembeimAnlegeneinesOrdnersinderTFSVe_DBBF/image_10.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="74" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ProblembeimAnlegeneinesOrdnersinderTFSVe_DBBF/image_thumb_4.png" width="622" border="0" />
          </a>
        </p>
        <p>
Alternativ kann man natürlich auch ein separates Mapping für den Root-Ordner des Projektes
einrichten. Jetzt kann der Ordner lokal einem gültigen Pfad zugeordnet werden und
der Button ist auch wieder enabled.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=68e5403f-e817-4c61-a3a4-4f2947791a0a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Buchbeschreibung SharePoint &amp;amp; Co. - Technologien und Tools im Teamwork</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,b61a386b-5a1a-4681-92d6-36f5ee9e234d.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,b61a386b-5a1a-4681-92d6-36f5ee9e234d.aspx</id>
    <published>2008-04-07T08:26:37.3079018+02:00</published>
    <updated>2008-04-07T08:26:37.3079018+02:00</updated>
    <category term="Buchbeschreibung" label="Buchbeschreibung" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Buchbeschreibung.aspx" />
    <content type="html">&lt;p&gt;
In loser Folge schreibe ich über besonders gute oder schlechte Bücher an dieser Stelle.
Nun habe ich vor Kurzem das Buch ScharePoint &amp;amp; Co gelesen und finde dieses Buch
durchaus empfehlenswert. Gleich vorneweg, das Buch enthält keine Informationen, wie
man für SharePoint Web-Parts entwickelt. Es war für mich als Entwickler aber dennoch
sehr interessant, weil es sehr gut die verschiedenen Einsatzmöglichkeiten von SharePoint
in Zusammenarbeit mit anderen Office-Anwendungen beschreibt. Es wird anhand verschiedener
praxisorientierter Beispiele gezeigt wie man Daten in Excel- oder Access-Tabellen
innerhalb von SharePoint nutzt, wie man auf der SharePoint Plattform Kommunikation
effizient gestaltet, z.B. mit dem Exchange-Server oder Groove, wie man InfoPath-Formulare
nutzt und wie man mit dem SQL-Server Business Intelligence realisiert.
&lt;/p&gt;
&lt;p&gt;
Das Buch hat mir die eine oder andere Möglichkeit aufgezeigt, die ich bisher noch
nicht kannte und wo ich früher vielleicht erst mal selbst ein WebPart oder eine andere
Lösung geschrieben hätte. Das Buch hat mir verdeutlicht, dass SharePoint mehr kann,
als ich bisher wusste. Das gibt mir die Möglichkeit, unser Portal um Funktionen zu
erweitern, die bisher wegen zu viel Aufwand einfach außen vor geblieben sind. 
&lt;/p&gt;
&lt;p&gt;
Aus meiner Sicht ein absolut empfehlenswertes Buch, auch für Entwickler.
&lt;/p&gt;
&lt;p&gt;
&lt;img height="196" src="http://www.microsoft-press.de/image.asp?cnt=10&amp;amp;id=ms-5615" width="141"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft-press.de/product.asp?cat0=750001463&amp;amp;idx0=3&amp;amp;gr=b&amp;uuml;cher&amp;amp;cnt=product&amp;amp;id=ms-5615&amp;amp;lng=0"&gt;SharePoint
&amp;amp; Co. - Technologien und Tools im Teamwork von MindBusiness und HanseVision erschienen
bei Microsoft-Press&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b61a386b-5a1a-4681-92d6-36f5ee9e234d" /&gt;</content>
  </entry>
  <entry>
    <title>Team Foundation Build 2008 API Dokumentation</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,591d49c8-006a-44f9-a2f4-30cc62f7c06d.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,591d49c8-006a-44f9-a2f4-30cc62f7c06d.aspx</id>
    <published>2008-04-06T01:38:11.3731226+02:00</published>
    <updated>2008-04-06T01:38:11.3731226+02:00</updated>
    <category term="Team System Server" label="Team System Server" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Team%2BSystem%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Es gibt eine aktualisierte Dokumentation für die API zum Team Build hier zum Download:
</p>
        <p>
          <span style="font-size: 12pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: de; mso-fareast-language: de; mso-bidi-language: ar-sa">
            <a href="http://download.microsoft.com/download/5/f/8/5f872c2e-4221-410b-b86e-4c3cd831b0c4/Team Foundation Build Managed Reference.chm">
              <u>
                <font color="#800080">http://download.microsoft.com/download/5/f/8/5f872c2e-4221-410b-b86e-4c3cd831b0c4/Team
Foundation Build Managed Reference.chm</font>
              </u>
            </a>
          </span>
        </p>
        <p>
          <span style="font-size: 12pt; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: de; mso-fareast-language: de; mso-bidi-language: ar-sa">Achtung
die Datei muss auf der lokalen Platte gespeichert und dann über rechte Maustaste /
Properties mit Hilfe des Unblock-Buttons entsperrt werden bevor sie korrekt angezeigt
wird.</span>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=591d49c8-006a-44f9-a2f4-30cc62f7c06d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>PropertyGrid mit dynamischen Datenobjekten verbinden</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx</id>
    <published>2008-04-05T00:17:09.072989+02:00</published>
    <updated>2008-04-05T00:17:09.072989+02:00</updated>
    <category term="Know-How" label="Know-How" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Know-How.aspx" />
    <category term="Tipps und Tricks" label="Tipps und Tricks" scheme="http://www.artiso.com/ProBlog/CategoryView,category,Tipps%2Bund%2BTricks.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Über das PropertyGrid-Control habe ich ja mehrmals gebloggt (z.B. <a href="http://www.artiso.com/ProBlog/PermaLink,guid,3603f922-4a46-470a-a6f2-d3e4acf16d50.aspx" target="_blank">hier</a>).
Dieses Control verwendie ich recht häufig um z.B. den Inhalt eigene Konfigurations-Klassen
zu editieren. Zusammen mit der XML-Serialisierung lassen sich so sehr flexible Konfigurationsmöglichkeiten
schaffen.
</p>
        <p>
Nun hatte ich die Anforderung eine dynamische Datenstruktur an ein PropertyGrid zu
binden. Da stand ich zunächst vor einem Problem. Bisher habe ich nur Objekte mit Properties
unterschiedlicher Typen an das PropertyGrid gebunden. Nun habe ich eine Liste von
Objekten, die die Elemente im PropertyGrid beschreiben. Wie aber diese an das PropertyGrid
binden?
</p>
        <p>
Das schöne ist, das das PropertyGrid sich hier als sehr flexibel erweist. Man muss
folgende Schritte durchführen:
</p>
        <ol>
          <li>
Man brauch eine Klasse für ein einzelnes Property<br /></li>
          <li>
Dann brauchen wir eine Collection für diese Properties. Diese leiten wir von CollectionBase
und ICustomTypeDescriptor ab und implementieren die Interfaces. Entscheidend ist hier
die Methode GetProperties. Hier werden nun ine PropertyDescriptionCollection aus unseren
Properties aufgebaut. Diese Methode ruft das PropertyGrid auf um sich dieProperties
zu besorgen, die es rendern soll. Hier können wir nun also von einer belibigen Datenstruktur
die benötigten 
<br />
Informationen für das PropertyGrid aufbauen.<br /></li>
          <li>
Dafür brauch wir jetzt noch einen cCustomPropertyDescriptor. Diesen leiten wir von
PropertyDescriptor ab und implementieren es.<br /></li>
          <li>
Nun können wir unsere Properties aufbauen und an das PropertyGrid binden. Ich habe
das CustomPropertyGrid als eigenes Control angelegt. Der Code ist nun sehr simpel:</li>
        </ol>
        <div>
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> Form1_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> cPropertyCollection
props = <span style="color: #0000ff">new</span> cPropertyCollection();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"BoolValue"</span>, <span style="color: #006080">"This
is a boolean value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #0000ff">true</span>, <span style="color: #006080">"Properties"</span>));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 5:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"StringValue"</span>, <span style="color: #006080">"This
is a string value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">"Test123"</span>, <span style="color: #006080">"Properties"</span>));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"Folder"</span>, <span style="color: #006080">"Path
for folder"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">""</span>, <span style="color: #006080">"Path"</span>));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #0000ff">this</span>.artisoPropertyGrid1.SelectedObject
= props;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> }</pre>
          </div>
        </div>
        <p>
          <br />
Damit erhält man folgendes Ergebnis. Man sieht die dynamisch angelegten Properties
mit ihrem Name, in die Kategorien untergliedert und mit der Beschreibung. Das PropertyGrid
wählt automatisch die gewohnten Controls abhängig vom Datentyp aus.<br /><br /><a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="267" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_thumb.png" width="494" border="0" /></a></p>
        <p>
Dis ist schon ganz nett. Ich möchte aber für das Folder-Property einen entsprechenden
Editor angeben können. Bei statischen Klassen vrwendet man einfach Attribute, aber
bei dynamischen? Dazu wird die verfügbare Dokumentation sehr, sehr dünn. Hierzu haben
wir auf der Property-Klasse eine Attribute-Arary. Diese Attribute können wir nun in
der GetProperties-Klasse an den cCostomPropertyDescriptor übergeben. Der Aufbau der
Properties sieht dann so aus:
</p>
        <div>
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> Form1_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> cPropertyCollection
props = <span style="color: #0000ff">new</span> cPropertyCollection();</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"BoolValue"</span>, <span style="color: #006080">"This
is a boolean value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #0000ff">true</span>, <span style="color: #006080">"Properties"</span>));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 5:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"StringValue"</span>, <span style="color: #006080">"This
is a string value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">"Test123"</span>, <span style="color: #006080">"Properties"</span>));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"Folder"</span>, <span style="color: #006080">"Path
for folder"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">""</span>, <span style="color: #006080">"Path"</span>,</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>
              <span style="color: #0000ff">new</span> TypeConverterAttribute(),</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #0000ff">new</span> EditorAttribute(<span style="color: #0000ff">typeof</span>(System.Windows.Forms.Design.FolderNameEditor), <span style="color: #0000ff">typeof</span>(System.Drawing.Design.UITypeEditor))));</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 9:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>
              <span style="color: #0000ff">this</span>.artisoPropertyGrid1.SelectedObject
= props;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 11:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
Nun kann man im Feld für den Wert für das Property "Folder" auf einen Button klicken
und erhält einen Dialog zur Auswahl eines Verzeichnisses.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_4.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="524" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_thumb_1.png" width="498" border="0" />
          </a>
        </p>
        <div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:5828e483-7af9-4557-a1cd-91be4bf5d8e8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <p>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/CustomPropertyGrid.zip" target="_blank">Den
kompletten Quellcode kann man hier herunterladen.</a>
          </p>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8351a1a4-48fa-4be6-b549-3f09db9eaafc" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Rechnerkonfiguration</title>
    <link rel="alternate" type="text/html" href="http://www.artiso.com/ProBlog/PermaLink,guid,8268ee4a-9f07-43f5-a5a3-20b831168179.aspx" />
    <id>http://www.artiso.com/ProBlog/PermaLink,guid,8268ee4a-9f07-43f5-a5a3-20b831168179.aspx</id>
    <published>2008-04-04T10:46:04+02:00</published>
    <updated>2008-04-13T10:49:04.904645+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bei der Neuinstallation eines Entwicklungsrechners dauert es immer ewig, bis man sich
die ganzen nützlichen Helferlein zusammengesucht hat, die man im Laufe der Zeit zu
schätzen gelernt hat. Deshalb habe ich mir gedacht, ich schreibe mir mal eine Liste,
die ich dann immer wieder ergänzen kann. Und vielleicht ist für den einen oder anderen
da auch noch was interessantes dabei. Also so könnte ein Entwicklungsrechner aussehen:
</p>
        <p>
          <strong>Betriebsystem / Standardanwendungen:</strong>
        </p>
        <ul>
          <li>
Windows Vista Ultimate 
</li>
          <li>
Office 2007 
</li>
          <li>
SQL-Server 2005 Express 
</li>
          <li>
SQL-Server 2005 Management Studio</li>
        </ul>
        <p>
          <strong>Entwicklungsumgebung:</strong>
        </p>
        <ul>
          <li>
Visual Studio 2008 Team Edition for Software Developers 
</li>
          <li>
Visual Studio Team Explorer 
<br /><a href="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;displaylang=en</a><a href="http://www.artiso.com/ProBlog/ct.ashx?id=1ae2ab90-2d10-42de-af1c-c55251b08c4e&amp;url=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3ffamilyid%3d0ED12659-3D41-4420-BBB0-A46E51BFCA86%26displaylang%3den"></a></li>
          <li>
Microsoft Team Foundation Server Power Tools mit zusätzlichen Tools zum TFS<br /><a href="http://msdn2.microsoft.com/en-us/tfs2008/bb980963.aspx">http://msdn2.microsoft.com/en-us/tfs2008/bb980963.aspx</a></li>
          <li>
GostDoc um XML-Kommentare zu erstellen (Free)<br /><a href="http://www.roland-weigelt.de/ghostdoc/">http://www.roland-weigelt.de/ghostdoc/</a></li>
          <li>
Infragistics Netadvantage Suite eine sehr gute GUI Bibliothek, aktuelle Hotfixes unbedingt
installieren<br /><a href="http://www.infragistics.com/dotnet/netadvantage.aspx#Overview">http://www.infragistics.com/dotnet/netadvantage.aspx#Overview</a></li>
          <li>
Internet Explorer Developer Toolbar zum untersuchen von Web-Seiten im IE (Free)<br /><a href="http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en</a></li>
          <li>
Lutz Roeders Reflector for .Net um Assemblies zu im Quellcode anzuzeigen (Free)<br /><a href="http://www.aisto.com/roeder/dotnet/">http://www.aisto.com/roeder/dotnet/</a></li>
          <li>
Power Commands for Visual Studio 2008<br /><a href="http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PowerCommands&amp;ReleaseId=559">http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PowerCommands&amp;ReleaseId=559</a></li>
          <li>
Regionerate, ein Helfer, der Fields, Properties und Methoden in Regions gruppiert
(Beta)<br /><a href="http://www.rauchy.net/regionerate/">http://www.rauchy.net/regionerate/</a><br /></li>
        </ul>
        <p>
          <strong>Tools</strong>
        </p>
        <ul>
          <li>
Acronis True Image 10 Home um Images der lokalen Platte auf ein USB-Device zu sichern<br /><a href="http://www.acronis.de/homecomputing/products/trueimage/">http://www.acronis.de/homecomputing/products/trueimage/</a></li>
          <li>
Acrobat Reader 8.1.0<br /><a href="http://www.adobe.com/products/acrobat/readstep2.html">http://www.adobe.com/products/acrobat/readstep2.html</a></li>
          <li>
AusLogics Disk Defrag zum Festplatten defragmentieren (Free)<br /><a href="http://www.auslogics.com/disk-defrag/index.php">http://www.auslogics.com/disk-defrag/index.php</a></li>
          <li>
Avira AntiVir Workstation als Virenscanner<br /><a href="http://www.avira.de/de/produkte/avira_antivir_workstation.html">http://www.avira.de/de/produkte/avira_antivir_workstation.html</a></li>
          <li>
Axialis Icon Workshop um Icons zu erstellen und zu bearbeiten<br /><a href="http://www.axialis.com/iconworkshop/">http://www.axialis.com/iconworkshop/</a></li>
          <li>
Daemon Tools um ISO-Images direkt zu lesen<br /><a href="http://www.daemon-tools.cc/dtcc/download.php?mode=ViewCategory&amp;catid=5">http://www.daemon-tools.cc/dtcc/download.php?mode=ViewCategory&amp;catid=5</a></li>
          <li>
FreeDownloadManager (Free)<br /><a href="http://www.freedownloadmanager.org/">http://www.freedownloadmanager.org/</a></li>
          <li>
IEeee ist ein Plugin für den IE mit dem einfach und schnell Bug-Workitems im TFS generiert
werden können (Free)<br /><a href="http://www.codeplex.com/UKVSTS">http://www.codeplex.com/UKVSTS</a></li>
          <li>
Maxivista erlaubt die Nutzung des Notebooks als Zweitschirm (Host läuft nicht unter
Vista)<br /><a href="http://www.maxivista.de">http://www.maxivista.de</a></li>
          <li>
Microsoft Shared View um Desktop über eine einfache Internetverbindung zu sharen (Beta)<br /><a href="http://www.microsoft.com/downloads/details.aspx?familyid=95AF94BA-755E-4039-9038-63005EE9D33A&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=95AF94BA-755E-4039-9038-63005EE9D33A&amp;displaylang=en</a></li>
          <li>
Notepad++ ein echt cooler Editor für praktisch alle Textformate (Free)<br /><a href="http://notepad-plus.sourceforge.net/de/site.htm">http://notepad-plus.sourceforge.net/de/site.htm</a></li>
          <li>
Office 2007 Save as PDF or XPS Add-In (Free mit gültigem Office 2007)<br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&amp;displaylang=en</a></li>
          <li>
Paint .Net, ein sehr gutes Grafik-Programm (Free)<br /><a href="http://getpaint.net/index.html">http://getpaint.net/index.html</a></li>
          <li>
Paint .Net PhotoshopFilter, ein Plugin das das Öffnen und Speichern von Photoshop-Dateien
mit Paint .Net ermöglicht (Free)<br /><a href="http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin">http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin</a></li>
          <li>
RocketDock als Startleiste<br /><a href="http://rocketdock.com/">http://rocketdock.com/</a></li>
          <li>
Skype zur Kommunikation über das Internet (Free)<br /><a href="http://www.skype.de/intl/de/">http://www.skype.de/intl/de/</a></li>
          <li>
Synergy um mein Notebook mit der Tastatur / Maus meines Hauptrechners zu steuer (Free)<br /><a href="http://synergy2.sourceforge.net/">http://synergy2.sourceforge.net/</a></li>
          <li>
TPG Setholidays zum Eintragen von Feiertagen in Project und Outlook<br /><a href="http://www.theprojectgroup.com/D/produkte/produkte_setholidays.html">http://www.theprojectgroup.com/D/produkte/produkte_setholidays.html</a></li>
          <li>
VMWare Workstation um Testumgebungen virtuell ablaufen zu lassen<br /><a href="http://www.vmware.com/products/ws/">http://www.vmware.com/products/ws/</a></li>
          <li>
Windows Live Toolbar mit sinnvollen Tools für den IE, z.B. Blog this (Free)<br /><a href="http://toolbar.live.com/?mkt=de-at">http://toolbar.live.com/?mkt=de-at</a></li>
          <li>
Windows Live Writer zum bloggen (Free)<br /><a href="http://www.live-writer.de/project/WindowsLiveWriterDownload.aspx">http://www.live-writer.de/project/WindowsLiveWriterDownload.aspx</a></li>
          <li>
XML Notepad zum Anzeigen und Bearbeiten von XML-Dateien (Free)<br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=72D6AA49-787D-4118-BA5F-4F30FE913628&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=72D6AA49-787D-4118-BA5F-4F30FE913628&amp;displaylang=en</a></li>
          <li>
ZoomIt zum Zoomen und Zeichnen auf dem Desktop - sehr praktisch für Präsentationen
(Free)<br /><a href="http://download.sysinternals.com/Files/ZoomIt.zip">http://download.sysinternals.com/Files/ZoomIt.zip</a><br /></li>
        </ul>
        <p>
Stand 13.04.2008<br />
To be continued...
</p>
    