What are they and what's the difference?
Dining-In: a formal military dinner for the officers of a unit with a set agenda. Considered obligatory.
Dining-Out: a dining-in to which spouses and guests are invited. Often leaves out the pranks and other traditional elements.
Mess Night: originally, an evening dinner for members of the officers' mess and their guests. A formal Mess Night is a Dining-In.
Combat Dining-In: a dining-in with less formality and for which combat uniforms are prescribed rather than formal dress.
The Dining-In, traditionally, is conducted for the officers of a unit; however, contemporarily, often the enlisted personnel of the unit are also included. There are also all-enlisted dining-in's. Today, many military dinners are billed as a dining-in, even though they don't follow a traditional script or contain some or many of the elements of the traditional dining-in.
There is no single "right" format for a dining-in or mess night. Information on the dining-in and dining-out can be found at the following publications: