I have been developing windows small services and wcf servers in C# for a year.
Here are some of the high and low points for me :
Great
- The isolation and ease of use of application domains
- Fakes framework will make even oldest code unit testable
- WMI api a valid replacement for ssh and text files in most scenarios and you can transparently access remote machines
- Visual studio integration with sqlserver
- Update your test database schema directly from visual studio
- Unit test databases thanks to localdb
- Very powerful scripting capabilities through SMO
Good
- Powershell approach of using objects instead of text. It is quite verbose and I still prefer bash but it shines for filtering output
- You can use .NET framework classes from powershell
- Useful to get access to advanced functions from a script
- No need to open a heavy IDE and wait for compilation
Bad
- Nuget packaging tool is buggy and not well thought for automation (like jenkins jobs)
- Visual studio verbose project configuration, worst to what you get using ant
- The .net configuration extension mechanism could be made simpler (by using a less imperative style)
Awful
- No decent text editor out of the box
- File explorer is unsable for powerusers (no tabs, crappy history …)
- MSDN site is slow and unintuitive (and they keep asking “Is this page helpful?”)
- Why can’t I just change the url to land in the .NET version I want ?
- Visual studio does not follow the filesystem structure
- Versioning, why is sqlserver 2014 version 12.0 ?
- The “use the GUI” approach of some sysadmins
What’s the deal with logs ?!
- In windows nothing is a file if you need a ton of different apps to do simple things like:
- Read/Search the system logs (stored with a cryptic etl format)
- Read HPC scheduler and agent logs
- You have to declare a log source before you can emit records on the system logs (face palm)
- The enterprise library is bad, but the logging is terrible. And the documentation treats you like a retard
That which shall not be named
Let’s just say that you better not hope to get a terminal emulator equivalent (at least before windows server 2016)