Visual Studio在不同时区中的敏捷开发

来源 :网络与信息 | 被引量 : 0次 | 上传用户:alexzc1984
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  VS在很多方面都体现了敏捷开发的理念,而敏捷开发中有一个很重要的原则,即同一个软件模型能够适应环境的变化。简单的说就是软件的灵活性。如果针对不同的环境参数,要单独开发就算不上敏捷了。笔者这里就以时区为例,谈谈敏捷开发在VS中的表现。
  众所周知,现在软件的应用范围越来越广,而“时间”是任何一款系统中必要的参数,不同的国家所采用的时区是不同的。这就给软件的设计带来了一定的困扰。如现在有一家公司,在中国与美国都有分支机构。总公司需要对两家分支机构的记录进行汇总,并按时间进行排序,此时由于两地分支机构所采用的时区不同,排序就会遇到问题。
  
  VS在时区支持上的改进
  
  在以前,对于不同时区的时间字段进行排序是比较麻烦的一件事情。如可能需要先进行转换等等。甚至需要为不同的时区单独设置处理模块。无疑这不符合敏捷开发的原则。为了改善这种情况,在VS2008中提供了两种新型的日期类型DateTimeOffset和TimeZoneInfo。这两种日期类型的数据改善了对时区的支持。有了它们,开发人员可以更加容易、便捷的开发使用不同时区中的日期和时间的应用程序。也就是说,不同时区中的时间和日期可以进行相互对比了。
  
  TimeZoneInfo日期类型使用技巧
  
  TimeZoneInfo顾名思义,这个数据类型主要用来表示时区。注意虽然TimeZone这个数据类型也可以表示时区,但是TimeZoneInfo在功能上要比TimeZone要强大。如TimeZone只能够识别本地时区(注意其也可以在世界协调时和本地时间之间进行转换);而TimeZoneInfo则可以表示任意时区,并且这个时区对应的方法可用于将一个时区的时间转换为其他任意时区的相应时间。具体的说,TimeZoneInfo数据类型可以进行如下的操作。
  
  1.可以在不同时区之间进行自由的转换
  
  如上面这个例子,不同时区的记录有时候需要相互比较,此时就需要先将记录中的时间根据时区来进行转换。这就好像是单位之间的转换一样。不同的单位之间的值没有可比性,不同时区的日期也没有可比性。通过一定的规则,将它们转换为相同的单位或者时区,然后再进行对比。
  2.枚举系统上可用的时区或者检索操作系统已经定义的时区
  
  有时候数据库管理人员可能需要知道,现在数据库中使用的时区有多少个。一般来说,本地时区,即默认时区只有一个。在数据库合并的时候,这个枚举或者检索的功能非常有用。如:现在美国办事处、日本办事处、中国办事处等等,各有几万条记录。现在要将它们合并。在合并之前数据库管理员必须要了解时区信息。否则,时间等信息将没有参考的价值。如果管理员需要知道本地时区,则可以使用这个数据类型的Local属性。即可以通过TimeZoneInfo.local的方法来直接访问本地时区。
  
  3.TimeZone与TimeZoneInfo之间的差异
  
  这两个数据类型都可以用来表示时区。如果前者功能受到一定的限制,如:虽然前者也可以在本地时区与世界协调时之间进行转换。但是无法在任意时区之间进行转换。如现在可能有中国数据库和日本数据库中的数据。他们两个属于不同的时区。在对他们的内容进行排序的时候,就需要将它们的时间全部调整到世界协调时,然后再进行排序。而不能够将日本的时区调整到中国的时区。因为它们之间不能够转换。而如果采用了TimeZoneInfo这个数据类型,则不同时区之间可以相互转换。如上面这个案例中,直接可以将日本时区的时间信息转换为中国时区的时间信息,然后进行排序。而不用再转换为世界协调时。由于中间少了一个转换的环节,其效率也会提高不少。
  
  DateTimeOffset日期类型使用技巧
  
  简单的说,这个时间类型的数据表示一个时间点,通常以相对于协调世界时的日期和时间来表示。注意这个日期类型的名字比较有意思,代表了这个数据类型的特点。这个数据类型其实有两个部分组成:DateTime与Offset。其中DateTime跟普通的日期型数据一样,其表示当前实例中所设置的时区的日期。而Offset则表示与协调世界时之间的差值。如果将它们两个数字进行相加,那么得到的就是协调世界时。设想一下,如果现在有两条记录,分别是属于不同时区的系统所创建的。现在如果要比较它们创建的先后顺序(即按照时间来排序),如果直接根据Datetime的值来比较,肯定是不行的。在这种情况下,系统就会参考Offset的值,先将其转换为世界协调时,然后再进行比较。此时得到的结果显然是比较合理的。
  DatetimeOffset类型的值包含一个偏移量,所以跟普通的日期类型有所不同。在操作与功能上也有不少的差异。在这里笔者就将其常用的操作及注意事项做一个说明,供大家参考。
  一是日期和时间的提取与处理操作。在Datetime数据类型中包括年、月、日、小时、分、秒等等信息。开发人员可以根据需要任意提取所需要的内容,如月份或者日期等等。在DatetimeOffset数据类型的值中,也包含了这些信息。为此开发人员仍然可以根据需要来提取这个数据类型值的日期或者时间信息。也可以检索特定的DateTimeOffset组成部分的值。这一部分的操作跟DateTime数据类型完全相同。
  二是可以对这个日期类型的数据进行运算。如:可以基于这个数据类型的值来计算出几天以后的日期,或者是对两个日期进行减法运算,以计算出两个日期相隔的天数(即Date1-Date2)。从表面上看,这个好像跟Datetime没有不同。其实本质上有所差异。DatetimeOffset在计算的时候,会针对时间偏移量进行比较。也就是说,考虑不同时区的内容。如现在有两个时间,分别为8点与9点。如果它们是Datetime类型,进行减法运算,最后的差异就只有1个小时。但是如果这个两个时间分别属于不同的时区。在计算的时候考虑到时区,则最好的结果就不是1个小时了。总之,DatetimeOffset数据类型在进行加减运算的时候,会考虑偏移量,即时区的信息。
  三是DatetimeOffset与Datetime两种日期型的数据可以进行相互转换。如现在中国有家公司在美国设置了一个办事处。月底的时候要将美国办事处的业务与国内的进行汇总。此时就需要将国外办事处的时间(DatetimeOffset类型)的转换为国内的时间(Datetime类型)。这是可以的。如果要反向转换也可行。也就是说,它们两个数据类型可以相互转换,就好像在特定条件下字符型与数字型的数据可以相互转换一样。
  另外,DatetimeOffset类型的数据还可以相互比较、日期和时间转换等等操作。其原理跟Datetime数据类型相同。只是在对其进行操作的时候,考虑了具体的时区。当需要对不同时区的记录进行排序、比较等等,笔者建议采用DatetimeOffset这个数据类型,可以消除因为时区不同而带来的不便之处。
  从以上分析中可以看出,这两个跟日期有关的数据类型主要的作用就是提高了应用程序在不同的国家(不同时区)下的应用能力,为应用程序的集成提供了方便,提高了应用程序的灵活性。这也正是敏捷开发的一个体现。
其他文献
交换机作为网络的“命脉”,它的好与坏能够直接影响工作效率。作为企业的采购员经常会为如何选购?用什么交换机好呢?这些问题所困扰。我们在选购交换机时,它的优劣无疑十分的重要,可以从总体构架、性能和功能三方面考虑。  在交换机选购时。性能上要满足RFC2544建议的基本标准,即除了吞吐量、时延、丢包率外,随着用户业务的增加和应用的深入。还需要满足一些额外的指标,例如:MAC地址数、路由表容量、ACL数目
日前,Skype推出了Skype5.0版本,并将之与社交网络Face—book进行了整合——用户可以在Facebook界面中使用Skype的VoIP和消息功能。众所周知,Skype和Facebook都不是典型的企业沟通
本文结合当今图书馆读者服务工作开展现状和自身工作实际,在传统模式基础上提出了网上订单、读者网上留言、图书续借和预约、借书证挂失等新技术的应用,并对短信服务平台、读者
该文分析了applet连接数据库的限制,提出了通过连接代理解决applet限制的解决方案,实现了web服务器与数据库服务器部署在不同服务器的技术,均衡了负载,提高了系统运行效率。
美国盐湖城专家Wyatt Ekins说,他多年以来一直在家里使用一个无线网络。有一天,他突然从自己的计算机中看到并且可以访问其他人的硬盘。他能够访问这个硬盘中的全部文件,甚至这个人的打印机也显示为一个可用的网络设备。这种情况很快变得非常令人讨厌,Ekins每一次登录网络都能看到那个人的计算机。由于无法确定那台计算机是属于谁的,Ekins用Word软件写了一个简短的通知,告诉那个人这个情况,并且用远
对于习惯使用Windows操作系统的用户来说,Linux系统的一切看起来都是那么陌生和奇怪,本文向Linux初学者介绍Linux网络设置和调试的几种基本方法。
在阐明智能化建筑基本问题的基础上,从战略的高度提出建筑智能化管理系统的分布化、综合化和动态化的观点:在分析智能大厦的实施基础上.提出工程设计的实现需要前期仿真的观点。
相信大家上网聊天或逛论坛时都经常看到一些形象有趣的表情符号。相比繁琐的文字,有时一个简单的符号反而更能恰到好处的表达心情。对于现在网络上五花八门的表情符号,小编表示很佩服,网友们实在是太有才啦!
对于网络而言,密码的设置至关重要。那么下面将为大家介绍一下如何进行无线宽带路由器密码的配置,配置无线宽带路由器密码,是防止网络攻击和盗取的有效措施。具体内容请见下文。   设置无线宽带路由器密码对于无线网络的安全是非常重要的,同时也能防止别人入侵或者那些蹭网用户,保证良好的网络环境。TP-Link的无线路由器一向以性能稳定,价格实惠赢得大家的喜爱,在市场上占有相当大的份额。无线路由器因为不受物理