在全班童鞋都忙于安卓结课作业的日子里,我还在这悠悠闲闲地更新C#的大作业是不是有点盯不到兆头……=。= 不过我对安卓和java一直提不起兴趣,最开始我也就简单地把原因归结为“电波不同,次元不合”什么的,不过今天再次说起这事时,我脑中则有了一个比较逻辑的答案:
       1.在安卓课程之前我们并未学习java,对java的特点甚至语法根本不熟悉,再加上安卓本身的一些新特性,安卓这个东西几乎可以说从根上对于我来说都是陌生的,陌生的东西自然也就没有多少好感了;反观C#,我大一学的C++,后来又自学了一下MFC,现在再来学C#简直是顺水推舟,这种学习过程不仅符合自然规律,我个人学起来也是相当轻松,再加上我初中就用VB接触过基本的.NET控件,所以我几乎只是简单地看了下什么是“委托”(相反“事件”这东西我已经很熟悉了)就开始上手编程。
       2.虽然java和C#孰优孰劣一直是见仁见智的话题,但是我目前还是站在C#一边的。我对C语言Main函数的思想已经非常习惯,而相反地,java中动不动就上一个类的行为确实让人觉得杀鸡也用牛刀——Python就是最漂亮的反驳。而对于一般面向对象的编程,诚然需要用掉大量的类与对象,但是有一个Main函数自认为能在“面向过程”和“面向对象”中有一个比较舒适的过渡——或者说折中。毕竟“面向过程”是计算机喜欢的,“面向对象”是人喜欢的;而程序员不就是扮演着两者的调和者的角色么~~何况同时,.NET的强大也不会逊于java。

       不过这些差不多都只是我的胡诌,因为我并没怎么学java,不知情就没有发言权嘛~马上开设的云计算,里面什么Hadoop,那可都是java,我肯定也不会固步自封,当我认识到java的“科技魅力”后,我肯定会摒弃前嫌地认同java——是的,小至一个编程语言,大至一门科学技术,它在科学或者技术中的亮点才是我关注的重点,至于它能“玩”出多少花样,那些在我眼中都是次要的。(今后可能的话,Digital Void还会改用XNA以及DX等3D图形技术,虽然这种东西现在大多数是用来做游戏……)不知还有几位记得我曾经所说的“笑话”:还世界以本源。现在IT领域有这么先进技术、先进设备,而我们却只是在拿它们在消遣娱乐,忘了它们的前辈诞生时的本源意义,何其悲哀。嗯,我明白,只有“娱乐”最广大的群众,才有钱赚,有钱才有后话……但是我并不认为这又能怎么样……
       回到正题,数据库,也就是ADO.NET让我纠结了很久,因为我找的各种书籍以及资料上都没有一个可用的、完整的介绍,大多都是散列地讲DataTable、DataSet、TableAdpter等等,而我对其中的关系和结构更是一头雾水,以致我很长时间都不知道我到底应该操作哪个对象?DataSet?TableAdpter?DataGridViewer?BindingSource?他们都是绑定在一起的啊(数据绑定)?我在网上找到一个图,稍微解释了一下它们之间的关系:
图片
       不过这明显还不够,等我在接下来进一步的使用中加深理解了再回过头来总结吧……(又是一个坑
       其中特别是TableAdpter.Updata方法,我DataSet中的一个表,要回传会SqlSever的一个数据库文件中去,准确地说我应该是想“覆盖”,结果一直报错:说违反主键约束。我反复检查了多次,DataSet中的表的主键明明没有问题,于是我只能推断.Updata方法实际上调用的应该是数据库中的Insert,我把实体数据库(Sql)中的主键约束去掉后,就能顺利存储了,由于我没有装SQL SEVER,VS调试时对数据库文件也有一些奇怪的设定,我一直很难在程序执行时监视实体数据库中的数据变化……Orz。总之现在对实体列表的保存已经可以顺利进行了,接下来就是对坐标演算的处理。
       坐标数据更新速度非常快,数据量也非常大,我于是只能借助多线程。VS.NET其实提供很多方法来实现多线程,你既可以通过调用System.Tread 来手动新建一个线程,你也可以用BackGroundWorker控件来建立一个后台运行的子线程,我目前就了解这么多,觉得BackGroundWorker这个东西甚好,准备一口气来俩~顺带我重新梳理了一下程序的多线程结构:
图片
       其中演化计算子线程仅仅需要在原有代码进行少许修改就可以完成了,这个已经在今天完成了,而至于数据存储子线程,既涉及数据库又涉及到线程同步,比较复杂,所以下一步的代码就是完成这部分的功能。另外,我在准备对程序进行压力测试的数据了——21星体的运动模拟(计算量大约是双星运动的200倍),主要是想测试一下在高计算负荷下程序以及CPU的实际工作情况。
       另外一直坑着的就是视野控制(和它相关的还有部分主窗口的菜单选项功能),压力测试之前肯定得弄好就是,不过我还是对视野的活动模式比较拙计……
       现在VS统计的代码量差不多要到1700行了,这么看来上2000行指日可待~~