Я могу вспомнить две проблемы с вышеупомянутым методом.
Во-первых,
XElement iconImage = new XElement("img",
new XAttribute("src", ResolveUrl("~/image.gif")),
new XAttribute("alt", "This is an image"));
Ссылаясь на то, что вы пишете выше, мы можем получить что-то вроде:
<img src=<%=whatever%> alt=<%=whatever%> />
Это может быть личное суждение или что-то подобное, но я, конечно, голосую за более позднего, более "читаемого" человека. Правильно, использование LINQ 2 XML может избавить от странных <%}%>, которые блуждают на моих страницах aspx, но в то же время вы заставляете этих "хороших мальчиков" выглядеть неуклюже.
Во-вторых, может возникнуть проблема с производительностью. Я думаю, что синтаксический анализ и выполнение LINQ 2 XML может быть довольно медленным, хотя у меня нет никаких данных по этому поводу.
Лично я все еще экспериментирую с платформой MVC, похоже, что я возвращаюсь к старым временам, таким как ASP или PHP 3.X, так как почти все интерактивные части обрабатываются явно, а не ориентированная на окна / GUI-OOP ASP Dot Net Фреймворк. Я думаю, что главная причина, по которой я буду использовать MVC, заключается в том, что он может гарантировать наилучшее качество клиентских HTML-кодов.