Да, репозитарий скрывает в себе логику выборки данных из БД, предоставляя методы типа GetActiveAccounts, GetAccountByID и т.п. По мне так отдельно использовать можно, но если у Вас идет модификация данных различных сущностей и она должна происходить в рамках одной транзакции - тут уж никуда не денешься от UnitOfWork. По поводу CRUD операций - получается репозитарий выполняет манипуляции с данными, а UnitOfWork следит за тем, что бы это все прошло единой транзакцией.
А какую цель Вы преследуете? Если цель - чтобы приложение работало на каких-то специфичных девайсах без поддержки яваскрипта - это одно, можно и на сервере реализовывать логику и каждый раз перегружать страницу , если Вы просто не хотите изучать яваскрипт - то серьезно веб приложения разрабатывать не получится, как бы от этого не бежали, все равно и в asp.net forms и в asp.net mvc везде надо его понимать, это как работать стоматологом, и не любить бормашину :-), уж лучше тогда не под веб разрабатывать.
Несколько дней мучился, и задав вопрос нашел такой ответ: использование библиотеки taglib www.nuget.org/packages/taglib/.
Она и валидность самого видео проверяет, и все нужные мне параметры.