Preheat oven to 375 degrees. Spray an 11 x 7-inch baking dish with cooking spray. Set aside.
Cook the rice according to the package directions being careful to not overcook. Transfer to a large mixing bowl and set aside.
Cut all but 7 stalks of asparagus into 1 to 2-inch lengths. (The whole stalks will be used as a garnish.)
Prepare an ice bath. Bring a large saucepan of water to a boil and add a generous amount of salt (approximately 1 tablespoon).
Drop the asparagus into the boiling water by the handful. Cook 10-15 seconds or until it turns bright green. Scoop out with a sieve or large slotted spoon and drop into the ice bath. Repeat with remaining asparagus. Drain the asparagus and blot dry with paper towels or a clean kitchen towel.
Heat 2 tablespoons butter and the oil in a large saucepan over medium-high heat.
Add the shallot, reduce heat to low and cook approximately 3-4 minutes or until softened, being careful to not let the shallot brown or burn.
Add the garlic and cook briefly, approximately 10-15 seconds or until fragrant.
Add the flour and cook, whisking constantly for approximately 1-2 minutes.
Add the wine and cook, whisking constantly for approximately 1 minute.
Slowly pour in the chicken broth and the heavy cream (or half-and-half). Bring to a boil, whisking constantly. Reduce heat to medium and continue cooking until the mixture thickens (approximately 5 minutes). Remove from the heat.
Tear the cream cheese into small pieces and whisk into the sauce until blended and smooth.
Add 1/4 cup Parmesan cheese and whisk until blended. Season to taste with salt and white pepper.
Combine the rice, cheese sauce and asparagus pieces in a large bowl and transfer to the prepared baking dish. Smooth the top and arrange the 7 reserved asparagus stalks over the top as desired.
Combine the remaining Parmesan cheese, panko, parsley and remaining 1 tablespoon of butter in a small bowl until the cheese and breadcrumbs are coated with the butter.
Sprinkle the breadcrumb mixture over the casserole.
Cover loosely with aluminum foil. Bake for 20-22 minutes. Remove foil and continue baking another 20-25 minutes or until topping is browned and casserole is bubbling and thoroughly heated through.