I am an experienced C++ developer, I know the language in great details and have used some of its specific features (like template metaprogramming or RAII) intensively. Also, I know principles of OOD and design patterns. I am now learning C# but I cannot stop the feeling not being able to get rid of C++ mindset. I tied myself so hard to the strengths of C++ that I cannot live without some of the features. And I cannot find any good workarounds or replacements for them in C#.

Hence the question: Are there any good books/resouces where I could learn **good practices** and **design patterns** and **idioms** that are different in C# from C++ perspective? Of course. There's pretty many articles on obvious things like "there are no destructors in C#" but hardly any on "how to get a perfect C++ design not looking dumb in C#". Any ideas?