Preheat the oven to 425 degrees F. Lightly coat the asparagus and tomatoes with olive oil and place them on a baking sheet. Sprinkle lightly with salt. Roast for about 10-15 minutes. Chop the asparagus into bite sized pieces.
Prepare your pasta according to the package directions. Drain and set aside.
Meanwhile, melt the butter in a medium skillet. Add in the flour, and whisk until well combined and lightly browned.
Slowly add the milk and continue to whisk until smooth. It should take about 1 minute for it to thicken up.
Add in the garlic and cream cheese, and continue to whisk until the cream cheese has melted.
Add pesto and parmesan. If the sauce is too thick, add more milk.
Season to taste with salt and pepper.
Add the pasta, asparagus and tomatoes. Toss to combine.
Serve immediately.