广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    ASP+学习笔记(四)

    2018-04-13 09:17:14 次阅读 稿源:互联网
    零七广告
    五、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,应用当前应用及其自目录下的应用。
          WinNTComPlus<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"];
      
      
     

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告