NET 开发总结(共11篇)
1.NET 开发总结 篇一
[ASP.net教程]DevExpress控件开发常用要点(项目总结版)
使用DevExpress控件来做项目开发已经有很长一段时间了,在摸索开发到客户苛刻要求的过程中,其中碰到过很多问题需要解决的,随着一个个问题的解决,也留下很多对DevExpress控件的使用经验及教训,综合设计到的多个项目的问题,对这些开发常用的要点进行总结,方便别人也方便自己。提供这些解决方法,一个可以快速应用到项目中,二个也可以作为对界面开发的更高要求对待自己的项目,使得自己的东西更加完美,更加受欢迎。
1、GridControl控件的数据显示的样式控制
如上两图所示,我们有时候需要控制列表访问过的颜色变化,或者是时间显示格式等内容,这个时候设置GridView的RowCellStyle即可实现,如下所示。this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(gridView1_RowCellStyle);
void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
if(e.Column.FieldName == “PublishType”)
{
if(e.CellValue!= null && e.CellValue.ToString()== “中介”)
{
e.Appearance.BackColor = Color.DeepSkyBlue;
e.Appearance.BackColor2 = Color.LightCyan;
}
}
if(e.Column.FieldName == “PublishTime”)
{
e.Column.DisplayFormat.FormatString = “yyyy-MM-dd HH:mm:ss”;
}
if(e.Column.FieldName == “Title”)
{
string id = this.winGridViewPager1.gridView1.GetRowCellDisplayText(e.RowHandle, “Id”);
if(historyDict.ContainsKey(id))
{
e.Appearance.BackColor = Color.DeepSkyBlue;
e.Appearance.BackColor2 = Color.LightCyan;
}
}
}
2、在LayoutControl布局中固定控件宽度 固定宽度后的真实效果。
为了使得界面统一性及更好的控制性,我们一般使用LayoutControl布局控件作为我们添加控件的布局容器,但是这个控件默认是对其中的控件进行按窗口比例进行缩放的,有些客户就不喜欢这些特点,因为他们的显示器可能是30寸的(夸张一点点,不过很多宽屏的),这样很多输入框就会被拉得很长,这样小小一个输入框,可能有很长的一段空白的距离,那样可能真的不好看,如下图所示。
设置固定宽度,其实不是很麻烦,需要设置几个属性即可 1)设置控件的SizeConstraintsType为DevExpress.XtraLayout.SizeConstraintsType.Custom;2)设置控件的FillControlToClientArea 为False 3)设置控件的ControlMaxSize的大小(必要时也可以设置ControlMinSize),设置例子如下所示。
3、GridControl中的GridView内容打印
由于GridView的良好封装性,实现打印的代码很简单。
private void menu_Print_Click(object sender, EventArgs e)
{
PrintableComponentLink link = new PrintableComponentLink(new PrintingSystem());
link.Component = this.gridControl1;
link.Landscape = true;
link.PaperKind = System.Drawing.Printing.PaperKind.A3;
link.CreateMarginalHeaderArea += new CreateAreaEventHandler(Link_CreateMarginalHeaderArea);
link.CreateDocument();
link.ShowPreview();
}
private void Link_CreateMarginalHeaderArea(object sender, CreateAreaEventArgs e)
{
string title = string.Format(“年度大体检-({0}年度)”, this.txtYear.Text);
PageInfoBrick brick = e.Graph.DrawPageInfo(PageInfo.None, title, Color.DarkBlue,new RectangleF(0, 0, 100, 21), BorderSide.None);
brick.LineAlignment = BrickAlignment.Center;
brick.Alignment = BrickAlignment.Center;
brick.AutoWidth = true;
brick.Font = new System.Drawing.Font(“宋体”, 11f, FontStyle.Bold);
}
4、设置GridView的行指示器(行头)显示行号
在我的分页控件以及Winform开发框架很多项目介绍里面,很多都显示了行号,其实这个在DevExpress中的实现很简单,如果需要,可以实现在自己的代码里面。
1)先实现GridView的CustomDrawRowIndicator事件,实现代码如下所示。
private void advBandedGridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
if(e.Info.IsRowIndicator)
{
if(e.RowHandle >= 0)
{
e.Info.DisplayText =(e.RowHandle + 1).ToString();
}
else if(e.RowHandle < 0 && e.RowHandle >-1000)
{
e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite;
e.Info.DisplayText = “G” + e.RowHandle.ToString();
}
}
} 2)然后设置GridView控件的IndicatorWidth为合适的宽度,如40左右则比较好。这样设置后,就能顺利显示行号了,是不是很方便呢。
5、GridView表头多行显示(折行),表头及行内容居中操作
在一些自定义的列表中,我们为了合理显示表头的内容,可能会要求表头显示的文字可以折行显示,然后还需要内容居中显示,那么在DevExpress该如何操作呢,代码设置如下所示。
//表头折行设置
this.gridView1.ColumnPanelRowHeight = 40;
this.gridView1.OptionsView.AllowHtmlDrawHeaders = true;
this.gridView1.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;
//表头及行内容居中显示
this.gridView1.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;然后设置表头的时候,设置内容使用rn来进行换行,如:体重rn(kg)下面是我分页控件里面的例子设置,供参考。
this.winGridViewPager1.AddColumnAlias(“Weight”, “体重rn(kg)”);
this.winGridViewPager1.AddColumnAlias(“Pulse”, “脉搏rn(次)”);
this.winGridViewPager1.AddColumnAlias(“BloodSystolic”, “收缩压”);
this.winGridViewPager1.AddColumnAlias(“BloodDiastolic”, “舒张压”);
this.winGridViewPager1.AddColumnAlias(“SightLeft”, “视力rn(左)”);
this.winGridViewPager1.AddColumnAlias(“SightRight”, “视力rn(右)”);
6、控件内容输入问题
在客户使用软件的时候,反馈说有一些数字输入框、日期输入框,不支持键盘输入内容,经测试,确实是存在这个问题,默认的数字、日期等输入,都要切换输入法才可以输入,不能默认就支持数字的输入,那么是否有办法解决呢,当然办法总是有的。
其实只需要设置 ImeMode=Off 即可解决问题,关于这个属性,大家可以参考下面的介绍。(就开发而言,记得逢数字,日期的控件,必须设置 ImeMode=Off,否则你的软件使用客户会骂娘。
ImeMode 枚举:指定一个值,该值是用来确定在选定了对象时该对象的输入法编辑器(IME)的状态。以下是微软的解释:
成员名称 说明
Alpha 字母数字单字节字符(SBC)。此设置仅对朝鲜语和日语 IME 有效。
AlphaFull 字母数字双字节字符。此设置仅对朝鲜语和日语 IME 有效。
Close Disable IME 被禁用。如果使用此设置,则用户无法从键盘打开 IME,而且 IME 浮动窗口处于隐藏状态。
Hangul 朝鲜文 SBC。此设置仅对朝鲜语 IME 有效。
HangulFull 朝鲜文 DBC。此设置仅对朝鲜语 IME 有效。
Hiragana平假名 DBC。此设置仅对日语 IME 有效。
Inherit 继承父控件的 IME 模式。
Katakana 片假名 DBC。此设置仅对日语 IME 有效。
KatakanaHalf 片假名 SBC。此设置仅对日语 IME 有效。
NoControl 无(默认)。
Off IME 已关闭。此模式指示 IME 已关闭,这意味着该对象的行为方式与英语输入模式相同。此设置仅对日语、简体中文和繁体中文 IME 有效。
On IME 已打开。此值指示 IME 已打开,可以输入中文或日语特定的字符。此设置仅对日语、简体中文和繁体中文 IME 有效。
2.NET 开发总结 篇二
当一个HTTP请求到服务器并被IIS接收到之后, IIS首先通过客户端请求的页面类型为其加载相应的.dll文件, 然后在处理过程中将这条请求发送给能够处理这个请求的模块。在ASP.NET 3.5中, 这个模块叫做Http Handler (HTTP处理程序组件) , 之所以.aspx文件可以被服务器处理, 就是因为在服务器端有默认的Http Handler专门处理.aspx文件。IIS在将这条请求发送给能够处理这个请求的模块之前, 还需要经过一些Http Module的处理, 这些都是系统默认的Modules (用于获取当前应用程序的模块集合) , 在这个HTTP请求传到Http Handler之前要经过不同的Http Module的处理。这样做的好处一是为了一些必需的过程, 二是为了安全性, 三是为了提高效率, 四是为了用户能够在更多的环节上进行控制, 增强用户的控制能力。
2 ASP.NET性能优化
2.1 尽量使用静态HTML页面
ASP.NET开发的页面是先在服务器执行然后查询数据库返回数据最终生成HTML送到客户端, 这样来实现数据的动态交互, 运行起来非常方便。但这类程序不得不耗费一定的服务器资源。如果并发量大则肯定会导致服务器响应减慢。
而HTML静态页面是效率最高、消耗最小的页面, 因为它是直接存储在服务器硬盘中的, 当用户请求时, 服务器并不需要做任何处理, 而直接返回该页面, 这样性能消耗最小。因此对于访问量大的新闻频道类的网站, 信息内容的处理方法通常都在后台发布的时候直接生成静态HTML文件, 而不是每次访问都去读取数据库, 这样可以减少数据库的访问次数, 加快网站速度。
2.2 避免不必要的回送操作
在ASP.NET页面的Page_Load事件中的代码, 只要加载一次页面, 都会被执行一次。而按钮类控件比如Button等点击执行的时候, 都会执行回送操作, 这样会激发Page_Load事件而执行其中的代码, 但通常执行Button等点击类事件时, Page_Load事件中的代码是不需要执行的。因此ASP.NET机制中提供了Page.Is Post Back来避免对往返过程来执行不必要的代码。
2.3 关闭不必要的Session状态
Session在ASP.NET中的作用是保存用户的相关信息, 这些信息是保存在服务器端的, 主要用于授权机制。如果Session状态为开启, 则每次调用页面的时候, 都会首先查询Session状态, 虽然单个页面查询Session状态性能消耗小, 但是当并发量大, 访问页面非常多时, 这样显然会影响页面执行速度。因此如果该页面只是用于显示信息, 跟授权无关, 那么请关闭Session状态。比如一般CMS系统的前台页面是不需要Session的, 可以关闭它, 关闭Session的方法是在页面Page指令中加入如下代码:
2.4 关闭不必要的View State
View State在ASP.NET中的作用是保存数据在页面上, 每个对象都必须序列化到View State, 然后进行回传反序列化, 因此使用它是要耗费代价的。ASP.NET默认是开启View State的, 因此如果页面只是用于显示信息, 不用于表单交互, 则可以关闭它, 这样既可以减少View State序列化时耗费的性能, 又可以减小ASP.NET页面本身的体积大小。因为序列化的这些信息都会保存在该页面的HTML源代码中, 会增加页面的体积。
关闭的代码如下:
2.5 尽量在客户端进行用户输入验证
对ASP.NET用户输入进行验证的时候, 比如输入是否合法、是否是数字、格式是否正确、是否为空等, 采用服务器端C#代码来判断虽然非常地方便, 但是每次执行都需要送回服务器进行处理, 这样会大大影响系统的性能。在不必要的情况下尽量采用客户端验证, 比如ASP.NET提供了功能丰富的数据验证控件。
2.6 禁用调试模式
在发布网站之前, 需要始终牢记禁用调试模式。调试模式是在开发过程中用于开发人员调试程序使用的, 如果启用了调试模式, 则该网站的运行性能会受到非常大的影响, 当访问量小时感觉可能不太明显, 如果并发量大, 则网站性能会大大降低。
3 ASP.NET程序开发流程概述
3.1 需求分析
在整个项目中这块可以说是非常重要, 没有需求或者需求不明确, 那么开发人员将无从下手, 所以前期的需求调研是非常重要的, 如果在这块没有好好整理的话将会在后面遇到很多的问题。
3.2 数据库设计
当做好需求分析的时候, 下一个步骤就是搭建整个数据库, 可以说数据库是整个项目中最重要的角色, 一个优秀的数据库设计者就能从这里看出来。
在进行数据库设计的时候主键是必须的, 每个表都有其对应的主键, 而且主键最好用一个不相干的字段ID来表示, 这样方便我们在项目里面写代码。其他的就是一些命名之类的最好要见名知意, 不要使用汉字命名, 还有数据库的设计遵循三大范式。
3.3 编码
首先建立解决方案项目, 最后使用动软生成器生成相应的代码, 然后放到解决方案中, 修改bug, 使动软的代码可以运行, 最后建立web应用程序, 整个架构就是一个典型的三层架构。在各小组项目整合的时候, 如果前期不讨论如何弄的话在整和项目的时候将会遇到许多的问题, 这需要我们在Web应用程序中必须建立相应的使用外部文件的文件夹, 比如我们使用的JS文件我们可以放到Jquerys文件夹下面, css文件可以放到相应的style文件夹下面, 还有调用的dll我们可以放到lib文件夹下面。
动软生成的代码, 我们一般情况下不可以直接在里面操作, 因为那样的话如果数据库的结构变了, 我们需要重新生成代码, 将会覆盖我们的代码, 我们需要给DLL层的用户表里面添加一个分页的方法, 那么可以直接建立一个部分类LYSC_user Ext, 然后实现代码。
对于后台的实现, 后台是分角色写的, 个人有个人的模块, 所以后天的开发尤其能体现出来前面所说的内容, 因为后台分为用户管理、客户管理、企业文化、新闻和人才管理, 所以对应的每个角色都建立一个文件夹, 比如用户对应Users, 新闻对应news, 然后将该使用的easy UI文件夹行放到后台下面, 然后因为在后台用到了富文本编辑器, 所以将富文本编辑器的文件夹也放到下面, 这样就搭建好了整个系统的开发环境, 然后将这个文件发给我们的每个成员, 然后每个成员对应每个成员的开发角色, 在其相应的文件夹下面建立html, 一般处理程序和代码的书写, 在最后合并的时候我们只需要拷贝过来一个成员的文件夹复制到项目里面就行了。
3.4 调试测试
调试非常重要, 在写代码的时候就应该适当的调试, 比如那些很低级的错误, 文本框的长度, 邮件格式, 文本框不能为空等这些本来可以避免的Bug我们应该就不要让其发生, 所以我们在编写代码的时候就应该写完。调试测试最好由专业的团队进行测试, 最忌讳的就是自己测试自己的代码, 那样可能一些潜在的代码始终是测试不出来的, 所以等项目成型之后就要将自己开发的模块分给别人测试, 而你测试别人的模块, 这样使用黑盒测试一下基本通过, 这样一个网站算是成型了。
参考文献
3.NET 开发总结 篇三
S-ID系统是通过实时检测、控制现场作业对象的移动状况,从而,具体且准确地指导作业现场人员的操作,实现对存储货位过程中无差错管理的系统。系统通过监测作业状态,从而改善设备的位置和布局,提高作业效率和仓库利用率,无需人工的货位确认,彻底排除了人为过失。
一、基于.NET的超声波定位系统的关键技术介绍
(一)系统技术简介
S-ID技术的原理是在固定的三个空间坐标上设置三个超声波接收点,即受信机,被测物(发信机)间断发射超声波,通过测量三个接收点超声波到达的时间,换算为距离,从而得到被测物的空间坐标。系统构成图如图1所示。
利用锂电池供电。每隔一定时间向受信机发送超声波,当收到受信机发回的红外线后,再发送超声波。
2受信机
在接收到发信机发送的超声波后,将位置信息传回控制器,然后发送红外线,确定收到信息,此时发信机再发送超声波。
3控制器
控制程序通过控制器可以向发信机和受信机发送指令,也可以通过控制器接收来自发信机和受信机的信息。然后将信息发送给上位PC进行处理。
(二)3D编程技术
1D3D
D3D通过HAL(硬件抽象层)提供设备独立;HAL是由设备制造商提供的设备指定接口,D3D直接使用显示硬件来工作,程序才能不需要和HAL交互。应用程序使用D3D暴露的一系列接口和方法而不是HAL提供的机制来使用显示设备。设备制造商在WINDOWS的各个平台上(XP,2000,98等)实现32位编程。HAL可以是显示驱动器的一部分,或和设备驱动器通过一个驱动器生产商定义的接口来通讯的独立DLL(动态链接库)。
D3D HAL由芯片制造商、主板生产商或OEM实现。HAL仅仅实现设备依赖的代码并不竞争的执行。如果硬件没有执行一个功能,HAL就不会将其作为硬件功能来报告。另外。HAL并不验证参数,D3D在调用HAL之前执行参数验证。在微软DirectX 9。HAL可以有三种不同的顶点处理模式:软件顶点处理、硬件顶点处理和同一个设备上的混合顶点处理。纯设备模式是HAL设备的变量。纯设备类型仅仅支持硬件顶点处理,并仅仅允许应用程序查询状态的一个小的子集。另外,纯设备仅仅在有最小化容量级别的适配器上使用。
2OpenGL
OpenGL是用于开发简捷的交互式二维和三维图形应用程序的最佳环境,任何高性能的图形应用程序,从3D动画、CAD辅助设计到可视化仿真,都可以利用OpenGL高质量、高性能的特点。OpenGL已成为独立于应用平台的图形标准,一个典型的OpenGL应用程序可以在任何平台上运行一只需要使用目标系统的OpenGL库重新编译一下。
OpenGL非常接近硬件,是一个圆形与硬件的接口,包括了100多个图形函数用来建立三维模型和进行三维实时交互。QpenGL强有力的图形函数不要求开发人员把三维物体模型的数据写成固定的数据格式,也不要求开发人员编写矩阵变换、外部设备访问等函数。大大地简化了编写三维图形的程序。由于微软在Windows中包含了OpenGL,所以OpenGL可以与Visual系列开发工具紧密接台,简单快捷地实现有关计算和图形算法,并保证算法的正确性和可靠性。简单地说。OpenGL具有建模、变换、色彩处理、光线处理、纹理影射、图像处理、动画及物体运动模糊等功能。
OpenGL的作用机制是客户(client)/控制器(sever)机制,即客户(用OpenGL绘制景物的应用程序)向控制器(即OpenGL内核)发布OpenGL命令,控制器则解释这些命令。大多数情况下,客户和控制器在同一机器上运行。正是OpenGL的这种客户/控制器机制,OpenGL可以十分方便地在网络环境下使用。因此Windows NT下的OpenGL是网络透明的。OpenGL图形库被封装在一个动态链接库内(OpenGL,DLL)。受客户应用程序调用的QpenGL函数都先在OpenGL32.DLL中处理,然后传给控制器Winsrv.DLL。OpenGL的命令再次得到处理并且直接传给Win32的设备驱动接口(De-vice Drive Interface。DDI),这样就把经过处理的图形命令传送给视频显示驱动程序。
而在三维图形加速卡的GLINT图形加速芯片的加速支持下,两个附加的驱动程序被加入这个过程中。一个OpenGL可安装驱动程序(Installable Client Driver,ICD)被加在客户这一边,一个硬件指定DDI (Hard—ware-specific DDI)被加在控制器这边,这个驱动程序与Win32 DDI是同一级别的。
(三)3DSTATE引擎介绍
3DSTATE 3D图形引擎是一套3D图形开发环境,其为通用3D软件开发提供了所有的底层支持。使用此开发环境开发3D软,件,用户不必了解引擎的工作原理,只需将精力放在自身软件的逻辑处理上,剩下的工作将由引擎来完成。
13D STATE3D引擎的特性
(1)高性能
3D STATE 3D引擎可获得较高的FPS(Frames Per Second)值,它在渲染速度(FPS)已接近硬件的理论值。它的画面质量属艺术级的,引擎内部还带有许多特效制作函数,用它们可制作出诸如半透明彩色板、爆炸、水下、水面波纹、3D动画、灯光、影子等特效。
(2)新技术
引擎在渲染速度和图像质量上具有高于其它基于PC机上的引擎的性能。使用3D STATE的3D引擎使得向任意程序添加3D内容变得简单。
(3)简单易用
在引擎SDK中,没有任何新的数据结构和类,都只是基本的APl函数,综合使用这些API函数。即可在较短的时间里开发出高性能的8D程序来。
(4)完全的自我控制
在引擎中,只需通过其API函数在位或字节级别上控制引擎的各方面行为,且在使用本引擎时,仍然可以继续使用其他引擎。
(5)通用性
引擎可用于任何需要3D内容的程序。且针对户内和户外式的程序都做过了优化处理。
(6)完整的开发工具包
引擎的开发包中。附带以下工具:
SDK:在用户所熟悉的开发环境中,可以使用它的API函数集对3D世界进行完整的控制。
World Builder:用它可以通过简单的鼠标拖放操作直接设计出复杂的3D世界。
Terrain Builder:用它可将位图直接转换
为真实的3D地形。
World Text Editor:用它可直接编辑3D世界文件。
World Viewer:用它直接可以打开并看到3D世界文件的内容,便于对世界文件的修改。
(7)DLL技术
由于3D STATE的3D图形引擎采用DLL技术,当引擎版本升级时,用户只需用新的DLL替换老的DLL即可,而不需要重新编译程序。
2.3DSTATE3D引擎基础
(1)3D坐标系
3D坐标系表示为:X轴——其正方向从屏幕里指向屏幕外;Y轴一其正方向从左指向右:z轴——其正方向从下指向上;原点——为(0.0.0)此坐标系也就是引擎中的世界坐标系,它属于绝对坐标系。所有其它坐标系将相对于此坐标系定义,如组的坐标系、目标的坐标系以及摄像机的坐标系,他们都是相对坐标系。在实际使用时,使用相对坐标系往往比绝对坐标系更方便。
(2)句柄
在引擎中,所有目标均有一个句柄(DWORD值),用它来标识一个特定的目标。所有面向特定目标操作的APl函数均接收这个句柄,以确定要操作的对象。引擎API函数中,几乎各组API中均有一个函数STATEZ_is(…),我们可用此函数来判定给定的句柄是否指定类型目标的标识。
(3)编辑器模式(Editor Mode)与观察者模式(Viewer Mode)
引擎有两种运行模式,即编辑器模式和观察者模式。这两种模式的选用由世界文件加载函数STATE_engine_load_world在启动引擎时一次性设置。并且不可实时切换,缺省为观察者模式。引擎运行时可由STATE engine_is_editor mode来识别正在运行的模式。
二、基于.NET的超声波定位系统的实现
(一)设备与控制器之间的技术连接
1C/S模型
即客户端,服务器模型,是一种非对称式编程模式。对于这种模式而言,其中一部分需要作为服务端,用来响应并为客户提供固定的服务;另一部分则作为客户端用来向服务端提出请求或要求某种服务。在实际应用中,程序可以同时包含客户端和服务端。在此系统中。服务端即控制器。
2连接方式
服务器套接口连接中,考虑采用赋给控制器专用端口(50D3)来实现连接。在建立了与控制器套接口的连接后,应用程序会打开客户端的配置文件,对数据库信息进行读取。在与控制器建立连接时,如果连接未成功,则结束连接请求,并提示连接失败;若连接成功,就会对客户端消息进行处理并等待控制器的响应。
(二)数据库操作实现
系统实现中的应用程序页面与数据库之间的操作主要是通过DataTable完成的。DataTable是ADO,NET中的一个类,可用于在程序中以临时表的形式填充数据。程序员可以对DataTable进行定制,通过Spread表格工具实现数据库数据的在线编辑、更新、删除,以及对显示数据进行排序、打印等,这些都方便了系统编程工作。
(三)系统流程
系统的主要工作包括:入库管理、出库管理、库存管理等。
入库作业流程包括:设备连接、确定入库明细、进行入库操作、完成入库。如图2所示。
出库作业流程包括:设备连接、确定出库明细、进行出库操作、完成出库。
(四)系统功能实现
1系统界面
当用户初次使用本系统时,需要分别对控制器、发信机、受信机进行设置,此时系统会把这些值存入数据库中,下次使用时,上一次设置的值即为默认值。点击默认设置以后,用户需要确定要进行的操作。即入库作业或出库作业,选择后下拉菜单和文本框被激活,可以通过它们确定货物的种类及数量,点击“OK”,进入作业监控界面。如图3所示。
2连接界面
用户输入欲连接控制器的IP地址及端口号。然后点击“Connect”按钮,如已连接,则提示已连接控制器;如连接成功,则提示连接成功并返回系统界面;如未连接成功,则提示连接失败;若点击“Close”按钮,则关闭与控制器的连接。如图4所示。
3发信机界面
用户输入要使用的发信机数量,发送时间间隔。点击“Set”按钮确定。然后逐一设置发信机地址,以“Finish”按钮完成设置。如图5所示。
4受信机界面
先设置受信机地址,然后该地址所对应的受信机会自动在下面的下拉菜单中出现,在下拉菜单中选择受信机,并逐一设置坐标,以“Finish”按钮完成设置。如图6所示。
5在库管理界面
用户可以通过此界面查询、修改或删除货物。如图7所示。
(1)查询
在文本框中输入一个货物名称。然后意击“Search”按钮,如存在。则在表格中显示其明细;如不存在,则提示货物不存在;若直接点击“Search”按钮,则在表格中显示所有货物明细。
(2)修改
在表格中有内容的情况下,修改内容,然后点击“Modify”按钮,如修改成功,则提示修改成功并修改数据库;否则修改失败。
(3)删除
在文本框中输入一个货物名称,然后点击“Delete”按钮,如该货物存在,则提示是否确定要删除,选择“是”,则删除,选择“否”。则返回;如该货物不存在,则提示货物不存在。或者在表格中有内容的情况下,选择一行,然后点击“Delete”按钮。也可进行删除操作。
6作业监控界面
用户可以利用光标键或鼠标控制镜头在三维空间内的移动,也可以单击鼠标左键切换跟踪对象,或单击鼠标右键切换自由移动和跟踪两种视角。在屏幕左上角显示了当前两个发信机的坐标(两发信机在图中分别以红、蓝两种颜色色块表示)和用户要的货物,在此例中为一台显示器,当发信机移动到显示器位置时,会弹出提示,询问是否要入库,选择“是”,则操作完成,同时修改数据库,程序返回系统设置界面;如选择“否”,则继续监控作业,如图8所示。出库情况与此相同,不再赘述。
4.如何系统有效的学习.net开发 篇四
作为程序员,你有一个永远无法回避的问题——每天要面对各种各样的问题,而唯一的解决之道就是喜欢上解决问题。不仅要喜欢上解决问题后的兴奋感觉,更要喜欢上解决问题过程中的煎熬。
讨厌重复代码。
将重复代码当作一种垃圾,自己不乱扔垃圾,也不能容忍别人乱扔垃圾。
*讲究代码命名。
代码如诗,命名如诗句。在代码的创作过程中,追求命名的优雅,不仅让自己也让别人读起代码来赏心悦目。
*写过三年代码。
编程语言不限。但从事这个职位,需要用C#,因为团队协作开发要使用统一的工具。
*基础知识牢靠。
比如知道三大原理(计算机原理、操作系统原理、编译原理)两个协议(TCP与HTTP协议)一种结构(数据结构)。不牢靠的地方,能及时补课,夯实基础。
*基本功够扎实。
比如正则表达式不在话下,Windows/Linux服务器玩得转,Git轻车熟路。如有基本功不扎实,能积极补练基本功。
*能够面向对象。
至少熟悉一门面向对象编程语言,有一定的面向对象设计基础,能够将业务逻辑转变为对象之间的交互。
* 英语水平不赖。
能够流畅地阅读英文技术资料,能够顺畅地与国外开发者用英文进行文字交流,能够准确地用英文进行代码中的命名,能够用英文写代码注释与git提交说明。
自学能力很强。
能够根据面临的实际问题,根据自己的不足,根据自己的兴趣,根据未来发展的需要,持续地进行学习。更要能在自己所犯的错误中学习。一边写代码,一边学习;一边学习,一边写代码,这就是你的程序人生。
*自我驱动开发。
5.NET 开发总结 篇五
1:[Test,Category(“Normal”)]
2:publicvoidTestAdd()
3:{
4:Calculator cal =newCalculator();
5:Assert.IsNotNull(cal);
6:intexpectedResult = 5;
7:intactualResult = cal.Add(a,b);
8:Assert.AreEqual(expectedResult, actualResult);
9:}
10:
11:[Test, Category(“Normal”)]
12:publicvoidTestMul()
13:{
14:Calculator cal =newCalculator();
15:Assert.IsNotNull(cal);
16:intexpectedResult = 6;
17:intactualResult = cal.Mul(a, b);
18:Assert.AreEqual(expectedResult, actualResult);
19:}
20:
21:[Test,Category(“Long”),ExpectedException(typeof(NullReferenceException))]
22:publicvoidTestSub()
23:{
24:Calculator cal =newCalculator();
25:Assert.IsNotNull(cal);
26:intexpectedResult = -1;
27:intactualResult = cal.Sub(a, b);
28:Assert.AreEqual(expectedResult, actualResult);
29:}
我们可以把一组执行较长时间的测试函数放在一组中,然后有选择的执行,如下图所示:
★ 浅析.NET开发中代理模式的使用.net
★ 常用的Linux网络安全工具简介Windows系统
★ net实习周记
★ .net软件工程师简历范文
★ 浅析.Net下的多线程编程.net
★ 信息和信息处理工具
★ 音乐欣赏常识工具大
★ 免费发短信工具大荟萃
★ 课件制作工具
6.NET 开发总结 篇六
系统开发设计
020901048
李丰
通过第一周的实习熟悉了Microsoft Visual Studio.NET 2003,并熟悉了软件的使用环境和软件中的一些模板。
分析企业的部门结构和整个系统业务需求和数据需求,绘制了部门结构图以及业务需求图。对整个系统进行描述。通过老师讲述了解了系统开发设计阶段的具体事宜:
1.需求分析:包括了业务模型、用例模型、GUI原理(图形用
户接口)。输出的产物有用例图和用例描述。
2.系统分析:用例定义、对象模型、GUI原型。输出有顺序图、协作图、类图、对象状态模型。
3.系统设计:对象模型、数据模型、组建模型、结构模型接口
说明。输出有详细的顺序图、详细的类图、操作说明书、数据库定义以及组建结构。
通过后两周的实习,已经初步了解了商场销售系统的主要业务模块:业务部从有关厂家和批发商订购商品;订购商品到货时,由业务部的制单人填写商品入库通知单,通知仓库进行行验收入库;仓库保管员按入库单对到货进行验收入库;无论验收情况如何,都要填写验收单,通知业务部及财务进行做账。
柜台需要库存商品上柜销售时,也由业务部的制单人填写商品调拨单分别通知仓库和柜台组;仓库按调拨单发货;柜台按调拨单提货
到柜台;商品零售时,由售货员填写交款单给顾客,顾客拿交款单到收银台交钱,收款员按收款单的金额收款,然后在交款单上盖收款章,顾客凭盖章后的交款单到柜台取走商品。
系统的需求主要包括了:用户登录,经理业务部业务管理,仓库业务管理,柜台业务管理,收银台管理,商品三级账管理,系统管理设置。
对经济业务部业务管理的数据需求和仓库业务管理的需求。对其数据进行描述,设定主码,属性。
实习心得:
通过三周的实习对该企业的商业运作管理系统有了初步的认识,在分析过程中发现了一些平时从书本上无法学到的东西,在本次的实习中通过对企业的销售流程的分析,了解了企业的账目编制以及企业在账目编制过程中出现的一些问题,例如退货的账目处理,销售漏记等问题的处理过程。
7.NET 开发总结 篇七
传统Web应用程序的开发是表现层基于页面、服务器端传输数据的模式, Web应用程序表现层建立于HTML页面之上, 而HTML页面是适合于文本的, 随着Web应用程序复杂性的提高, 传统的Web应用程序已经不能满足网页浏览者更高的、全方位的体验要求了, 这就促使了具有高度互动性和丰富用户体验的RIA的出现。RIA集成了桌面应用程序的强交互性和传统Web应用程序的部署灵活性, Flex是RIA比较成熟的解决方案, 全球98%的PC机上都安装有Flex所需的客户端Flash Player, 几乎可以运行在所有的PC机上。Flex的表现层是基于Flash, 不仅界面非富, 而且可以做到真正的跨平台。
1 RIA和Flex概述
1.1 RIA概述
RIA技术是由Macromedia于2001年提出的概念, 是集桌面应用程序的最佳用户体验功能与Web应用程序的广泛采用、快速低成本部署、多媒体互动以及实时迅速于一体的新一代Web应用程序。现在已经有很多的公共站点和者企业内部站点正在逐步采用RIA技术, RIA与传统的Web应用程序的最大区别在于其客户端是富客户端。
RIA开发必须具备3个要素:富客户端技术、服务器技术和开发工具。富客户端技术充分利用本地计算机的处理能力来处理数据, 而不需要把需要处理的数据发送到服务器处理, 充分利用了本地计算机的资源。服务器技术提供了一种与富客户端的连接机制, 作为RIA的服务器技术必须从现有的服务器技术继承, 可以提供一个快速的脚本环境, 支持数据库应用开发、双向数据通信、实时数据通信。RIA实现必须有一组简单而高效的开发工具, 如果没有一组简单而高效的开发工具, 那么富客户端技术与服务器技术是毫无意义的。
“富”表示强交互性、功能强大、良好的用户体验, “富”体现在两个方面:数据模型的丰富和用户界面的丰富。数据模型的丰富是指用户界面可以显示和操作更为复杂的嵌入在客户端的数据, 它可以操作客户端的数据和非同步发送接收数据。用户界面的丰富是指RIA给用户界面提供了灵活多样的界面控制元素, 这些控制元素可以很好地与数据模型相结合以给用户良好的体验。
富客户端技术通过提供可承载已编译客户端应用程序 (以文件形式, 用HTTP传递) 的运行环境, 客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务器, 这是一种安全、可升级、具有良好适应性的面向服务模型, 这种模型由采用的Web服务所驱动。结合了声音、视频和实时对话的综合通信技术, 使RIA具有前所未有的用户体验。
1.2 Flex概述
Flex是Adobe公司推出的RIA解决方案, Flex技术相对于其它RIA技术的优势是功能强大、技术成熟。Flex编程模型和各个产品构成了完整的RIA开发平台, 并且拥有完善的文档和示例, 拥有规模较大的开发社区, 是目前最成熟和完善的RIA技术。Flex能够帮助开发人员充分利用Flash Player这个富客户端运行时环境, 高效地开发富互联网应用程序。
Flex的优点是代码编写比较简单, 可以生成比较丰富的功能, 且具有更佳的用户体验。而且跨平台, 跨浏览器, 程序员不用考虑兼容性问题。只要客户端运行环境下有Flash Player就可以了, Flex的目标是让程序员简单快速地开发RIA应用。在B/S多层式开发模型中, Flex应用属于表现层, Flex RIA目前的集成开发环境已经是Flash Builder 3, 它建立在Eclipse平台之上, 可提供可视化开发、调试、部署等功能。
Flex程序客户端代码通常有由MXML和Action Script两部分组成。MXML是一种XML格式的标记语言, 其作用是进行界面的描述;Action Script是一种面向对象编程语言, 其作用是进行事件和错误处理、数据绑定, Flex用于富客户端开发, 其原理是将MXML文件和Action Script编译成Flash Player应用程序, 即二进制的swf文件。并把二进制文件部署在Web服务器中, 当用户在客户端浏览器访问服务器时, 浏览器会下载swf文件并在Flash Player中运行, 从而利用Flash的强大功能, 带来丰富的用户体验。Flex系统的技术架构如图1所示。
2 Flex项目开发流程
2.1 创建和发布服务程序
(1) 启动Microsoft Visual Studio 2005, 创建一个ASP.NET Web服务程序, 根据需要编写相应的方法。
(2) 编译服务程序, 并发布网站。
(3) 在IIS中部署发布的网站, 已备Flex应用程序调用。
2.2 创建Flex应用程序
(1) 启动Flex Builder 3并从主菜单中选择File>New>Flex Project, 出现New Flex Project wizard (新项目向导) , 输入项目名称, 再选择项目文件存储位置, 默认的目录是C:Documents and Settingsuser_nameMy DocumentsFlex Builder 3, 点击Next (下一步) , 输入项目开发时编译输出的位置, 默认为“flexbin”。
(2) 在集成开发环境中, 向主界面添加一个或多个容器, 并向容器中添加控制器, 例如输入域、输出域、按钮, 来设计用户自定义的界面。
(3) 添加应用程序之间的互动, 定义数据模型。
(4) 添加RPC (远程过程调用) 服务组件, 如Web Service组件, 以备连接数据服务。
(5) 添加脚本来扩展组件。
2.3 部署Flex应用程序
编写完Flex应用程序后, 将应用程序编译为swf文件, 即从源代码生成一个能在Flash Player中运行的swf文件。具体操作是在主菜单中选择File>Project>Export Release Build, 将Flex应用程序输出为一个release版本的swf文件filename.swf, 然后在在IIS中部署这个文件, 用户可以通过HTTP请求来访问部署的swf文件:http://hostname/path/filename.swf, hostname是指服务器的IP地址。出于安全的原因, 如果在客户端计算机上的Flash Player中运行应用程序, 可以使用以下3种方式访问远程的数据:
(1) 应用程序的swf文件与远程数据源位于同一个域中。
(2) 使用代理, 同时swf文件与代理位于同一个服务器中。
(3) 在数据源的宿主web服务器上安装crossdomain.xml (跨域策略) 文件。
如果要在Flex应用程序中跨域获取数据, 就必须在宿主Web服务器上配置文件crossdomain.xml。例如, Flex应用程序在domain A下面, 要访问domain B暴露的Web Service, 那么domain B的服务根目录下必须有一个crossdomain.xml文件, 来配置说明有这个权限, 这是Flash Player的安全限制。Crossdo main Xml中的关键代码如下所示:
3 应用示例
该部分基于.NET平台, 以C#为开发语言使用Microsoft Visual Studio 2005开发的Web Service作为远程数据源, 使用工具Flex Builder 3开发一个简单的Flex应用程序, 求一个指定长和宽的长方形的的面积。详细介绍Flex与Web Service的数据通信过程, 包括Flex应用程序连接调用Web Service和给Web Service方法传递参数。
(1) 在Microsoft Visual Studio 2005中创建服务Calc Area Service, 并在IIS中发布该服务, 关键代码如下:
(2) 在Flex Builder 3中创建一个项目Flex Test, 然后在设计界面上拖上几个控件, 包括Label、Text、Text Input、Button, 程序运行界面如图2所示。
关键代码如下:
以上代码使用标签方式访问Web Service, wsdl属性指定到要访问Web Service的wsdl地址“http://localhost/Calc Area Service/Service.asmx.wsdl”, 其中定义了一个操作标签
4 结束语
RIA是下一代的具有强交互性和良好用户体验且部署灵活的网络应用程序。本文简明扼要地说明了Flex项目的开发流程, 并通过一个简单示例介绍了一种技术框架:采用Flex作为客户端开发工具, 采用.Net作为Web Service开发平台, 采用IIS作为Flex应用程序和Web Service的运行环境, 为类似应用系统的构建提供帮助和指引。
摘要:在了解Flex和RIA的基础上, 描述了基于Flex和.NET开发RIA (Rich Internet Application, 富互联网应用程序) 的流程, 还介绍了Flex与WebService交互的简单示例, 来演示Flex与Web Service通讯的过程。开发的RIA可以在不同的浏览器和操作系统上运行, 只要装有Flash Player即可, 它具有良好用户体验和稳定的性能, 而且是一个跨平台、跨操作系统的系统。
关键词:Flex,RIA,Web Service
参考文献
[1]王峰.基于Flex的Rich Internet Applications技术的研究和应用[D].上海:上海交通大学, 2008.
[2]刘璐.基于Flex的网页游戏的研究与设计[D].北京:北京化工大学, 2009.
8.NET 开发总结 篇八
关键词:课程改革;项目课程;课程包;校企合作
中图分类号:TP393.09-4;G712 文献标识码:A 文章编号:1674-7712 (2014) 18-0000-01
2014年初,学院提出了教育教学改革之课程改革三年行动方案,力争用三年时间在全院范围内建成100门左右高水平、体现“湘商、湘旅、湘菜”办学特色的课程;《.NETWeb开发》(以下简称本课程)是高职高专软件技术专业的一门专业核心课程,针对高职高专学生的特点,以技术应用能力培养为主线,以形成编程能力为重点,将在本课程的教学内容、教学方法及考核方式等方面进行大胆尝试与创新改革,更好地服务于学生的专业成长。
一、课程改革的理念与内涵
(一)项目课程理念
本课程将秉承高等职业教育“校企合作、工学结合、项目载体、多维考核”的教育理念开展课程改革。本课程改革的整体思路:创新课程改革、构建“项目课程”、坚持成果与成效并重、全面服务学生的专业成长。课程改革的下一步做法:与湖南爱瑞杰公司开展深度校企合作,联合课改团队中的企业兼职教师进行本课程的教材开发,把企业的项目融入教材,让企业的技术骨干带着企业真实项目走入课堂,让企业全面参与到本课程的教学改革中来。
课程设计的理念:构建“项目课程”,具体来说:
项目化教材:形成项目化的ASP.NET+SQL Server课程包式校本教材。
项目化团队:实行“1+N+1”课程团队教学改革,专任教师下企业参与项目研发,提升社会服务能力。
项目化教学:由主讲教师+助教来实施“教师示范项目+学生模仿项目+企业实践项目”三项目化教学改革,同时开展“企业兼职教师+企业真实项目”的实践教学。
项目化考核:对学生实施ISAS项目化评价考核模式改革,全面公正地评价学生。
(二)项目课程内涵
在建设“项目课程”整体思路的统领下,课程教学内容的设置将从理论知识和实践操作两个方面来进行项目化教学内容的设计。项目化教学理念主要涵括项目化的理论型教学和项目化的实践型教学,这种模式下,课程教学将设计教师示范项目、学生模仿項目和企业实践项目三大项目,通过打造“1+N+1”(1名主讲教师+多名助教+1名企业兼职教师)项目化课程团队来整体推进基于项目载体的“项目课程”改革。
根据软件开发市场、软件企业、行业对基于.NET技术的Web应用程序开发人员的需求,确定职业岗位培养目标。按照Web应用项目开发流程(生产过程),确定工作任务。归纳出完成工作任务所必须掌握的技能,梳理成课程教学模块所需的知识点、技能点、素质点,最终选取实际项目作为教学载体。在教学实施过程中通过“项目导向、任务驱动”教学模式,结合理论实践一体化教学、角色扮演、项目训练等教学方法和教学手段,充分利用基于大学城空间的开放式学习平台,把课程分解成微课片段,让学生自主学习,达到培养Web程序员应具备能力的课程目标。
二、课程改革的原则
(一)将ASP.NET和SQL Server两方面内容有机结合、同步推进的课程内容设置
本课程包括通常意义上的SQL Server数据库和ASP.NET程序设计两门课程,尝试把SQL Server数据库的知识和技能与ASP.NET程序设计项目融合展开教学,形成基于“ASP.NET+SQL Server”双课程的.NET Web应用开发课程包,从更高的层次上看,这是一门全新课程。
(二)双轨制课堂教学模式、企业兼职教师参与阶段教学
本课程的教师在课堂教学中演示教学项目“青青校园网”的全过程,学生以简化的项目为主线开展实践,重在打基础,难度降低的同时保证知识要点讲清讲透。
本专业校企合作伙伴--湖南爱瑞杰科技股份有限公司排除企业兼职教师指导项目综合实训课,以企业真实项目为载体,时间在课程后段,课程的主要理论知识讲授阶段和学生简化实践阶段基本完成之后。
(三)利用好网络开放学习平台
本课程的所有教学资料和资源进入世界大学城空间,在网络的开放式学习平台上推进微课等形式的教学资源的进一步完善。
(四)重视学习过程和综合技能评价
在本课程的集中实训阶段,学生以项目小组为单位,以基于.Net的web应用开发项目为载体,考察学生完成项目的综合能力和团队协作能力;同时通过ISAS演讲形式把课程项目进行展示,考察学生的语言表达能力与信息技术的灵活运用能力。通过这种考核方式,把过程记录与项目展示结果结合起来评价学生。
三、结束语
通过改革,将本课程与以职业岗位为导向、以能力为本位,实施“示范项目+模仿项目+实践项目”三项目化教学,强化校企合作、工学结合的实践教学模式,以项目小组为单位,增强学生的团队沟通与协作能力,通过ISAS项目演讲方式提高学生的语言表达能力,通过培养学生的综合能力,增强他们的就业能力。
参考文献:
[1]张华,靖向党,付浩海.《基于.NET的Web应用程序设计》课程教学内容与方法的改革[J].长春工程学院学报(社会科学版),2012(04).
[2]章喜宇,吴元凯.高职“.NET程序设计”项目课程开发的探索与实践[J].重庆电子工程职业学院学报,2014(01).
[3]符保龙.基于能力本位的高职Web应用与开发课程改革探索[J].广西教育,2012(15).
9.net程序员工作两年总结 篇九
(2015年9月)最近换了工作,面试了很多家公司想总结下,以便以后回顾知道自己是怎么走过来的。
入行背景:
我是半路转行做软件开发的,2011年7月大学专科毕业,大学专业是:机械制造及其自动化;2011年1月到8月底,在合肥格力电器工作多半年,2011年9月份开始接触编程。
本来只是看了《硅谷禁书》《李开复自传》书上有个观点,一个人千万不能年纪不大,就落后了时代,一定要学会用这个时代的先进技术,那就是计算机互联网技术。我深信不疑!
本来我只是想学习下搜索技术,人人都是讲互联网是个知识宝库,你要学会使用,所以我就想学学搜索,学学办公自动化,学学绘图软件,学学报表制作,以便我 能进入机械行业的工艺部门,能在办公室工作,而不是在一线生产线。在一线生产线时,天天被要求做俯卧撑,受班长组长的批评训话,说工作效率低,工作不努 力,没有达到规定产量达标,每天下班后总是几个可怜虫和我被留下来,免费加班两个小时,甚至更长时间,真是感觉很委屈很窝囊。个人性格腼腆,思的杂,想的 多比较敏感,感觉不适应工厂的那种军事化管理。然后7月份领毕业证时就到北大青鸟咨询了下,有没有电脑培训班,后来在工厂上班,常常接到老师电话邀请,机 会难得,速来报道。搞得我有点想离开工厂了,只差一个刺激,只要刺激了我的自尊心我马上就离开。
然后2011年8月27号左右,到郑州的北大青鸟翔天信鸽中心去学习编程去了。去之前老师告诉我.net非常简单,图形化界面拖拽后,设置下属性就行 了,我在大学学过autoCAD,以为就像画图一样,我认为我是可以学好.net编程的。北大青鸟有个学士后课程,在线学习,那个课程学习者扮演一个角 色,升级学习。后来我才明白,学编程如果没有老师,上来就学那种纯视频引导的课程容易走上歧途,进入死胡同,没有经验的人很容易就卡着学不下去了。我也不 能幸免,我卡住了,我卡到了2012年底。
学士后课程号称三个月改变一生,三个月就就业变身白领,月薪6000以上,我当时也是自信满满,我在大学是规规矩矩的学生,没逃过课,也去过图书馆,没 有特别擅长的方向,但是实验也都能做出了结果,班级综合成绩第二名,属于踏实型。我刚开始完全就是模仿入门课程学习,学编程前我一点编程都没接触过,只学 过单片机和PLC还有数控,PLC当时学的很好,单片机毕业时都忘完了。开始培训了,没有老师,没有讲课,前两周我就是到学校连上网,装上vs2010,登陆上学士后账号,然后开始学习c语言,笔记做的非常详细,也都能运行 处结果,自己感觉很满足。两周后班主任老师,找我说你怎么不开始正式课程学习,我看你没有进度啊?我当时一愣我不是在学习吗?老师就说,你不要在那个入门 C上徘徊了,你赶快开始学习C#,C#和C没有关系,你不需要看前面课程,然后我就开始学习C#。当时真是基础太差了,打字是一指禅,慢得特别很,然后我 就开始学习C#的数据类型,if判断,while循环,for循环这些入门课程,那些在大学学过两年的同学都是一周多点都学完了,我硬是学了快一个月,从 定义一个变量,到数组,到各种逻辑判断,到类的定义,继承,方法,到集合,学的非常细,做各种练习题,我自己不着急毕业,我想学懂学会。(因为开始学编程 我还比较小,我1991年出生)。
后来班主任老师又找我了,说你不能这样啊,你的进度太慢了,都一个半月了,你还在基础这一块,要这样下去你怎么能过完年(2012年3-4月)就业呢? 然后我就着急了,开始多看视频,不做练习题。这里回头提一下我用vs2010写练习时,刚开始我非常纠结于为什么写一行,写一个语句后面要加分号,我企图 搞明白为什么,我经常漏写分号,然后就不到为什么出错,因为我不太明白语句这个概念,有几次为了一个很小的错误,我需要等老师30多分钟他才能跑过来帮我 看一眼,说:“这不是很明显吗?少了个分号,着你看不到吗?”当时真的感觉自己太差了,老师不知道完全无基础的人的无知程度,他不知道我在程序面前有多 傻,我无法理解为什么需要方法,我宁愿复制代码,我也不愿意写方法,当时我就是这么固执,类型这个概念我也是后来很久才突然明白,int类,和class Student 类,其实它们是一样的,都是一种类型而已,只不过在能存中不一样,在存储或者表达数据方面不一样。一个人无法明白,他没有理解的东西,当时我就是那样的状 态蹒跚前进慢慢学习的。
然后快到十一了,当时在和一个女孩谈朋友,因为我从工厂辞职了,就没了收入,学习上也是困难重重,然后我就不想给她过生日,当时是真没钱给她过,因为从工 厂了出来我又变为一个学生了,后来不怎么关心她就慢慢分手了,她也不再理我。然后就是就是继续学习,在学到关键字this,as,is关键字,索引器,多态这个地方我卡住了,我怎么也学不通,我无法灵活变通的使用它们,再下来是学习事件和委托,难度一下子加高了,我不了解C语言的指针,我就无法 理解委托这种奇怪的东西,我才刚刚搞明白方法是一段可以重复使用的代码块,然后委托怎么样闹不明白,这个时候学校的网出问题了,我对学校也有点熟悉了,同 学也熟悉几个,网友问题,他们就要回家学,其实到家(租的地方)大部分都不学习,女生也不学,因为感觉蛮吃力的。
我跟着也回宿舍学习几次,慢慢的天气变冷了,宿舍特别冷,学校也特别冷,只看视频,不怎么做练习,发现到后面前面的东西又忘记了,然后就回头学,效率低 下来,这个时候开始学winform,学习做视频上的练习,winfrom虽然简单,但是要做个和视频上一样的练习项目还是挺花费时间的,可能一节课,把 练习做完需要两三天才行,当时没有这样学习过,其实我一直都没有培养出好的学习方法,以前学习都是上课45分钟,作业几十分钟搞定了,然后下一课。这个时 候学一课需要做的练习时间非常长,然后自己就 把握不好,进进退退,企图把平台的知识学完,常常倒回去看多态,抽象类,接口,索引器,委托,二维数组,这些难点。然后几天一周下来,不知道自己搞到哪 了,似乎这一周什么都没学会,现在看来是人在学习时常常高估自己的能力,编程不是高中背书,不是做数学化学题,它是技能,是需要大量练习和长时间实验感悟 的。
到过年时,我学到winfrom了,然后过完年继续回学校学习,过了一个年,又忘记了一部分,然后就开始学习数据库,学习三大范式,数据库本来我是感觉挺 简单的,也学得会,但是开始学函数,学子查询,学游标时,我又蒙了,后来我也明白,这个东西需要看多方面的资料,需要在使用中慢慢感悟,死劲看,死劲想是 无法明白 的。这个时候还要学习IO操作类
TextReader,TextWrite,StringReader,StringWrite,SteamReader,SteamWrite;文件操 作类File ,Directory,FileInfo DirectoryInfo;XML操作XmlDocument,XmlNode等;还有序列化特性还有其他特性学习;这个时候我非常搞不明白特性这个东 西,我感觉它很丑陋,后来慢慢明白它就是个标记,要给一个类加上点额外信息,不用特性用什么呢?就顺理成章了。
这里提一下,这一块学的差不多的时候,学校给了一个项目就是,模仿windows做一个资源管理器,要求实现树形菜单展示电脑上的资源,能实现新建,修 改,复制,剪切,删除,序列化保存信息;时间是两周,这个项目我差不多以两周做完了,但是升级考试的时候,我怎么也考不过,这个是在线平台为了保证你不能 随便跳着学习,防止好高骛远,然后我就考试不过去,然后就一直在前面耗着,当时我不知道这个考试可以作弊,可以试答案,现在看来那个考试的标准比较高,就 像大学如果严格考试,题不要太简单,大专学校很多人要不及格一样,我当时怎么也考试不过去,因为难点我没学会也没理解,学会的也是死板硬套自己其实是没学 会的,只是死板硬套的记住了一些东西。
卡住过不去,然后我就一边回头学习,一边深陷在事件,委托,多线程,序列化里面,一边慢慢迷失了方向,这个时候学校也没有继续找老师,因为以前的辅导老 师离职了,完全没有老师指导了。学校网速一直没解决,经常掉线,应该是学校为了省钱,给我们三十多个学生拉了个10MB的网线,虽然不是人人都会同时看视 频,但是,10MB让30个人分着用,网速自然也是一种折磨,我们当时也真傻不知道向学校抗议,还傻傻的尝试去练CMCC免费热点,我当时还掏钱开了半个 月。然后很多同学都开始三天打鱼两天晒网,经常回到家中打游戏,说不去就不去了。当时70多个学生报名学习.net编程,最后坚持下来的不到15个,我还是一直在苦苦挣扎的一个这个时候已经到六一了,后来知道我们是郑州北大青鸟第一 批实验对象,学士后我们是河南在线平台的第一批学员,当时学习时,平台课程也经常调整,青鸟的平台的老师讲课说话全部是平音,发音标准,声音温柔,规范的 不得了,几十分钟讲下来不知道他讲的哪个是重点,听课中不知不觉注意力常常分散,导致学习效率非常低下。我到现在都感觉,在线平台的老师如果讲课发音过去 规范化并不好,因为从小到大听惯了老师,抑扬顿挫的讲课吼声。2012年8月到9月的时候我还在学xml,学习DataSet的结构,学习
sqlServer,Ado.Net的对象,学习连接查询,资源释放。再后来我常常在家打魔兽,我把RPG地图都打边了,一边受了良心煎熬,练习下打字,偶尔看看平台的课程。总之是怎么也进入不了asp.net部分的学习,自然也就不谈就业工作了。12年底我提前回家了,我告诉我爸我在郑州玩了一年,我不 想再玩了,我要到北京去学习,我要到传智播客去学习,因为我无意中学习了传智官网的入门视频,一下子明白了以前我怎么也不明白的东西,我发现没有好的老 师,自己模仿视频是不行的。
到现在我一直不太愿意提及2012年这个黑暗的经历,面试我常说是2013年到北京培训,13年10月正式工作。再说2013年2月19号到郑州租住的黑暗房子收拾完退房,坐火车20号我到了北京,21号开始正式上课,.net培训,北京育新金燕龙办公楼。
2013年在北京培训,一直都还可以,但是6月9号毕业时,我的asp.net学的很糊涂,那个时候刚学完,老师上课讲,我什么都明白,然后以冷静下 来,我怎么也进入不到那种融汇贯通的思路,然后对就业还是忐忑不安,因为东西是学完了,但是没有消化。然后我复习了,又学了一遍13年9月底30号结课。10月12号我到了第一家公司,面试官是传智播客的学长,看我培训经历是一个学校,问我session存放在哪?说下它的原理,就说没什么问的,然后我就 到第一家公司上班了。
第一家公司是一家小公司,程序员在我在的大部分时间里是3个,后来是两个,最多的时候是六个还有两个是搞苹果开发的。公司主要做医药行业的企业网站;
医药数据系统,内部的数据录入查询系统,还有对外产品,医药查询的,有客户端用winfrom做;
还有就是维护公司官网和合作伙伴的官网,做一些会议报名,社区文档下载,在线咨询预约等。后来做公司微信开发; 行业商品展示网站开发; 医药行业电商网站开发; 后来14年12月股东闹矛盾,差不多公司都倒闭了,两个月不发工资,技术都走了,然后我就离开开始找第二家公司。
这家公司早期招的技术比较厉害,弄得东西都还可以,别的一般公司有的,我们都有,但是公司留不住人,慢慢的没有成长,一直是小公司; 这家公司开的工资是3.5但是包住,住宿条件还是挺好的。
说下技术:公司大部分是做网站,常用的框架就是三层,再加上工具层,通过类层。只要不是分布式,大量优化,别人能做的,公司也都能做。第二家是医学教育公司; 主要做视频合成工具; 视频课件数据的分类,搜索;
这个公司给5.5,发到手里面4800多到4900多在北京,吃饭快一千省着吃,一千还要多点,然后交通费快三百,一个剩不下什么钱,也学不到东西就想找个更好的,然后九月就辞了,出来尝试找个好的。说下面试的技术点吧:
1,对于数据库优化你有什么办法? 2,强制提高网站性能有什么办法?
3,千万级,亿级数据查询慢,有什么优化办法?
4,聚集索引,非聚集索引的区别是什么?怎么用?什么场合用? 5,常用的集合类是哪些?哪些效率高?效率高的原因是什么? 6,权限管理,具体到增删改查,你如何控制页面显示哪些操作功能? 7,Lucene.net建的索引,这个索引的结构是什么样子?索引为什么可以提高访问速度原理是什么?
8,说一说简单工厂模式应用场景是什么? 9,说一说垃圾回收的原理,讲一下过程?
10,说一下单利模式的应用场景,都有哪些模式,区别是什么? 11,iis如何实现一个简单的集群,Session存在哪里?如何实现共享? 12,说下HttpModule和HttpHandle的区别?
【编辑推荐】
1.别怪程序员——都是项目经理的错 2.什么情况让程序员处于水深火热中 3.PHP 程序员解决问题能力的八个级别 4.野生程序员的故事
10.开发人员经验总结 篇十
立项
一、需求的收集,UC的编写虽然不是开发人员的工作,但最终需要开发人员在产品中实现。所以开发不合理的设计至少浪费了你的时间,开发技术无法实现的设计带来最大的痛苦:失败。所以,开发人员要重视需求以及UC的评审,提出自己能够想到的所有异议。
二、一栋楼很难估算重量,但是一块砖头可以精确估算重量。一个项目的时间很难准确的估计,但把项目开发划分为不能再进行分割的模块功能点,对每个点的估计是可以更精准的估时的,由此由上至下,由下至上,得出近乎准确的编码时间。
三、机会总是倾向有准备的人,成功也是。编码工作保质保量的按时完成需要多方的准备工作,技术难点需要进行充分的技术预言,不熟悉的依赖平台或类库要进行熟悉。
设计一、一图胜万言,模块结构以及流程等很难用用文字描述,即使用文字描述出来也
很难看懂,所以在设计中,要善用用图。
二、痛苦是为了快乐,详细设计过程中有思考的痛苦,繁琐的痛苦,但是绕过这些
痛苦,编码期间将会面临更大的痛苦。
编码
一、磨刀不误砍柴工。对于一个实现可以有很多解决方案,花些时间精力选取你认
为最好的解决方案可以总体上提高工作成效,往往还可以得到用户更好的体验效果。
二、细致认真严谨的工作即是对工作负责,更是对自己负责,让这些成为习惯。任
何一次,任何时候所进行的编码工作,在逻辑、风格、简单有效等方面拿出你的最好,既能更好为公司实现价值,同时更有利自己在技能,岗位的进步。
三、简单是美,在有效的前提下,越是简单的处理方法越是珍贵的,代码编写也是,简单的代码便于理解维护,同时不容易产生错误。
四、慎做改动,当然不是说不做改动或不鼓励改动,而是不做仓促、草率的代码改
动。没有洞察全局,考虑全面,而仓促进行的改动往往没有达到改动的目的却带来了其他问题。
测试
一、事出有因,任何bug都是由于代码的疏漏造成的,修复bug的痛苦过程中切莫怀疑是神在耍弄你,勇往直前的利用排除法或跟踪调试代码等方法找到疏漏所在。
二、遇到自身模块相关问题首先检查自己,相互推诿只会浪费时间以及减弱在其他同事对你的信任。
三、站的高看得远,不同的视角有不同的风景。遇到比较难解决的问题而苦苦没有思路时,转换思路或把问题的考虑范围放的更广一点,往往可以找到解决方案。
四、功能提交测试前或bug修复提交验证前,开发人员都要自己详细的测试一下,验证无误再提交,这样才是一个优秀的开发人员。
全局
一、善于以及及时的沟通。在项目的整个流程过程中,遇到他人的问题或自己解决
不了的问题,切忌堆在自己心里,要及时找问题解决方进行沟通,通过寻求解决方案。
二、三人行必有我师,发现并学习别人的长处。作为开发人员,我们在追求接近完
美的同时,也需要学会欣赏别人的长处,发现别人的优点,并学习别人的优点,转化为自己的潜质,这样,我们才可以进步的更快,更全面。
三、利人利己,善于帮助他人解决问题以及进行知识经验的分享,更有利于自己的提高,同时还可以获得他人的尊重。
四、模块的性能不是减少一行或几行执行代码所能提高的,性能的优化首先是从算
法上考虑,降低时间复杂度,然后从执行逻辑入手,减少循环执行代码的执行次数。
以上是笔者几年做开发测试的经验积累,但是并不全面,欢迎大家拍砖补充。
五、忙里偷闲,在我们项目进行过程中,我们经常是疲惫于编码工作当中,而忽略
了总结、学习进步,这种状态如果一直持续很久,过后我们缺经常发现我们并没有达到我们的目标,结果也不是我们满意的。如何才能更好的达到我们的目标,结果更让我们满意,经验告诉我们,我们不只是编码机器,繁忙的编码工作中,我们也要抽出时间进行总结,学习,甚至短暂的抛下编码工作开个YY小会。
项目经验一句话总结
1.对内项目团队和谐最重要,对外客户关系最重要
2.对业务要有充分的了解
3.数据库表的主键应该是没有业务关系的4.不必完全循守3个范式
5.数据库设计尤其重要
6.单用户登录操作和多用户同时操作可能不一样
7.进度应该精确到每个小时
8.在Java不能完成操作的时候,应该考虑VC或win32
9.尽量不用不成熟的开源软件,而采用由大公司开发的成熟的软件
10.数据库表设计时尽量预留5个左右的备用字段
11.NET 开发总结 篇十一
关键词:Asp.net;网站开发;弹出对话框;必备网页;信息填写 文献标识码:A
中图分类号:TP393 文章编号:1009-2374(2015)22-0025-02 DOI:10.13535/j.cnki.11-4406/n.2015.22.013
弹出对话框,包含三层级的总架构、数据库配有的交互路径、输入进来的验证、转换得来的精准字符串。为了规避常常见到的误差操作,在设定网站之时,应能缩减添加上去的页面数目、文本框附带的总控件。弹出对话框特有的配件,缩减页面总数。这种设计之中,针对细分出来的数据类别,修正及变更原初的文本框。这种弹出特性,提升了原有的网站水准。
1 新颖设计特有的价值
用户发布信息、设定个性网页,都要填写偏多的关联信息。填写好的信息,还应被存留在建构的数据库、衔接着的服务器。对应这种需求,初始时段的网站开发,就应拟定多层级的可用页面。配套页面之中,还应附带文本框,搭配可用控件。添加这类控件,方便了平日之中的信息填充、信息修正等。
从现状看,各类技术加快了原有的更新速率,缩减了刷新时段。多样媒体技术,增添多层级网页,缩减等待耗费。但与此同时,这种成套技术也布设了更多页面、文本框拟定的有关控件。用户上网之时,需要填充信息。在修正信息时,为了纠正特有的某一控件偏差,还需把拟定好的完备页面都予以修正。这种修正方式添加了额外范畴的服务器荷载,带来误差操作,缩减应有的最优体验。
为了规避这一状态,初始时段的设计之中,应能减少附带着的文本框、减少必备页面以及成套控件。设定弹出对话框,即可缩减页面。针对细分出来的数据类别,修正特有的文本框。弹出来的特有对话框,包含宏观架构下的网站框架、控件封装状态、数值提交式样。采纳CSS特有的新颖样式,拟定了带有兼容特性的精准测试。在设定好的浏览器以内,即可搜索下载。
2 总体网站构架
选取开发实例,采纳了多层级特有的网站架构。拟定出来的宏观框架,从底侧层级直至布设的前台,依次涵盖着数据库、配套访问工具、实体层级及特有的访问层级、业务逻辑关涉的层级、惯用的函数层、网站表示层。访问工具层配有的更新文件,表征了重载函数。针对细化类别,更新必备数据、其他范畴的关联数据。
表示层带有验证特性的某控件、封装必备样式。弹出对话框关涉的各类数据,都应及时提交。体系配有的浏览器,对于拟定好的样式,能测定它的兼容特性。
3 独特的数值类别
数据库存留的独特类别,包含可空类型特有的存储数据。这样的数据表征了搜集的基础值、常规范畴内的正常值,除此之外,还应添加特有的null。可空类型范畴的一切数据,在拟定好了类别之后,还应添加问号,例如在time、Data、int特有的数值之后添加一个问号。真正编程之时,常把没能填充进来的文本控件、非字符串这样的独特类别添加在流程以内。默认情形下的取值,设定成偏小日期或者对应着的偏大数值,不可添加null。
有些情形下,常会把设定好的非字符串、可填充这样的文本框控件,都填入零这样的数值,同时一并提交。若把没能填充好的非字符串、文本框以内的控件,都默认成零,那么很难判别真正用户输入、网站默认数值。表征着日期及时间这样的精准赋值,若凸显了偏大的、偏小的关联数值,则不符合本源的默认规则。
弹出对话框独有的新性能,是把没能添加进来的非字符串,赋予默认数值,不可填入特有的null数值。这是因为添加null这样的惯用做法,不利于接续的函数操作。初始程序开发,常把初始时段的最佳赋值,拟定成int关涉的某一对象。若拟定了原初的默认赋值,则这样的取值只可被设定成正负1,很多开发者并没能熟识这一规则。由此可见,用户没能添加上去的这些非字符串,应把可填入范畴的文本框控件,都设定成最佳的可空类型。这就规避了常常见到的偏多误差。底层数据库特有的常规开发、平日之中的操作,都添加了便利。
4 布设样式及封装
4.1 封装各类控件
带有验证特性的网页控件,应被封装在拟定好的文件夹以内,衔接某一文件。这种封装作用,是确保添加进来的信息精准。按照各类环境,在拟定好的页面以内,凸显提示信息。这种新式封装,提升了细节范畴的新体验。
Asc配有的各类控件,包含五类样式。这些样式状态可分成默认架构下的隐蔽状态、平日常规状态、查验成功状态、对应着的验证失败、验证时段中的警告。对于各类状态,都拟定了对应着的CSS。这种控件配有的多层级样式,都被涵盖在不同特性的文件以内。在这之中,隐藏情形下的这类状态,没能被凸显在网页之中。为此,控件表征出来的多类样式,都关联着CSS。
4.2 布设最优样式
弹出来的对话框会包含表示层,这种层级样式整合了更新特有的控件、输入查验必备控件、CSS附带的多重样式。在这之中,带有更新特性的分支控件,在对话框及附带的页面交互之中,可以及时更新,省掉了刷新步骤。输入查验依托的必要控件,确保输入进来的数值是精准的。与此同时,这类双重控件也添加了独有的新式体验。CSS范畴的新颖样式,是表示层配有的侧重部分。弹出对话框附带着的这一样式,被设定在表征样式的文件内。CSS搭配样式整合了遮蔽层、对话框范畴的局部,包含成套样式,其中遮蔽层独有的特性,是防止弹出特有的对话框时,网页仍被更改。对话框特有的总布局、多层级的配套代码,都可查验得到。
各类版本范畴的这种样式、厂商研发得来的不同样式,都搭配多样支撑。凸显出来的对话框,也带有多层级的布局差异。开发进程之中,对于拟定好的某一浏览器,应先去测定它凸显的兼容状态。例如:IE特有的这类浏览器,从原初的版本更替至现有版本,都应经由兼容测验。对于6.0特有的惯用版本,尤其注重测验。
5 结语
伴随网络普及,各类企业都建构了自带的网站。网站建构依托的新颖技术就涵盖了ASP,ASP特有的建构思路便利信息查验。企业依托这一网站,拓展自身形象,提升了内部范畴的办公成效。这种态势下,提升ASP特有的网页速率,缩减潜藏着的数值误差,是面对着的侧重任务。网站开发中,采纳了带有弹出特性的对话框,缩减了拟定的源代码。对于整个网站,设定命名规则、可空类型关涉的多样数据、数据库必备交互、字符串彼此变更、控件封装形式。弹出对话框这样的设定性能,包含数据提交、浏览器特有的兼容状态。这种新颖框架提升了上网时段的新颖体验,方便了数据存储。
参考文献
[1] 周建,朱广祯.Asp.net网站开发中实现弹出对话框
[J].科技信息,2012,(7).
[2] 王春丽.ASP.NET在企业网站中的应用[J].计算机光盘软件与应用,2012,(7).
作者简介:衣李娜(1974-),女,辽宁本溪人,辽宁政法职业学院讲师,硕士,研究方向:软件开发。
【NET 开发总结】推荐阅读:
.net开发人员面试题-多线程06-17
NET软件开发工作职责08-19
android开发总结07-26
农业综合开发总结08-01
管理技能开发课程总结08-01
开发项目总结报告模板09-25
市场开发培训学习总结10-05
JSP开发配置总结11-14
项目开发经理年终总结08-18
java项目开发总结09-03