The joint beamforming design challenge for dual-functional radar-communication systems is addressed in this paper. The base station in these systems is tasked with simultaneously sending shared signals for both multi-user communication and target sensing. The primary objective is to maximize the sum rate of multi-user communication, while also ensuring sufficient beampattern gain at particular angles that are of interest for sensing, all within the constraints of the transmit power budget. To tackle this complex non-convex problem, an effective algorithm that iteratively optimizes the joint beamformers is developed. This algorithm leverages the techniques of fractional programming and semidefinite relaxation to achieve its goals. The numerical results confirm the effectiveness of the proposed algorithm.