PREPARE THE SHELLS
In a large bowl, combine flour, sugar, and salt. Add the cold butter pieces and mix until the mixture becomes crumbly in texture. I like to use my fingertips to work the butter into the flour - it feels like making pie crust!
Add the egg yolk and Marsala wine to the flour mixture. Knead the dough until it becomes smooth and cohesive. This should take about 3-5 minutes - don't rush this step as it develops the structure that makes the cannoli shells crispy!
Wrap the dough in plastic wrap and refrigerate for at least 1 hour. This resting period allows the gluten to relax and makes the dough easier to roll out.
On a lightly floured surface, roll out the dough very thin (about 1/8 inch thickness). The thinner you can get it, the crispier your shells will be!
Cut the dough into circles about 4 inches in diameter. I use a cookie cutter, but a drinking glass works just as well in a pinch.
Wrap each circle around a cannoli form, overlapping the edges and pressing them together with a little water to seal. The first time I made these, I struggled with keeping them sealed, but a little egg white wash on the edge works wonders!
Heat vegetable oil in a deep fryer or heavy pot to 350°F (175°C). If you don't have a thermometer, test with a small piece of dough - it should bubble vigorously and float to the surface.
Carefully lower the dough-wrapped forms into the hot oil, frying until golden brown and crispy (about 2-3 minutes). Don't crowd the pot - fry only 2-3 at a time for best results.
Remove with a slotted spoon and place on paper towels to drain. Once cool enough to handle, gently slide the shells off the forms. Be patient here - if you try to remove them while hot, they might crack!
PREPARE THE FILLING
In a large bowl, combine the ricotta cheese, heavy cream, powdered sugar, vanilla extract, lemon zest, and cinnamon. Beat until smooth and creamy. The first time I made this, my filling was too loose - the key is to drain your ricotta overnight in the refrigerator for that perfect texture!
Gently fold in the mini chocolate chips. I like to save a few for garnishing the ends of the cannoli.
Transfer the filling to a pastry bag fitted with a wide tip. If you don't have a pastry bag, a zip-top bag with the corner cut off works in a pinch.
ASSEMBLE THE CANNOLI
Just before serving, pipe the ricotta filling into each end of the cannoli shells, making sure to fill them completely. Don't fill them too far in advance or the shells will get soggy - nobody wants a soggy cannoli!
Dip the ends in reserved mini chocolate chips if desired, and dust with powdered sugar. The contrast of the white powdered sugar against the golden shell is just beautiful!
Serve immediately for the perfect contrast between crispy shell and creamy filling. These are best enjoyed the same day they're filled!