Вы должны пойти с WPF. Silverlight используется для расширения функциональности веб-сайта. Это модель подключаемого модуля, которая позволяет использовать код C # для создания анимации и добавления функциональности программирования в ваш проект. Вы можете добавить проект Silverlight в свой существующий веб-сайт, так что думайте о нем как о Flash. На самом деле, существует много сравнений Silverlight и Flash в Интернете, так что вы можете проверить их.
Приложение браузера WPF похоже на приложение, преобразованное в веб-сайт, поэтому термин «страницы» в отличие от «окон». И Silverlight, и XBAP имеют ограничения по сравнению с WPF. Если вы хотите создать автономное приложение, которое обращается к локальной базе данных, тогда WPF - это то, что вам нужно. Если вы хотите развернуть ваше приложение как веб-приложение, страницы которого пользователь может просматривать с помощью кнопок «назад» и «вперед» IE, можно использовать XBAP. Кроме того, после того, как вы обновите проект XBAP и опубликуете новую версию, пользователь будет использовать эту версию, поэтому никаких обновлений на стороне клиента не требуется.
P.S. Грег сказал, что браузерные приложения имеют последовательность выполнения с обратным потоком. Хотя я согласен с этим, приложения WPF, безусловно, могут достичь того же. Вы можете воспользоваться пользовательскими элементами управления и рассматривать каждый из них, как если бы это было главное окно. Все, что вам нужно, это передавать информацию между пользовательскими элементами управления, когда это необходимо.