MiG-29/35 are good designs very aerodynamic and excellent maneuverability but what they lacked was mainly efficient engines, cutting-edge avionics and regular upgrades of avionics. Since MiG-29 was designed, there were few upgrades and the biggest upgrade package was MiG-29 UPG upgrading them to MiG-29 SMT. The other being the addition of thrust vectoring nozzles and few upgrades to make it MiG-29 OVT or MiG-35. On other hand Rafale is constantly being upgraded ..F2, F3 F3R F3+ F4 etc The Russian planes are rugged and can withstand bad storage conditions. If you had been to Goa Airport you can see them standing in the open. Whereas M2K in IAF service were at Gwalior and that too with air-conditioned hangars.
MiG-29 came much after M2K and the arrival of Su-27 and MiG-29 did surprise the Europeans who then felt the need to design twin-engine fighter aircraft to face this Russian threat. We can see this from the fact that the French were producing Rafale before the Mirage 2000 line was closed. Even now Mirage 2000 are flying as they are cheap to fly and use as compared to Rafale, Thus in a way, the Arrival of twin-engined jets in Russia put the urgency in building their own twin-engine plane and thus now the French are trying to get the best they can from Mirage 2000 as it would not be economical to retire these planes very early.
MiG-29 came much after M2K and the arrival of Su-27 and MiG-29 did surprise the Europeans who then felt the need to design twin-engine fighter aircraft to face this Russian threat. We can see this from the fact that the French were producing Rafale before the Mirage 2000 line was closed. Even now Mirage 2000 are flying as they are cheap to fly and use as compared to Rafale, Thus in a way, the Arrival of twin-engined jets in Russia put the urgency in building their own twin-engine plane and thus now the French are trying to get the best they can from Mirage 2000 as it would not be economical to retire these planes very early.
Rafale is pathetic when compared to upgraded Mig-29/35. the very early Mig-29s were able to defeat M2K in combat comprehensively. Now we have an iteration of M2K called Rafale challenging them.
As per my knowledge of aerodynamics and fighter aircraft designs based on my experience as a fighter pilot, no canard design can ever defeat a conventional design in air combat provided the the TWR is over 1:1.1.