The IsRequired parameter specifies that the attribute must be specified. If it is not then an exception will occur. This parameter should be used for properties that can have no reasonable default value. The IsRequired parameter for the attribute does not work when applied to a child element. The subsystem will automatically create a new instance of any child elements when it reflects across the configuration properties. Later when the subsystem tries to verify that all required properties have received a value it cannot tell a difference between default initialized elements and those that were contained in the configuration file. To use the IsRequired parameter with a child element you must programmatically declare the property instead.
The default collection type allows for elements to be added, removed or the entire list cleared. This is often not what is desired. The alternative collection type allows for new elements to be added only. To tell the subsystem that the collection should not allow changes to the existing elements and to allow only new elements it is necessary to overload a couple properties in the collection class.
There are many more things that can be done to update the configuration file. You can save the file elsewhere, save only some changes or even modify other files. The preceding discussion should be sufficient to get you started though.
VPC/WVPC exposes this as an option in the virtual machine settings. By default it is disabled so all changes made to the guest are permanent. When undo support is enabled VPC tracks the changes made for the current session in a separate file (a difference disk again). When the session finally ends VPC asks if you want to save the changes permanently, save them for later or throw them away. If you decide to save the changes permanently then VPC will merge the differences in. This can take up to 10 minutes. If you opt to save the changes until later then the differencing disk is retained. When the session starts again you will be able to resume from where you left off. Finally if you decide to throw away the changes then the differencing disk is deleted.
Close the Test Settings dialog. Now you need to enable parallel test execution. There is no UI for this so do the following.Right-click the test settings file in Solution Explorer, select Open With and then XML Editor to open the file in the XML editor.Go to the Execution element and add the parallel attribute. You can set it to a specific number of processors or to 0 to allow the tests to run on all processors.Save and close the file.Close the solution and reopen it. The parallel settings are only read when the project loads, at least for Beta 2 and the RC.Open the Test Results window and group by Result so you can see the parallel execution.Start debugging (F5 or via the menu).Open the Test Results window again and you should see the tests running parallel.A couple of caveats about parallel tests. Firstly you must close and reopen the solution (or at least the project) in order for changes in the parallel settings to take effect. Secondly the settings file is rewritten whenever you make changes in the Test Settings dialog. So if you make changes to the test settings through the UI you will need to modify the settings file manually to get the parallel settings back again.
You will get the same Problems in git as in TFS when you merge things. But it is ways easier to just use TFS and merge things if you got a product where you must support different versions with ways different sources (because it evolved over time). Just a few clicks and you have a new branch. Just a few clicks and you merged some/all or just one changeset, a subset of a changeset or even only one file/folder. This is not to complicated in TFS, you most ensure your developers merge their things in time and not wait a few month and merge than.Worst about git that it is not so well integrated (even in VS2013 are missing some base-functions in the git integration). It just costs much time to do something with git. I've the feeling that I spend more time on git than writing/testing code. I don't want to work with a source control system, I want to do my work.A source control system should be made it easy for developers, so they do spend almost no time with this. Git just isn't there. Everything is just handled way to complicated. 2b1af7f3a8