Nop2.3 was my first version in production and it was modified in many places (.cs, .css, .cshtml etc).  And now I'm preparing to upgrade to 2.4 and would like to ask if anyone could share the process they normally follow on an upgrade like this.  

And, I have the following questions.

Do you delete all the files on the host and then re-ftp everything in the Deployable folder again?  If yes, then do you need to re-adjust the write permissions on the necessary folders on the host after the ftp?

If there a way to ensure that nobody accesses the site while I'm upgrading? Like if there a setting by enabling it would show a message like "Site under maintenance" while still allows me to access the admin area?

How do you normally merge your modified files (.cs, .css, .cshtml etc) with a new version of nop?

Thanks!