`
widen
  • 浏览: 6818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

.Net最佳实践 (23-32)

阅读更多

 

  1. Have your own templates for each of the file types in Visual Studio. You can include your company name (such as HP) , copy right information etc in the template. You can view or edit the Vis ual Studio file templates in the folder C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache\CSharp\1033 . (This folder has the templates for C#, but you can easily find the corresponding folders or any other language)


23. Visual Studio 中,针对每个文件类型创建自己的模板。你可以 在模板中 包含你的公司名称(例如 HP ), 版权信息等等。 你可以在这个文件夹下查看或者编辑 Visual Studio 中的文件模板: C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache\CSharp\1033 。(这个文件夹有 C# 的模板, 但是你可以容易的找到其他语言对应的文件夹。

 

  1. Avoid having very large files. If a single file h as more than 1000 lines of code, it is a good candidate for refactoring. Split them logically into two or more classes.


24. 避免存在非常大 的文件。如果单个文件有超过 1000 行的代码,那这就是个 需要 重构 的很好的例子。从逻辑上将它们 拆分两个或者多个类。

 

  1. Avoid public methods and properties, unless they really need to be a ccessed from outside the class. Use “internal” if they are accessed only within the same assembly.


25. 避免公开的方法和属性,除非他们真正需要从 这个类的外部来访问。如果他们 只需要在同一个 assembly 里面访问的话,使用 internal

 

  1. Avoid passing too many parameters to a method. If you have more than 4~5 parameter s, it is a good candidate to define a class or structure.


26. 避免传递太多的参数到一个方法中。如果你有大于 4 5 个参数, 这就是一个很好的例子来定义一个类或者结果。

 

  1. If you have a method returning a collection, return an empty collection instead of null, if you have no data to return. For example, if you ha ve a method returning an ArrayList, always return a valid ArrayList. If you have no items to return, then return a valid ArrayList with 0 items. This will make it easy for the calling application to just check for the “count” rather than doing an additional check for “null”.


27. 如果你有一个方法返回 一个集合,没有数据 返回的时候 返回空集合而不要返回 null 。例如,如果你有一个方法返回一个 ArrayList ,总是要返回一个有效的 ArrayList 。如果你没有数据返回 ,那么就返回一个包含 0 条数据的 ArrayList 。这样对 调用的应用程序很容易,只需要检查 条数 而不需要对 “null” 进行额外的检查。

 

  1. Use the AssemblyInfo file to fill information like version number, description, company name, copyright notice etc.


28. 使用 AssemblyInfo 文件来填写信息,录入版本号,描述,公司名称,版权通知等。

 

  1. Logically organize all your files within appropriate folders. Use 2 level folder hierarchies. You can have up to 10 folders in the root folder and each folder can have up to 5 sub folder s. If you have too many folders than cannot be accommodated with the above mentioned 2 level hierarchy, you may need re factoring into multiple assemblies.


2 9. 按照逻辑的方式在合适的文件夹中组织你的文件。使用两级的文件夹 组织结构。你可以 在根目录下 有最多 10 个文件夹 ,每个文件夹有最多 5 个子文件夹。如果你有太多的 文件夹而不能放到上面提到的两级组织 结构中,你可能需要重构到多个 Assembiy 中。

 

  1. Make sure you have a good logging class which can be configured to log errors, warning or traces. If you configure to log errors, it should only log errors. But if you configure to log traces, it should record all (errors, warnings an d trace). Your log class should be written such a way that in future you can change it easily to log to Windows Event Log, SQL Server, or Email to administrator or to a File etc without any change in any other part of the application. Use the log class extensively throughout the code to record errors, warning and even trace messages that can help you trouble shoot a problem.


30. 保证你有一个很好的日志 类,配置后可以用来记录错误、警告或者 跟踪 如果你配置成记录错误,它应该只记录错误。但是如果你配置 成跟踪,它应该记录所有的(错误、警告和跟踪)。你的日志类应该 写成 这样 的方式 :在将来 不需要修改应用程序的任何其他部分, 可以 通过 简单的修改 将日志记录到 Windows 事件日志、 SQL Server ,或者给管理员发邮件, 或者记录到一个文件等。

 

  1. If you are opening database connections, sockets, file stream etc, always cl ose them in the finally block. This will ensure that even if an exception occurs after opening the connection, it will be safely closed in the finally block. If it implements the IDisposable interface, please include the object in the using ( ).


31. 如果 你正在打开数据库连接,套接字,文件流等等,总是要在 finally 代码块里面关闭 们。 这将确保 在打开连接以后即使有异常发生也可以在 finally 代码块中安全 的关闭它们。如果使用了 Idisposable 接口,请包含这个对象到 using ()中。

 

  1. Use StringBuilder class instead of String when you have to manipulate string objects in a loop. The String object works in weird way in .NET . Each time you append a string, it is actually discarding the old string object and recreating a new object, which is a relatively expensive operations.

 

32. 当你不得不 在一个循环中操作字符串对象的时候 使用 StringBuilder 类代替 String String 对象在 .Net 中以一种 怪异的方式工作。每次你追加一个 字符串,它实际上抛弃了老的字符串对象而重新创建一个新的对象, 这样的方式是一个相对昂贵的操作。

 

Consider the following example:


考虑 下面的例子:

 

public string ComposeMessage (string[] lines)

{

      string message = String.Empty;

 

      for (int i = 0; i < lines.Length; i++)

      {

            message += lines [i];

      }

 

    return message;

}

 

In the above example, it may look like we are just appending to the string object ‘message’. But what is happening in reality is, the string object is discarded in each iteration and recreated and appending the line to it.

 

在上面的例子中, 看上去好像我们只是添加到字符串对象 “messa ge” 。但是事实上发生的是,这个字符串对象 在每个迭代中都会 被抛弃 被重新创建 ,然后添加一行到这个对象里面。

 

If your loop has several iterations, then it is a good idea to use StringBuilder class instead of String object.

 

如果你的循环有若干个迭代,那么使用 StringBuilder 类代替 String 对象是个好主意。


See the example where the String object is replaced with StringBuilder.

 

看下面这个例子,其中 String 对象被替换成了 StringBuffer

 

public string ComposeMessage (string[] lines)

{

        StringBuilder message = new StringBuilder();

 

        for (int i = 0; i < lines.Length; i++)

        {

            message.Append( lines[i] );

        }

 

        return message.ToString();

     }

分享到:
评论

相关推荐

    ADO.NET开发最佳实践---vs2003

    本文将深入探讨ADO.NET开发的最佳实践,帮助开发者提升效率,保证代码的稳定性和可维护性。 1. **连接管理**:在ADO.NET中,应合理管理数据库连接,避免打开过多连接导致资源浪费。可以使用`using`语句块来确保连接...

    .NET最佳实践.pdf

    这是《.NET最佳实践》.((美)Stephen Ritchie).pdf pdf 中文电子版,带书签

    新VB.NET源代码2023-11-18-23-50QZQ.zip

    VB.NET是一种基于.NET框架的编程语言,由微软公司开发,它是Visual Basic的现代版本,具有更强大的功能和更丰富的...通过学习和分析这些源代码,你可以提升自己的VB.NET编程技能,并了解实际项目的开发流程和最佳实践。

    实战C#.NET编程----Spring.NET & NHibernate从入门到精通

    此外,书中可能还会介绍一些最佳实践和性能优化技巧,帮助读者在实际项目中更高效地使用这两款工具。 总而言之,《实战C#.NET编程——Spring.NET & NHibernate从入门到精通》是一本全面介绍C# .NET开发中两个关键...

    Pro C# 7 With .NET and .NET Core - Eighth Edition

    5. **最佳实践与案例研究**:通过具体的案例分析,向读者展示了如何将理论知识应用于实际项目中,并遵循最佳实践来提高代码质量和可维护性。 #### 三、核心知识点详解 ##### 1\. C# 7的新特性 - **模式匹配**:...

    ASP.NET数据库入门经典--C编程篇_程序设计

    ASP.NET是一种由微软开发的用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了强大的服务,包括构建...同时,这个资源也可能涵盖实际项目中的最佳实践和常见问题解决,帮助读者更好地应对实际开发挑战。

    asp.net 2.0编程珠玑--来自mvp的权威开发指南

    同时,还涵盖了开发过程中的最佳实践,如代码分离、异常处理、性能优化以及调试技巧。 此外,对于Web服务和企业级应用程序的集成,ASP.NET 2.0也提供了强大的支持,如WSDL、SOAP和Web服务代理类等,方便与其他系统...

    ASP.NET 2.0编程珠玑--来自MVP的权威开发指南

    这本书“ASP.NET 2.0编程珠玑--来自MVP的权威开发指南”深入讲解了这个框架的关键特性和最佳实践,旨在帮助开发者充分利用其功能。 在ASP.NET 2.0中,最重要的改进之一是页面生命周期管理。与前一版本相比,2.0版...

    .NET-Writing High-Performance .NET Code(2nd Edition Ben Watson)

    总的来说,《.NET-Writing High-Performance .NET Code(2nd Edition Ben Watson)》是一本全面且深入的指南,不仅提供了理论知识,还有大量实践案例和最佳实践,对于任何希望提升.NET应用程序性能的开发者来说都是...

    asp.net小项目--物流管理系统

    这个项目对于学习ASP.NET和物流管理的学生或开发者来说,是一个很好的实践平台。通过实际操作,不仅可以掌握ASP.NET开发技巧,还能深入了解物流行业的业务流程和管理需求。同时,对于毕业设计或个人项目展示,这样的...

    《.NET最佳实践》.((美)Stephen Ritchie)

    《.NET最佳实践》是.NET领域的集大成之作和公认经典。书中总结了大量.NET开发人员公认的最佳实践,并有针对性地阐明了如何恰当地在个人、小组、组织和行业中应用这些最佳实践。书中的最佳实践涵盖.NET开发的方方面面...

    敏捷思维学习Ext.Net MVC源码--ExtNetMvcExample

    **标题解析:** "敏捷思维学习Ext.Net MVC源码--...总之,这个源码包为学习者提供了一个实践敏捷开发理念和掌握Ext.Net MVC技术的实战平台,通过逐步解析和运行这些代码,可以深入理解这两个领域的核心概念和最佳实践。

    ASP.NET 3.5 开发大全--聊天模块设计.rar

    【ASP.NET 3.5 开发大全--聊天模块设计】 ASP.NET 3.5是微软推出的Web应用程序开发框架,它基于.NET ...通过学习这个模块,开发者可以深入理解ASP.NET 3.5的特性和最佳实践,为构建更复杂的应用打下坚实基础。

    08-.NET类图书36-43.doc

    最后,书籍可能会讨论.NET中的设计模式和最佳实践,这些都是提升代码质量和可维护性的关键。例如,工厂模式、单例模式、观察者模式等设计模式,以及依赖注入、单元测试和持续集成等实践。 总之,《.NET类图书36-43...

    ASP .NET 技术内幕130-200

    详细内容可能包括实际示例、最佳实践以及解决常见问题的方法。 总的来说,"ASP .NET 技术内幕130-200"这一资料集合提供了深入学习ASP.NET技术的机会,无论你是初学者还是有经验的开发者,都能从中受益。通过学习...

    ASP.NET C#深入学习---------

    深入学习ASP.NET C#不仅仅是掌握语法和框架,更重要的是理解Web开发的最佳实践,以及如何利用这些工具和技术解决实际问题。同时,随着技术的不断更新,不断学习和适应新的框架和库,如.NET 6和ASP.NET Core 6,也是...

    ASP.NET 3.5 开发大全--注册模块设计.rar

    10. **最佳实践**:遵循最佳实践,如使用HTTPS保护敏感信息传输,以及定期更新和审核代码,以确保注册模块的安全性和合规性。 "第22章.注册模块设计.doc"很可能会深入讲解这些概念,包括具体的代码示例、配置步骤...

    asp.net经典视频1-3全(1)

    这部分可能涉及Visual Studio的调试工具,以及异常处理的最佳实践。 总的来说,这个ASP.NET的经典视频系列旨在为初学者提供一个全面的入门指南,涵盖从基础概念到实际应用的关键技术,帮助他们快速掌握ASP.NET的...

Global site tag (gtag.js) - Google Analytics