Naming a class in C# ? Noun recommended by MSDN?

The following class defines a template for printing a order invoice to company 1.

Similarly, there are separate classes that define the template for printing order invoices to respective companies.

I have read questions asked on SO here, here, here and here where they emphasis this point:

Use a noun or noun phrase to name a class

But, for eg.

PrintTemplateClient1 (which is a verb) for naming a class seems to be fine for me rather than using a noun here.

Any ideas how to name this ?

Do kindly let me know if this question does not belong here so i can move to relevant forum.

Jon Skeet
people
quotationmark

I suspect the word "print" is confusing things here. You probably wouldn't think of it as a problem if it were PdfTemplateClient1 for example. However, I would try to put the noun at the end - I'd use Client1PrintTemplate, to go along with Client2PrintTemplate etc. The part that classes have in common usually comes at the end of the name rather than the start (e.g. TextReader, StreamReader, StringReader).

That said, I'd also try to avoid having different code for different companies in the first place... this sounds like the kind of thing that should be handled with data if at all possible - you might want different template renderers for different output formats, but I'd try to avoid them being different for different companies.

people

See more on this question at Stackoverflow