@Rick answered most of your questions, just to add my answers to your other questions.
For set up the DXA 2.2 .NET solution along with source code step by step, I have answered one of the previous questions here it might be helpful.
Answer to your last question,
Upgrade DXA on the Content Manager server to 2.2 and refer to the SDL documentation: Upgrading DXA on the SDL Tridion Sites Content Manager
Open a PowerShell command prompt in Run as Administrator mode
Go to \SDL.DXA.NET.2.2\cms folder and run the cms-import.ps1 with the following command parameters import Framework-only or use a content porter to update the DXA 2.2 TBBs and assemblies (backup the content manager database for rollback purpose)
.\cms-import.ps1 -importType master-only -masterPublication "100 Master" -cmsUrl
"http://cms.dev.com/"
After a successful upgrade, the above script ensures all your DXA publication website Page template and component templates use the Render Page Content => Generate DXA R2 Page Model and Render Component Content => Generate DXA R2 Entity Model TBBs.
Republish the Publish Settings Template Building Block in all your DXA publications eg. \100 Master\Building Blocks\Framework\Developer\Templates
Note:
Starting in DXA 2.0, content is published in a JSON format rather than in XML and uses the R2 Data Model, recommended to use R2 Data Model.
Update:
Answer to your questions asked in the below comments:
Q: 1) How binaries get published since the output is JSON?
A: I can see it was explained by Rick correctly product point of view it does the same, but In the DXA 2.0+ it's handled differently compare to DXA 1.7 instead of TBBs it's handled as Model Builder Types as parameters to pass the module Bulder Names by comma-separated if more than one builder names, In the Compound Template TBBs. of course you can also do customize this by your own model builder for your needs.
Eg:
Render Component Content
<CompoundTemplate xmlns="http://www.tridion.com/ContentManager/5.3/CompoundTemplate">
<TemplateInvocation>
<Template xlink:href="tcm:2-86-2048" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title="Generate DXA R2 Entity Model" />
<TemplateParameters>
<Parameters xmlns="http://www.sdl.com/web/schemas/dynamiccomponent">
<expandLinkDepth xmlns="http://www.sdl.com/web/schemas/dynamiccomponent">1</expandLinkDepth>
<modelBuilderTypeNames>DefaultModelBuilder;EclModelBuilder</modelBuilderTypeNames>
</Parameters>
</TemplateParameters>
</TemplateInvocation>
Q: 2) Is there any TBB available for publishing the binaries which are part of the component, RTF, and published as an individual?
A: You can refer to this DefaultModelBuilder.cs class for BuildBinaryContentData
Q: 3) As I mentioned earlier, we are planning to re-use the existing CTs and PTs. Are there any other changes required?
A: As I mentioned in my answer already you might need to update your Page and Component Templates TBBs to use DXA 2.2 Generate DXA R2 Page and Entity Model as I mentioned in my answer step 3.
I hope it helps.