亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

讓你的web程序“動”起來。

2019-11-17 02:07:24
字體:
來源:轉載
供稿:網友

讓你的web程序“動”起來。

看到這里你可能會問,asp.net程序本身就是動態網站,還要如何動?

我這里所謂的動起來,是指動態加載,動態更新。好吧可能你又要問了動態網站本來就是動態加載,動態更新的。asp.net的程序依附于IIS(當然不是唯一)運行的,有代碼的更新,只需要拷貝到對應的目錄下面。刷新界面就加載最新程序了。無需重啟IIS。

但是我這里所說的是動態加載腳本。這里的腳本是C#的類文件(*.cs)文件動態編譯加入內存運行實例。

可能有人要問,這個有什么必要????

如果程序有修改,修改-編譯-拷貝。就是最新程序,不會影響線上程序??墒悄阆胂耄绻且粋€很小的問題呢?如果因為不同的需求變更,很小的代碼修改就行。那有必要編譯代碼,上傳文件嘛?

又或者你現在身邊的電腦沒有編譯工具,但是需要需改程序的某些功能,在允許范圍內情況下,你該怎么辦?

也許你說這些都是無聊的。沒有必要,沒有使用場景~!、

好吧,我只能說你沒有遇到而已,你問問你身邊管理發布程序部署程序的人,他們的難處吧,每一次小小的bug更新,都要拷貝多個文件上傳至服務器是一件多么麻煩的事情。

好吧。不廢話了,我來來講講為什么我要寫這篇文章,我是遇到了什么情況吧。

這段時間,我給一個公司的門戶網站改版,前臺的展示頁面要求純靜態頁面。

純靜態頁面也就要求在后臺更新了網站內容以后,需要發布生成純靜態頁面放在網站目錄下用于訪問~!

我用到的技術就是,通過模板文件,生成內容頁,然后保存文件。

但是模板文件里面包含一些內容需要在C#代碼里面構建,然后替換模板文件內容。

C#里面構建的HTML里面或許標簽,或許CSS樣式。有問題需要更新,或是需求變更需要更新,這個都是常事。但是一旦有更新就去修改代碼,發布,是一件非常頭疼的事情,我之前就描述過了。

在之前的文章一步一步開發Game服務器(三)加載腳本和服務器熱更新(二)完整版介紹過如果加載腳本文件,可是之前的測試有一個問題沒有測試過在asp.net下運行。

問題在于讀取本程序加載的引用的程序集問題。

之前查詢引用程序集,的時候查找了引用的程序集下面引用的程序集,導致在IIS加載了一些無法加載的文件,

            var asss = AppDomain.CurrentDomain.GetAssemblies();            foreach (var item in asss)            {                foreach (var item222 in item.GetModules(false))                {                    ddlNames.Add(item222.FullyQualifiedName);                }            }

需要改成這樣如下,需要查找引用程序集下引用的程序集

            var asss = AppDomain.CurrentDomain.GetAssemblies();            foreach (var item in asss)            {                if (!item.ManifestModule.IsResource() && item.ManifestModule.FullyQualifiedName.EndsWith(".dll") || item.ManifestModule.FullyQualifiedName.EndsWith(".DLL"))                {                    ddlNames.Add(item.ManifestModule.FullyQualifiedName);                }            }

我們創建一個IScript文件夾創建一個ICreateScript.cs 接口文件

namespace TestWebLoadScript.IScripts{    public interface ICreateScript : IBaseScript    {        void CreateHtml(Page page, string type);    }}

之前的文章里面講述了,,就是我定義的腳本加載器,不知道你加載了那些類,由于是腳本類不知道類名和實例,所以通過接口控制,也可看作接口編程。

接下來我們創建一個Scripts 文件夾 然后創建 PC 文件 然后下面創建 Default文件夾

創建 Indexhtml.temp文件存放模板代碼

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title>我是Default版本</title></head><body>    <form id="form1">    <div>    <%string%>    </div>    </form></body></html>

上面的<%string%> 是替換關鍵字

創建CreateIndexScript.cs 文件來實現html文件的創建

namespace TestWebLoadScript.Scripts.PC.Default{    public class CreateIndexScript : ICreateScript    {        string filePath = "C:/html/PC/index.html";        public void CreateHtml(System.Web.UI.Page page, string type)        {            if (type == "Default")            {                if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(filePath)))                {                    System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filePath));                }                string htmlPath = page.Server.MapPath("/Scripts/PC/Default/Indexhtml.temp");                string htmlContext = System.IO.File.ReadAllText(htmlPath);                using (System.IO.StreamWriter sw = System.IO.File.CreateText(filePath))                {                    sw.Write(htmlContext.Replace("<%string%>", "我是Default " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")));                }            }        }    }}

創建一個index.aspx 頁面

namespace TestWebLoadScript{    public partial class index : System.Web.UI.Page    {        PRotected void Page_Load(object sender, EventArgs e)        {            string savePath = Server.MapPath("/") + System.Configuration.ConfigurationManager.AppSettings["scriptPath"].ToString();            Sz.Network.LoadScriptPool.LoadScriptManager.GetInstance.LoadCSharpFile(new string[] { savePath });            var scripts = Sz.Network.LoadScriptPool.LoadScriptManager.GetInstance.GetInstances<ICreateScript>();            string type = this.Request["type"];            foreach (var script in scripts)            {                script.CreateHtml(this, type);            }        }    }}

這是我們目前的程序需求情況,生成index的HTML模板

這時候發布web程序。

可是突然需求該了,或者說是模板改變了,如果我們的生成HTML、模板的程序是寫死了在代碼里面的話,那么這時候我們肯定需要更改代碼,。然后編譯。,再次發布。根據數據生成最新模板頁面;

很麻煩是嘛。

但是我們做成了腳本生成后,

我們把這兩個文件復制,拷貝一次,修改一下,換成

QQ版本

當然需要修改一下腳本文件的命名空間

namespace TestWebLoadScript.Scripts.PC.QQ

生成了qq版本的靜態頁面了。

我們把同樣的代碼在復制一份,創建Mobile版本;

再次生成,就完成了各個版本的靜態頁生成。

看到這里不知道各位看官有什么需要吐槽的呢????歡迎留言~!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久91精品国产91久久久| 国产亚洲精品久久| 亚洲欧美国产高清va在线播| 欧美性高潮床叫视频| 国产丝袜一区二区| 欧美一级电影免费在线观看| 日本乱人伦a精品| 日韩在线视频中文字幕| 九九热视频这里只有精品| www国产精品com| 亚洲tv在线观看| 在线免费观看羞羞视频一区二区| 欧美体内谢she精2性欧美| 成人在线观看视频网站| 91社区国产高清| 日韩经典中文字幕在线观看| 日韩免费在线免费观看| 日韩av有码在线| 国产成人激情视频| 亚洲一二在线观看| 成人免费视频网址| 亚洲欧洲自拍偷拍| 中文字幕亚洲欧美日韩2019| 久久69精品久久久久久国产越南| 亚洲视频axxx| 欧美电影在线观看| 上原亚衣av一区二区三区| 国产一区二区丝袜高跟鞋图片| 日韩视频免费在线| 精品视频在线观看日韩| 欧美专区中文字幕| 欧洲永久精品大片ww免费漫画| 日韩成人中文字幕在线观看| 亚洲人成电影在线| 91精品久久久久久久久久久久久久| 欧美日韩精品在线播放| 最近中文字幕mv在线一区二区三区四区| 日本高清+成人网在线观看| 日韩欧美亚洲国产一区| 日韩网站免费观看| 日本精品性网站在线观看| 亚洲国产成人久久综合| 国产精品视频男人的天堂| 欧美日韩激情美女| 色偷偷av亚洲男人的天堂| 一级做a爰片久久毛片美女图片| www.亚洲天堂| 91精品国产高清自在线| 欧美激情视频在线| 亚洲最大av在线| 国产97免费视| 欧美日韩激情网| 亚洲精品福利资源站| 亚洲精品免费网站| 国产精品高潮呻吟视频| 国产成人精品在线视频| 欧美黑人又粗大| 国产精品久久久久久久久久99| 色无极影院亚洲| 国产欧美日韩精品在线观看| 亚洲人成电影网站色…| 亚洲国产精品网站| 在线观看国产精品日韩av| 91av免费观看91av精品在线| xvideos亚洲人网站| 国产日韩中文字幕在线| 青青精品视频播放| 亚洲国产欧美一区二区丝袜黑人| 国产精品美女av| 国产精品久久久久久婷婷天堂| 另类图片亚洲另类| 成人福利网站在线观看| 伊人久久五月天| 成人黄色av网站| 国产精品久久久久福利| 国产精品1区2区在线观看| 亚洲专区国产精品| 在线观看欧美www| 国产精品亚洲激情| 亚洲精品日韩激情在线电影| 国产成人精品免费久久久久| 亚洲美女又黄又爽在线观看| 97涩涩爰在线观看亚洲| 日韩成人在线网站| 欧美天堂在线观看| 福利精品视频在线| 日韩视频免费大全中文字幕| 国产免费一区二区三区在线观看| 午夜美女久久久久爽久久| 精品久久久久久亚洲国产300| 欧美性视频在线| 91久久精品一区| 欧美日韩第一视频| 欧美极品少妇与黑人| 国产在线播放不卡| 91精品国产免费久久久久久| 亚洲欧美变态国产另类| 国产精品夜间视频香蕉| 亚洲欧美一区二区三区四区| 97婷婷大伊香蕉精品视频| 欧美日本在线视频中文字字幕| 激情亚洲一区二区三区四区| 日韩欧美国产激情| 中文字幕亚洲自拍| 亚洲日韩欧美视频一区| 亚洲专区国产精品| 国产成人精品亚洲精品| 成人精品一区二区三区电影免费| 国产精品jizz在线观看麻豆| 亚洲女人天堂视频| 欧美又大又粗又长| 亚洲国产日韩欧美在线动漫| 亚洲日本中文字幕免费在线不卡| 日本三级韩国三级久久| 国产成人精品国内自产拍免费看| 精品久久久久久| 中文字幕亚洲在线| 亚洲国内高清视频| 亚洲免费视频一区二区| 欧美与黑人午夜性猛交久久久| 国产精品九九九| 日韩电影免费在线观看| 欧美丰满片xxx777| 亚洲人成网站免费播放| 久久综合色影院| 在线播放日韩av| 久久婷婷国产麻豆91天堂| 国产精品久久久久久网站| 国产午夜精品理论片a级探花| 日韩在线精品一区| 亚洲国产精久久久久久| 国产精品日本精品| 亲子乱一区二区三区电影| 日韩电影免费在线观看中文字幕| 国产精品久久久久久久久男| 久久久免费观看视频| 97久久超碰福利国产精品…| 91超碰中文字幕久久精品| 亚洲国产精品国自产拍av秋霞| 一本大道香蕉久在线播放29| 中日韩美女免费视频网址在线观看| 亚洲人成自拍网站| 亚洲人成网站色ww在线| 亚洲国产精品久久久久久| 亚洲欧洲在线视频| 97精品一区二区三区| xxx欧美精品| 亚洲成人激情在线| 国产精品你懂得| 国产综合久久久久| 黑人巨大精品欧美一区二区免费| 国内精品国产三级国产在线专| 97视频在线观看亚洲| 日韩中文字幕精品| 97视频在线观看免费高清完整版在线观看| 中文字幕日韩欧美在线| 国产欧美日韩精品在线观看| 国产一区二区日韩精品欧美精品| 欧美日韩在线视频一区| 日韩精品久久久久| 九九视频这里只有精品| 国产97在线播放| 亚洲欧美在线免费| 色综合天天狠天天透天天伊人|