The "best practice" for creating modules is the approach that Andy is showing in the most recent tutorial series. Basically, you create the module in Visual Studio, turn that into an installable package, and install the module the way you install all DotNetNuke extensions. The first two episodes in this series are available.
There is also an excellent set of tutorials available at DotNetNuke.com. They are done by Chris Hammond. You should start with Chris' blog, specifically this entry:
http://www.dotnetnuke.com/Resources...ment.aspx. Be sure to look at the resources mentioned.
Also, Chris has several blog posts related to setting up an appropriate development environment. There are some video tutorials that go with them.
Finally, Chris has created a first class template add-in for visual studio. With it, you can create the stub of a functioning module. It's use is demonstrated in the tutorials that I mention here.