TechTarget中国网站推荐

.Net开发漫谈:关于命名空间和目录划分

2008-6-12  选择字号:  | |
打印本文章

  从命名空间的命名,目录的划分与命名可以看出一个程序员是否有经验,是否很有经验。一个编程老手绝不允许架构混乱。

  .Net开发中,一般目录名与命名空间名称是对应的。关于命名空间如何划分,目录如何分类,这个问题看似简单,实际上却比较复杂,虽然它不像动植物学有一套完整的分类学。

  在.Net B/S架构中,一般分为如下三个主要的命名空间:

  [公司名/作者名].[项目名].Business
  [公司名/作者名].[项目名].Data
  [公司名/作者名].[项目名].Web 这三部分可以在一个project中,也可以分置三处。

  目录分类与空间命名之难在于:分类因素是二维的,而分类却只是一维的。解释一下:分类是一维的,指一个词语只能代表一个分类名称的含义,无论同时表达两个含义;分类因素是二维的,指分类可以横向类别分类,也可以按纵向属性分类。

  假设我正在开发一个电子商务图书网站,这个商务按照常规,它有用户中心,帮助中心,支付中心,商品中心等。我的这个项目分为三个project,如下:

  Sban.ZLBook.Business
  Sban.ZLBook.Data
  Sban.ZLBook.Web

  在Sban.ZLBook.Web工程中,我下设UserCenter、HelpCenter、PayCenter、ProductCenter等目录,这样的分类便是按类别横向分类。

  而在这些分类中,肯定都用到了图片,还有一些css样式文件,这些文件我放在哪里?我把它们放在Web工程的Images目录下(如果不另辟图片服务器的话)。如果文件太多,不好管理,其子目录又可以分为UserCenter、HelpCenter、PayCenter、ProductCenter等。如此,Images的目录的划分便是按纵向属性分类。

  关于具体如何命名,没有什么通用的方法,要看具体项目。做的项目多了,架构才能见水平。命名空间与目录建议大写。

  不知道应该如何架构的时候,不妨翻一翻官方的类库。

  btw:flex工程中,包名(pakeage)与目录小写,而类名大写。

来源:赛迪网    作者:sixth    
相关的新闻
相关的专家答疑
在SQL Server开发中你可能会遇到以下10个问题:什么是常见的对表和字段的名字约束?有没有可能在不了解T-SQL的情况下编写存储过程?T-SQL 中如何比较CLR 存储过程和……
在SQL Server开发中你可能会遇到以下10个问题:什么是常见的对表和字段的名字约束?有没有可能在不了解T-SQL的情况下编写存储过程?T-SQL 中如何比较CLR 存储过程和……
笔者最近在使用正则表达式的时候发现:在忽略大小写的时候,匹配值从0xff 到0xffff之间的所有字符,正则表达式也能匹配两个ASCII字符:i和I,但不能匹配其他字母和数字。
我们无法创建一个Abstract Class或Interface的实例(INSTANCE),本文从Abstract Class和Interface的定义来看他们的不同。
在.NET开发中,static readonly与const的变量的作用是一样的。变量名称一般为大写,中间以下划线。本文主要通过列举它们的变量分析在.NET开发中变量的命名和属性。
本篇文章主要介绍SQL Server数据存储的物理对象和原理,包括SQL Server 2005和2008里的物理数据存储、SQL Server 2008数据类型(即Datetime、字符串、自定义及等)、在SQL Server数据库中加强数据的完整性……
本文为SQL Server 2008初学者指南,主要介绍SQL Server2008 T-SQL支持的基本元素和基本操作。
本篇技术专题主要内容包括SQL Server整合、SQL Server数据库设计灾难、SQL Server数据库查询设计以及SQL Server数据库同步、复制、报告显示。
最新更新
专家答疑
技巧
Brian Peasland
我在使用这个工具的时候就出现了以上的错误。由于出现了这个错误,我就没有顺利地完成备份。你能告诉我是什么原因吗?
Rudy Limeback
我有一个有关用综合连接语句在不同范畴获取行数的问题……,该查询返回有行的三个stratum/treatment组合,但是没有返回没有行的一个组合。我尝试用对该值用……
Maria Anderson
我得到了一个错误信息,如“DIM-00019:创建服务错误。”我用你寄给我的解决方案解决这一问题,即:“手动创建和启动服务。”你能告诉我如何手动安装该服务吗?