Principles of dynamic virtual work and virtual power are revisited in this paper to deal with mechanical systems with non-holonomic constraints. Although few new things may be added in analytical dynamics approaches, one purpose of the revisit is to talk about differences between the above two fundamental principles, from which various forms of dynamic equations can be formulated. Another purpose is to show how much smooth the treatment of a nonlinear non-holonomic constraint is in the latter approach although it can be done by an unfamiliar Chetaev condition in the former approach. Three case studies: 1) a mass-spring-mass system with a knife-edge at each mass on a plane, 2) a rolling ball, and 3) a rolling ball with an active nonlinear non-holonomic constraint are presented for illustrations.