提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-05-13 15:04:40.000|阅读 436 次
概述:本文以一个名为AzureBingMaps的示例应用程序为例,分享了一些在开发该示例过程中积累的经验,以期对广大开发人员有所帮助。AzureBingMaps是一个旅游站点管理系统,演示了很多技术,可以认为是一个实际项目。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
本文以一个名为AzureBingMaps的示例应用程序为例,分享了一些在开发该示例过程中积累的经验,以期对广大开发人员有所帮助。AzureBingMaps是一个旅游站点管理系统,演示了很多技术,可以认为是一个实际项目。
写这个示例的初衷
在Windows Azure论坛,我们常见到这样的开发人员:他们已经学习了很多开发技术,例如ASP、.NET、Silverlight等,并对这些技术有了较深入的了解。但当他们需要将学到的知识应用到实际项目中时,新的问题便产生了。
如今的网络技术资源绝大多数都只针对某一种特定的技术,指导人们如何使用一个特定的功能,对那些希望学以致用、开发实际项目的开发人员而言,这远远不够。
鉴于此,我们开始尝试使用微软的各种技术开发一个相对完整的项目,体会大家可能遇上的问题,从而形成了本文。
选择合适的平台与技术
了解用户需求
在项目开发前,必须了解客户的需求。这项工作的范围很广,但由开发人员负责的部分通常仅限于选择合适的平台与技术。因此作为一个示例,我们省略了与客户访谈以了解需求的过程,直接将非功能性需求定义如下。
这些需求也正是我们的客户—Windows Azure论坛上参与讨论的开发人员—常常需要解决的问题。
选择合适的平台
需求明确地指出可伸缩性是必须考虑的因素。为了满足旅游旺季时1,000,000个用户同时访问的需求,我们可能会考虑如下方案。
于是,我们的需求引领我们考虑选择云计算。然而市场上也有很多云计算供应商,选择哪家最适合呢?这个问题还是要通过需求来解答。
综上所述,我们发现Windows Azure平台可以满足需求。在Windows Azure平台中,我们可以随时简单通过修改配置文件的方式来选择租用几台服务器,而且理论上可租用的服务器数量确实没有上限。它也完全支持.NET平台,而且操作系统以及常用的软件(例如数据库),也不需要手工配置。
当然,我们承认如上定义正好符合WindowsAzure平台的需求,这也是出于我们是针对这个平台撰写示例的考虑。但在实际项目中,大家确实需要考虑上述因素。如果你不需要高度可伸缩性,Windows Azure平台可能就不适合你,毕竟它的价格相对于一般的Web供应商而言是比较高的。如果你对操作系统和网络环境有特定的需求,那么目前Windows Azure平台也不适合你。你应该根据实际需求,寻找合适的平台。
选择合适的技术
在选取技术的过程中,客户需求以及开发团队的经验也是非常重要的。
需求指出第三方开发人员需要针对我们的服务自行开发客户端程序,因此开发服务时我们需要选择一个能让较多客户端平台都接受的技术,最好是一个国际标准。于是我们决定使用REST。此外,我们的服务需要暴露一些数据给客户端,因此将使用OData。OData是基于REST标准,定义了如何访问数据的一种拓扑,并且被广泛地使用着。我们的开发团队熟悉.NET,于是我们选择在.NET平台上能方便地实现OData的一项技术,也就是WCF Data Services。
在数据存储方面,Windows Azure平台上有两种常见的数据存储服务:Table Storage和SQL Azure。考虑到Table Storage目前还有较多局限性(例如不支持排序),我们决定使用SQL Azure。不过SQL Azure也有自己的局限性,最重要的一点就是目前它不具备Table Storage所提供的自动伸缩功能,也就是说当数据量大的时候,如何确保高效访问数据,是一个问题。不过这个问题也不是特别难以解决,请参考本文设计可伸缩的数据库章节寻找解决方案。此外,SQL Azure还支持空间数据(Spatial Data),也就是存放地理信息的数据,我们示例的场景正需要地理信息,所以空间数据也是一个很自然的选择。
至于数据访问,.NET平台提供了Entity Framework,这是一种O/R Mapping的框架,可以让开发人员在不需要考虑如何撰写SQL语句的情况下进行数据访问操作,而将精力专注于面向对象的设计。不过目前Entity Framework对空间数据的支持并不很完美,所以采用它将会给项目带来一定风险。
另外一个选择是直接使用SqlConnection以及SqlCommand,但这种方式比较烦琐,而且代码也不易维护。综合考虑,我们决定先做一个简单的原型,尝试将Entity Framework和Spatial Data结合使用,如果在开发该原型的过程中遇上了太多困难,我们将采用SqlConnection的方式。当然最终证明困难并不是很大,于是我们的示例还是采用了Entity Framework。
最后还有客户端,在客户端的技术选择上,我们首先考虑是选择Web还是Desktop。绝大多数情况下,Web应用程序都占据着得天独厚的优势,因为用户不需要安装,甚至不需要下载。当然Web应用程序在用户体验上可能略有不足,不过随着HTML5以及Silverlight的普及,差距也是越来越小了。如今Desktop程序最大的优势在于能够访问更多的系统资源,以及可以更好地支持离线使用。
对于我们的场景而言,我们不需要访问特定的系统资源,而且可以暂时不考虑离线访问的状况,所以针对PC类的大型设备我们选择了Web。不过,手机类的设备则是另外一回事。大多数手机浏览器不仅相对而言屏幕较小,而且功能支持也比较少,例如Silverlight一类的插件不受支持,而且也缺乏PC浏览器常见的那种TabbedView一类的效果。所以如果针对手机设备开发,往往还需要选择该设备直接支持的技术。
至于为何选择AJAX和Silverlight两个PC客户端,以及Windows Phone,就纯粹是出于示例的需要了。还是那句话,如果你的需求不同,你就应该根据需求选择适合于当前项目的技术,而不是生搬硬套...
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢