我必須在C#中開發多語言代碼生成器。實際上,我們的想法是,我們有幾種內部應用程序框架可以用各種語言(Java,Python,C++)進行數據庫訪問。但是他們的基本工作原理是一樣的。我們覺得代碼生成器可以幫助我們縮短開發時間。所以我決定編寫一個代碼生成器以方便我們的開發。C代碼生成器#
我應該遵循從數據庫表生成類的標準基本技術步驟是什麼?
我應該使用\t
,\r
,\n
?
什麼是達到最快速度的技術?
我不想使用RegEx。
請讓我知道你的個人經驗。
我必須在C#中開發多語言代碼生成器。實際上,我們的想法是,我們有幾種內部應用程序框架可以用各種語言(Java,Python,C++)進行數據庫訪問。但是他們的基本工作原理是一樣的。我們覺得代碼生成器可以幫助我們縮短開發時間。所以我決定編寫一個代碼生成器以方便我們的開發。C代碼生成器#
我應該遵循從數據庫表生成類的標準基本技術步驟是什麼?
我應該使用\t
,\r
,\n
?
什麼是達到最快速度的技術?
我不想使用RegEx。
請讓我知道你的個人經驗。
這真的取決於你的意思;有很多的選擇:
空白依賴語言在任何情況下,我將建立一個基本的對象模型,表示從那裏數據和工作。我已經知道有人從數據庫中只用SELECT
來編寫代碼,但是它是醜陋的罪過,並且極端的維護是痛苦的。
回答您關於\t
,\r
,\n
等問題 - 我不明白這個問題,但是:無論目標語言是什麼意思!在這裏VB是一個棘手的問題(C#等比較容易,因爲他們不太關心空白)。
我已經成功地使用了xslt,但很大程度上是因爲我已經知道xslt,並且需要支持2.0(T4不在2.0中)。否則T4本來是我的下一個刺,只是因爲我想學習它; -p
T4很不錯,我使用了一個很大的修改後的linq2SQL模板(來自codeplex)來調整它完全符合我的需求:) – leppie 2009-10-25 07:56:24
看來你需要模板功能,所以像Marc Gravell所建議的T4是相當不錯的。 SubSonic當前使用T4生成代碼。在過去,SubSonic使用Asp.Net作爲模板系統來生成代碼。
這似乎有點不左外野,但約翰Resig的有mirco-template function他寫的Javascript,讓您處理具有語法喜歡的模板:
<script type="text/html" id="item_tmpl">
<div id="<%=id%>" class="<%=(i % 2 == 1 ? " even" : "")%>">
<div class="grid_1 alpha right">
<img class="righted" src="<%=profile_image_url%>"/>
</div>
<div class="grid_6 omega contents">
<p><b><a href="/<%=from_user%>"><%=from_user%></a>:</b> <%=text%></p>
</div>
</div>
</script>
你喂模板JSON對象一個數據源。這種方法的好處在於,您無需編譯和部署即可快速創建模板系統 - 只需啓動瀏覽器並生成代碼即可。
你能更具體嗎?你能給出一個「多語言代碼生成器」的輸入和幾個輸出的例子嗎? – 2009-10-25 07:38:08
你看過現有的代碼生成器選項嗎? – 2009-10-25 07:39:44
@Dominic Cooney,@Mitch Wheat請參閱更新。 – anonymous 2009-10-25 07:44:44