Finally, after reading books about WPF I started to actually work with it. As usual, I start with complaints 🙂 It turns out that renaming a WPF form, especially main is a) inevitable and b) tedious.
By default, when you create an WPF application, the wizard creates a main window class with an undescriptive name of
Window1. This is a problem in itself, since your never really want to have a class named
Window1. Back in the days of MFC the wizards used to ask what class name you want, but this craft has been lost in the 21st century.
So, any sane person would want to rename
Window1 to something like
MainWindow. In Windows Forms you just had to rename the form in Solution Explorer and it did the trick. In WPF you need to edit quite a few files:
* Rename the class using the refactoring menu (or Shift+Alt+F10 shortcut)
* Fix the class summary that says “Interaction logic for Window1.xaml”
* Fix class name in
* Fix the start URI in
This is the price you pay for programming in XML. Automatic refactoring tools got pretty good in refactoring the code, but they can’t possibly know if you have your class names stashed in some XML files. References from XML to code can easily get out of sync, and you are on your own in checking that. If you are lucky, it will blow up during debugging. If you are not lucky, it will blow up on customer’s desktop.
Someone must say that this is no big deal – why rename at all? The program works just fine with
Window1. The answer is, the only safe way to evolve code is gradual refactoring, and renaming something is one of the basic refactoring steps. If renaming is hard, it hinders everything else.