Вы можете использовать C# для своей веб-страницы. Создайте пустой проект, затем добавьте веб-страницу (не визуальный веб-сайт) в проект. Используйте объектную модель C# для запроса объекта SPList, затем выполните цикл foreach, чтобы выплескивать значения в вашу навигационную панель.
Боль с C# возникает, когда вам нужно обновить свою функцию с другим номером версии для решения. То есть, если вы не прекратите процесс обновления функций. Пробный экземпляр веб-страницы версии застрял в зонах WP любого ASPX, в котором они хранятся. Я сохраняю свои решения в версии 1.0, а затем обратите внимание на номер версии сборки в описании функции, которая отображается в списке функций в настройках сайта.
Вы можете использовать JavaScript для своей функции веб-части. Создайте пустой проект, затем добавьте веб-страницу (не визуальный веб-сайт) в проект. Вызовите веб-службу для getitems в определенном списке навигации. Visual studio создаст сильно названный класс для сайта SP, в котором живет этот список, который хранит определение всех списков на этом сайте. Если ваш навигационный список изменится, обновите веб-службу и обновите этот сильно названный класс.
Когда ваша веб-часть запускается, веб-служба будет запускаться как пользователь, который вошел в систему. Поэтому либо убедитесь, что у всех посетителей есть права на просмотр, либо сделать учетную запись службы AD для вызова веб-службы. Как только ваш Javascript вернет XML, используйте парсер, подобный Lync to XML, чтобы получить данные и выплевывать HTML в панель навигации.
Это больше о удобном предпочтении, чем лучше. Если вы используете SharePoint 2013, сделайте приложение SP вместо функции фермы. Затем вы можете использовать только JavaScript и веб-службы.
Вы можете использовать либо - все, что лучше подходит вашему делу. Поскольку нет критериев, которые «лучше» для вас, на этот вопрос нельзя ответить, поскольку он стоит сейчас. –