游戏大厅 从基础开始(4)-通过L2X用配置文件反射组装程序(VB only)

游戏大厅 从基础开始(4-通过L2X用配置文件反射组装程序(VB only)

很久没更新了。前一阵工作比较充实(就是比较劳累拉~),加上向老赵学习努力瘦身,精神愈发痛苦,难免就懒惰下来。通用倒了,项目突然死亡,On bench了一个月,越发的无力。

好消息也是有的,在m$ msdn论坛努力回答问题,总算当上了个版主。虽然7月申请mvp失败 但是鄙人生性好显摆,好听一点就是爱分享,所以一个咕噜爬起来,又是条好汉。

-----------------------闲话到此为止-----------------------

 

通过配置来制定程序

 

说起通过配置来制定程序,不得不提及asp.net

还记得asp.net membership 在web.config中的声明么?

 

    <membership defaultProvider="Main_SqlMemberShipProvider" userIsOnlineTimeWindow="20">

            <providers>

                <add connectionStringName="GTSCOM_DATABASE_DATAConnectionString1" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Clear" applicationName="GTSCOM_Customer" name="Main_SqlMemberShipProvider" type="System.Web.Security.SqlMembershipProvider"/>

            </providers>

    </membership>

 

实现不同工厂产生了相同接口的实体类型 MembershipUser

 

Web.config 就是这么神奇,动不动什么东西就加入进来了~ 编译器往往是根据web.config生成临时cs/vb代码,将其编译结果作为网站的基础

 

编译config提升的性能我可是非常羡慕阿,但是改配置就重新编译这样的事情也经常被诟病。改一个连接字符串整个网站编译5分钟的抱怨,偶尔也会听到。

咱们的游戏大厅,无论是做web game 还是做联众,都不适合

 

另一种办法就是反射了。

大厅组装要求

动态加载需要的类库(多种游戏逻辑、房间逻辑、副本类型的工厂载入)

策略配置 (策略模式的策略类的载入)

通过reload config 修改工厂类和策略类 实现无重启的“下一场游戏生效”配置更新。

性能不能受到过多影响

 

Okay,反射都能胜任。

如果反射得到的都是实现主程序引用中IFactory接口的工厂,返回的都是符合IProductClass 接口的对象,访问成员都通过访问接口进行,初始化以外性能上也不会受影响。看起来十分可行!

 

 

 

 

另一方面:

配置文件要求

让我这个懒蛋比较容易读(架构清晰)

让我这个懒蛋比较方便写 (编写智能提示)

写程序的时候比较舒坦 (编程智能提示)

 

恩,眼睛里冒贼光了。

 

VB+L2X, 十分诱惑的选择。

 咱们看看下面的xsd文件

 

WGSConfig.xsd

是不是没什么感觉?

换用vs2005打开,感觉又不一样了.

怎么样 是不是很清晰呢?

*vs2008的xsd编辑不太方便, 我们可以用sql2005 带的 vs2005 设置

 

 看看我们的要求表

  配置文件要求

让我这个懒蛋比较容易读(架构清晰) checked!

让我这个懒蛋比较方便写 (编写智能提示)

写程序的时候比较舒坦 (编程智能提示)

 

 有了xsd文件,我们就可以更方便得建立自己的XML 配置文件了

在工程中添加一个xml文件 在文件的属性窗口中选择视图(schemas)

把刚才的xsd 选中

 

 

Oh yeah~~

 

 

 我们在编辑xml的时候   可以得到及时的智能提示了@_@

 

看看我们的要求表

  配置文件要求

让我这个懒蛋比较容易读(架构清晰) checked!

让我这个懒蛋比较方便写 (编写智能提示)checked!

写程序的时候比较舒坦 (编程智能提示)

 

 

恩...距离完美的解放生产力还差一点点,我们看看编成集成提示支持得怎样

写一条linq 查询所有的factory吧

 

嗯,,,效果不错. 看来vb 编译器体贴的预编译了我们的xsd文件. 

。。。。。。c#啥时候能集成这个阿,哭啊。。。公司项目不让用vb阿。。。。。

 看看我们的要求表

  配置文件要求

让我这个懒蛋比较容易读(架构清晰) checked!

让我这个懒蛋比较方便写 (编写智能提示)checked!

写程序的时候比较舒坦 (编程智能提示)checked!

 

 

 

于是几乎在不停的智能提示中~~  我完成了配置类...

 

 

 

Happy end

 

 

这一章没有什么技术含量 但是懒惰驱动的工作方式已经深入我的人格。 这也是分享嘛

 

posted @ 2009-07-03 00:16  MSFT:waywa 韦恩卑鄙  阅读(2700)  评论(4编辑  收藏  举报