1,不要在VS里直接复制ASPX文件,因为复制的时候,两个文件会使用同一个类文件,要复制的话,应该建空文件,然后复制页面和代码
2,发在项目完工的时候,要想得到一个干净的,仅有必需文件的项目,可以用复制项目的方法,注意的时,包含在项目的文档将会被编译及复制,没有包含的文档不会被复制,复制前,需要建立一个目标空站点,复制的方法应该选文件共享
3.VS.net中每一个文件的生成方法都有编译,内容,嵌入三种,对于CS文件,其生成方法应该为编译,对于ASPX文件,应该为内容,对于像想嵌入到DLL中的资源,如BMP图像,ICO图像,字符串等,应设为嵌入
其他文件,均设为内容
4.DATAREADER能解决的,请不要用DATASET
5.处理控件的分页,特别是DATAGIRD时,请尽量用自定义分页,然后自己写分页方法,不要用DATAGRID的自动分页功能,自动分页的性能不好
6.有时候,定义了一个WEB项目,在定义中,定义了其URL,如http://localhost:8001/,但是后来项目的URL可能发生了变化,成了http://localhost:8009,这个时候,直接打开项目可能不会成功,可以找到项目源文件所在文件夹,用记事本打开后缀为.webinfo的文件,修改其中的URL指向即可
7.在VS.NET中,添加窗体,必然会添加相应的CS类文件,有时候,希望直接在ASPX文件中以<%%>的古典形式来书写代码,这时,千万别直接删除CS类文件,应该先显示所有文件,然后,打开对应ASPX页面,将头部的<%@ PAGE%>指令中的CODEBEHIND以及inhert两项删除后再删除CS文件
8.CS1607: Assembly generation -- Referenced assembly 'Assembly Name' is a localized satellite assembly错误的处理
原因是由于Assembly.cs中一项属性:[assembly:AssemblyCultureAttribute("")]使用了不正确的值,正确的方法,是将其改为默认值此文出处在于:http://weblogs.asp.net/jgaylord/archive/2003/08/22/25003.aspx
9.用ASP.NET写WINDOWS事件日志的方法:(很多人在CSDN和MS的新闻组里问,我也问过,但无果,下面的方法是自己琢磨出来的)
a,打开注册表:HK_L_M\SYSTEM\CURRENTControlSet\Services\EventLog\application建立一个项
项名就是EVENTSOURCE的名称了(这一步,可以在做项目安装文件时做进安装步骤里,就不用手工操作了)
b,在代码中,使用EVENTLOG.WRITEENTRY来写日志就可以了
原因呢是ASP.NET的运行帐户没有权限来建立事件源,但是,却有权限来读写事件日志了
10,排除和包含项目:对于不想编译以后不想包含在最终版本里的文件,应该将其排除,被排除的文件将不会参与编译及项目复制,如果包含一个文件夹,将会包含其所有下级
11,默认下,ASPX不允许POST含有HTML的内容,将PAGE指令中加入ValidateRequest="false"即可
6,想要引用别人的控件,可以直接将DLL拷入BIN文件夹,然后在工具箱中点击添加删除工具,流览该文件,然后选中就可以放入工具箱了
7.对于HTML标签,想要将其变为服务器控件,可以选中并点击右键,选择在服务器端运行
8,编写客户端事件处理脚本需要对HTML标签或者客户端控件进行命名,然后在代码视图中,选择相应的控件名称及事件即可
9.WEB控件只要命名了,均可以在客户端脚本中以其标签来引用
10,常用的代码可以直接拖入工具箱中作为一个工具引用
11.要引用用户控件,可以直接拖动用户控件的ASCX文件至设计窗,VS会自动为你添加REGISTER标签
12,要防止别人反编译,可以用VS自带的代码混乱工具,将DLL添加,然后生成,生成的代码主要是对一些方法和类的名称混乱
13,要把连接串放入WEB.CONFIG,可以直接打开WEB.CONFIG文件,加入<appSettings>段,在其中加入<add key="dsn" value="..." />
引用的时候,先导入名称空间:system.configuration,使用configurationsettings.appSettings["dsn"]就可以引用了
14.非必要,不要用DataBinder.Eval,应该用((DataRowView)(Container.DataItem))["列名"]的方式来访问数据,但使用这种方法,必须在ASPX页面顶部加入<%@ Import Namespace="System.Data" %>
15.用户控件也可以定义属性和方法,但是,如果定义了属性的话,控件的显示部分,可能要用自定义的方法来完成,不能依赖于控件的PAGE_LOAD事件来处理,因为对于PAGE_LOAD来说,这些自定义的属性尚不可见