Azure 和Bing Maps API 示例经验分享
【编者按】本文由微软一站式示例代码库团队撰写。微软一站式代码示例库(Microsoft All-In-OneCode Framework)是由微软提供的一站式的免费代码示例库。从这里可以免费获得所需的示例代码,解决常见编程问题或提交示例代码需求。微软一站式示例代码库中文官方博客网址为http://blog.csdn.net/MSCodeSample 。头疼的Bug,糟糕的代码,崩溃的调试……作..
·
【编者按】本文由微软一站式示例代码库团队撰写。微软一站式代码示例库(Microsoft All-In-OneCode Framework)是由微软提供的一站式的免费代码示例库。从这里可以免费获得所需的示例代码,解决常见编程问题或提交示例代码需求。微软一站式示例代码库中文官方博客网址为http://blog.csdn.net/MSCodeSample 。 头疼的Bug,糟糕的代码,崩溃的调试……作为开发人员的你,遇到上述任何一种情况可能就会陷入抓狂。如果能直接获得需要的代码,编程的活儿就会轻松许多。 微软最新推出的一站式示例代码库,让开发人员可以免费获得所需的示例代码或向微软工程师提出示例请求,轻松解决常见的编程问题,大大减轻工作负担。 本文以一个名为AzureBingMaps的示例应用程序为例,分享了一些在开发该示例过程中积累的经验,以期对广大开发人员有所帮助。AzureBingMaps是一个旅游站点管理系统,演示了很多技术,可以认为是一个实际项目。
写这个示例的初衷 在Windows Azure论坛,我们常见到这样的开发人员:他们已经学习了很多开发技术,例如ASP、.NET、Silverlight等,并对这些技术有了较深入的了解。但当他们需要将学到的知识应用到实际项目中时,新的问题便产生了。
至于数据访问,.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,就纯粹是出于示例的需要了。还是那句话,如果你的需求不同,你就应该根据需求选择适合于当前项目的技术,而不是生搬硬套…… (本文节选自《程序员》杂志11年04期,更多精彩内容敬请关注04期杂志)
《程序员》11年04期精彩内容:HTML5来临!
《程序员》杂志订阅
- 针对特定场景该如何选择平台和技术?
- 不同的技术怎样结合起来使用?
- 如果在使用某项技术的过程中发现了局限性该如何解决?
- 如果必须使用不熟悉的技术该怎么办?
- 本系统在旅游旺季需要支持1,000,000个用户同时访问,在非旅游旺季只需要支持1,000个用户同时访问。
- 公司没有自己的数据中心,IT部门最多只能提供3台中档服务器给我们的系统。
- 我们团队对.NET和Visual Studio比较熟悉。
- 本系统对操作系统及网络环境并没有特定的需求。
- 第三方开发人员应该可以针对我们的服务自行开发客户端应用程序。
- 使用一台高性能服务器,然而IT部门明确告诉我们他们只能提供3台中档服务器。
- 采用负载平衡,然而3台中档服务器即使采用了负载平衡也很难保证满足我们的需求。
- 寻找云计算供应商,将我们的系统部署在外部的数据中心,如果选择的供应商合适,支持多台服务器负载平衡,就能确保满足高并发访问的需求。
- 在非旅游旺季我们只需要支持1,000个用户同时访问,因此我们选择的供应商必须允许我们随时更改使用计划,例如,旅游旺季租用2,000台服务器,非旅游旺季只租用2台服务器。
- 鉴于项目组对.NET和Visual Studio比较熟悉,我们希望应用现有的知识进行开发,这意味着我们选择的供应商必须支持.NET。
- 既然我们的系统对操作系统和网络环境没有特定的需求,我们就不希望花太多的时间在这些环境配置上。例如,我们不希望手工配置操作系统和安装各种需要的软件;希望即使需要租用2,000台服务器,也可以让项目组致力于应用程序的开发,而不是基础设施的配置。
![{E837AF3B-EAAB-416F-A69F-ECBE12384FD9} {E837AF3B-EAAB-416F-A69F-ECBE12384FD9}](http://www.programmer.com.cn/wp-content/uploads/2011/04/E837AF3B-EAAB-416F-A69F-ECBE12384FD9.bmp)
更多推荐
所有评论(0)