开发者经常重新发明而不是重用的.NET工具类

 

开发者经常重新发明而不是重用的.NET工具类

English Link:
http://haacked.com/archive/2007/06/13/the-most-useful-.net-utility-classes-developers-tend-to-reinvent.aspx

中文翻译:jupter@yeah.net        2008-4-13

 

1.       System.IO.Path

你是不是经常看见这样的代码?而它只是创建了一个文件路径。

public string GetFullPath(string fileName)
  
  
{
  
  
  string folder = ConfigurationManager.AppSettings["somefolder"];
  
  
  return folder + fileName;
  
  
}
  
  

像这样的代码令人发疯,因为它很容易出错。例如,当你设置文件夹路径时,你不得不确信它的结尾有一个斜杆(slash)。有太多需要记住的事情使得这段代码非常脆弱。

当然,你可以编写代码以确保这个文件夹以斜杆结束,但是我更喜欢让其它人编写这样的代码。例如,微软。

.NET框架无疑非常庞大,因此忘记了一些有用的工具类可以理解。

public string GetFullPath(string filename)
  
  
{
  
  
  string folder = ConfigurationManager.AppSettings["somefolder"];
  
  
  return System.IO.Path.Combine(folder, filename);
  
  
}
  
  

Path类当然很有名,但是开发者似乎没有让它发挥全部功能。例如,你是不是经常看到这样的代码?

//make sure folder path ends with slash
  
  
string folder = GetFolderPath() + @"/";
  
  

当然对于按照Windows的机器来说,这没有问题,但是世界在变化,或许某一天你困难想让你的代码运行在Linux或者Mac上!相反,你应该这样编码,它更安全。

string folder = GetFolderPath() + Path.DirectorySeparatorChar;
  
  

2.       System.Web.VirtualPathUtility

不知道这个类是可以原谅的,因为它是在.NET2.0中引入的。但是现在你应该记住它。它的一个最大的用途是将波浪线路径转换为绝对路径。

注意:波浪线(~)字符在ASP.NET虚拟URLs环境下称为root operator。这个字符对你非常重要。

例如,如果你想在一个名字为“MyApp”的虚拟应用程序中运行一个应用,下面的语句:

string path = VirtualPathUtility.ToAbsolutePath("~/Controls/Test.ascx");
  
  

将路径设置为/MyApp/Controls/Test.ascx。不需要编写你自己的ResolveUrl方法。

其它一些有用的方法(还有很多)

AppendTrailingSlash

Appends a / to the end of the path if none exists already.

Combine

Analagous to Path.Combine, but for URLs.

MakeRelative

Useful for getting the relative path from one directory to another (was it dot dot slash dot dot slash? Or just dot dot slash?)

3.       System.Web.HttpUtility

这个类有一个有用的方法编码和解码URL/HTML。一个小的示例

HtmlEncode

Converts a string to an HTML encoded string.

HtmlDecode

Decodes an HTML encoded string.

UrlEncode

Converts a string to a URL encoded string.

UrlDecode

Decodes a URL encoded string.

这个类有一个很特别的方法HtmlAttributeEncode。这个方法是HtmlEncode方法的lazy cousin。它只做最少的工作以安全的为将HTML编码为一个字符串。例如,下面这个字符串:

<p>&</p>

HtmlEncode输出:&lt;p&gt;&amp;&lt;/p&gt;

然而HtmlAttributeEncode输出&lt;p>&amp;&lt;/p>

也就是说,它仅仅编码左尖括号,而不编码右尖括号。

4.       System.Environment

这个类包含当前环境的各种信息。你可以获取MachineNameCommandLine,等。

然而,我希望开发者使用的一个属性是:

//Instead of this
  
  
string s = "Blah/r/n";
  
  
//do this
  
  
string s = "Blah" + Environment.NewLine;
  
  

再一次,某天,当你的代码需要运行在一个不同的操作系统上时,这可能会导致失败。从现在开始养成好的习惯吧。

5.       What Classes Am I Missing?

No matter how hard I can try, there is no way that I could make a complete list. In .NET 3.0, I’d probably add the new TimeZoneInfo class. What classes do you find extremely useful that are not so well known? Or worse, what classes have functionality that you see developers reinventing the wheel recreating, rather than using the existing class?

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .NET Framework 4.0开发者工具包是一个由微软提供的应用程序开发工具集,用于简化和加速Windows应用程序的开发和部署。它包含了各种开发工具和调试工具,帮助开发人员更容易地创建高效、可扩展、安全的应用程序。 这个工具包中包含了许多开发组件和工具,包括编译器、调试工具、代码分析器、测试工具等。其中,最核心的组件是.NET Framework框架本身,它提供了一系列组件和API,帮助开发人员创建各种类型的应用程序,如桌面应用、Web应用、服务应用等。 .NET Framework 4.0开发者工具包还提供了很多强大的开发工具,如Visual Studio集成开发环境(IDE)、线程分析器、CLR分析器等。这些工具可以帮助开发人员快速诊断和解决各种应用程序问题,并优化应用程序的性能。 总的来说,.NET Framework 4.0开发者工具包是一个极为强大和实用的工具集,它可以帮助开发人员更加高效地创建和维护Windows应用程序。无论是初学者还是专业开发人员,都可以从中受益匪浅。 ### 回答2: .NET Framework 4.0是Microsoft推出的一个跨平台开发框架,旨在提供强大的工具和技术,以帮助开发人员构建高质量的应用程序。开发者工具包则是作为.NET Framework 4.0的一个重要组成部分,为开发人员提供了一系列开发工具和组件,使他们能够更高效地编写.NET应用程序。 开发者工具包中包含的一些关键组件和工具,例如.NET Framework 4.0 SDK、Visual Studio 2010、ASP.NET和Silverlight等,这些都是.NET开发的关键要素。通过使用这些组件和工具,开发人员可以利用.NET Framework 4.0所提供的强大的编程模型和开发环境,轻松地构建出面向Web、桌面等不同平台的高性能应用程序。 此外,开发者工具包还提供了许多实用工具和组件,例如.NET Reflector、FxCop、LINQ to SQL、Entity Framework、WCF和WPF等。这些工具和组件可以使开发人员更轻松地开发、测试和部署.NET应用程序,并且可以大大提升应用程序的性能和可维护性。 总之,.NET Framework 4.0开发者工具包是.NET开发的一个重要工具集,可以为开发人员提供一系列强大的工具和组件,帮助他们更有效地构建.NET应用程序。 ### 回答3: .NET Framework 4.0开发者工具包是一个非常有价值的工具,它为.NET开发者提供了许多工具和资源来简化和优化其工作流程。这个工具包包含了多种工具和组件,可以用于开发和部署.NET应用程序。以下是针对.NET Framework 4.0开发者工具包的几个主要特点: 1. 全面的集成开发环境(IDE):这个工具包包含了Visual Studio 2010 SP1,一个强大的IDE,可以帮助.NET开发者编写高效和可维护的代码。 2. 新的.NET Framework 4.0组件:这个工具包包含了.NET Framework 4.0中的许多新组件,比如ParallelFX、MVC 3以及Dynamic Data,这些组件可以帮助.NET开发者编写更好的Web应用程序。 3. 官方文档和示例:这个工具包还包含了大量的文档和示例,帮助.NET开发者学习如何使用.NET Framework 4.0和其组件。 4. 调试和优化工具:这个工具包还包含了许多调试和优化工具,帮助.NET开发者诊断和修复其代码中的错误和性能问题。 总之,.NET Framework 4.0开发者工具包是一个非常有用的工具,可以帮助.NET开发者编写更好的应用程序。无论是初学者还是经验丰富的开发人员,都可以从这个工具包中受益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值