That depends on the level of integration you are looking for and also how far you want to go with the InDesign internal architecture. Given that you are talking about Panel, I will presume you have no interest in scripted windows based the ScriptUI framework. ScriptUI doesn't provide a native panel object that you can dock.
So what remains left are :
From CS5 to CS6, you can deploy flex-based panels that will behave just like native panels. I did several panels of this kind. I found it very powerful and smooth. Starting from CC, flex-based panels are no longer supported and have been replaced by HTML based panels. This is to enlarge the spectrum of panels developers. Extensions drive host apps through Scripting and their relative Object Models.
Both of these frameworks allows communicating with C++ plugins and have access to a wider range of events. But they remain a overlaying framework and can reach some limits.
2) C++ Plugins
To be honest, I don't have fresh news on this one. I will let my fellows develop that part. A while ago i know C++ devs were encouraged to use Flex Based panels for UIs but that's all. Once that said, advantage of C++ is that you can go much deeper into InDesign internal architecture thus enriching the software features. Problem, as it is much powerful, it's also much complex to develop.
So if your project can consist in driving InDesign with native features, it's likely that an extension is OK. See CSSDK for building extensions. If you have large expectations with extending InSDesign capacities, you will have to consider C++ development.