Asp.net在现在商业中应用相当的广泛,这学期我们开了这门课,那到底什么是asp呢?asp吗,它是一种包含了使用vb script或jscript脚本程序代码的网页。当浏览器浏览asp网页时, web服务器就会根据请求生成相应的html代码然后再返回给浏览器,这样浏览器端看到的 就是动态生成的网页。asp是微软公司开发的代替cgi脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。在了解了vbscript的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的asp系统。asp的网页文件的格式是.asp。 现在经过三个多月的简单学习和上课听讲,初步掌握了Asp.net动态网页制作的一些简单的知识和基本常识,也能从老师讲的基本知识中简单的应用一下上课所学到的知识?感觉Asp.net网站建设和维护不是很方便,其中不仅要应用各种方面的知识还要对所学的知识学会变通使用,虽然会有一些成功的地方。但是,更多的是困惑,有太多的东西都不懂,以前学c++、数据库等一些相关知识的时候没好好学,现在想真正做好这个网站就显得不那么容易了。曾经看到网上有这么一句话,一个优秀的网络程序员不但要了解自己领域的一些专业技术,而且很多时候还要充当半个网络工程师,半个美术设计师和半个数据库管理员。照这么说来,我单单学习Asp.net是远远不够的,还要学习计算机网络、美术设计、数据库,我很喜欢有关计算机方面的东西。认为我们当代的生活越来越离不开计算机,并且我也很痴迷计算机所带来的强大功能。首先我们学习了c#,虽然c#现在不是编程员的热门语言,但在网页制作中也相当的使用。大三上学期我们有一门课是c# and development。虽然我们当时用的c#程序的开发平台是.net,但是我对.net却了解粗浅,对c#这门编程语言和.net的关系不太清楚。随着后来学了另一门.net 的课程soa, cloud computing and sharepoint programming with microsoft .net,我才对.net这一门技术有了深入的理解。在这里,我想说一说我个人对.net的理解,希望能帮助大家更好的学习。
现在在asp的世界中,asp的应用相当的广泛,在很多方面都有有用到。一方面,用户拥有一套设备,例如 pc、移动电话、笔记本。这些设备可能放在办公室或者家里。当用户需要在办公室的某台设备或移动电话上访问家中存储的的信息(电子邮件或其他任何信息)时,问题就出现了,因为所有这些设备都将数据存储在不同的位置。用户认为需要一种个人信息空间,通过它,用户可以在家中或途中访问存储在办公室的信息,或者以相同方式从任何位置访问存储在家中的信息。另一方面,开发人员没有足够的工具来开发用户所需的解决方案。 结果是,站点虽然颇具吸引力却缺乏有效性和实用性。此外,需要为不同的设备开发不同的代码,这也使开发人员颇感为难。如果开发人员拥有某些工具,使他能够只编写一次代码,并可在多种设备中部署该代码,将可以提高开发人员的工作效率。这是开发人员的需求。
在asp中我们还学习了fso、cgi、php等,那什么是fso呢?而fso是微软asp的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。是asp编程中非常有用的一个控件。但是因
为权限控制的问题,很多虚拟主机服务器的fso反而成为这台服务器的一个公开的后门,因为客户可以在自己的asp网页里面直接就对该控件编程,从而控制该服务器甚至删除服务器上的文件。因此不少业界的虚拟主机提供商都干脆关掉了这个控件,让客户少了很多灵活性。 万维时空的w2k虚拟主机服务器具有高安全性,可以让客户在自己的网站空间中任意使用却有没有办法危害系统或者妨碍其他客户网站的正常运行。cgi是一个用于定web服务器与外部程序之间通信方式的标准,使得外部程序能生成html、图像或者其他内容,而服务器处理的方式与那些非外部程序生成的html、图像或其他内容的处理方式是相同的。因此,cgi程序册仅使你能生成表态内容而能生动态内容。使用cgi的原因在于它是一个定义良好并被广泛支持的标准,没有cgi就不可能实现动态的web页面,除非使用一些服务器中提供的特殊方法(如今,也有除cgi之外的其他技术逐渐在成为标准)。php是一种服务器端html-嵌入式脚本描述语言。 其最强大和最重要的特征是其数据库集成层,使用它完成一个含有数据库功能的网页是不可置信的简单。在html文件中, php脚本程序(语法类似于perl或者c语言)可以使用特别的php标签进行引用, 这样网页制作者也不必完全依赖html生成网页了。由于php是在服务器端执行的, 客户端是看不到php代码的。 php可以完成任何cgi脚本可以完成的任务,但它的功能的发挥取决于它和各种数据库的兼容性。 php除了可以使用http进行通信,也可以使用imap, snmp, nntp, pop3协议。
在目前的网站统计系统决大部分都是cgi的,但编写起来特别复杂,而asp学起来简单,更有和数据库结合的优点,所以结合自己曾经做过的网站统计系统,和大家探讨一下asp编写网站统计系统。大家都看过网易的网站统计系统,它可以统计总访问量,每日平均访问量,当日访问量,最高访问量,最高访问日期,日流量分析,月流量分析,周流量分析,浏览器分析,等等。其实要做一个asp的访问统计系统关键是系统表结构的设计。以及如何来采集用户的cgi变量,如何来显示用户的信息。也就是说系统的关键是两个asp程序,统计程序和显示程序。采集用户名我们可以用request对象的相应方法取得,然后检查用户表判断用户是否合法,然后取信息,用我们上面讲到的取得相应信息的方法取得信息,然后进行加工保存在数据表里,但最重要的是如何对数据进行更新,如当日每小时访问统计数,当天每小时统计数等,我们如何对每天的数据进行更新是这个程式的要点,我们可以采取几种方式,如对每天的每个小时的记录的更新我们采取在每天午夜12点更新,对每月的每一天的数据我们在月份切换的那一天进行更新。随着internet的发展,web技术日新月异。继通用网关接口(cgi)之后,“asp”(active server pages)作为一种典型的服务器端网页设计技术,被广泛地应用在网上银行、电子商务、搜索引擎等各种互联网应用中。同时access数据库作为微软推出的以标准jet为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。因此asp+access成为许多中小型网上应用系统的首选方案。但asp+access解决方案在为我们带来便捷的同时,也带来了不容忽视的安全问题。由于access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址“&h42”开始的区域内。由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地得到access数据库的密码。基于这种原理,可以很容易地编制出
解密程序。由此可见,无论是否设置了数据库密码,只要数据库被下载,其信息就没有任何安全性可言了。
前面所学到的数据访问都是web应用程序直接访问数据库。这种在web窗体中直接访问和操作数据库中数据的方式是一种低效的资源使用方式,并且有可能产生安全风险。通过存储过程访问数据库,可以有效地提高数据访问效率和数据的安全性。可以在执行复杂任务时减少窗体的编码量,降低对网络宽带的需求,通过只允许可信赖的本地存储过程直接访问数据库,可以保护数据库的安全。同时我们用到了一个容器控件repeater,当运行页面时,repeater将绑定数据源中的数据,并按照模板的要求将数据在界面上呈现出来。正是由于repeater控件没有默认的外观,所以进行界面设计的时候会感到不太直观。但repeater控件非常灵活,可以通过对模板的灵活使用,创建多种不同形式的列表,包括以特定分隔符的列表,或者xml格式的列表,同时它还能够非常精确地对界面元素进行定位。除此之外我们还添加了网络在线投票功能,网络在线投票是网络用户的兴趣、价值取向以及热点关注等信息的关注程度的一种体现,实现了在线投票功能,为了更为直观的显示和查看投票结果,将投票结果图形化是一种较好的手段。所以我们引用了一个类graphics, graphics类是gdi+图形编程中的核心类。他封装了gdi+界面的绘图方法以及图形显示设备,极大地的简化了开发人员的图形编程工程工作。通过graphics类的属性可以获取graphics对象的分辨率,并能够为graphics对象进行裁剪区域的选择和判断,而页面中图形的绘制则都是通过graphics类的实例方法实现,同时引用了web服务器控件image。image控件同img标签一样,其主要作用是在web页面中显现图片信息,其主要属性为imageurl,用于设置需要显示的图片的url地址。尽管Asp.net提供的image控件可以快速地载入图形,但却并不支持click事件。而且gdi+除了可以绘制图形和文字外,还可以绘制或编辑已有图片,为图片添加水印或裁剪图片等操作。在实际的web应用开发中,开发人员为了防止非法用户恶意批量注册或者恶意程序暴力破解密码等操作,我们相应的做了图形验证码功能,在用户身份验证时都会采用验证码技术。验证码技术可以有效防止某些特定注册用户采用恶意程序和暴力破解方式对网站进行不断的登录尝试,为此我们引用了random类,随即数在计算机应用程序设计,尤其是在实践环境模拟和测试等领域得到了非常广泛的应用。random类是一个伪随即数生成器,能够产生满足一定随即性系统要求的数字序列。既然是伪随机数生成器,产生的数字就不是绝对的随即数,而是通过一定的算法产生的伪随机数。
在本次课程学习过程中,我学到了好多东西。在此特别感谢老师教诲。老师不仅上课生动、幽默,平时上机时又悉心的指导。同时感谢学校给我们提供了非常优越的设计环境,对于我顺利完成这次asp课程的学习,本次学习起到了关键性的作用。也通过上次的实验设计学会了简单的网站设计,通过开发上次的系统,我较全面的掌握了aspt及sql的基本知识和编程技巧,并在开发过程中我的Asp.net开发能力得到了进一步的提高。如: sql语言的使用;以前学过的软件工程知识、数据库原理及操作也得到了充分的应用。
在开发过程中我学到了一些经验:系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。我们在着手开发之前不要急于编程,先应有较长的时间去把分析做好,做好数据库设计工作,写出相关的开发文档等。然后再开始编写程序代码,这样做到每写一步代码心底有数,有条不絮。在这短短的几个月中,我知道在程序设计的时候,不要太在意程序是否最简洁灵活,对于一般开发者而言,程序规范化和可读性可能比追求程序的灵活性更加重要。在互联网资源越来越丰富的情况下,我们可以参考一些规范的程序源代码来学习。同时我也知道,想要学好这门课程,所要具备很多条件,首先打代码要规范,要做注释,这样回头来看程序时可以很快的看懂,可以练习自己的逻辑表达能力,对以后遇到难以实现的功能也可以很好的表达出来向别人请教,而且出去从事编程工作的话,代码的规范是相当重要的。还有一点要学会总结,把自己做的程序用到的知识点列出来就可以很好的总结自己的知识点。
因篇幅问题不能全部显示,请点此查看更多更全内容