Александр А: Кроссплатформенность реализуется базовыми классами, но это не исключает использование в них нативных функций. Смотрите код StreamReader, сколько там используется функций из Microsoft.Win32.Win32Native
HoHsi: Так вы клиенту предварительно говорите сколько планируется затратить времени. Потом делаете, если справились быстрее, то указываете сколько часов потратили, если дольше, то обосновываете почему вышло больше. А за какие часы брать деньги (только работа или еще поиск доп.инфа). Так на Тостере полно ответов по словам "upwork часы"
seredaes: Когда вы работаете с элементом form страницы. (www.w3schools.com/tags/att_form_enctype.asp) вы можете указать атрибут enctype. И в зависимости от типа данные будут паковаться по разному. Так же с jquery ajax.
angryufo: А стоимость этого периода сопоставима с ЗП тестировщика? Начинайте просто продажи системы и добавьте на каждой странице кнопку "Сообщить об ошибке". За портаченные средства вам быстро напишут список обнаруженных ошибок.
Захаров Александр: Какова ваша цель? Если у вас .NET Web приложение, то вам нужно использовать HttpModule и HttpHandlers. Если вы хотите сделать фильтр для старых ASP приложений, то тогда всеже лучше ISAPI на С++.
theMacros: Вы ведь это уже делаете "То есть если на странице нужна превьюшка 50х50 то она формируется именно в момент загрузки страницы." Перенесите эту часть кода на отдельный сервер. Раз хочется распределенности. А картинки сами хранить на CDN