Stratux is hands-down the cheapest way to get both an external GPS and ADSB-in. I have not used it with Windows other than to make a connection and see that data flowed properly (I use Android tablets and an iFly 720 in flight), but others have. Aside from maybe needing to enable File and Printer Sharing to get the data to flow, it's typically pretty seamless to get it up and running. With DIY (cheapest, and very easy) and pre-built (not much more expensive and even easier) options available, it's hard to justify anything else.
If external GPS is far more important than ADSB-in, then there are standalone GPS options for Windows that are very inexpensive, but I have zero experience with them, and don't know what drivers would be required to make them work with iFly.