博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AutoCAD 命令统计魔幻球的实现过程--(1)
阅读量:6702 次
发布时间:2019-06-25

本文共 2295 字,大约阅读时间需要 7 分钟。

前面的文章介绍了,大家有空可以玩玩看。今天开始介绍一下这个项目的实现过程。这个项目还是很简单的,其中用到的技术主要包括AutoCAD .net API, ASP.net MVC, Windows Azure, Entity Framework代码优先编程,RESTSharp, Jquery 和WebGL(Three.Js)。我首先介绍一下服务端的实现方法。

这个项目包括3个部分, – 一个AutoCAD插件来收集AutoCAD命令的使用情况上传到云端的服务程序, 一个驻留在Windows Azure云端的REST服务程序来接收/发送和存储命令统计信息, 另外是一个web页面中由JQuery以REST的方式从云端服务程序获取统计数据,并用WebGL渲染出来,这里使用了一个比较流行的类库Three.JS. 下面是Visual Studio的解决方案,包括5个项目。其中AcadCommandViewer是服务程序和网页浏览端,这是一个ASP.NET MVC应用,最后要部署到Windows Azure。另外还有个AutoCAD.net的插件程序。另外为了使数据模型能够重用,我把它独立出来成为一个单独的项目。

下面看一下服务端程序的实现。说到创建Windows Azure云端应用,你估计首先想到的就是用Windows Azure SDK的模版来创建,但是我发现这样是调试过程中在Azure 模拟器中测试还是挺慢的。其实把一个现有的asp.net 程序移植到到Windows Azure也还是很简单的,既然如此,那何不就从一个简单的ASP.NET程序开始呢? 于是我就在Visual Studio中创建了一个ASP.net MVC 4 Web Application 。

 

首先需要定义数据模型,如果项目不大,在MVC项目的Models目录下定义就好了,但上面我也提到了,这个数据模型我还是要在AutoCAD插件项目中重用的,所以把数据模型独立出来成为一个单独的项目。很简单就是添加一个class library项目,加入一个数据模型的类即可:

 

 

数据模型建好了,然后可以创建控制器了。Visual Studio提供了很好的模版,我使用Web API + Entity framework,这个模版其实已经帮我做了大部分的工作。在Controllers目录上点右键,添加--控制器,选择“API controller with read/write actions, using Entity Framework“模版,并选择上面创建的数据模型类,

 

然后选择“<New data context>”让Visual Studio来帮我们自动创建数据上下文类。如果你在上面的模型类列表中找不到你的数据模型类,那是因为你没添加引用,因为我的数据模型已经独立到另外一个项目中了,很简单,添加引用即可:

 

Visual Studio自动生成的控制器代码已经相当不错了,通过Web API实现了REST服务的GET, POST ,PUT 和DELETE方法,不过在PUT方法更新时有一点问题,就是我们上面的数据模型定义中是有父子关系的,默认的代码Entity Framework不能处理这个父子关系的模型,需要稍微改一点。解决办法就是把旧记录的子对象都删除,然后在加入新对象的子对象,具体可以看一下下面的代码及注释。

 

 

 

上面Visual Studio已经自动帮我们创建了数据上下文类,默认是使用SQL Express,你可以看的Web.config里面的连接字符串,稍后我们可以升级到SQL Azure云端数据库。

、Please note that the context class is using SQL Express, it is easy to migrate to SQL Azure latter:

 

 

然后为了测试,需要弄点测试数据,在Models目录下添加一个SampleData.cs类来代码生成一点测试数据,如果要做单元测试的话也比较方便。

 

 

 

然后需要把这些测试数据生成到数据库中,Visual Studio中的Package Manager Console 很方便。从Tools—> Library Package Manager,打开Package Manager Console ,输入命令:

PM> Enable-Migrations 

Visual Studio项目中会添加一个Migrations的目录和一个Configuration.cs的类,可以在这个类的Seed方法中来生成初始数据,代码如下:

 

 

 

然后在package Manager Console 中运行Update-Database命令在数据库中生成数据:

PM> Update-Database

 

好了,到目前为止,服务端程序就创建完毕了,这个程序已经能够以REST的方式提供服务了,包括数据的获取,上传,更新和删除,对于REST服务的测试,可以使用Fiddler工具,这个工具的使用,你可以自行搜索,也可以看我们的另外一篇英文博客。 .

下来回继续接受浏览器端WebGL部分的实现。敬请关注。

作者:
邮箱:junqilian@163.com 
出处:  
转载请保留此信息。
本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2013/03/12/2955316.html
,如需转载请自行联系原作者
你可能感兴趣的文章
Java编写(模仿51CTO 给图片加上水印)--原创
查看>>
flask cookies 对象
查看>>
OpenStack服务启动故障排除经验
查看>>
实战开发经验: 软件中的错误收集策略
查看>>
.NET简谈事务、分布式事务处理
查看>>
再次成功解决苹果XSAN 7TB双RAID5+软RAID0的数据恢复
查看>>
《hadoop进阶》基于hadoop和hive的微博热词跟踪系统
查看>>
Flex与.NET互操作(十六):FluorineFx + Flex视频聊天室案例开发
查看>>
phpMyAdmin的安装及排错
查看>>
Oculus和虚拟现实的无限可能
查看>>
Silverlight自定义数据绑定控件应该如何处理IEditableObject和IEditableCollectionView对象...
查看>>
删除所有的binlog后打不开
查看>>
angularjs 模块化
查看>>
PMBOK项目管理PMI主义\IPMA概述
查看>>
解决Azure中COULD NOT LOAD FILE OR ASSEMBLY问题
查看>>
Windows Azure HandBook (8) Azure性能测试(1)
查看>>
优化事务处理
查看>>
iphone:Core Data:Where does a Managed Object Context Come From?
查看>>
spark groupByKey 也是可以filter的
查看>>
sqlmap使用笔记
查看>>