代码改变世界

来到网络科技公司第一个月总结

2011-12-01 11:25  追梦网络  阅读(7063)  评论(83编辑  收藏  举报

      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才能在此行业混下去。