簡體   English   中英

使用Web瀏覽器控件提供離線罐裝Web內容

[英]Serve canned offline web content using the Web Browser control

我正在為公司的舊版VB應用程序開發C#替代品。 前端基本上是Windows窗體內部的Web瀏覽器控件,用於提供脫機內容,有時會對其進行更改以包括用戶數據。 由於舊版應用程序中有100個或更多的Web文件,因此我們將在舊應用程序中使用新的C#包裝器重用舊應用程序的Web UI,並根據需要對其進行修改。

我的問題是關於如何存儲和交付Web內容的。

  • 將Web文件復制到臨時文件夾並將Web瀏覽器控件指向臨時文件夾的file://地址是否有意義?
  • 是否有某種預先構建的對離線友好的服務器框架,比將文件復制到臨時文件夾更有意義?
  • 我的項目中有Web源文件作為資源,但是我不確定這是否適合我的用途。 是嗎?
  • 傳統的VB實現更改Web文件以使用Substring方法注入數據; 它搜索魔術字符串,並將其替換為適當的數據。 該代碼聞起來很糟糕,我是否應該考慮一種更好的,更本地化的數據注入策略?

一些背景:

  • 數據使用HTML \\ CSS \\ JS(有時也使用XSL)顯示。
  • 瀏覽器提供在編譯時可用的內容。
  • 當用戶單擊頁面的按鈕時,我將不得不使用c#代碼處理一些事件。
  • 我可以自由選擇實現該應用程序所需的任何方法。

主機

我可能會避免使用一個臨時位置作為Web內容,這似乎有些粗糙。 如果您的html頁面之間沒有內部鏈接,並且所有css / js都嵌入到一個文件中,則僅使用WebBrowser.DocumentText屬性可能會更容易。

我已經成功用作輕量級嵌入式Web服務器的另一個選項是logv-http ,它具有易於配置的語法。 如果要針對本地主機以外的其他任何配置進行配置,則它確實需要管理員權限,但聽起來一切都將是本地的。

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

模板

我認為字符串替換不一定壞,取決於有多少個字符串以及它們要變得多么復雜,但是對於簡單的find替換來說,它應該不太難管理。 如果有很多替換項,將它們包裝到RegEx中將有助於提高性能。

將Web內容存儲為嵌入式資源可能是我的處理方式,您可以在運行時將它們讀出來,然后進行預處理,然后通過Web服務器方法返回或直接返回到DocumentText中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM