Isogeometric shape optimization has been now studied for over a decade. This contribution aims at compiling the key ingredients within this promising framework, with a particular attention to sensitivity analysis. Based on all the researches related to isogeometric shape optimization, we present a global overview of the process which has emerged. The principal feature is the use of two refinement levels of the same geometry: a coarse level where the shape updates are imposed and a fine level where the analysis is performed. We explain how these two models interact during the optimization, and especially during the sensitivity analysis. We present new theoretical developments, algorithms, and quantitative results regarding the analytical calculation of discrete adjoint-based sensitivities. In order to highlight the versatility of this sensitivity analysis method, we perform eight benchmark optimization examples with different types of objective functions (compliance, displacement field, stress field, and natural frequencies), different types of isogeometric element (2D and 3D standard solids, and a Kirchhoff-Love shell), and different types of structural analysis (static and vibration). The numerical performances of the analytical sensitivities are compared with approximate sensitivities. The results in terms of accuracy and numerical cost make us believe that the presented method is a viable strategy to build a robust framework for shape optimization.