Сервирайте консервирано офлайн уеб съдържание, като използвате контролата на уеб браузъра

Разработвам заместител на C# за наследено VB приложение за моята компания. Предният край е основно контрола на уеб браузър във форма на Windows, обслужваща офлайн съдържание, което понякога се променя, за да включва данните на потребителя. Тъй като в наследеното приложение има 100 или повече уеб файла, ние ще използваме отново уеб интерфейса от старото приложение с нова C# обвивка около него, като ги модифицираме според нуждите.

Въпросите ми са за това как да съхранявам и доставям уеб съдържанието.

  • Има ли смисъл да копирате уеб файловете във временна папка и да насочвате контролата на уеб браузъра към file:// адреса на временната папка?
  • Има ли някакъв вид предварително изградена офлайн-удобна сървърна рамка, която има повече смисъл от копирането на файловете във временна папка?
  • Имам уеб изходните файлове в моя проект като ресурси, но не съм сигурен дали това е подходящо за моята употреба. Така ли?
  • Наследеното внедряване на VB променя уеб файловете за инжектиране на данни с помощта на методи Substring; той търси магически низове и ги заменя с подходящите данни. Този код мирише доста лошо, има ли по-добра, по-нативна стратегия за инжектиране на данни, която трябва да разгледам?

Малко предистория:

  • Данните се представят с помощта на HTML\CSS\JS и понякога XSL.
  • Браузърът доставя съдържание, което е налично по време на компилиране.
  • Ще трябва да обработвам някои събития с помощта на c# код, когато потребителите щракнат върху бутони на страницата.
  • Свободен съм да избера какъвто и да е подход, необходим за внедряване на приложението.

person Mark F Guerra    schedule 09.12.2013    source източник


Отговори (1)


Хостинг

Вероятно бих избегнал използването на временно местоположение за уеб съдържанието, просто изглежда малко грубо. Ако няма вътрешно свързване между вашите html страници и целият css/js е вграден в един файл, може да е по-лесно просто да използвате WebBrowser.DocumentText.

Друг вариант, който успешно използвах като лек вграден уеб сървър, е http://logv.ws/logv-http/, той има доста лесен за конфигуриране на синтаксиса. Ако искате да конфигурирате нещо различно от localhost, това наистина изисква администраторски привилегии, но изглежда, че всичко ще бъде локално.

var server = new Server("localhost", 13337);
server.Get("http://localhost:13337" ,(req, res) => res.Write("Hello World!"));
server.Start();

Шаблониране

Мисля, че замените на низове не са непременно лоши, в зависимост от това колко са и колко сложни се опитват да бъдат, но за просто намиране на замяна не би трябвало да е твърде трудно за управление. Ако има много замени, опаковането им в RegEx трябва да помогне за производителността.

Съхраняването на уеб съдържанието като вградени ресурси е вероятно начинът, по който бих тръгнал по този начин, можете да ги прочетете по време на изпълнение, ако извършвате предварителна обработка и след това да се върнете или чрез метода на уеб сървъра, или директно в DocumentText.

person David Ewen    schedule 10.12.2013