【ASP】标签文章列表

用Asp+XmlHttp实现RssReader功能

<style>
body {margin:10px;background-color:#ffffff;margin-top:6px;}
form{margin:0px;}
* {font:12px tahoma;line-height:140%;color:#000000}
.title {font-weight:bold;color:red;}
.time {font:10px;color:#999999;}
a {text-decoration:none;color:blue;}
</style>
<script type=”text/javascript”>
var switcher=0;
</script>
<body ondblclick=”if(switcher==0){document.styleSheets[0].addRule(‘div’,’display:none’);switcher=1}else{document.styleSheets[0].addRule(‘div’,’display:block’);switcher=0}”>
<form name=”rssform” method=post action=””>
RSS资源:<INPUT TYPE=”text” NAME=”RssFeed” size=60 style=”height:22px” value=”<%=request(“RssFeed”)%>” onfocus=select()> <input type=”submit” value=”Read It”> &nbsp;&nbsp;双击鼠标可以关闭摘要,只显示标题
</form>
<hr/>
<%
If(request(“RssFeed”)=””) Then
url=”/rss2.asp”
else
url=request(“RssFeed”)
End If
Set xml = Server.CreateObject(“Microsoft.XMLHTTP”)
xml.Open ”GET”, url, False
xml.Send
Set xmlDom = server.createObject(“microsoft.xmldom”)
xmlDom.async=False
xmlDom.ValidateOnParse=false
xmlDom.load(xml.responseXML)
if xmlDom.ReadyState>2 Then
set oItem=xmlDom.getElementsByTagName(“item”)
for i=0 to oItem.length-1
response.write ”<span style=’font:bold 9px verdana;color:#000000′>”&i+1&”</span>. <a class=’title’ href=’”&oItem(i).childNodes(1).text&”‘ target=’_blank’>”&oItem(i).childNodes(0).text&”</a> <span class=’time’>["&oItem(i).childNodes(3).text&"]<br />”
response.write ”<div>摘要:”&oItem(i).childNodes(4).text&”</div><br>”
next
end if
%>

日期:2010年02月01日 | 分类:.NET, ASP

2009年微软Silverlight十大流行应用

      微软在2009年12月,发布Silverilght 4 Beta版本,其强大的功能,又一次吸引了众多RIA程序员的眼球,列出十个最流行的Silverlight应用项目如下:
     1. Microsoft SDK for FacebookSNS应用是2009年的热门话题,为了推广Silverlight,微软很快推出了Silverlight FaceBook SDK。
     2. Silverlight 3 和 Expression 3对于应用开发人员和界面设计人员来说,Silverlight Tools和Expression系列是最热门的应用。通过这两个应用,开发人员和设计人员可以快速开发出专业的Silverlight应用。
     3. Silverlight 4 BetaSilverlight 4 的发布,让大家耳目一新,更多新的功能吸引了众多微软技术的追随者。
     4. NASA应用Silverlight技术应用于NASA,NASA使用Silverlight技术播放太空空间站图片组。
     5. Netflix 和 Windows Media CenterNetflix使用Silverlight多媒体技术提供在线电影DVD视频查看服务。
    6. Wimbledon (温布尔顿网球公开赛)温布尔顿网球冠军赛使用Silverlight技术进行在线视频播放。
     7. NBC使用Silverlight技术获得艾美奖NBC使用Silverlight技术提供HD高清2008奥运会转播视频,获得艾美奖。
      8. NAB09的IIS Smooth Streaming洛杉矶NAB 2009使用IIS+Silverlight进行高清视频播放。
      9. 迈克尔杰克逊纪念视频网迈克尔杰克逊的粉丝使用Silverlight技术,创建迈克尔杰克逊的音乐纪念网站。
      10. Silverlight Bing和Bing Map控件微软提供Silverlight Bing Visual Search服务,另外发布了Bing Map控件。

日期:2010年01月26日 | 分类:ASP, 业界动态

ASP实现网页打开任何类型文件都保存

  当页面上有一个链接指向服务器一个Word文件,当客户端机器有安装Office时,点击链接将调用Word打开浏览;当客户端机器没有安装Office时,点击链接将弹出保存对话框。总结一下即如果浏览器认识文件类型,就会自动打开;如果不认识,则会提示客户保存。可是有时候我们希望不管什么类型文件,都不要打开,直接让客户端保存。要达到这个要求,对于保存在服务器硬盘上的文件就得利用ASPUpload组件的SendBinary方法来实现,而对于保存在数据库中的文件则只须打开记录集,然后将二进制数据直接输出到客户端即可,不过要告诉浏览器文件的MIME类型、文件名称和文件大小。
  1.服务器端硬盘上的文件
以下是引用片段:
<% 
Dim Upload,FilePath 
Set Upload = Server.CreateObject(“Persits.Upload”) 
FilePath = Server.MapPath(“.”) & ”\” & ”2003529213019.txt” 
‘SendBinary参数说明: 
‘参数一:文件物理路径 
‘参数二:是否将文件的MIME类型等信息传送给浏览器 
‘参数三:文件类型,可以指定具体的MIME类型,但一般都可以使用application/octet-binary 
‘参数四:让客户端保存文件还是直接打开。True:保存;False(默认):打开 
Upload.SendBinary FilePath,True,”application/octet-binary”,True 
%> 
  2.服务器端数据库中的文件
<% 
Dim objConn,objRs 
Set objConn = Server.CreateObject(“ADODB.Connection”) 
Set objRs = Server.CreateObject(“ADODB.RecordSet”) 
objConn.open ”Driver={Microsoft Access Driver (*.mdb)};dbq=” & Server.MapPath(“db1.mdb”) 
objRs.open ”select * from t5 where id=2″,objConn,1,3 
Response.ContentType = ”application/octet-stream” 
Response.AddHeader ”Content-Disposition”,”attachment;filename=” & objRs(“filename”) 
Response.AddHeader ”Content-Length”,CStr(objRs(“size”)) ’此处必须用CStr转换 
Response.BinaryWrite objRs(“file”) 
objRs.close 
Set objRs = nothing 
objConn.close 
Set objConn = nothing 
%> 
  此法要求保存文件时需同时保存文件名及文件大小!若未指定文件名及大小,如果浏览器认识该文件类型,将会自动打开;如果不认识,才会提示客户保存!

日期:2010年01月26日 | 分类:ASP

用ASP取出HTML里面的图片地址的函数

    用ASP取出HTML里面的图片地址的函数主要原理就是用正则判断的属性。这在采集程序中将非常有用。
  函数如下:
以下是引用片段:
Function ShowPic(str)  
  Set objRegExp = New Regexp’设置配置对象   
  objRegExp.IgnoreCase = True’忽略大小写   
  objRegExp.Global = True’设置为全文搜索   
  objRegExp.Pattern = ”<img.+?>”  
  ’为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<img>标签,然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。   
strs=trim(str)   
Set Matches =objRegExp.Execute(strs)’开始执行配置   
For Each Match in Matches   
RetStr = RetStr &getimgs( Match.Value )’执行第二轮的匹配   
Next   
ShowPic = RetStr  
End Function  
Function getimgs(str)   
getimgs=””   
Set objRegExp1 = New Regexp   
objRegExp1.IgnoreCase = True   
objRegExp1.Global = True   
objRegExp1.Pattern = ”http://.+?”””‘取出里面的地址   
set mm=objRegExp1.Execute(str)   
For Each Match1 in mm   
getimgs=getimgs&left(Match1.Value,len(Match1.Value)-1)&”||”‘把里面的地址串起来备用   
next   
End Function   
‘取得图片内容  
function getHTTPPage(url)   
on error resume next   
dim http   
set http=server.createobject(“MSXML2.XMLHTTP”)’使用xmlhttp的方法来获得图片的内容   
Http.open ”GET”,url,false   
Http.send()   
if Http.readystate<>4 then   
exit function   
end if   
getHTTPPage=Http.responseBody   
set http=nothing   
if err.number<>0 then err.Clear   
end function   
‘保存图片  
function saveimage(from,tofile)   
dim geturl,objStream,imgs   
geturl=trim(from)   
imgs=gethttppage(geturl)’取得图片的具休内容的过程   
Set objStream = Server.CreateObject(“ADODB.Stream”)’建立ADODB.Stream对象,必须要ADO 2.5以上版本   
objStream.Type =1′以二进制模式打开   
objStream.Open   
objstream.write imgs’将字符串内容写入缓冲   
objstream.SaveToFile server.mappath(tofile),2′-将缓冲的内容写入文件   
objstream.Close()’关闭对象   
set objstream=nothing   
end function   
‘调用实例  
Dim strpic,i,fname  
strpic = ShowPic(“<DIV align=center><IMG src=””图片地址”” border=0></DIV>”)  
strpic = Split(strpic,”||”)  
If UBound(strpic) > 0 Then   
For i = 0 To UBound(strpic) - 1  
‘保存图片  
fname=cstr(i&mid(strpic(i),instrrev(strpic(i),”.”)))   
saveimage(strpic(i),fname)  
Next  
Else  
End If

日期:2010年01月26日 | 分类:ASP

如何在ASP.Net 中把图片存入数据库

介绍
   可能有很多的时候,我们急需把图片存入到数据库当中。在一些应用程序中,我们可能有一些敏感的资料,由于存储在文件系统(file system)中的东西,将很容易被某些用户盗取,所以这些数据不能存放在文件系统中。
  在这篇文章中,我们将讨论怎样把图片存入到Sql2000当中。
  在这篇文章中我们可以学到以下几个方面的知识:
1.     插入图片的必要条件
2.     使用流对象
  3. 查找准备上传的图片的大小和类型
4.怎么使用InputStream方法?
插入图片的必要条件
在我们开始上传之前,有两件重要的事我们需要做:
#Form 标记的 enctype 属性应该设置成 enctype=”multipart/form-data”
# 需要一个<input type=file>表单来使用户选择他们要上传的文件,同时我们需要导入 System.IO名称空间来处理流对象
把以上三点应用到aspx页面。同时我们需要对SqlServer做以下的准备。
# 需要至少含有一个图片类型的字段的表
# 如果我们还有另外一个变字符类型的字段来存储图片类型,那样会更好一些。
现在,我们准备了一个Sql表(包含了一个image数据类型的字段),还有<input type=file>标记。当然我们还得准备Submit按钮,以便用户在选择了图片以后提交。在这个按钮的Onclick事件里,我们需要读取选取图片的内容,然后把它存入到表里。那我们先来看看这个Onclick事件。
提交按钮的Onclick事件的代码:
Dim intImageSize As Int64
     Dim strImageType As String
     Dim ImageStream As Stream
    ’ Gets the Size of the Image
    intImageSize = PersonImage.PostedFile.ContentLength
    ’ Gets the Image Type
    strImageType = PersonImage.PostedFile.ContentType
    ’ Reads the Image
    ImageStream = PersonImage.PostedFile.InputStream
    Dim ImageContent(intImageSize) As Byte
    Dim intStatus As Integer
    intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
    ’ Create Instance of Connection [...]

日期:2010年01月26日 | 分类:.NET

认识ASP.NET配置文件Web.config

一、认识Web.config文件
  Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的
Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
  在运行时对Web.config文件的修改不需要重启服务就可以生效(注:<processModel> 节例外)。当然Web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。
  二、web.config配置文件(默认的配置设置)以下所有的代码都应该位于
<configuration>
<system.web>
  和
</system.web>
</configuration>
  之间,出于学习的目的下面的示例都省略了这段XML标记
  1、<authentication> 节
  作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。<authentication> 元素必需与<authorization> 节配合使用。
  示例:
  以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。
<authentication mode=”Forms” >
<forms loginUrl=”logon.aspx” name=”.FormsAuthCookie”/>
</authentication>
  其中元素loginUrl表示登陆网页的名称,name表示Cookie名称
  2、<authorization> 节
  作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与<authentication> 节配合使用。
  示例:以下示例禁止匿名用户的访问
<authorization>
 <deny users=”?”/>
</authorization>
  注:你可以使用user.identity.name来获取已经过验证的当前的用户名;可以使用
web.Security.FormsAuthentication.RedirectFromLoginPage方法将已验证的用户重定向到用户刚才请求的页面.具体的实例请参考:
  Forms验证 http://www.fanvb.net/websample/dataauth.aspx
  3、<compilation>节
  作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.在程序编译完成交付使用之后应将其设为True(Web.config文件中有详细说明,此处省略示例)
  4、<customErrors>
  作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。
  示例:当发生错误时,将网页跳转到自定义的错误页面。
<customErrors defaultRedirect=”ErrorPage.aspx” mode=”RemoteOnly”>
</customErrors>
  其中元素defaultRedirect表示自定义的错误网页的名称。mode元素表示:对不在本地 Web 服务器上运行的用户显示自定义(友好的)信息。
  5、<httpRuntime>节
  作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。
  示例:控制用户上传文件最大为4M,最长时间为60秒,最多请求数为100
<httpRuntime maxRequestLength=”4096″ executionTimeout=”60″ appRequestQueueLimit=”100″/>
  6、 <pages>
  作用:标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。<pages>可以在计算机、站点、应用程序和子目录级别声明。
  示例:不检测用户在浏览器输入的内容中是否存在潜在的危险数据(注:该项默认是检测,如果你使用了不检测,一要对用户的输入进行编码或验证),在从客户端回发页时将检查加密的视图状态,以验证视图状态是否已在客户端被篡改。(注:该项默认是不验证)
<pages buffer=”true” enableViewStateMac=”true” validateRequest=”false”/>
  7、<sessionState>
  作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。
  示例:
<sessionState mode=”InProc” cookieless=”true” timeout=”20″/>
</sessionState>
  注:
  mode=”InProc”表示:在本地储存会话状态(你也可以选择储存在远程服务器或SAL服务器中或不启用会话状态)
  cookieless=”true”表示:如果用户浏览器不支持Cookie时启用会话状态(默认为False)
  timeout=”20″表示:会话可以处于空闲状态的分钟数
  8、<trace>
  作用:配置 ASP.NET 跟踪服务,主要用来程序测试判断哪里出错。
  示例:以下为Web.config中的默认配置:
<trace enabled=”false” requestLimit=”10″ pageOutput=”false” traceMode=”SortByTime” localOnly=”true” />
  注:
  enabled=”false”表示不启用跟踪;requestLimit=”10″表示指定在服务器上存储的跟踪请求的数目
  pageOutput=”false”表示只能通过跟踪实用工具访问跟踪输出;
  traceMode=”SortByTime”表示以处理跟踪的顺序来显示跟踪信息
  localOnly=”true” [...]

日期:2010年01月26日 | 分类:.NET

Asp.net中防止用户多次登录的方法

在web开发时,有的系统要求同一个用户在同一时间只能登录一次,也就是如果一个用户已经登录了,在退出之前如果再次登录的话需要报错。
常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的一个对象):
string strUserId = txtUser.Text;
ArrayList list = Application.Get(“GLOBAL_USER_LIST”) as ArrayList;
if (list == null)
{
list = new ArrayList();
}
for (int i = 0; i < list.Count; i++)
{
if (strUserId == (list[i] as string))
{
//已经登录了,提示错误信息
lblError.Text = ”此用户已经登录”;
return;
}
}
list.Add(strUserId);
Application.Add(“GLOBAL_USER_LIST”, list);
当然这里使用Cache等保存也可以。
接下来就是要在用户退出的时候将此用户从Application中去除,我们可以在Global.asax的Session_End事件中处理:
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
string strUserId = Session["SESSION_USER"] as string;
ArrayList list = Application.Get(“GLOBAL_USER_LIST”) as ArrayList;
if (strUserId != null && list != null)
{
list.Remove(strUserId);
Application.Add(“GLOBAL_USER_LIST”, list);
}
}
这些都没有问题,有问题的就是当用户直接点浏览器右上角的关闭按钮时就有问题了。因为直接关闭的话,并不会立即触发Session过期事件,也就是关闭浏览器后再来登录就登不进去了。
这里有两种处理方式:
1、使用Javascript方式
在每一个页面中加入一段javascript代码:
function window.onbeforeunload()
{
if (event.clientX>document.body.clientWidth && event.clientY<0||event.altKey){
window.open(“logout.aspx”);
}
}
由于onbeforeunload方法在浏览器关闭、刷新、页面调转等情况下都会被执行,所以需要判断是点击了关闭按钮或是按下Alt+F4时才执行真正的关闭操作。
然后在logout.aspx的Page_Load中写和Session_End相同的方法,同时在logout.aspx中加入事件:onload=”javascript:window.close()”
但是这样还是有问题,javascript在不同的浏览器中可能有不同的行为,还有就是当通过文件->关闭时没有判断到。
2、使用xmlhttp方法(这种方法测试下来没有问题)
在每个页面中加入如下的javascript(这些javascript也可以写在共通里,每个页面引入就可以了)
var x=0;
function myRefresh()
{
var httpRequest = new ActiveXObject(“microsoft.xmlhttp”);
httpRequest.open(“GET”, ”test.aspx”, false);
httpRequest.send(null);
x++;
if(x<60) //60次,也就是Session真正的过期时间是30分钟
{
setTimeout(“myRefresh()”,30*1000); //30秒
}
}
myRefresh();
在web.config中设置
<sessionState mode=”InProc” timeout=”1″></sessionState>
test.aspx页面就是一个空页面,只不过需要在Page_Load中加入:
Response.Expires = -1;
保证不使用缓存,每次都能调用到这个页面。
原理就是:设置Session的过期时间是一分钟,然后在每个页面上定时每30秒连接一次测试页面,保持Session有效,总共连60次,也就是30分钟。如果30分钟后用户还没有操作,Session就会过期。当然,如果用户直接关闭浏览器,那么一分钟后Session也会过期。这样就可以满足要求了。

日期:2010年01月26日 | 分类:.NET

在Asp.net MVC中使用Repeater

1. Repeater需要手动去绑定数据。 意思是说我们要在View当中写 服务端代码,先从ViewData中取得数据,再去绑定到Repeater。
    2. 如果一个页面用到n+1个Repeater,那会不会疯掉? 而且要给每一个Repeater指定 Id,必去绑数据,头痛啊!!! 
    那么~~ 可不可以让Repeater用起来简单点呢? 来对Repeater进行一下改造,达到目的。
    在Mvc当中,使用 ViewData 来传递数据,那可不可以直接让Repeater 绑定 ViewData 中的数据呢? 当然可以
    看改造后的 Repeater 源码:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.Mvc;
    namespace RepeaterInMvc.Codes
    {
        public class MvcRepeater : Repeater
        {
            /// <summary>
            /// ViewData中的键名
            /// </summary>
            public string Key { get; set; }
            /// <summary>
            /// 得到ViewPage对象
            /// </summary>
            protected ViewPage ViewPage
            {
                get { return base.Page as ViewPage; }
            }
            /// <summary>
            /// 重写Onload事件 用于绑定数据
            /// </summary>
            /// <param name=”e”></param>
            protected override void OnLoad(EventArgs e)
            {
                this.DataSource = this.ViewPage.ViewData[this.Key]; //得到数据源
                this.DataBind();    //绑定 这样就不用手动写N个绑定了
                base.OnLoad(e);
           }
        }
    }
    上面的代码做了什么:
    1. 添加了一个公共属性 Key ,表示这个Repeater要绑定 ViewData 中哪一项数据。
    2. 添加了一个保护属性 ViewPage ,指向了当前的 Page 对象 并强制转换成 Mvc 的 ViewPage对象 (因为我们要得到ViewData或其它Mvc相关的上下文信息)
    3. 重写了 OnLoad 事件,重写这个事件,用来绑定数据,免得我们需要在View中手动绑定每一个Repeater,那多烦啊。
    现在我们的目的已经达到了。看看怎么使用吧:
    控制器代码:
            public ActionResult Index()
            {
                //来点测试数据
                List<Models.TestInfo> entities = new List<RepeaterInMvc.Models.TestInfo>();
                entities.Add(new RepeaterInMvc.Models.TestInfo { Id = 1, Name = ”Kagilo1″, Email = ”1@1.com” });
                entities.Add(new RepeaterInMvc.Models.TestInfo { Id = 2, Name = ”Kagilo2″, Email = ”1@1.com” });
                entities.Add(new RepeaterInMvc.Models.TestInfo { Id = 3, Name = ”Kagilo3″, Email = ”1@1.com” });
                entities.Add(new RepeaterInMvc.Models.TestInfo { Id = 4, Name = ”Kagilo4″, Email = ”1@1.com” });
                entities.Add(new RepeaterInMvc.Models.TestInfo { Id = 5, Name = ”Kagilo5″, Email = ”1@1.com” });
                ViewData["TestList"] = entities;
                return View();
            }
    再看看页面代码:
    <%@ Register Assembly=”RepeaterInMvc” Namespace=”RepeaterInMvc.Codes” TagPrefix=”mvc” %>
    <asp:Content ID=”indexTitle” ContentPlaceHolderID=”TitleContent” runat=”server”>
        Home Page
    </asp:Content>
    <asp:Content ID=”indexContent” ContentPlaceHolderID=”MainContent” runat=”server”>
        <h2>Repeater示例</h2>
        <p>
           <mvc:MvcRepeater Key=”TestList” runat=”server”>
                <ItemTemplate>
                    <div style=”height:30px; line-height:30px;”><%# Eval(“Id”) %>, <%# Eval(“Name”) %>, <%# Eval(“Email”) %></div>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <div style=”height:30px; line-height:30px; background:#eeeeee;”><%# Eval(“Id”) %>, <%# Eval(“Name”) %>, <%# Eval(“Email”) %></div>
                </AlternatingItemTemplate>
            </mvc:MvcRepeater>
        </p>
    </asp:Content>
    TPS :<%@ Register Assembly=”RepeaterInMvc” Namespace=”RepeaterInMvc.Codes” TagPrefix=”mvc” %>
    在当前页面注册控件!!!   当然,你也可以在 web.config 中的 page/controls 节点中为所有页面注册。

日期:2010年01月26日 | 分类:.NET

ASP.NET编程经验技巧10则

    4、使用StringBuilder类
    字符串在.NET框架中是不可变的,这意味着改变字符串的操作符和方法会返回字符串的改变后的拷贝,这意味着性能还有提高的空间。当进行大量的字符串操作时,使用StringBuilder类就是一种比较好的选择了。
    下面的C#代码测试用二种方式从10000个子字符串中生成字符串所需要的时间。第一次使用了一个简单的字符串串联操作;第二次使用了StringBuilder类。
    要想查看结果字符串,可以去掉下面的代码中注解行的注解符号:
以下为引用的内容: 
< %@ Page Language=”C#” %> 
< script runat=”server”>
void Page_Load(Object Source, EventArgs E)
{
int intLimit = 10000;
DateTime startTime;
DateTime endTime;
TimeSpan elapsedTime;
string strSub;
string strWhole = “”;
// 首先执行字符串连接操作
startTime = DateTime.Now;
for (int i=0; i < intLimit; i++)
{
strSub = i.ToString();
strWhole = strWhole + “ “ + strSub;
}
endTime = DateTime.Now;
elapsedTime = endTime – startTime;
lblConcat.Text = [...]

日期:2010年01月26日 | 分类:.NET

Moonlight 2.0紧随Silverlight而来

       Moonlight 2.0版本现在可以从Novell的Mono项目网站上下载了,可用于Firefox插件。这个软件允许WMA文件和内容在Linx下执行,并使用微软的 富互联网Silverligh技术。新的版本,原定几个月彰推出,目前是为了广泛兼容Silverlight 2.0。
        当前微软的RIA产品稳定版本是3.0,但公司已经在他的专业开发者大会上推出了4.0测试版。如果Moonligh开发团队能按全的雄心目标,根 据路线图计划Silverlight 3的Linux实现应该在2010年第三季度推出,届时也将推出Moonlight 4 alpha版本。
        有媒体报导引用了Novell产品开发副总裁Miguel de Icaza,他说在Moonlight 2中将包含一些 Silverlight 3介绍中的功能。例如:模块化媒体管道,Ogg和Dirac编解码器,改进了流媒体功能让用户在视频中前进后退几乎看不到延迟。 3D像素渲染没有实现。
         Moonlight的开发者应用程序需要使用Microsoft的Visual Studio开发环境或MonoDevelop,它的2.2版本昨天刚刚发布。Mono runtime包括了Moonlight 2将允许 C#, Ruby, Python和JavaScript开发者为Moonlight开发应用。
         最后还提到了专约问题,微软承诺不会起诉用户和厂商使用Moonlight中的微软技术,这意味着linux发行版,如Ubuntu或Fedora将可以包括Moonlight发行,而不会受到微软诉讼恐惧。
        微软经常使用承诺一词,以后谁知道会不会发生。

日期:2010年01月25日 | 分类:ASP

赞助商链接

广而告之

友情链接

关于站点 - 联系我们 - 网站大事 - 友情链接 - 免责声明 - 意见反馈 - 网站投稿 - 站点地图
版权所有开心编程网禁止转载! Copyright © 2009-2010 All Rights Reserved. Email:hbhgfzk@126.com