海_阔_天_空

无论是羊还是狮子,每天早上当太阳升起的时候就是开始不断的奔跑......
 
 

与我联系

  • 发短消息

搜索

 

常用链接

  • 我的随笔
  • 我的空间
  • 我的短信
  • 我的评论
  • 更多链接
  • 我的参与
  • 我的新闻
  • 最新评论
  • 我的标签

留言簿

  • 给我留言
  • 查看留言

随笔档案

  • 2007年6月 (4)

最新评论

阅读排行榜

  • 1. 获取PPC设备的ID号(121)
  • 2. 一些提高ASP.NET性能的方法 (转载)(20)
  • 3. 转正(11)
  • 4. 日子一天天过(8)

评论排行榜

  • 1. 转正(1)
  • 2. 一些提高ASP.NET性能的方法 (转载)(1)
  • 3. 获取PPC设备的ID号(0)
  • 4. 日子一天天过(0)

Powered by: 博客园
模板提供:沪江博客
博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅订阅 | 管理

2007年6月28日

一些提高ASP.NET性能的方法 (转载)

禁用不必要的视图状态。

例如控件或页面的。EnableViewState属性设置为false。或者在web.config文件中进行指定。

控件的设定直接设置相应控件的EnableViewState属性即可。

页面的设定在<%@ Page EnableViewState="false" %>中设定即可。

Web.Config文件的设定,找到<pages>元素,在其中添加属性设置EnableViewState="false"即可。

 

对于安全性要求不高的页面可以通过禁用页面的EnableViewStateMAC防篡改和加密功能,也可以提供页面加载的速度。

 

将代码中的Response.Redirect跳转换成Server.Transfer命令。

Response.Redirect使客户机和服务器之间进行了两次往返,首先客户端将自己的跳转命令传给服务器,服务器对当前请求跳转的页面做出响应,返回要跳转到的页面与相应的事件响应,然后客户端接收到这个命令开始进行跳转,第二次向服务器发出新的跳转到的页面请求,然后服务器做出响应,将新的页面返回给客户端。这样就进行了两次往返。

Server.Transfer则把执行转移到应用程序的另一个页面。这是某种“服务器端的重定向”,客户端不会察觉到有重定向发生。此时客户端将跳转命令发给服务器后,页面重定向是在服务器上处理的,没有进行客户端之间的往返,直接将重定向后的页面结果发送给客户端,这样仅执行了一次客户端和服务器之间的往返,减少了一次,从而达到性能的提升。

 

谨慎使用Web控件,每个Web控件在加载时都比相应的HTML控件在服务器生成时多耗费一些资源,例如一个Lable控件,如果禁用来显示一个标题,则没有必要每次都让服务器重新生成它,直接换成几个字显示就可以了,因为这些控件必须被初始化,必须设置属性,事件必须处理等。

 

把对象放置到会话状态中,以后再使用。这是非常方便的,但这种方便性是有代价的。会话状态默认是启用的,这意味着ASP.NET为使会话状态功能可用需要做很多工作,即使您根本不使用会话状态也是如此。因此,对于不执行任何会话处理的页面来说,应该覆盖它们的默认值。

禁用会话状态的方法是在Page指令中把EnableSessionState特性设为false。

如果一个页面从会话状态读取值(但不写新的值或修改现有的值),那么它是以某种只读的方式使用会话状态。在这些情况下,可以把EnableSessionState设为ReadOnly,这可以让页面访问会话状态,但开销较少(因为省略了写的功能)。

如果应用程序中任何地方不使用会话状态,可以在应用程序级别关闭会话状态:在Web.Config文件中把<SessionState>元素的mode特性设为Off。

posted @ 2007-06-28 14:28 乖_乖_同 阅读(20) | 评论 (1) | 编辑
 

2007年6月12日

日子一天天过

开始工作已经有一段日子了
告别了学校的日子
迎接的又将是怎样的挑战呢
不管怎样我都要努力的
Fighting!

posted @ 2007-06-12 21:16 乖_乖_同 阅读(8) | 评论 (0) | 编辑
 

2007年6月8日

获取PPC设备的ID号

using System.Collections;
using System.Runtime.InteropServices;

 [DllImport("coredll.dll")]
        private static extern bool KernelIoControl(Int32 IoControlCode, IntPtr
            InputBuffer, Int32 InputBufferSize, byte[] OutputBuffer, Int32
            OutputBufferSize, ref Int32 BytesReturned);

        private static Int32 FILE_DEVICE_HAL = 0x00000101;
        private static Int32 FILE_ANY_ACCESS = 0x0;
        private static Int32 METHOD_BUFFERED = 0x0;

        private static Int32 IOCTL_HAL_GET_DEVICEID =
            ((FILE_DEVICE_HAL) << 16) | ((FILE_ANY_ACCESS) << 14)
            | ((21) << 2) | (METHOD_BUFFERED);
        private static string GetDeviceID()
        {
            byte[] OutputBuffer = new byte[256];
            Int32 OutputBufferSize, BytesReturned;
            OutputBufferSize = OutputBuffer.Length;
            BytesReturned = 0;

            // Call KernelIoControl passing the previously defined
            // IOCTL_HAL_GET_DEVICEID parameter
            // We don?’t need to pass any input buffers to this call
            // so InputBuffer and InputBufferSize are set to their null
            // values
            bool retVal = KernelIoControl(IOCTL_HAL_GET_DEVICEID,
                IntPtr.Zero,
                0,
                     OutputBuffer,
                                     OutputBufferSize,
                                                         ref BytesReturned);

            // If the request failed, exit the method now
            if (retVal == false)
            {
                return null;
            }

            // Examine the OutputBuffer byte array to find the start of the
            // Preset ID and Platform ID, as well as the size of the
            // PlatformID.
            // PresetIDOffset -The number of bytes the preset ID is offset
            //                  from the beginning of the structure
            // PlatformIDOffset - The number of bytes the platform ID is
            //                    offset from the beginning of the structure
            // PlatformIDSize - The number of bytes used to store the
            //                  platform ID
            // Use BitConverter.ToInt32() to convert from byte[] to int
            Int32 PresetIDOffset = BitConverter.ToInt32(OutputBuffer, 4);
            Int32 PlatformIDOffset = BitConverter.ToInt32(OutputBuffer, 0xc);
            Int32 PlatformIDSize = BitConverter.ToInt32(OutputBuffer, 0x10);

            // Convert the Preset ID segments into a string so they can be
            // displayed easily.
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append(String.Format("{0:X8}-{1:X4}-{2:X4}-{3:X4}-",
                BitConverter.ToInt32(OutputBuffer, PresetIDOffset),
                BitConverter.ToInt16(OutputBuffer, PresetIDOffset + 4),
                BitConverter.ToInt16(OutputBuffer, PresetIDOffset + 6),
                BitConverter.ToInt16(OutputBuffer, PresetIDOffset + 8)));

            // Break the Platform ID down into 2-digit hexadecimal numbers
            // and append them to the Preset ID. This will result in a
            // string-formatted Device ID
            for (int i = PlatformIDOffset;
                i < PlatformIDOffset + PlatformIDSize;
                i++)
            {
                sb.Append(String.Format("{0:X2}", OutputBuffer[i]));
            }

            // return the Device ID string
            return sb.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = GetDeviceID();
        }

posted @ 2007-06-08 17:15 乖_乖_同 阅读(121) | 评论 (0) | 编辑
 

2007年6月2日

转正

三个月的时间悄悄的溜走
这也是我走出学校之前与社会的一段磨合期
感觉自己是幸运的
因为在我身边总是可以遇到很多很好的朋友
一起陪伴着走过风风雨雨
或许生活是残酷的
或许我们总是会遇到这样那样不如意的事情
但是只要我们勇敢的去面对
雨后的天空总会有绚丽的彩虹
不要埋怨命运
因为我有一颗知足的心
不要埋怨生活
因为我有一颗感恩的心
每天当太阳升起来的时候
又是一个新的开始
不管什么时候我们总是很努力
不管什么时候我们总是很开心...




posted @ 2007-06-02 09:58 乖_乖_同 阅读(11) | 评论 (1) | 编辑
 
仅列出标题