Here's some basic facts taken from current DNN 5.1.0 source package:
Project Provider.Membership.AspNetProvider
Assembly DotNetNuke.Provider.AspNetProvider
File AspNetMembershipProvider.vb
Class DotNetNuke.Security.Membership.AspNetMembershipProvider
Inherits
Class DotNetNuke.Security.Membership.MembershipProvider
which is from
Project DotNetNuke.Library
Assembly DotNetNuke
File /Security/Membership/MembershipProvider.vb
Project Provider.Membership.DataProvider
Assembly DotNetNuke.Membership.DataProvider
File SqlDataProvider.vb
Class DotNetNuke.Security.Membership.Data.SqlDataProvider
Inherits
Class DotNetNuke.Security.Membership.Data.DataProvider
which is from
Project Provider.Membership.DataProvider
Assembly DotNetNuke.Membership.DataProvider
File DataProvider.vb
Given the above, I have a number of questions:
1) Any conventions regarding naming of projects, assemblies, files, and classes? If so, then can those conventions be stated explicitly?
2) Any conventions regarding architectural organization? Other than a concrete class inheriting from an abstract class, what convention determines which functionality goes in one abstract class versus the other abstract class when both abstract classes have similarly named functions?
Can anybody explain the principles and conventions here in a clear straightforward manner?