Was ist der Unterschied zwischen der Verwendung des Serializable-Attributs und der Implementierung von ISerializable?

Was ist der Unterschied zwischen der Verwendung des SerializableAttributs und der Implementierung der ISerializableSchnittstelle?