学者谷

位置:首页 > 职场范文 > 实习总结

.net实习总结报告

一、实训概要

.net实习总结报告

1、实训内容

在将近一个月的时间内,本人和项目组其他成员一起,完成了一个基于微软技术的网络办公自动化系统(简称OA系统),该系统主要包括以下五个模块:考勤管理;短信管理;邮件管理;联系人管理和客户管理。

2、担任角色

本人在团队中担任页面美工和程序员的角色,主要制作了母板页和短信管理模块的全部页面,并且制作了与之相关的类图、用例图和数据库表,成功完成了短信模块的编程开发工作。

3、实训结果

通过本次实训,主要培养了自己的规范研发能力,学习了企业项目开发的整个过程和团队项目开发经验,并且加强了新技术的学习,熟练掌握了常用的软件开发工具(如VisualStudio 2005) 的操作规程。

二、技术收获

1、系统企业架构

在研发的开始阶段,先学习了PETSHOP 4.0的系统架构,系统掌握了规范开发中的架构体系,为开发顺利进行打下基础。该系统采用常见的分层架构模式,一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。

(1)数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。在PetShop的数据访问层中,由于没有使用ORM,从而导致了代码量的增加,可以看作是整个设计实现中的一大败笔。

(2)业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。以PetShop为例,业务逻辑层的相关设计,均和网上宠物店特有的逻辑相关,例如查询宠物,下订单,添加宠物到购物车等等。如果涉及到数据库的访问,则调用数据访问层。

(3)表示层:是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。在PetShop中,是利用来设计的,因此包含了许多Web控件和相关逻辑。

2、页面相关技术

(1)页面的处理顺序:

页面是由事件来驱动的,首先执行的是Init事件,在代码中,系统自动增加了一个OnInit的重载函数,从而在页面Init的时候就执行这个OnInit函数。在这个函数中,会执行InitializeComponent函数,这个函数里就有很多控件事件的代理函数。页面在执行完Init之后,就是Load事件,对应的代码就是Page_Load。 然后就是引起页面返回的事件的代码,当然,如果页面是第一次运行的话,就没有这一步了。 也就是说,页面每次刷新的时候都会执行Page_Load函数,这也就是为什么有些代码要写在

if (!stBack)

{ ... }

中的原因。比如有一个文本框,如果在Page_Load中设置初始值,放在哪儿呢?如果放在if外面,那每次刷新的时候都会执行这个赋值语句,即使在页面中修改了文本框的值,在返回之后仍然会消失,但是如果放在if之中,那就可以了,返回之后文本框中仍然是先前的值。很多次实验中DataGrid无法获取编辑后的值,也可能就是这个原因。

(2)JavaScript在页面中的应用:

虽然采用新的运行机制,但是最后生成的还是能被一般浏览器识别的HTML和JavaScript代码,在页面中,仍然可以通过e来写出一段JS代码,比如要弹出一个新的浏览器窗口,可以用e(@"");在Web控件中,Attributes属性集合也和JS联系紧密。新增加的一个Attributes元素就对应Web控件最后生成的HTML代码的一个属性或者事件。

(3)Web控件

有几个控件是我们应该有很深的理解的:DataGrid、DataList。这两个控件在显示数据上为我们提供了极大的方便,它们的各种用法,需要我们在实践中不断摸索、不断总结。另外,自定义控件也是一个比较重要的范围。在自定义控件的类型选择上,如果你只是一般的显示一些固有的控件,而不作属性、事件的操作,那写成User Control会简单一点,这样的自定义控件相当于ASP中通过include执行的代码。如果你想在设计、运行中修改控件内部的属性、得到控件的某些事件,那最好写成一个dll文件,也就是写成一个类,这样的控件可以像一般的Web控件一样,用鼠标拖动大小,设置属性,获取事件等。

3、数据处理相关

(1)将缓存信息绑定到DataGrid上

private void bindCache()

{

string str = ();

DataTable table = new DataTable();

("CacheName", typeof(string));

("CacheType", typeof(string));

IDictionaryEnumerator enumerator = numerator();

int num = 0;

while (Next())

{

bool flag = true;

if ((str != "") && (ring()xOf(str) < 0))

{

flag = false;

}

if (flag)

{

num++;

DataRow row = ow();

row["CacheName"] = ;

row["CacheType"] = ype();

(row);

}

}

= ring()();

Source = table;

Bind();

}

(2)清除指定的缓存

Private void DataGrid1_DeleteCommand(object source, GridCommandEventArgs e)

{

string text = s[0];

if (e[text] != null)

{

ve(text);

Cache();

}

}

三、经验教训

1、编译错误和警告处理

警告: 不能将项目xxxxx中的依赖项“xxx, Version=1.0.1777.21016, Culture=neutra,复制到运行目录,因为它将改写引用“xxx, Version=1.0.1777.23397, Culture=neutral”。”

分析:

A是一个公用的类库,很多其它的项目都会引用到它。

B是一个项目,其中就引用到了

C也是一个项目,不过C要引用A和B

问题就是:当A重新编译了之后,B并没有重新编译,这个时候如果编译C就会有上面那样的警告。这是因为如果一个项目引用了一个库,那么编译该项目的时候,编译器默认是要把这个库复制到该项目的输出目录下的(当然你可以修改这个设置)。对这个例子来说就是要把和复制到C的输出目录下。先说,首先会把复制到C的输出目录下;再说,因为B引用了A,所以会把B目录下的和一起复制到C的输出目录下,这个时候就出问题了。因为B没有重新编译,所以B目录下的的版本就比C目录下的已经有了的版本要低,编译器就会报那个错误了。

错误:当生成 Visual C# 应用程序时,可能会在编译器中收到以下错误信息:

error CS0518: The predefined type 'type' is not defined or imported(未定义或导入预定义类型“type”)

原因:可能在命令行编译器上指定了 /nostdlib 选项; 程序可能包含对不正确的 文件的引用; 可能没有正确地将 Visual Studio 或 框架软件开发工具包 (SDK) 安装在系统上; 系统上可能有早先安装的 框架 SDK 的残留组件,而这些组件与最新的安装版本不兼容。

解决方案:若要解决这一问题,可以按照下列步骤操作: 确保不在命令行编译器中指定 /nostdlib 选项。确保项目引用正确的 文件。 如果第 1 步和第 2 步都不能解决这个问题,则重新安装 框架 SDK。

2、页面美化经验

内容,尤其是表格当中上下两单元格的图片连不到一块,即总是在两个图片之间出现一些不希望有的空隙时,将两个单元格中再分别嵌入一个表格再将两图片分别放入其中。则可以解决些问题。

热区的建立代码:

图片当做为链接时有时会出现奇怪的边框,解决方法,将图片的border手动设为0.

设计页面时的顺序最好是:首先设计出网页图片,然后将网页图片做成网页,最后在此基础上加入动态控制的东西。

四、展望及建议

1、开发前景展望

在本次实训中,我们仅仅实现了最基本的网络办公功能,但是,在网络办公领域出现的新技术和新功能我们都没有涉及。鉴于这些缺陷,我想应该从以下两个方面改进:功能完善和技术领先。

(1)功能完善

网络办公系统发展到今天,在功能方面已经很完善了。除了我们开发的考勤,邮件等宫恩年个以外,还有与手机等现代通讯体系相关的一些核心功能。例如:可以兼容短信,移动网络和短距离网络通信等多种通信方式,可以工作在各种基于mobile的智能手机平台,能够提供短信的分发、后处理,数据流传送、文件分发、通信,移动设备与固定终端的同步、互动及一体化的功能。

(2)技术领先

通过学习惠普的新技术,把网络打印、网络复印、网络传真、网络扫描等功能有机地整合在一起,实现真正的远程自动化办公。

2、实训建议

1、加强校内实训室的建设与管理,保证实训时间灵活;

实训室是开展实训教学的场所,是实训教学的基本保证,因此必须加强建设。

(1)完善与规范项目实训室,我们现有实训室在实训中已发挥了重要作用。但是

实训室的管理存在问题,比如开放时间和日常管理方面(2)根据实训内容及时更新与调整配置新的设备,以满足实训之需。

2、规范专业实训体系,制定正规实训大纲。

(1)根据国家标准,制订有专业特色的实训大纲。规范教学大纲和明确具体的考核标准:学生实训守则、学生实训成绩考核办法、实训安排(内容、学时分配等)、实训考核评分标准等。这些要提前让我们知道;

(2)实训组织、过程设计。实训设计组织应遵循:合理性、准确性、可行性、简洁性原则。应由专任教师根据实际情况制定;

(3)实训结果评价,要求指导教师对我们所做作品进行收集、保存、评价或现场评价;

(4)进行分层次、分组实训教学。进行分组分层实训,并在分组中形成快中慢班。这种做法,切合学生的实际,更符合学生的要求,因材施教,可培养一批基础好,肯钻研的技能高手,满足各层次操作技能的学习。

(5)注重技能考核,促实训教学质量。每个实训教学阶段结束后,学校应组织学生参加各种国家劳动技能考核。一方面促进了学生的学习,另一方面也考核了学校实训教学效果。