zoukankan      html  css  js  c++  java
  • 游戏大厅 从基础开始(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

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

  • 相关阅读:
    第十三周学习进度条
    冲刺第四天
    第二天冲刺
    第三天冲刺
    第一天冲刺
    课下作业
    第十二周学习进度条
    课下作业
    webp与png、jpg相互转换
    Node疑难解决
  • 原文地址:https://www.cnblogs.com/waynebaby/p/1515911.html
Copyright © 2011-2022 走看看