Question: I am new to serialization. I have a silly question:
Why BinaryFormatter is named like BinaryFormatter and not BinarySerializer?

To be more specific why isn't it called BinarySerializer if it is doing serialization ? What else does it do other than serialization of data, that it should be called a formatter?

Answer: 
Why *not*? Why would `BinarySerializer` be a better name?

I wasn't privy to the deliberations of the API design team, but I suspect that it's called a "formatter" because it formats the data retrieved from or pushed out to a byte stream. You use the formatter as a helper object both when serializing and deserializing data.

Note also that there is a [`SoapFormatter` class](http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.soap.soapformatter.aspx) that follows the same naming scheme, and both of these classes are defined in the [`System.Runtime.Serialization.Formatters`namespace](http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.aspx).
Personally I agree with you - it would have at least been more consistent with `XmlSerializer`, and the (later) `DataContractSerializer`, `JavaScriptSerializer`, etc. Perhaps they felt it was different because it was used in remoting, but ultimately what it does is serialization and deserialization.

However: *naming stuff is hard*. Perhaps it is as simple as that.