我想做一個生成代碼的輔助工具,用以輔助程序員的工作,最大限度減少重復勞動.
現在想到的features有:
1.由數據庫中的表生成數據訪問層
2.根據表生成簡單的數據錄入、修改和查詢的Form。
3.根據表生成insert, select, delete, update sql語句.
3.根據表生成insert, select, delete, update 的存儲過程.因為這些都是簡單的重復勞動。
同時我想大家提供以下意見:
1。大家認為還有什麼是簡單的重復勞動的代碼希望自動生成?
2。生成數據訪問層,大家認為以哪個框架為藍本好?
現在想到的features有:
1.由數據庫中的表生成數據訪問層
2.根據表生成簡單的數據錄入、修改和查詢的Form。
3.根據表生成insert, select, delete, update sql語句.
3.根據表生成insert, select, delete, update 的存儲過程.因為這些都是簡單的重復勞動。
同時我想大家提供以下意見:
1。大家認為還有什麼是簡單的重復勞動的代碼希望自動生成?
2。生成數據訪問層,大家認為以哪個框架為藍本好?
解决方案 »
- CLIENTSOCKET和SERVERSOCKET的问题
- 请问那种报表控件可以方便提供一个俭约的设计器给 最终用户 自定义报表设计?
- 来看看,兄弟们?
- 如何响应TREEVIEW中的NODE事件,比如我单击某个节点,能弹出一个对话框
- delphi+sql server开发数据库起步与提高
- 动态创建多个控件,在释放控件时产生错误'List index out of bounds(4)',高手请进来看看!
- ComboBox问题!
- 两个找不出错误的错误。请大虾们指点。
- 相关人员进来一下,告诉你个答案!!
- dataset的datasouce属性有什么用?
- 怎样设置表中已存在的列为主键?
- 完蛋 晕菜了~~~~~~~~~~~~~~~~~~~~
[email protected] 学习学习
減少,能減就減,我想做的只是一個輔助性工具(暫時)。大家想想,難道平時沒有一些編碼工作是重復性的嗎?to juliens(星星球愛思纯^_^) :
有什麼比較好的case工個介紹一下?我用過的有modelmaker, bold。如果你指的是
modelmaker,那麼功能上跟我計劃中的程序沒有重疊。如果指的是bold,那真的用
不上,因為bold實太強了,可性,沒有流行起來。致于rose,together之類的強大的
工具,也總有一些遗漏.不過,因為delphi本身的超強RAD特性,這種代碼生成工具不太吃香。如果真不行,就做java或c#的吧。
可能會先做.net的,以ms petshop sample為藍本.
我計劃中的軟件是基于模板的,只要設計好各種各樣的模板,就可以生成采用不
同framework的不同語言的程序.
第一步準備做的是生成一個和ms petshop的架構類似的一個完整的asp.net+c#的
web application,包括UI, BLL, DAL, IDAL, DAL Factory, Model.其中為第個
table/view/stored procedure生成的UI包括可選的錄入/查詢/修改/刪除的功能,且
用戶將能夠很容易的更換UI的風格,因為這些CRUD的功能會被生成組件.
第二步做基于struts 的java web application.現在正在開始設計數據文件,步聚為:
1.設計數據文件
2.設計模板
3.開發UI3.設計
你要是自己用还可以,要是发布软件,數據訪問層的代码应该交给用户脚本的,
一涉及到和UI等end user打交道的东西,你应该写一个支持用户设计(看起来象设计期),而你需要好好规划你运行期的架构以上建议而已,呵呵
首先謝謝你的建議.
"數據訪問層的代码应该交给用户脚本的"是什麼意思? 數據訪問層的代码生成後是可供用戶修改的.致於設計ui,會盡量提供選項,比如選什麼風格,編輯控件用textbox還是textarea, 還是
select(即combobox),等等.但不可能做成像vs.net或dw一樣的設計界面,這些後期的
工作用戶可以在vs.net或dw中完成.
要是做D的辅助工具当然不用支持脚本。我开始理解你要单独开发环境,
呵呵我觉的那样更过瘾一些,界面结合HANDLE(就是那个韩国人开发的)+脚本 ,
//This file was generated by Asp.Net Wizard
//Powered by EYSoft Technology Limited
//Website: http://www.eysoft.com
///////////////////////////////////////////////////////////////////////////////using System;namespace app.Model
{
/// <summary>
/// Business entity of Products.
/// </summary>
[Serializable]
public class ProductsInfo: BaseClass
{
// Private member variables
private Int32 m_ProductID;
private string m_ProductName;
private Int32 m_SupplierID;
private Int32 m_CategoryID;
private string m_QuantityPerUnit;
private Decimal m_UnitPrice;
private Int16 m_UnitsInStock;
private Int16 m_UnitsOnOrder;
private Int16 m_ReorderLevel;
private Boolean m_Discontinued;
private DateTime m_LastUpdate;
/// <summary>
/// Constructor without initial values
/// </summary>
public ProductsInfo()
{
}
/// <summary>
/// Constructor with initial values
/// </summary>
public ProductsInfo(
Int32 _ProductID,
string _ProductName,
Int32 _SupplierID,
Int32 _CategoryID,
string _QuantityPerUnit,
Decimal _UnitPrice,
Int16 _UnitsInStock,
Int16 _UnitsOnOrder,
Int16 _ReorderLevel,
Boolean _Discontinued,
DateTime _LastUpdate)
{
this.m_ProductID = _ProductID;
this.m_ProductName = _ProductName;
this.m_SupplierID = _SupplierID;
this.m_CategoryID = _CategoryID;
this.m_QuantityPerUnit = _QuantityPerUnit;
this.m_UnitPrice = _UnitPrice;
this.m_UnitsInStock = _UnitsInStock;
this.m_UnitsOnOrder = _UnitsOnOrder;
this.m_ReorderLevel = _ReorderLevel;
this.m_Discontinued = _Discontinued;
this.m_LastUpdate = _LastUpdate;
}
// Properties
public Int32 ProductID
{
get { return m_ProductID; }
set { m_ProductID = value; }
}
public string ProductName
{
get { return m_ProductName; }
set { m_ProductName = value; }
}
public Int32 SupplierID
{
get { return m_SupplierID; }
set { m_SupplierID = value; }
}
public Int32 CategoryID
{
get { return m_CategoryID; }
set { m_CategoryID = value; }
}
public string QuantityPerUnit
{
get { return m_QuantityPerUnit; }
set { m_QuantityPerUnit = value; }
}
public Decimal UnitPrice
{
get { return m_UnitPrice; }
set { m_UnitPrice = value; }
}
public Int16 UnitsInStock
{
get { return m_UnitsInStock; }
set { m_UnitsInStock = value; }
}
public Int16 UnitsOnOrder
{
get { return m_UnitsOnOrder; }
set { m_UnitsOnOrder = value; }
}
public Int16 ReorderLevel
{
get { return m_ReorderLevel; }
set { m_ReorderLevel = value; }
}
public Boolean Discontinued
{
get { return m_Discontinued; }
set { m_Discontinued = value; }
}
public DateTime LastUpdate
{
get { return m_LastUpdate; }
set { m_LastUpdate = value; }
}
}
}