To really do it properly, it should be fully disassembled and thoroughly cleaned and de-greased. The key is to prep, prep and, when you think you're done, prep it some more.
If you're looking to re-blue small areas or parts, a cold blue will work. I prefer Brownell's Oxpho Blue. I do not recommend any cold blue for a complete gun refinish. It just doesn't hold up - despite what all the online videos say. For whole bluing, your only real choices are to rust blue it yourself, or send it out.
As for a painted finish, Ceracoat is by far the best. Aluma Hyde isn't bad, but my preference is Dura Coat. Not as hard as Ceracoat, but I can do it myself in my garage. The rattle cans are kind of expensive, with a limited amount of time to use once activated. I use the liquid and a cheap HF touchup gun.