参与讨论如何提高开发效率?大家请进!

shiguangfeishi 2007-06-19 01:27:10
谁有CodeSimth oracle的模板 dal,bll,model之类的.或者是可以提高开发效率的,或者是一些管理模式等等。
...全文
194 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tank299281 2007-06-19
  • 打赏
  • 举报
回复
可以试试李天平的.Net代码自动生成器
WNASP 2007-06-19
  • 打赏
  • 举报
回复
<%@ CodeTemplate
Language="C#"
TargetLanguage="C#"
Description="This Template Generates NUnit Test Classes for the ORMapper"
Debug="true" %>

<%@ Assembly Name="System.Design" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Windows.Forms.Design" %>


<script runat="template">
private string _mappingFile;
private string _outputDirectory;
private LangaugeEnum _language = LangaugeEnum.CSharp;
private FrameworkEnum _framework = FrameworkEnum.NUnit;

private CodeTemplate _testTemplate;

private bool _overwrite = false;
private string _testNamespace;

public enum LangaugeEnum
{
CSharp,
VB
}

public enum FrameworkEnum
{
NUnit,
TeamTest
}

[Category("Class")]
[Description("Unit Test Framework")]
public FrameworkEnum Framework {
get { return _framework;}
set { _framework = value;}
}

[Editor(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
[Category("Mapping")]
[Description("The mapping file to generate the class file from.")]
public string MappingFile {
get { return _mappingFile; }
set {
_mappingFile = value;
if ((_outputDirectory == null || _outputDirectory.Length == 0) && _mappingFile != null)
OutputDirectory = Path.GetDirectoryName(_mappingFile);
}
}

[Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
[Category("Class")]
[Description("The folder to save the generated class files.")]
public string OutputDirectory
{
get {return _outputDirectory;}
set {_outputDirectory = value;}
}

[Category("Class")]
[Description("The Namespace for the test classes.")]
public string TestNamespace
{
get {return _testNamespace;}
set {_testNamespace = value;}
}

[Category("Class")]
[Description("Class Output Language")]
public LangaugeEnum Language {
get { return _language;}
set { _language = value;}
}

[Category("Class")]
[Description("Overwite existing class files with changes")]
public bool Overwrite {
get { return _overwrite;}
set { _overwrite = value;}
}

public void InitializeTemplates()
{
string internalPath = Path.Combine(CodeTemplateInfo.DirectoryName, "Internal");

string classTemplateName = _language.ToString();
classTemplateName += _framework == FrameworkEnum.TeamTest ? ".v2.Test.cst" : ".Test.cst";
_testTemplate = CompileTemplate(Path.Combine(internalPath, classTemplateName));
}

public CodeTemplate CompileTemplate(string templateName)
{
CodeTemplateCompiler compiler = new CodeTemplateCompiler(templateName);
compiler.Compile();

if (compiler.Errors.Count == 0)
{
return compiler.CreateInstance();
}
else
{
for (int i = 0; i < compiler.Errors.Count; i++)
{
Response.WriteLine(compiler.Errors[i].ToString());
}
return null;
}

}

public string GetClassName(string name)
{
string[] namespaces = name.Split(new Char[] {'.'});
return namespaces[namespaces.Length-1];
}
public string GetNamespace(string name)
{
string[] namespaces = name.Split(new Char[] {'.'});
return String.Join(".", namespaces, 0, namespaces.Length-1);
}

public void Generate()
{
//Debugger.Break();
InitializeTemplates();

Response.WriteLine(string.Format("Loading {0} ...", _mappingFile));
XmlTextReader reader = new XmlTextReader (_mappingFile);
reader.WhitespaceHandling = WhitespaceHandling.None;
Response.WriteLine("File read sucessfully ...");
try
{
// Create an XmlDocument from the XmlTextReader
XmlDocument doc = new XmlDocument();
doc.Load (reader);

XmlElement root = doc.DocumentElement;
XmlNodeList entityList = root.SelectNodes("/mappings/entity");
Response.WriteLine(string.Format("Mapping Entity Count: {0}", entityList.Count));

foreach(XmlElement entityNode in entityList)
{
string type = entityNode.Attributes["type"].Value;
string className = GetClassName(type);
string nameSpace = GetNamespace(type);
string fileName = className + "Test";
fileName += _language == LangaugeEnum.VB ? ".vb" : ".cs";
fileName = Path.Combine(OutputDirectory, fileName);

string tableName = entityNode.Attributes["table"].Value;

_testTemplate.SetProperty("EntityNode", entityNode);
_testTemplate.SetProperty("Namespace", nameSpace);
_testTemplate.SetProperty("ClassName", className);
_testTemplate.SetProperty("TestNamespace", _testNamespace);

if (!File.Exists(fileName) || _overwrite)
{
Response.WriteLine(string.Format("Generating Test Case for {0} from Table {1} ...", className, tableName));
_testTemplate.RenderToFile(fileName, true);

Response.WriteLine(string.Format("File {0} Generated...", fileName));
}
}
}
finally
{
// close xml reader
if (reader != null)
reader.Close();
}
}


</script>
<% this.Generate(); %>

yls087412 2007-06-19
  • 打赏
  • 举报
回复
开源框架Nbear

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧