phpからasp.netに移行しようと思って昨日から勉強しています。
あるサイトのサンプルコードを見て疑問に思ったのですが、

<form runat="server">
  <asp:ListBox id="lb_Address" runat="server">
    <asp:ListItem>東京</asp:ListItem>
    <asp:ListItem>神奈川</asp:ListItem>
    <asp:ListItem>千葉</asp:ListItem>
    <asp:ListItem>埼玉</asp:ListItem>
  </asp:ListBox>
  <asp:TextBox id="tb_Name" runat="server" />
  <asp:Button id="btn_Submit" Text="Submit" runat="server" />
</form>

なぜこのようにわざわざaspの独自タグ?(サーバコントロールと書かれていましたが)で記述するのでしょうか?
phpからきた自分としては、htmlで出来る部分はhtmlでやって、
プログラム的な部分だけC#なりVB.NETなりで記述するものなのでは?と思ってしまうのですが、
これはhtmlで<input>等と直接記述するのと比べて何か意味があるのでしょうか?
馬鹿っぽ質問で申し訳ないですがよろしくお願いします。