I think asphalt shingles have gone downhill in quality rapidly the past 20 years, and won't waste my timbre and money on them.
Metal is good if you get a real roof panel, quality product. Mid priced. The cheap thin stuff is actually wall panel, and not durable for a roof.
I don't care for the look of barn roof tin on a house, ESP an older farm house 2 story here in Minnesota, the snow sheets off in dangerous drops. If you are single story or it fits in with the look of your house, not a bad thing at all.
Decra or other brands of metal shingles is a great product, lasts the rest of your life, won't have to shingle again, looks just like shingles because it is coated with asphault and stone, I helped a friend put it on and works well, good product.
Costs 150% of asphalt shingles, but those you have to replace every 10 to 15 years, the Decra do it once and never again. Certainly a lot cheaper deal in your lifetime!
In Minnesota legally you cannot put a roof over an old roof on a house. Most recommend you strip down to the boards, single roof. It is easy and fast to put in 2x4 strips over your old roof, put in 1.5 inch insulation between the strips, and nail the tin over. Need to look into ventilation, vapor barrier, and all that, but a good simple way to put a roof on if allowed in your area. More to it than I said, but basics.