国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP+學習筆記(四)

2019-11-18 22:13:27
字體:
來源:轉載
供稿:網友
五、asp+ MyWeb 應用
    
1).概述
    MyWeb是ASP+中的一門新技術,允許一個ASP+應用在沒有WEB服務器的機器上運行,實際在
IE內部運行,可以離線地運行。開發上與服務器端的應用開發無異。
    讓客戶可以在需要時進行安裝,這叫demand install。
    當用戶訪問一個MYWEB應用時,ASP+首先試圖從本地找到這個應用,如果找不到,則從
myweb:URL處下載應用說明(manifest),如果成功,則下載整個應用并安裝到本地。
    myweb在NGWS運行環境中執行(所以,客戶端必須安裝NGWS運行時庫),可以訪問獨立的
存儲系統,同時,可以建立到原來安裝這個應用的站點的連接。他們不能訪問本地機上的資源,
以及部分COM的調用(這有點類似于java中的APPLET)。
    
2).myweb管理工具
    如果安裝了IE55,并且安裝了NGWS運行時環境,則可以從瀏覽器工具條上選擇"myweb"按扭,
(位置在工具條的最后,就像安裝了金山詞霸后增加的那個工具一樣),或者也可以直接在瀏覽
器的地址欄里輸入 myweb:// ,就可以進入MYWEB管理工具。
    存在兩種類型的myweb應用,一是Remote的,二是Local的。
    可以用管理工具新安裝一個myweb應用,或者直接從瀏覽器地址欄里輸入myweb的URL,后一
種情況下,如果已經安裝了這個myweb應用,則將直接啟動該應用。
    
3).開發myweb應用
    跟開發一個ASP+服務器應用類似,最后需要一個CAB文件,用實用工具cabarc.exe生成,如:
    cabarc -p -r n myweb.cab *.aspx *.html *.jpg *.CSS *.dll *.web
    manifest文件是OSD(Open Software Description)格式,名為myweb.osd,一個例子:
    
    <softpkg name="Demo1" version="1.0">
        <implementation>
            <codebase href="http://somewhere.com/myweb.cab">
        </implementation>
        <homepage>myweb://somewhere.com/default.aspx</homepage>
        <Iconurl>myweb://somewhere.coom/icon.gif</Iconurl>
        <RemoteIconurl>http://somewhere.com/icon.gif</RemoteIconurl>
        <Author>white</Author>
        <Source> Beijing 123okey.Inc</Source>
        <size>3000</size>
    </softpkg>
    
4).略
5).獨立存儲空間
    myweb不能訪問本地文件系統,但可以訪問由GNWS提供的獨立存儲空間(IsolatedStorage),
就像訪問本地文件一樣,例:
    
    //讀取數據
    String _storeFile="mystore";
    ArrayList values=new ArrayList();
    IsolatedStorageFileStream stream = null;
    try{
        stream = new IsolatedStorageFileStream(_storeFile,FileMode.Open);
    }catch(Exception e){}
    if(null!=stream){
        values=(ArrayList)BinarySerializer.DeSerialize(stream);
        stream.Close();
        }
    
    //保存數據
    IsolatedStorageFileStream stream;
    stream = new IsolatedStorageFileStream(_stroeFile,FileMode.OpenOrCreate);
    ArrayList values = new ArrayList();
    values.Add("test1");
    ......
    BinarySerializer.Serializer(values,stream);
    stream.Close();
    
    使用上例時注意需要引入名稱空間:
    System.IO;
    System.IO.IsolatedStorage;
    System.Runtime.Serialization.Formatters;
        
6).離線數據同步
    現在這個版本的myweb還不支持自動地實現同步。
    可以用myweb.Connected屬性判斷當前是否連在網上。
    
    
六、Cache服務

    Caching動態產生的內容叫output catching。
    Caching專門的對象叫Data Catching。
    asp+中提供了專門的Cache引擎。

1).output caching
    設置response的expiration/validation,僅對GET和HEAD有效,支持URL中的參數,完全相同
時使用catching中的內容。內容缺省地將在cache中保存60分鐘。
    要讓一個.aspx文件被caching,僅需要加一行:
    <%@ OutputCache Duration="60" %>
    上面的60指60秒。
    要實現更多的控制,如下:
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
    Response.Cache.SetCacheability(HttpCacheability.Public);
    或者:
    SetExpires(DateTime.Now.AddSeconds(60));
    SetCacheability(HttpCacheability.Public);
    SetSlidingExpiration(true);
    
2).Data Caching
    Cache引擎可以讓你把對象保存到其中,只有應用重啟后才需要重建Cache。是一個字典接口,如:
    Cache["mykey"]=myValue;
    myValue = Cache["mykey"];
    if(myValue!=null)
    ......
    
    還可以支持清除,過期等,以及文件和鍵值以來(可以用于統計圖形,記數器等)。
    例:
    source = (DataView)Cache["MyDataSet"];
    if(source == null){
        ......
        source = new DateView(ds.Tables[0]);
        Cache["MyDataSet"] = source;
        }
    
    文件依賴:
    Cache.Insert("MyData",source,new CacheDependency(server.mappath("authors.xml")));
    時間過期:
    Cache.Insert("MyData",source,null,DateTime.Now.AddHours(1),TimeSpan.Zero);
    
    注意,為了防止資源訪問中的沖突,必須對資源訪問進行同步,如:
    PRivate static String CacheSynchronize;
    lock(CacheSynchronize)
    {......
    }
    

七、配置

    asp+中使用文件做配置。
    在其中,也可以配置自己的信息。
    
1).配置文件格式
    文件名為config.web,應用當前應用及其自目錄下的應用。
    WinNT/ComPlus/<version>/Config.web是整個系統的缺省配置。config.web不可能被瀏覽器
訪問到,即便放在WEB應用的目錄下。
    配置文件中分成兩小節,第一節指出誰來處理配置信息,第二小節是具體的配置數據。
    標準的ASP+配置處理器有:
    <httpmodules> 處理所有的請求
    <httphandlers> 將特定的URL映射到特定的處理器,子目錄中應用不繼承該配置。參考前面
            的http處理器和工廠。
    <sessionstate> session狀態處理器
    <globalization>
    <compilation> 編譯相關的處理
    <trace>  asp+ Trace服務
    <security> ASP+安全模塊
    <iisprocessmodel>  iis處理模塊
    <browsercaps>  處理瀏覽器兼容信息的設置
    
2).獲取配置信息
    可以用API直接訪問配置信息,比如Request.Browser對象的屬性直接獲得browsercapabilities
或者調用Context.GetConfig,比如:
    CustomConfigSettings Config=(CustomConfigSettings)Context.GetConfig("customconfig");
    if(config.Enabled==true)
    ......
    
    GetConfig可有第二個參數獲得指定的URL的配置。
    
    下面是一個保存應用自己的配置數據的例:
    <configuration>
        <configsections>
            <add name="databases" type="System.Web.Configuration.DictionarySectionHandler" />
        </configsections>
        <databases>
            <add key="pubs" value="server=localhost;uid=sa;pws="/>
            <add key="nothwind" value="server=localhost;uid=sa"/>
        </databases>
    </configuration>
    使用:
    String dsn = (String)((Hashtable)Context.GetConfig("databases"))["pubs"];



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 武胜县| 丹巴县| 古田县| 丰都县| 五华县| 集安市| 左权县| 卢湾区| 永平县| 芜湖县| 乌苏市| 左贡县| 旬阳县| 黎城县| 敦化市| 河池市| 越西县| 湛江市| 舞钢市| 上饶市| 景宁| 东丰县| 汉阴县| 茌平县| 临洮县| 仪陇县| 尤溪县| 高台县| 太保市| 樟树市| 新宁县| 马关县| 大同市| 丽水市| 巴林右旗| 古田县| 正安县| 五大连池市| 成都市| 吉林市| 乃东县|