ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?

Ok, estou bastante confuso sobre os IDs de controles criados dinamicament

Public Class TestClass
    Inherits Panel
    Implements INamingContainer

    Function TestClassInit() Handles Me.Init

        Dim pnlMainPanel As New Panel
        Me.Controls.Add(pnlMainPanel)

        Dim pnlTest1 As New Panel
        pnlMainPanel.Controls.Add(pnlTest1)

        pnlTest1.ClientIDMode = UI.ClientIDMode.Inherit ' DEFAULT
        'pnlTest1.ID = "ctl01"
        'pnlTest1.UniqueID = "ctl00$MainPanel$ctl01"
        'pnlTest1.ClientID = "MainPanel_ctl01"
        'pnlTest1.UniqueClientID = "ctl00_MainPanel_ctl01"
        'pnlTest1.StaticClientID = ""

        pnlTest1.ClientIDMode = UI.ClientIDMode.Predictable
        'pnlTest1.ClientID = "MainPanel_ctl01" (no change)

        pnlTest1.ClientIDMode = UI.ClientIDMode.AutoID
        'pnlTest1.ClientID = "ctl00_MainPanel_ctl01"

        pnlTest1.ClientIDMode = UI.ClientIDMode.Static
        'pnlTest1.ClientID = ""

    End Function
End Class

Por que os 5 IDs diferentes ??

Quando você deve usar os diferentes modos de identificação?

(Li os documentos do MSDN, mas eles não eram, como de costume, particularmente esclarecedores.)

Se eu não me importoo qu o ID é e apenas deseja adicionar um controle e atribuir seu ID a um extensor AJAX adicionado dinamicamente, que combinação de modo / ID devo usa

questionAnswers(3)

yourAnswerToTheQuestion