1.Web网站与Web应用程序区别
项目就是一个应用程序。在VS中查看的时候,项目中建立的一般处理程序,有两个文件,网站只有一个。写个代码测试,发现在代码层次上没有。
再有就是项目中的一般处理程序有命名空间,而网站中的没有。WEB网站每一个页面(ashx页面)都是一个独立的程序,一个页面出错了不会影响到另外一个页面(演示)。
但是项目中建立完一个文件(或修改了一个文件),一定要重新生成,生成的目的就是将项目生成对应的dll文件放bin/Debug目录下(并且所有的类放在了该程序集中。),如果项目中的一个文件出错了,是没有办法生成成功的。
网站中每个页面(aspx,ashx)都生成对应的程序集,名称是随机的,当文件建立保存以后,请求会自动保存一下。如果你对文件中的代码改动了,Assembly.GetExecutingAssembly().Location
会重新编译生成一个新的程序集,如果没有改动,则不会生成新的.(在Web网站中的一个一般处理程序中获取当前一般处理程序文件所生成的dll文件.如果一般处理程序中的代码改变了那么重新生成,没有变化则不会重新生成。
所在Web应用程序中修改了代码以后一定要重新生成,不然修改后的代码不会生成到程序集中,程序集中可能还是旧的内容
为什么网站不需要命名空间?命名空间就是为了区分类同名的情况,而网站一个文件就是一个独立的程序,所以不会出现类重名的情况。
在网站中写SqlHelper(定义普通的类)必须放在App_Code文件夹中,而应用程序直接建就行了,不要建立App_Code文件夹,因为该类最终会生成到程序集中。但是在网站就必须放在App_Code文件夹下,原因是,我们请求网站的一个一般处理程序时会自动编译,但是一个不同的类是不同被请求的,所以也就没法编译。但是放在app_code文件夹中会在请求某个一般处理程序时自动被编译。但是项目不需要了,因为最终会生成到一个程序集中。
小网站可以用Web网站,因为文件比较少,请求的时候出现错误,直接修改。不关心其它页面。但是大项目中用到的文件特别多,如果建成WEB网站那么维护起来很痛苦,但是建成WEB项目可以统一生成,这时如果出错了,也很容易知道哪个文件出错了,当所有的文件都编译通过了才能进行访问,这是与WEB网站不同的地方
总之,大网站比较适合用WebApplication项目,小网站比较适合用WebSite项目
2.网站编译的过程
如果写的代码是一样的,那么网站与项目编译的程序集是一样的。编译的过程不一样,项目是手动。而网站是自动。
项目直接手动编译,而网站的编译过程稍微复杂.
3.示例
CRUD操作:
展示用户信息:
添加用户:
添加成功:
修改信息:
修改成功: