The answer is very dependant on how you manage your programs and what reporting data you need for governance of the projects and programs of projects. So create a top down list of all reports needed and their data, then look at how to collect and collate that data in Project. Some reports will work well in Proejct, others will work better after formatting in Excel.
The basics suggest you need to have a program custom field at the project level so its easy to create Views in PWA for a program. Project dependancies work for inter-project links.
One organisation’s solution is another organisation’s nightmare! So work thru your Program processes and governance needs first, then work out teh solution that works best for you. Look for low hanging fruit first and evolve your solution. There are rarely any silver bullets out there!