<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3152396868801847155</id><updated>2024-09-25T02:31:57.215+02:00</updated><category term="coding"/><category term=".net"/><category term="c#"/><category term="wpf"/><category term="DataGrid"/><category term="DataGridCheckBoxColumn"/><category term="data service"/><category term="markup extension"/><category term="nameof"/><category term="odata"/><category term="refactor"/><category term="savefiledialog"/><category term="sharepoint"/><category term="silverlight"/><category term="software design"/><category term="vista problems"/><category term="wcf"/><title type='text'>Codefluff</title><subtitle type='html'>Cody and fluffy - codefluff</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-6370303311949759149</id><published>2011-10-19T17:24:00.002+02:00</published><updated>2011-10-20T01:56:58.635+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="markup extension"/><category scheme="http://www.blogger.com/atom/ns#" term="silverlight"/><title type='text'>Markup Extensions in Silverlight have to be public</title><content type='html'>In the good-to-know category we today have a problem out of the Silverlight 5 world, where Markup Extensions are now possible. Beware though: If the class is not public Silverlight will simply freeze while starting without giving a proper error message. So always be sure to make your extensions public.&lt;br /&gt;
&lt;br /&gt;
Good to know and would have saved me quite some time if I knew that beforehand.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/6370303311949759149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/6370303311949759149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/6370303311949759149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/6370303311949759149'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2011/10/markup-extensions-in-silverlight-have.html' title='Markup Extensions in Silverlight have to be public'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-5979183850869744600</id><published>2011-08-08T16:38:00.004+02:00</published><updated>2011-08-08T16:46:49.404+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="data service"/><category scheme="http://www.blogger.com/atom/ns#" term="odata"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="wcf"/><title type='text'>Authentication Suffix in SharePoint hosted Data Service</title><content type='html'>When hosting a Data Service inside SharePoint using the MultipleBaseAddressDataServiceHostFactory you might notice that your service endpoints get redirected depending on the authentication schema (as described &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff521586.aspx&quot;&gt;here&lt;/a&gt;). The way it is supposed to work is that you do not notice any of the redirections on the user side.&lt;br /&gt;
But the way the default behaviour works is that also the service base will change accordingly. I.e. if you load the .svc for anonymous authentication the base attribute on the service will look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;&amp;lt;service 
xml:base=&amp;quot;http://localhost/_vti_bin/test/odataservice.svc/anonymous/&amp;quot; xmlns:atom=&amp;quot;http://www.w3.org/2005/Atom&amp;quot; xmlns:app=&amp;quot;http://www.w3.org/2007/app&amp;quot; xmlns=&amp;quot;http://www.w3.org/2007/app&amp;quot;&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
(Notice the &lt;b&gt;anonymous&lt;/b&gt; part in the base attribute.)&lt;br /&gt;
&lt;br /&gt;
But any request to the service with the authentication suffix be it anonymous, basic etc... will be interpreted by your OData framework and thus you get the error message: Resource not found for segment &#39;basic&#39; when navigating to http://localhost/_vti_bin/test/odataservice.svc/basic/Customers for example. This is because internally the url is .../basic/basic/Customer after the redirect according to the authentication schema.&lt;br /&gt;
&lt;br /&gt;
Since some services actually rely on the correct base-url (e.g. PowerPivot) that is not the behaviour we would want to see. &lt;br /&gt;
&lt;br /&gt;
The not so well documented fix for that behaviour is to set the ServiceFactoryUsingAuthSchemeInEndpointAddressAttribute on your service class like this:&lt;br /&gt;
&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;[ServiceFactoryUsingAuthSchemeInEndpointAddress(UsingAuthSchemeInEndpointAddress = false)]
&lt;/pre&gt;&lt;br /&gt;
Afterwards you will have the much more sensible behaviour of a clean base-url in your .svc service description and no more confused clients which access your service through the authentication suffixes.&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/5979183850869744600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/5979183850869744600' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/5979183850869744600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/5979183850869744600'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2011/08/authentication-suffix-in-sharepoint.html' title='Authentication Suffix in SharePoint hosted Data Service'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-5264568992992195491</id><published>2010-06-22T13:26:00.002+02:00</published><updated>2011-11-18T10:55:19.205+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="DataGrid"/><category scheme="http://www.blogger.com/atom/ns#" term="DataGridCheckBoxColumn"/><category scheme="http://www.blogger.com/atom/ns#" term="wpf"/><title type='text'>How to center a check box column in the WPF DataGrid</title><content type='html'>A common problem with the DataGridCheckBoxColumn of the WPF DataGrid is that the CheckBox is not centered in the cell which is especially ugly in rows that are higher than the CheckBox itself. &lt;br /&gt;
Due to the nature of how a column in the DataGrid is generated it isn&#39;t very easy to use a simple style or ones own template column.&lt;br /&gt;
&lt;br /&gt;
But there is a much shorter and better way, we can simply extend the DataGridCheckBoxColumn to provide our own, centered, CheckBox.&lt;br /&gt;
&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;public class CenteredCheckBoxColumn 
           : DataGridCheckBoxColumn 
{
  protected override FrameworkElement 
    GenerateEditingElement(
      DataGridCell cell, object dataItem) 
  {
    var checkBox = 
      base.GenerateEditingElement(cell, dataItem);
    checkBox.HorizontalAlignment = 
      HorizontalAlignment.Center;
    checkBox.VerticalAlignment = 
      VerticalAlignment.Center;
    return checkBox;
  }

  protected override FrameworkElement GenerateElement(
      DataGridCell cell, object dataItem) 
  {
    var checkBox = 
      base.GenerateElement(cell, dataItem);
    checkBox.HorizontalAlignment = 
      HorizontalAlignment.Center;
    checkBox.VerticalAlignment = 
      VerticalAlignment.Center;
    return checkBox;
  }
}
&lt;/pre&gt;
&lt;br /&gt;
We can now use our CenteredCheckBoxColumn in the same way we use the standard columns.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/5264568992992195491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/5264568992992195491' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/5264568992992195491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/5264568992992195491'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2010/06/how-to-center-check-box-column-in-wpf.html' title='How to center a check box column in the WPF DataGrid'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-2923906623409403470</id><published>2010-05-25T11:44:00.007+02:00</published><updated>2010-05-25T20:06:10.802+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="nameof"/><category scheme="http://www.blogger.com/atom/ns#" term="refactor"/><title type='text'>A case for a nameof() operator</title><content type='html'>Refactoring your code has come a long way, especially with tools like Resharper one seldom worries about changing namespaces, renaming classes or extracting methods.&lt;br /&gt;
But one major breaking point still exists: Using property names as strings. And C# contains two very popular interfaces in need of property name strings. &lt;br /&gt;
INotifyPropertyChanged:&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;public string Name {
  get { return name; }
  set {
   name = value;
   InvokePropertyChanged(&quot;Name&quot;);
  }
 }
&lt;/pre&gt;&lt;br /&gt;
and WPFs dependency properties:&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;public static readonly DependencyProperty 
  ViewModelProperty = 
    DependencyProperty.Register(&quot;ViewModel&quot;,
                                typeof(MyViewModel),
                                typeof(UserView));
&lt;/pre&gt;&lt;br /&gt;
Both interfaces, especially with the rise of WPF/Silverlight applications, are used quite a lot. And it is not only the newbie programmer who will inadvertently break some code because he forgot to change the string when renaming a property. And while WPFs dependency properties will at least throw an exception in most cases bugs will slip in for the property changes or other interfaces which rely on the correct strings.&lt;br /&gt;
Since the beginning of C# people searched for solutions which do not break on refactoring, and at least since LINQ there is a viable workaround as LINQ queries have the unique property of containing string representations on their member expression parts:&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;public string ParsePropertyName&amp;lt;T&amp;gt;
(Expression&amp;lt;Func&amp;lt;T&amp;gt;&amp;gt; expression)
{
return ((MemberExpression)expression.Body).Member.Name;
}
...
public string Name {
  get { return name; }
  set {
   name = value;
   InvokePropertyChanged(
     ParsePropertyName(()=&gt;this.Name);
  }
 }
&lt;/pre&gt;While this simple solution has drawbacks (e.g. when no instance of a class is available) it seems to be used quite often as its described and discussed quite a lot. E.g. &lt;a href=&quot;http://handcraftsman.wordpress.com/2008/11/11/how-to-get-c-property-names-without-magic-strings/&quot;&gt;here&lt;/a&gt; &lt;a href=&quot;http://codepronet.blogspot.com/2010/02/getting-property-name-using-linq.html&quot;&gt;here&lt;/a&gt; &lt;a href=&quot;http://beta.blogs.microsoft.co.il/blogs/smallfish/archive/2009/04/02/how-to-get-a-property-name-using-lambda-expression-in-c-3-0.aspx&quot;&gt;here&lt;/a&gt; &lt;a href=&quot;http://ivanz.com/2009/12/04/how-to-avoid-passing-property-names-as-strings-using-c-3-0-expression-trees/&quot;&gt;here&lt;/a&gt; or &lt;a href=&quot;http://stackoverflow.com/questions/2676471/get-a-string-representation-of-a-property-in-c-at-run-time&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Even though the solution remains what it is: a hacky workaround.&lt;br /&gt;
And that is why I would propose adding a simple nameof() operator instead. It would allow us to get rid of all the fluff we add to get the name of a property and would let us write this code instead:&lt;br /&gt;
&lt;div class=&#39;csharpcode&#39;&gt;Code:&lt;pre style=&#39;border:1px dashed #CCCCCC;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height20px;color:#000000;word-wrap:normal;&#39;&gt;&lt;span class=&#39;keyword&#39;&gt;public&lt;/span&gt; &lt;span class=&#39;keyword&#39;&gt;string&lt;/span&gt; Name {
  &lt;span class=&#39;keyword&#39;&gt;get&lt;/span&gt; { &lt;span class=&#39;keyword&#39;&gt;return&lt;/span&gt; name; }
  &lt;span class=&#39;keyword&#39;&gt;set&lt;/span&gt; {
   name = &lt;span class=&#39;keyword&#39;&gt;value&lt;/span&gt;;
   InvokePropertyChanged(&lt;span class=&#39;keyword&#39;&gt;nameof&lt;/span&gt;(Name));
  }
 }
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
The compiled code would still look the same, without the performance drawbacks of LINQ queries, and it wouldn&#39;t break on refactoring. As an added bonus we get the functionality on methods, events... you name it.&lt;br /&gt;
I rest my case, what does the jury think?</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/2923906623409403470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/2923906623409403470' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/2923906623409403470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/2923906623409403470'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2010/05/case-for-nameof-operator.html' title='A case for a nameof() operator'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-7775230083834259008</id><published>2010-05-20T11:02:00.005+02:00</published><updated>2011-08-08T16:57:13.243+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="DataGrid"/><category scheme="http://www.blogger.com/atom/ns#" term="wpf"/><title type='text'>Committing bound cell changes immediately in WPF Datagrid</title><content type='html'>The WPF DataGrids default mode of operation is committing all changes on a per-row edit instead of a per-cell edit. In this post we will see how to change that behavior to do a per-cell commit regardless of the bound object&#39;s capabilities.&lt;br /&gt;
&lt;br /&gt;
But first a little bit about the workings of the DataGrid.&lt;br /&gt;
When binding data in a WPF DataGrid it holds all changes to the data in an intermediary object. If the user edits a cell the changes will be done only in this intermediary object, the exception being if the bound object does implement IEditableObject in which case the DataGrid uses the object&#39;s edit capabilities instead. &lt;br /&gt;
But if we do not have an IEditableObject to bind to all changes made inside the row will only be committed to the bound object once the row edit ends. If we still need to commit on a cell by cell basis we need to attach a handler to the CellEditEnding event of the grid and use the following code in the handler.&lt;br /&gt;
&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;private bool isManualEditCommit;
private void HandleMainDataGridCellEditEnding(
  object sender, DataGridCellEditEndingEventArgs e) 
{
 if (!isManualEditCommit) 
 {
  isManualEditCommit = true;
  DataGrid grid = (DataGrid)sender;
  grid.CommitEdit(DataGridEditingUnit.Row, true);
  isManualEditCommit = false;
 }
}
&lt;/pre&gt;&lt;br /&gt;
This will update the bound object whenever a cell edit is ending, i.e. whenever the cell looses focus.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/7775230083834259008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/7775230083834259008' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/7775230083834259008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/7775230083834259008'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2010/05/commiting-bound-cell-changes.html' title='Committing bound cell changes immediately in WPF Datagrid'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-162869593521594990</id><published>2009-08-03T17:23:00.015+02:00</published><updated>2010-05-18T15:05:09.700+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="savefiledialog"/><category scheme="http://www.blogger.com/atom/ns#" term="wpf"/><title type='text'>The woes of file extensions in the SaveFileDialog</title><content type='html'>I stumbled upon a rather annoying problem in the SaveFileDialog (System.Win32) in one of my WPF applications. The application allows saving of its own type of project file with a custom extension &quot;.mypi&quot; and of course loading those files again.&lt;br /&gt;
&lt;br /&gt;
The code for saving:&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = &quot;MY Project|*.mypi&quot;;
&lt;/pre&gt;&lt;br /&gt;
and for loading&lt;br /&gt;
&lt;br /&gt;
&lt;pre formatcs=&quot;1&quot;&gt;OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = &quot;MY Projects|*.mypi&quot;;&lt;/pre&gt;&lt;br /&gt;
Now some users were complaining about &quot;lost files&quot; that they &quot;could not open&quot;, and after a bit of digging around I found that they entered file names in the form of  &quot;Project.2009.07.07&quot; in the SaveFileDialog. Now what I would have expected is that the dialog would append the only available extension &quot;mypi&quot;, but as the documentation correctly states for the &quot;AddExtension&quot; property (which is set to &quot;true&quot; by default):&lt;br /&gt;
&lt;blockquote&gt;Gets or sets a value indicating whether a file dialog automatically adds an extension to a file name if the user omits an extension.&lt;/blockquote&gt;&lt;br /&gt;
Now the important part is &quot;if the user omits an extension&quot;, and since .07 is a valid extension the dialog will not add anything to &quot;Project.2009.07.07&quot;. And thus when trying to open the file again the filter will not pick up on it.&lt;br /&gt;
&lt;br /&gt;
The preferred workaround is to change the file name after the dialog closes, note though that you have to hook the SaveFileDialog.FileOk event to check if the file with the added extension exists, otherwise this check will not work correctly in the file dialog.&lt;br /&gt;
&lt;br /&gt;
Not being able to force the SaveFileDialog to add an extension to every file name entered by the user is a rather poor design decision, as the user will assume that a save dialog which only allows to save a certain kind of file will generate such a file. He is strengthened in that assumption by other applications like Word, MS Paint, etc..., which do not display that behavior but always append the filter extension to the file name.&lt;br /&gt;
Thus for every SaveFileDialog the same workaround has to be used and functionality that already is in the SaveFileDialog has to be duplicated (check if file exists, check if filename is too long, etc...) and the appropriate error messages localized.&lt;br /&gt;
&lt;br /&gt;
In conclusion the SaveFileDialog should be extended in future versions to allow that kind of behavior without any workaround.&lt;br /&gt;
&lt;br /&gt;
Does anyone know of an alternative route to solve that problem or a third party save file dialog (maybe even written in proper XAML for styling and   extendibility)?</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/162869593521594990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/162869593521594990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/162869593521594990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/162869593521594990'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2009/08/woes-of-file-extensions-in.html' title='The woes of file extensions in the SaveFileDialog'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-2364160073821047275</id><published>2008-01-15T14:19:00.000+01:00</published><updated>2008-01-15T14:45:17.188+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="software design"/><title type='text'>Tip of the Week - The Right Mindset</title><content type='html'>This week&#39;s tip is for all coders out there who want to grasp the bigger picture and go beyond the code and develop the right mindset for a good software developer. Karl Seguin condensed years of experience, common sense and sharp observation of what matters in software development into a 7 part overview. Start with the &lt;a href=&quot;http://codebetter.com/blogs/karlseguin/archive/2007/11/26/foundations-of-programming-part-1-introduction.aspx&quot;&gt;first part&lt;/a&gt; or grab the whole tutorial as a &lt;a href=&quot;http://www.openmymind.net/Foundations_Of_Programming.zip&quot;&gt;PDF &lt;/a&gt;to read on dead trees and become a better, more productive developer. While focusing on .net development this is a must read for everyone.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/2364160073821047275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/2364160073821047275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/2364160073821047275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/2364160073821047275'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2008/01/tipp-of-week-right-mindset.html' title='Tip of the Week - The Right Mindset'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-1379180284335908661</id><published>2007-12-17T10:27:00.000+01:00</published><updated>2007-12-17T10:33:02.824+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><title type='text'>Tip of the Week - Multicoring</title><content type='html'>Never has programming for multiple cores been easier as with the Task Parallel Library (TPL) for .NET. Make sure to check out &lt;a href=&quot;http://msdn.microsoft.com/msdnmag/issues/07/10/Futures/&quot;&gt;this simple introduction&lt;/a&gt; to see the power and ease of use the TPL brings to make your code ready for multi core support.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/1379180284335908661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/1379180284335908661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/1379180284335908661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/1379180284335908661'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2007/12/tip-of-week-multicoring.html' title='Tip of the Week - Multicoring'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-7127905826037366299</id><published>2007-12-10T10:06:00.000+01:00</published><updated>2007-12-17T10:34:07.300+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="wpf"/><title type='text'>Tip of the Week - Visual WPF Debugging</title><content type='html'>This weeks tip goes out to all the WPF developers out there:&lt;br /&gt;&lt;a href=&quot;http://karlshifflett.wordpress.com/2007/12/06/mole-ii-for-wpf-released-visual-studio-visualizer-for-wpf/&quot;&gt;Mole II&lt;/a&gt; is a graphical debugger for WPF and once used you won&#39;t know how you could ever live without it. A must have tool for the tool belt of every serious WPFer.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/7127905826037366299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/7127905826037366299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/7127905826037366299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/7127905826037366299'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2007/12/tip-of-week-visual-wpf-debugging.html' title='Tip of the Week - Visual WPF Debugging'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-1444129390446927309</id><published>2007-12-02T01:18:00.000+01:00</published><updated>2007-12-02T01:25:13.012+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><title type='text'>Tip of the Week - Throwing up</title><content type='html'>Came from the java world and never kicked that throwing habit? Do you catch with &quot;catch (Exception up)&quot; and don&#39;t know an alternative to &quot;throw up&quot;? Read &lt;a href=&quot;http://blog.dotnetclr.com/archive/2007/11/05/Re-throwing-an-exception.aspx&quot;&gt;this little post&lt;/a&gt; on re-throwing an exception in different ways and how it affects your stracktrace.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/1444129390446927309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/1444129390446927309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/1444129390446927309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/1444129390446927309'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2007/12/tip-of-week.html' title='Tip of the Week - Throwing up'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-8893798582910235541</id><published>2007-11-07T22:16:00.000+01:00</published><updated>2007-11-11T11:28:20.425+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="vista problems"/><title type='text'>Moving the System Partition in Vista</title><content type='html'>&lt;span style=&quot;font-size:100%;&quot;&gt;I recently ran into problems when I tried to remove an old hard drive from my system. Unknowingly when installing Vista it somehow choose that old hard drive as the right place to put the system partition and not my shiny new drive (on which the Vista installation resided anyway). So when removing the old disc I could no longer boot. This is how to solved that problem:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Symptoms:&lt;/span&gt;&lt;br /&gt;You can easily check if your system partition resides on the disc you want to remove by either checking in the partition manager if that disc is marked with &quot;system partition&quot; or by checking if the disc contains the hidden bootmgr file and boot folder in the root folder and your other disc does not.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Solution:&lt;/span&gt;&lt;br /&gt;We have to make the right disc bootable by copying the correct boot management data from the old disc.&lt;br /&gt;Follow the instructions from &lt;a href=&quot;http://cs.axvius.com/blogs/aaron/archive/2007/04/25/how-to-fix-quot-bootmgr-is-missing-quot.aspx&quot;&gt;here&lt;/a&gt; to copy all relevant data. What will most likely fail though is copying the BCD files from the boot folder. We have to use &quot;bcdedit&quot; to do that. Simply go to the command prompt in the C:/boot folder of the disc you want to boot from (if not C: change accordingly) and enter &quot;bcdedit /export BCD&quot;. This should copy all relevant boot management data. Now you should have all you need and can try booting from that disc.&lt;br /&gt;If the boot was successful run &quot;bcdedit&quot; again, if an error message is displayed copy the &quot;BCD&quot; files (including the BCD.log) files from the old disc to the new one and you should encounter no further problems while happily booting without your old disc.&lt;br /&gt;Good luck&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/8893798582910235541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/8893798582910235541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/8893798582910235541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/8893798582910235541'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2007/11/moving-vista-system-partition.html' title='Moving the System Partition in Vista'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3152396868801847155.post-3710146353719836902</id><published>2007-05-19T22:15:00.000+02:00</published><updated>2007-05-19T22:24:50.957+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><title type='text'>Tip of the Week - Connection Strings</title><content type='html'>In the first part of our weekly installment we bring you: &lt;span style=&quot;font-style: italic;&quot;&gt;Connection Strings&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Do you forget them? Do you just use them without knowing what they actually do? Do you want to embrace dozens of new ones? Then &lt;a aiotitle=&quot;Connectionstrings.com&quot; href=&quot;http://www.connectionstrings.com/&quot;&gt;ConnectionStrings.com&lt;/a&gt; is where you should go immediately. Hundreds of connection strings for you to forget till tomorrow.</content><link rel='replies' type='application/atom+xml' href='http://codefluff.blogspot.com/feeds/3710146353719836902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3152396868801847155/3710146353719836902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/3710146353719836902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3152396868801847155/posts/default/3710146353719836902'/><link rel='alternate' type='text/html' href='http://codefluff.blogspot.com/2007/05/tip-of-week-connection-strings.html' title='Tip of the Week - Connection Strings'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/01477573477583414994</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>