Pretty much.
You could certainly have 1 .asmx, and 30
classes. The .asmx is the only class that actually has exposable
WebMethods though, and then it could call into the various 30 classes
that had the actual logic.
For instance:
MyService.asmx
MyService.asmx.vb
<WebMethod()>_
Public Function GetCustomerData() as DataSet
Return CustomerClass.GetData()
End Function
<WebMethod()>_
Public Function GetEmployeeData() as DataSet
Return EmployeeClass.GetData()
End Function
Then the web service
project could have a CustomerClass and an EmployeeClass with the
corresponding logic and methods. The Customer and Employee
classes could be private classes that aren't seen outside the project,
and only the single .asmx with it's corresponding methods is
referenced.