• 从VS2003升级到VS2005


    以前用VS2003写的ASP.Net程序,现在需要升级到VS2005,公司同事、领导整理了一份文档,觉得很实用。和大家一起分享。:)


    1)  UserControl引用的路径

    在引用UserControl的路径时,VS2003下面一般这样:

    <%@ Register TagPrefix="uc1" TagName="MSMenuItem" Src="/Controls/MSMenuItem.ascx" %>

    但是在VS2005中,这样的绝对路径是不认的,如果仍然需要这样引用,需要加上一个“~”:

    <%@ Register TagPrefix="uc1" TagName="MSMenuItem" Src="~/Controls/MSMenuItem.ascx" %>


    2)  在ASPX页面中的的cs文件Inherits

    ASPX页面中,以往的Inherits这样写:
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="DocLibViewBlank.ascx.cs" Inherits="DocLibViewBlank" %>
    但如果这个类是在某个NameSpace中的,例如是IKW.Portal.Controls这个NameSpace中的,这样写在编译时就会提示“请确定Inherits扩展了正确的类”这样的错误。
    为了解决此问题,只需要:
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="DocLibViewBlank.ascx.cs" Inherits="IKW.Portal.Controls.DocLibViewBlank" %>
    把类的全部路径写明就可以了。

    3)  有关NameSpace

    在VS2003中,默认的目录管理方式是用NameSpace来处理的。也就是说,如果在IKW.Portal的根的Controls目录下有一个DictSelector的ascx文件,那么他的类会自动处于
    namespace IKW.Portal.Controls
    {
    }
    这样的NameSpace下面。
    在VS2005里面,淡化了多重NameSpace的概念,不在严格的用NameSpace来区分,而是直接把目录名放在类里面。也就是说,会创建一个
    public partial class Controls_DictSelector
    {
    }
    注意上面类的名称中带有了Control的前缀。
    感觉这样的好处是一般类型开发方便了,就算分布在多个目录下,仍然是同处在一个默认的NameSpace中,直接用名称引用就行。
    但是在开发比较复杂的应用时,仍然建议使用NameSpace的方法,这样程序的结构比较完整。这时候NameSpace需要手工加入。

    4)  ASP.NET窗体事件代码的复制

    如果直接把一个VS2003制作的WebForm复制到VS2005下,页面的形状是可以自动解析的。但是对于事件的代码,如果是先复制进来,然后在控件的“Events”中选择对应的处理方法,这样在编译时就会出错,提示引用了不可访问的代码。估计原因是因为VS2005中,引入了Partial Class,每个页面在后台还有一个隐藏的MetaData文件,记录了事件代码和其对应的情况,而直接复制事件代码,这个隐藏文件中是不能自动更新的。
    对于对这种情况,有两种方法:
    1、把事件处理代码由Private改为Public,就可以了,但是这不很安全,也不符合封装的概念
    2、就是 不要直接复制事件的整个代码,而是在VS2005里面在指定的事件中双击,让它自动生成代码的框架,再把代码复制进入,这样就可以了。

  • 相关阅读:
    linux——进程管理
    linux——软件管理
    linux——压缩打包
    linux——输入输出
    linux——ACL控制
    linux——特殊权限
    linux——基本权限
    linux——用户管理
    单源最短路spfa(队列优化)
    getline读取
  • 原文地址:https://www.cnblogs.com/Mandy/p/440753.html
Copyright © 2020-2023  润新知