Start Visual Studio
File->New Project->Web Application Project
Delete Default.aspx
Delete Web.config
Delete App_Data
Project->Add New Item->Web User Control
Project->Add Reference->Browse to a DotNetNuke.DLL->Click OK
Project->Add ASP.NET Folder->App_LocalResources
Project->Add New Item->Resource File
Rename Resource1.resx to WebUserControl1.ascx.resx
Open WebUserControl1.ascx.cs
Change "public partial class WebUserControl1 : System.Web.UI.UserControl" to "public partial class WebUserControl1 : DotNetNuke.Entities.Modules.PortalModuleBase"
Project->Add New Item->Text File
Rename Text1.txt to WebApplication1.dnn
Open WebApplication1.dnn
Add the following to WebApplication1.dnn
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="WebApplication1" type="Module" version="00.00.00">
<friendlyName>WebApplication1</friendlyName>
<description>WebApplication1</description>
<components>
<component type="Module">
<desktopModule>
<moduleName>WebApplication1</moduleName>
<foldername>WebApplication1</foldername>
<moduleDefinitions>
<moduleDefinition>
<friendlyName>WebApplication1</friendlyName>
<moduleControls>
<moduleControl>
<controlKey />
<controlSrc>DesktopModules/WebApplication1/WebUserControl1.ascx</controlSrc>
<iconFile />
<helpUrl />
<supportsPartialRendering>True</supportsPartialRendering>
<controlTitle />
<controlType>View</controlType>
</moduleControl>
</moduleControls>
</moduleDefinition>
</moduleDefinitions>
</desktopModule>
</component>
<component type="Assembly">
<assemblies>
<assembly>
<path>bin</path>
<name>WebApplication1.dll</name>
<sourceFileName>WebApplication1.dll</sourceFileName>
</assembly>
</assemblies>
</component>
<component type="File">
<files>
<basePath>DesktopModules/WebApplication1</basePath>
<file>
<name>WebUserControl1.ascx</name>
<sourceFileName>WebUserControl1.ascx</sourceFileName>
</file>
<file>
<path>App_LocalResources</path>
<name>WebUserControl1.ascx.resx</name>
<sourceFileName>WebUserControl1.ascx.resx</sourceFileName>
</file>
</files>
</component>
</components>
</package>
</packages>
</dotnetnuke>
Put WebUserControl1.ascx, WebApplication1.dll, WebUserControl1.ascx.resx into a zip file and upload as a module.
I'm not sure why, but I have to go into the module definition of WebApplication1 and add the portals the module can be added to.
The above steps are the most simplistic I would use to get a module up and working, even if it doesn't do much. [I made the one I was testing with display the time on a Label].
Personally, I wouldn't get into module development without a template of some sort, such as http://codeendeavortemplate.codeplex.com/. I don't use that one, or the DNN starter kits - I've rolled my own template since I first started. I gotta have it customized my way. :)
I'm not sure how much those steps are going to help you, but I do hope they are simple and clear enough to get you started with something, even if it's more questions. :)
[I tried to be exact with my steps here and what I did, though I may have missed a change in my test that didn't get reflected here]
EDIT :: There we go - ReEdited to clear up a step and fix the broken that editing did to my manifest.