Forming using InfoPath is the easiest way to publish a form to SharePoint. Please note that it has many limitations, and you can try to put some kind of problematic logic or require an additional function.
C # programming requires knowledge of C # (of course) and knowledge of the SharePoint API. In addition, upon completion, the DLL must be published and trusted by SharePoint, which requires sysadmin intervention. This may not always be available to you, and there may be a problem the next time you upgrade SharePoint.
Finally, I recommend that you try to complete most of the material (including forms) simply by using the built-in features of SharePoint. If you immerse yourself in this a bit, you will find that you can create complex applications by simply customizing the list views, arranging the order of the fields, adding columns (and site columns), etc. The best thing about this approach is pure SharePoint. No additional knowledge (and people) is required.
Moshe source share