AutoCAD 命令统计魔幻球的实现过程--(3)

 

前面的文章(第一第二)我已经创建的了一个RESTful的服务程序,并且用JQuery从服务器端获取数据然后用ThreeJs完成了魔幻球的渲染。不过这个程序还是运行在本地机器上,数据保存在本地SQL Express,就是一个普通的ASP.net应用,和云计算还扯不上半毛钱的关系。这篇文章将要把这个应用搬到Windows Azure云端去。

本文连接 :http://www.cnblogs.com/junqilian/archive/2013/03/19/2969443.html

 

其实这个过程也不复杂,Windows Azure SDK可以让这个过程很简单。移植一个ASP.net应用程序到云端,如果你用到了Session,那么会稍微复杂一点。毕竟云端不再是一台而是很多台服务器。如果原先使用的是in-proc的方式保存session,移植到云端的时候就会有问题了,您可以考虑把session等状态信息保存在Azure存储或者SQL Azure数据库,或者使用App Fabric等。不过对于我这个例子就简单了,我的这个服务只是提供无状态的REST服务,所以不用考虑状态保存的问题。

首先在解决方案中添加一个工程,选择“Windows Azure Cloud Service”模版:

image

然后下一个页面是添加Web Role,在这里什么都不要添加,因为后续要把我现有的ASP.net应用程序作为我的Web Role,直接按OK按钮:

image

然后该添加Web Role了,在Roles目录上点右键选择Add –> Web Role Project in solution,选择我现在的ASP.net MVC应用程序,把这个所为Web Role:

image

你可以编辑一个这个Web Role的相关属性,比如服务器实例的个数等等,默认是1个。生产环境中至少要用2两个。这里我就不改了。好了,就这么简单,你已经完成到云端的移植了!不过现在还是运行在你本地的云端模拟环境中,你可以按F5在云端模拟器里运行一下,看看有没有什么问题,没有问题的话,下面就可以发布到真正的Windows Azure云环境中了。

image

 

在开始之前我们先看看数据的情况,现在我的数据是保存在本地的SQL Express里的,如果要程序程序移植到云端的话,数据肯定也要上到云才方便。最简单的就是使用SQL Azure云数据库。首先登录到Windows Azure控制台Windows Azure Management console 来创建SQL Azure. 选择 New –> Data Services –> SQL DATABASE –> CUSTOM CREATE. Windows Azure是有中文界面的,我的截图是在写英文博客时照顾到老外不懂中文才改的 :)

image

然后知道一个数据库的名字,如果你还没有创建过SQL database服务器的话可以创建的一个新的数据库服务器。

image

创建数据库服务器是需要指定登录名和密码。然后还需要知道所在Region,这里选region的时候最好选择和你将要发布的云服务在一个region,这个性能好一些,也不会有额外不必要的费用开销。region要选择靠近客户的那个,比如我预计我的客户多半在中国,那我就选择东亚。

image

 

创建好SQL 数据库后就可以开始移植数据库了。如果你在本地以及有不少数据了,那么你可以用生成脚本的方式。可以用SQL Server 2008 Management Studio连接到本地数据库生成数据库脚本(注意要选择真的SQL Azure生成脚本),然后连接到SQL Azure,在上面运行生成的脚本即可。这个过程我这里不介绍,因为我这儿都是测试数据,而且这些测试数据都是在初始化时代码生成的。我可以直接把连接字符改到SQL Azure来完成这个过程。不过在此之前需要在Azure 控制台设置一下防火墙,运行当前IP连接到该SQL 服务器。如果要用SQL Server 2008 Management Studio连接到SQL Azure肯定也是需要这个过程。这个很简单,登录到Azure控制台,选中你的数据库,就有如下界面,点一下Set up windows Azure firewall for this IP address就可以了。

image

 

然后如前面所说的,需要更改一下连接字符串连接到SQL Azure。这个连接字符串是什么呢?在上面截图中点 “View SQL Database connection strings”即可看到:

image

替换到web.config 里,别忘了输入密码:

  <connectionStrings>
    <!--
<add name="AcadCommandViewerContext" connectionString="Data Source=.\SQLEXPRESS;
Initial Catalog=AcadCommandViewerContext; Integrated Security=True;
MultipleActiveResultSets=True"

      providerName="System.Data.SqlClient" />
-->
    <
add name="AcadCommandViewerContext" connectionString="Data Source=tcp:qmhqjrmav7.database.windows.net,1433;
Initial Catalog=acadcmdviewer;User Id=<sql server user id>;Password=<input your password>;
"
  providerName="System.Data.SqlClient"
/>
  </
connectionStrings
>

 

因为我使用的是Entity Framework,现在就可以安装原先的方法重新在SQL Azure中生成我的数据库和初始化数据了。进到 Package Manager Console from Tools—> Library Package Manager, 运行 Update-Database 命令,搞定。

PM> Update-Database

 

好了,然后可以把应用也部署到云端了。Windows azure SDK提供了很好用的工具。右键点Azure项目选publish启动发布向导:

image

 

我用的是MSDN订阅:

image

创建一个新的云服务,选择和前面的SQL azure一样的region:

image

后续按照向导走就行了,我这里都按默认就可以。然后等上一袋烟的功夫,发布过程就完成了,大功告成,你已经成功的把你的ASP.net应用程序一直到云端了!

好了,下来再讲一下魔幻球的数据来源,AutoCAD插件的创建。


Related Posts Plugin for WordPress, Blogger...