Add the flour, sugar, and salt to the food processor and pulse until just combined. Then add in the cold butter and pulse until you have small crumbles. You can also make the dough by hand the same way you would make pie crust.
Add the whole egg, egg yolk, and marsala and pulse until the dough comes together into a shaggy ball.
Turn the dough out onto a clean surface and knead for 2-4 minutes until you have a smooth ball. Place the dough in a lightly oiled bowl, cover, and rest for 1 hour.
While the dough is resting, add about 2 inches of vegetable oil to a large pot or Dutch oven over medium heat until it reaches 350°F.
Roll out the dough as thin as possible (⅛th to 1/16th inch thick) and use a 4 inch cookie cutter to cut into rounds. For mini cannoli use a 2 inch cookie cutter.
Lightly brush the cannoli forms with vegetable oil and then wrap the cannoli dough around each form. Brush the edge where the ends meet with egg white and press gently to seal.
Fry the shells at 350°F for about 1 minute on each side until golden brown and crispy. Only fry 4-5 at a time so as not to crowd the pan.
Use tongs to transfer the cannoli to a paper towel to drain. Immediately remove the form from the cannoli (you can use the tongs and a paper towel to gently wiggle it off the form, just be careful!).
Let the forms cool fully and repeat the process with the remaining dough circles. Let the cannoli shells cool fully before filling.
While the cannoli are cooling, make the filling.
Add the strained ricotta, powdered sugar, and vanilla to a large bowl. Using a hand mixer, whip the ricotta until it's fully combined and smooth. If desired, fold in chopped nuts or chocolate chips!
When ready to use transfer to a piping bag, snip the tip off and fill the shells. Then press on desired toppings!
To strain the ricotta, place a strainer over a bowl and then lay a cheesecloth inside the strainer. Gently spread the ricotta into an even layer. Loosely cover the bowl with plastic wrap, and chill in the refrigerator. Let the ricotta cheese strain overnight (at least 8-12 hours).