2011年10月31日,我来到某某网络科技有限责任公司,开始了一个新的工作。前一周,面试的时候,把之前自己做的两个网站项目,给项目经理看了,他说不错,明天就来公司上班吧。但我由于手上还有一个未完成的项目,所以推迟了一周来公司。
来到公司的第一天,经理安排了我一个月的工作内容,前半个月熟悉devExpress控件的使用,因为公司开发的软件基本上都要用到这个控件。后半个月熟悉公司的软件开发流程和产品的项目申报。总之,这一个月都是学习的时间段。下面谈谈我学到了什么,做个总结。
一、项目架构与关键代码
之前做的项目,要么是一层架构,要么是三层架构模式,或用到工厂模式进行的网站开发。来到公司进入的是软件开发部,公司都是.net(C#)语言开发。软件的架构和网站的架构根本就是两种模式。经理拿来一个简单的项目实例给我们边看边练习。 这个简单的项目是用的两层架构模式
一层是:实体层(包括实体类和相应的方法),这些是由Nhibernate自动生成的。
一层是:界面层(有webForm,winForm,wpf),这些是前台展示的。
以前还没听说过Nhibernate,只听说Hibernate,但没有具体的学习。没办法,现在只有找资料学习了。项目里面用的是代码生成,没有用到NHibernate的配置文件。下面是项目的截图:
项目还用到log4net,这个用于记录日志的功能,以前还没用过,程序出错,都可以方便的记录在记事本里。程序启动时执行的关键代码
log4net.Config.XmlConfigurator.Configure();//启动日志记录
IConfigurationSource config = ActiveRecordSectionHandler.Instance;
ActiveRecordStarter.Initialize(config, typeof(OrderItem), typeof(Product), typeof(Orders), typeof(Student), typeof(Class), typeof(Department), typeof(StudentRegister)); //Castle.ActiveRecord初始化
//下面是权限控制
if (Permissions.GetAllPermissions().Length == 0)
{
Permissions.CreatePermission("roleadmin".ToLower(), string.Empty, "角色管理");
Permissions.CreatePermission("roleadmin.delete".ToLower(), "roleadmin", "删除");
Permissions.CreatePermission("roleadmin.new".ToLower(), "roleadmin", "添加");
Permissions.CreatePermission("roleadmin.permissionsave".ToLower(), "roleadmin", "权限保存");
Permissions.CreatePermission("useradmin.".ToLower(), string.Empty, "用户管理");
Permissions.CreatePermission("useradmin.delete".ToLower(), "useradmin", "删除");
Permissions.CreatePermission("useradmin.edit".ToLower(), "useradmin", "修改");
Permissions.CreatePermission("useradmin.export".ToLower(), "useradmin", "导出");
Permissions.CreatePermission("useradmin.new".ToLower(), "useradmin", "添加");
Permissions.CreatePermission("useradmin.rolesave".ToLower(), "useradmin", "角色保存");
}
if (Membership.GetAllUsers().Count == 0)
{
Membership.CreateUser("admin", "123456"); //vs2010自带的用户验证方法
Roles.AddUserToRole("admin", "administrators");
Permissions.AddPermissionsToRole(new string[]
{
"roleadmin", "roleadmin.delete", "roleadmin.new",
"roleadmin.permissionsave",
"useradmin","useradmin.delete","useradmin.new",
"useradmin.edit","useradmin.export","useradmin.rolesave"
}
,"administrators");
}
二、devExpress常用控件总结
1.ASPxSplitter 这个主要用于页面框架的的布局,它的结构如下:
<dx:ASPxSplitter ID="ASPxSplitter1" runat="server" Width="100%" Height="100%" >
<Panes>
<dx:SplitterPane >
<ContentCollection>
<dx:SplitterContentControl ID="SplitterContentControlButtom" runat="server">
</dx:SplitterContentControl>
</ContentCollection>
</dx:SplitterPane>
<%第一个框架结束,第二个框架开始%>
<dx:SplitterPane >
<ContentCollection>
<dx:SplitterContentControl ID="SplitterContentControlButtom" runat="server">
</dx:SplitterContentControl>
</ContentCollection>
</dx:SplitterPane>
</Panes>
</dx:ASPxSplitter>
2.ASPxNavBar 用于导航的设置。它的结构如下
<dx:ASPxNavBar runat="server" AllowSelectItem="True" Target="contentUrlPane" Width="100%" ID="ASPxNavBar1">
<Groups>
<dx:NavBarGroup Text="后台管理">
<Items>
<dx:NavBarItem> .. </dx:NavBarItem>
</Items>
</dx:NavBarGroup>
</Groups>
</dx:ASPxNavBar>
3.ASPxGridView 用于数据展示,功能很多很强大。如下的结构:
<dx:ASPxGridView >
<columns>
<dx:GridViewDataTextColumn>
</dx:GridViewDataTextColumn>
...................
...................
</columns>
</dx:ASPxGridView>
4.ASPxGridViewExporter 用于数据的导出
调用这个方法 gridExportMaster.WriteXlsToResponse();即可以导出数据
5.ObjectDataSource 数据源
<asp:ObjectDataSource ID="ObjectDataSourceMaster" runat="server"
DeleteMethod="Delete" InsertMethod="Create"
UpdateMethod="Update" SelectMethod="FindAll" DataObjectTypeName="YbRapidSolution.Entities.Product"
TypeName="YbRapidSolution.Entities.Product"></asp:ObjectDataSource>
调用这些方法即可以完成数据的所有功能。它是引用的是实体类里面的方法。
6.ASPxRoundPanel 角色权限管理
<dxrp:ASPxRoundPanel >
<PanelCollection>
<dxp:PanelContent>
<dx:ASPxCallbackPanel >
<panelcollection>
</panelcollection>
</dx:ASPxCallbackPanel>
</dxp:PanelContent>
</PanelCollection>
</dxrp:ASPxRoundPanel>
7.ASPxTreeList 树形图
<dx:ASPxTreeList >
<Columns>
<dx:TreeListTextColumn>
</dx:TreeListTextColumn>
</Columns>
</dx:ASPxTreeList>
还学了winForm,wpf下的DevExpress控件的使用,其实都差不多。我们老师说只会拖控件的程序员,就是一个大傻瓜,看来我来公司也是一个大傻瓜,但是没办法,工作中要用这些控件,学完了控件,我现在就学习其他的了。还有一个大项目的构架,现在正在熟悉,以后学完了在更新到博客上。今天发工资了,本来试用期是2K的,结果只发了1.8K,这也许是软件开发的工资中最低的吧。我们的部门经理,考过软考的高级架构设计师,现在是副高职称,工资是我的两倍。杯具啊,准备明年再去考软件设计师。争取拿到4K才能在此行业混下去。