I think your translations are good, except that you have to add the negation in the negative form, even if journalists and advertisers today, like to omit it: It’s really a fault that alters the language, because “pas” and “point” are not negations at all: They define the smallest distance(“pas”) or the smallest object(“point”), so they mean 1 and not 0: They have to be preceded by “ne” to mean 0, so you should have written:
ça fait longtemps que je ne l'ai pas vu
Now, talking about the fact that in French we would use only the negative form to express a distance in time, I think it’s not quite true, because you can say:
ça fait 5 ans que je ne l'ai pas vu
but you can also say:
Je l'ai vu il y a 5 ans
The difference between these both expressions is that the negative form shows the duration with some insistance, meanwhile the positive form marks the distance as a simple fact.