Git.Framework 框架随手记-- 分享一个"比较垃圾"的项目

简介:   本文主要分享一个Git.Framework 开发的一个项目的部分源码,此项目代码"比较垃圾",所以请各位码农,码畜,码神,码圣勿喷!发此文只为记录工作问题以及分享问题!   一. 项目简介   本项目原是某单位的票务管理系统,用于某时装周来进行票务分配以及门票校验使用的。

 

  本文主要分享一个Git.Framework 开发的一个项目的部分源码,此项目代码"比较垃圾",所以请各位码农,码畜,码神,码圣勿喷!发此文只为记录工作问题以及分享问题!

 

一. 项目简介

  本项目原是某单位的票务管理系统,用于某时装周来进行票务分配以及门票校验使用的。其主要分为两部分: 后台管理系统 和 移动终端 。

  使用到的技术:  asp.net ,SQL Server,Wince,Sqlite

 

二. 前端展示

  常用前端技术: bootstrap,jquery

  前端是很多程序开发人员的诟病,CSS,html 永远拖着后退, bootstrap绝对值得你拥有,参考地址 ; 别人高大上的东西你也能够轻轻松松实现

  (1) 登录页面

  

 

  (2) 列表页面

  

 

  (3) 无刷新加载数据

  

 

三. 前端和后台交互实现

  这里前端和后台交互数据使用WebMethod方法来处理,具体代码如下:

[WebMethod(MessageName = "GetList", EnableSession = true)]
public static string GetList(PageInfo pageInfo, ShowFieldEntity entity)
{
            ShowProvider provider = new ShowProvider();
            List<ShowFieldEntity> listResult = provider.GetList(entity, ref pageInfo);
            listResult = listResult == null ? new List<ShowFieldEntity>() : listResult;
            RuleProvider ruleProvider = new RuleProvider();
            StringBuilder sb = new StringBuilder();
            JsonObject jsonResult = new JsonObject();

            JsonProperty p = new JsonProperty();
            JsonObject jsonObject = null;
            if (listResult.Count > 0)
            {
                foreach (var t in listResult)
                {
                    string Begin = ruleProvider.BeginTicketNum(t.FieldNum);
                    int Num = ruleProvider.GetNum(t.FieldNum);
                    int unNum = ruleProvider.GetNum(t.FieldNum, "admin");//获得未分配的票数
                    int useNum = Num - unNum;//获得已分配的票数
                    jsonObject = new JsonObject();
                    jsonObject.AddProperty("FieldNum", t.FieldNum);
                    jsonObject.AddProperty("FieldName", t.FieldName);
                    jsonObject.AddProperty("Begin", Begin);
                    jsonObject.AddProperty("Num", Num);
                    jsonObject.AddProperty("useNum", useNum);
                    jsonObject.AddProperty("unNum", unNum);
                    jsonObject.AddProperty("Remark", t.Remark);
                    jsonObject.AddProperty("CreateTime", t.CreateTime.ToString());
                    p.Add(jsonObject);
                }
                jsonResult.AddProperty("list", p.Items.Select(a => a.Object).ToArray());
            }
            jsonResult.AddProperty("count", pageInfo.RowCount);
            string json = jsonResult.ToString();
            return json;
}
WebMethod 方法

  在aspx.cs代码文件中的代码如上方式书写,即可将一个方法发布为WebMethod方法,类似于WebService可供前端来调用

PageClick: function (pageIndex) {
        var fieldName = $("#txtFieldName").val();
        var remark = $("#txtRemark").val();
        var pageSize = 10000;
        var jsonParam = '{ "pageInfo":{"PageIndex":' + pageIndex + ', "PageSize":' + pageSize + ' },"entity":{"FieldName":"' + fieldName + '","Remark":"' + remark + '"}}';
        $.WebService("/Show/List.aspx/GetList", jsonParam,
        function (result) {
            var Html = "";
            var json = $.parseJSON(result.d);
            
            if (json.list != null && json.list.length > 0) {
                
                $.each(json.list, function (index, item) {
                    Html += "<tr>";
                    Html += "<td align=\"center\"><input type=\"checkbox\" class='checkItem' id=\"" + item.FieldNum + "\" /></td>";
                    Html += "<td>" + (index + 1) + "</td>";
                    Html += "<td>" + item.FieldName + "</td>";
                    Html += "<td>" + item.Begin + "</td>";
                    Html += "<td>" + (item.Num == undefined || item.Num == null ? "" : item.Num) + "</td>";
                    Html += "<td>" + item.unNum + "</td>";
                    Html += "<td>" + item.useNum + "</td>";
                    Html += "<td>" + item.Remark + "</td>";
                    Html += "<td>" + item.CreateTime + "</td>";
                    Html += "<td><a href='javascript:void(0)' onclick=\"Show.Edit('" + item.FieldNum + "','" + item.FieldName + "','" + item.Remark + "')\">编辑</a>&nbsp;&nbsp;";
                    Html+="<a href='javascript:void(0)' onclick=\"Show.ItemDel('" + item.FieldNum + "')\">删除</a>&nbsp;&nbsp;";
                    Html += "<a href=\"/Rule/Report.aspx?FieldNum=" + item.FieldNum + "\">报表</a>";
                    Html += "&nbsp;&nbsp;<a href=\"/Rule/Add.aspx?FieldNum=" + item.FieldNum + "\">发票计划</a>";
                    Html += "</td>";
                    Html += "</tr>";
                });
            } else {
                Html += " <tr id=\"zero\"> <td colspan='10'> <center>没有找到记录!<center>  </td>  </tr>";
            }
            $("#tabList tbody").html(Html);
            // $("#mypager").pager({ pagenumber: pageIndex, recordCount: json.count, pageSize: pageSize, customerText: true, buttonClickCallback: Show.PageClick });
            $.jBox.closeTip()
        }, function () {
            $.jBox.tip("正在加载...", 'loading');
        }, function () {
            $.jBox.tip("加载入库单列表错误!", 'error');
        });
    },
前端调用后台方法

  在js中扩展了jQuery 的一个方法 WebService,用于调用后台的方法获取数据,其中比较重要的代码如下:

$.WebService("/Show/List.aspx/GetList",,)

  这里是请求页面地址,后面GetList为后台WebMethod发布的方法, 其中GetList指向如下

[WebMethod(MessageName = "GetList", EnableSession = true)]

  /Show/List.aspx/GetList  就是调用 页面"/Show/List.aspx" 中 MessageName="GetList" 修饰的方法

 

四. Sqlite 中常见的问题

  

  相信使用过SQLite的也会经常遇到这个问题, 在.NET中调用Sqlite操作,需要添加一个动态链接库,会经常出现这个问题.

  如果出现如上错误,可以根据如下几个方面去查找问题:

  (1) Sqlite 对应的版本问题,最好到官网下载完整的文件包

  (2) 系统32,64位的问题, 一般在IIS中应用程序中>>应用程序池默认设置>>启用32位应用程序 (大部分在VS中调试正常IIS失败的原因在于此处)

  (3) 动态链接库貌似是基于C++,所以需要安装C++环境,一般.NET有自带

 

五. 集成操作ORM

  这里又提到了ORM,很恶心,既不是Linq to SQL , 也不是EF,更加不是NHibernate等, 这里我们称之为 "GIT" 。如何如此自己明白就好,  这是自己开发的一个ORM操作组件,自我评价:"自我感觉良好,大牛嗤之以鼻,菜鸟不知所云"。

public partial interface ITicketRule : IDbHelper<TicketRuleEntity>
{
}


public partial interface ITicket : IDbHelper<TicketEntity>
{
}
数据操作接口

  其实没啥意义,就是继承了上一个接口

public partial class TicketDataAccess : DbHelper<TicketEntity>, ITicket
{
        public TicketDataAccess()
        {
        }

}



public partial class TicketRuleDataAccess : DbHelper<TicketRuleEntity>, ITicketRule
{
        public TicketRuleDataAccess()
        {
        }

}
数据操作实现代码

  通过以上代码基本可以实现对表TicketRule,Ticket 的基本增删改查,其他的ORM都可以实现,没啥好炫的,就怕不小心炫瞎了自己的眼睛 ,低调好!

public List<ShowFieldEntity> GetList(ShowFieldEntity entity, ref PageInfo pageInfo)
        {
            entity.Include(a => new {  a.FieldNum,a.FieldName,a.BeginTime,a.EndTime,a.CreateTime,a.CreateUser,a.Remark});
            if (!entity.FieldName.IsEmpty())
            {
                entity.Where("FieldName", ECondition.Like, "%" + entity.FieldName + "%");
            }
            if (!entity.Remark.IsEmpty())
            {
                entity.Where("Remark", ECondition.Like, "%" + entity.Remark + "%");
            }
            entity.OrderBy(a => a.ID, EOrderBy.DESC);
            int rowCount = 0;
            List<ShowFieldEntity> listResult = this.ShowField.GetList(entity,pageInfo.PageSize,pageInfo.PageIndex,out rowCount);
            pageInfo.RowCount = rowCount;
            return listResult;
        }
查询分页代码

  

 六. 部分源码开放

  很不好意思的吊胃口,我只能公开部分源码,毕竟涉及到公司的商业项目,所以只能如此.

  获取部分源码请加入群 88718955  ,我真的不是来发广告的!有问题大家多多交流, 我也要成为大牛。

 


作者:情缘
出处:http://www.cnblogs.com/qingyuan/
关于作者:从事仓库,生产软件方面的开发,在项目管理以及企业经营方面寻求发展之路
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
联系方式: 个人QQ  821865130 ; 仓储技术QQ群 88718955,142050808 ;
吉特仓储管理系统 开源地址: https://github.com/hechenqingyuan/gitwms

 

相关文章
|
7月前
|
项目管理 开发工具 git
版本控制与源代码管理:在 Visual Basic 项目中使用 Git
【4月更文挑战第27天】本文介绍了在Visual Basic项目中使用Git进行版本控制和源代码管理的重要性。Git作为一个流行的分布式版本控制系统,具备分布式架构、高效性能和强大分支管理等特点。在项目中,需先安装Git,然后初始化仓库、添加文件和提交更改。常用操作包括查看状态、日志、创建及切换分支和合并分支。团队协作时,借助远程仓库和推送拉取命令实现代码共享。虽然Git有学习曲线,但其优势在于强大的功能、灵活性和社区支持,能提升开发效率和代码质量。通过学习和实践,开发者可充分利用Git优化协作和项目管理。
76 1
|
2月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
33 0
|
4月前
|
架构师 开发工具 git
项目去除git版本控制 去除版本控制
文章提供了去除本地项目Git版本控制的步骤,包括删除`.git`文件夹和`.idea`目录下的`vcs.xml`文件。
项目去除git版本控制 去除版本控制
|
4月前
|
jenkins 测试技术 开发工具
协同开发的艺术:Git 在团队项目中的高效应用
【8月更文第16天】在现代软件开发中,团队成员之间的高效协作是至关重要的。Git 作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码的变化和协作。本文将介绍如何利用 Git 来优化团队的工作流程,并提供实际操作的代码示例。
111 1
|
4月前
|
网络安全 开发工具 数据安全/隐私保护
Win10使用Git克隆项目出现fatal: Authentication failed for异常
Windows 10系统中使用Git克隆项目时出现"fatal: Authentication failed for"异常的解决方法,主要是通过修改凭据管理器中的Git凭据密码来解决因密码过期导致的身份验证失败问题。
69 0
Win10使用Git克隆项目出现fatal: Authentication failed for异常
|
4月前
|
安全 开发工具 git
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
这篇文章是关于如何在IDEA中配置Git、在Coding.net上创建项目和代码仓库,并将IDEA中的代码提交到远程代码仓库的详细教程,涵盖了Git安装、IDEA配置、项目创建、代码提交等步骤。
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
|
4月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
5月前
|
开发工具 git
使用Git拉取项目
使用Git拉取项目
|
4月前
|
开发工具 git
IDEA中怎么使用git下载项目到本地,通过URL克隆项目(giteegithub)
IDEA中怎么使用git下载项目到本地,通过URL克隆项目(giteegithub)
276 0
|
5月前
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式