Moon.Net 2.0架構及功能說明(歡迎加入Moon.NET團隊)


    Moon.Net 2.0依舊衷與企業開發的宗旨(高效、便捷、快速、穩定、系統維護的穩定性與便捷性),目標在於打造一個高效能的.NET開發框架。和第一版不同之處在於重新架構了ORM框架,正式命名為Qin.ORM更人性化更美觀化.此外升級了部分功能和UI系統.

    Moon.NET由兩部分組成:

    1.Qin.ORM(一個高性能的ORM系統,其特色是提供便捷的開發和高效的數據庫訪問性能以及方便便捷的系統升級,內含代碼生成器、代碼自動編譯);

    2.Qin.Web(一個快速的ASP.NET服務端框架,內含一個前端js腳本一引擎[有了它,你只需專注於業務邏輯,幾乎絕大部分代碼由引擎生成]、以及實現權限認證的AOP方案和一個前端UI庫).

  Qin.ORM的相關介紹

    1.背景

    針對Qin.Data的架構設計反應出的一些問題進行了全新的架構設計,彌補了多數據源使用不便、同道反應不過ORM、自身架構的瑕疵等問題.

   2.介紹

    Qin.ORM是一個通用數據庫處理框架(可以包含MSSQL ACCESS SQLITE EXCEL MYSQL DB2 ORACLE...只要你願意實現接口就可以).很便捷地進行常用數據庫操作(增刪改查).其性能是幾近純ADO.NET.對於實體的查詢采用emit實現,如果您還不滿意可用此框架的代碼生成器直接生成純ADO.NET SQL形式.其主要特色就是性能和便捷的操作.

    3.特色

      1.高性能(該框架采用純的ADO.NET進行框架,避免Linq以及反射帶來的性能損失);

      2.易用性強(配置簡單,智能感知,代碼生成器的輔助,會sql就可(可以自我性能優化)) ;

      3.多數據庫支持(如果需要可自我擴增,反應同道加入團隊開發中(聯系:qsmy_qin@163.com))

      4.強大查詢語法糖功能

      5.多數據源支持

      6..net framework 2.0原生支持 

   4.配置簡單

   <appSettings>
   <add key="web" value="No" /><!--是否是網站開發—>
   <add key="dbType" value="MSSQL" /><!--數據庫的類型 還可以寫MYSQL,SQLITE,ACCESS等....—>
   <add key="linkString" value="Server=mainserver;database=HD01SystemDB;Uid=sa;Pwd=123" />
   </appSettings>

代碼功能演示

  /*
 * 由SharpDevelop創建。
 * 用戶: qinshichuan
 * 日期: 2011-12-18
 * 時間: 16:47
 * 
 * 要改變這種模板請點擊 工具|選項|代碼編寫|編輯標准頭文件
  */
using System;
using System.Collections.Generic;

using Qin.Orm;
using  MoonDB;


namespace r
{
    
    
    
     class Program
    {
         public  static  void Main( string[] args)
        {
             
             // 數據添加
            PersonSet person= new PersonSet();
            person.Age= 133;
            person.AgePeriod= 1;
            person.IsBeiJing= true;
            person.Sex= true;
            person.UserName= " 秦仕川 ";
            
            DBFactory.Add(person);
            Console.WriteLine( " 新的數據唯一識別標志: "+person.GetOnlyMark());
            
             // 另類數據添加
            person.Set(PersonSetTable.UserName, " 另類 ");
            person.Set(PersonSetTable.Age, 12);
            person.Set(PersonSetTable.AgePeriod, 11);
            person.Set(PersonSetTable.IsBeiJing, false);
            person.Set(PersonSetTable.Sex, true);
            DBFactory.Add(person);
            Console.WriteLine( " 新的數據11唯一識別標志: "+person.GetOnlyMark());
            
             // 數據刪除
             long ret= DBFactory.DeleteWhen(PersonSetTable.IsBeiJing.Equal( 1).And(PersonSetTable.Age.BiggerThan( 12)));
            Console.WriteLine( " 被刪除的條數: "+ret);
            
             // 改數據
             
             
            person.UserName= " 另類修改后 ";
            person.SetOnlyMark(PersonSetTable.UserName.Equal( " 另類 "));
            DBFactory.Update(person);
            
             // 查詢
            PersonSet p=DBFactory.GetEntity<PersonSet>(
                PersonSetTable.UserName.Equal( " 另類修改后 "));
            Console.WriteLine(p.Age);
            
             // 查詢一個字段
             int age=DBFactory.GetOneField< int>(PersonSetTable.Age, PersonSetTable.ID.Equal( 5));
            Console.WriteLine(age);
             Console.Write( " Press any key to continue . . .  ");
            Console.ReadKey( true);
            
             
            
        }
    }
}



實體代碼生成器

QQ截圖未命名3

數據庫升級問題(我們常常面臨數據庫表的變動問題)

Qin.ORM中不必擔心這些東西,因為實體全由代碼生成器生成,更新一次數據庫,你重新生成一次DLL(代碼生成器帶有編譯功能)

 

Qin.Web相關介紹

1.背景

       在長期的MVC的開發中,發現許多開發上的諸多不變之處(尤其是MVC與美工的配合和數據分發問題)故此架構了Qin.Web(一個快速的ASP.NET服務端框架,內含一個前端js腳本一引擎 [有了它,你只需專注於業務邏輯,無論是前端還是后端代碼都可以靠此引擎生成,通俗來講就是一個便捷的MVC系統],以及實現權限認證的AOP方案和一個前端UI庫(尚待完善)).

2.簡介

 

Qin.Web包括

1.一個快速的ASP.NET服務端框架(你只需轉注入業務邏輯)

2.內含一個前端js腳本一引擎 (有了它,你只需專注於業務邏輯,無論是前端實現還是后端代碼都可以靠此引擎生成)

3.實現權限認證的AOP方案和一個前端UI庫(尚待完善)).

 

特色

1.使用便捷

2.優秀便捷的腳本引擎機制,性能優異無服務端控件,便於美工使用

3.配置簡單

4.優秀的UI庫

1.無刷新分頁

 

實現一個簡單的無刷新分頁功能

后端代碼(非MVC模式)

 

public  partial  class Test : System.Web.UI.Page
    {
protected  void Page_Load( object sender, EventArgs e)
        {
// 小頁面的位置,裝載小頁面的dom,總數據量,每頁多少個
this.Pager=    UI.GetPager( " smallPage.aspx ", " qsmy ", 100, 2);
        }
public  string  Pager{
get; set;
        }
    }

前端代碼

<html xmlns= " http://www.w3.org/1999/xhtml ">
<head runat= " server ">
<title></title>
<script type= " text/javascript " src= " Scripts/jquery-1.6.2.min.js "></script>
</head>
<body>
<form id= " form1 " runat= " server ">
<div>
</div>
<hr/>
<hr/>
<br/>
<%= this.Pager%>
<div id= " qsmy ">
</div>
</form>
</body>
</html>

 

 

效果圖

 


2.編輯器功能

 

后端代碼

public  partial  class Test : System.Web.UI.Page
    {
protected  void Page_Load( object sender, EventArgs e)
        {
// kindeditor 的位置
var path= " Scripts/kindeditor/kindeditor-min.js ";
var ret=UI.GetKindEditor( true,path, " editor ");
this.Editor=ret;
        }
public  string Editor{
get; set;
        }
    }

前端代碼

<%@ Page Language= " C# " AutoEventWireup= " true " CodeBehind= " Test.aspx.cs " Inherits= " MoonAjax.Test " %>
<!DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "  " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns= " http://www.w3.org/1999/xhtml ">
<head runat= " server ">
<title></title>
<script type= " text/javascript " src= " Scripts/jquery-1.6.2.min.js "></script>
</head>
<body>
<form id= " form1 " runat= " server ">
<div>
<%= this.Editor%>
<textarea id= " editor " rows= " 8 " cols= " 100 ">Qin.Web之文本編輯器</textarea>
</div>
</form>
</body>
</html>

 

 

實現界面
:

 

 

2.強大的腳本引擎

實現一個頁面數據的加載和數據更新

前端代碼


 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MoonAjax.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>model加載和數據更新</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
//引入腳本
<script type="text/javascript" src="Scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="Scripts/Qin.Engine.js"></script>

<script src="Thrid/art/artDialog.js?skin=aero" type="text/javascript"></script>
<script>

            //Mode加載,然后分配給form_UserInfo中
             $(function () {
                 Qin_LoadDataToDom("MoonAjax.UserInfoAction", "GetUserInfo", {}, "form_UserInfo");
             });

            //更新Mode中的數據
function AjaxUpdateUserInfo() {
                 var ID = $("#keyID").val();//獲取當前主鍵
                 Qin_AjaxUpdate("MoonAjax.UserInfoAction", "AjaxUpdateUserInfo", "form_UserInfo", "ID", ID, { otherData: 22 }, function (data) {
                     alert("主鍵為"+data+" update success");//更新成功
                 });
             };
</script>
</head>
<body>
<form id="form_UserInfo"  >
<input id="keyID" class="Key" field="ID" type="hidden" />
<table style="width: 100%;">
<tr>
<td>
                姓名:
</td>
<td>
<input field="UserName" type="text" />
</td>
</tr>
<tr>
<td>
                性別
</td>
<td>
<input name="Sex" field="Sex" value="true" type="radio" />男<input name="Sex" field="Sex"
value="false" type="radio" />女
</td>
</tr>
<tr>
<td>
                年齡
</td>
<td>
<input field="Age" type="text" />
</td>
</tr>
<tr>
<td>
                北京戶口
</td>
<td>
<input field="IsBeiJing" type="checkbox" />
</td>
</tr>
<tr>
<td>
                年齡段
</td>
<td>
<select field="AgePeriod"><option value="1">老年人</option><option value="2">中年人</option><option value="3">年輕人</option></select>
</td>
</tr>
</table>
<input type="button" onclick="AjaxUpdateUserInfo();" value="更新用戶數據" />
</form>
</body>
</html>

后端代碼(注意:絕大部分邏輯代碼由引擎自動生成,您只需你的Model分配).


   腳本引擎代碼生成

image

 

 3.UI系統展示

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM