-Are there any changes in Bootloader? -Why is the coding different for same chip in different softwares? -How to upload the program from Atmel Studio?
Atmel cpp projects do not currently provide an option to upload using Arduino bootloader. Atmel only provides upload using hardware programmers.
The bootloader is deleted when you upload using a hardware programmer either from Atmel Studio or from the Arduino ide.
The underlying Atmel toolchain is not very different from the latest Arduino toolchain however Atmel does not know about the Arduino hardware/cores. You have to copy the Arduino core sources to your Atmel project if you want to compile for Arduino compatibility but that still does not give you bootloader upload.
It is not clear from your question if you have the Arduino sources in your cpp project already. If you do have the sources in your project then you can use avrisp mkII or other programmer to upload but the Arduino libraries might be an issue for you if you are using them.
There is another option in Atmel Studio however it might not be what you require ...
You can install the Visual Micro plugin for Arduino from the Atmel Gallery and work with standard Arduino sketch projects inside Atmel Studio.
The Visual Micro plugin provides full Arduino compatible sketch build and bootloader upload in Atmel Studio. Because of the nature of Arduino, the Visual Micro plugin automatically manages the include paths and Atmel project properties so that intellisense works in projects that contain .ino source code files. If the project does not contain .ino files then Visual Micro sleeps (does not interfere with cpp projects)
The plugin also provides other features such as a serial usb debugger, library manager, board manager, Arduino examples etc.
More about Visual Micro is here
Tutorials are here
Debugger overview is here
There is no difference in program execution between uploading using a physical hardware programmer or using a usb cable via bootloader.
The Arduino libraries sources can be more complicated to include/compile in a project because they often include additional folders with private source code. This is more of an issue with older Arduino libraries that have a sub folder called \utility.