If you are in a full suite ( not a mini suite ) you can book 55 days out. Otherwise it's 45 days. If you have on board credit you want to use for dining fees, you'll have to wait till you're on board to book.
We seldom book anything in advance of the cruise unless it is something really special. It is very easy to get reservations the day of on board, or mostly we just walk up when we're ready. Usually not a wait, or if so, just a few minutes.
If you are on one of the 3 newest ships, I would book some of the big shows ahead of time, like Rock of Ages or Imaginarium. Just go to My NCL on the NCL website and create an account. You'll have to complete this before you sail anyway. There is an area within it to view and make dining and excursion reservations.