警惕!高版本VS发布时预编译导致Mono中Razor找不到视图
2014/9/6 技术探讨

    早前一段时间,一位朋友在Q群里面找到我,说它按照《Linux.NET学习手记》的操作,把一个ASP.NET MVC 4.0的项目部署到Mono之后出现Razor无法找到视图的现象。当时费了一番周章才把问题解决。而最近一段时间,群里也有其他的朋友出现相同的问题,随着时间的推移,想必会有越来越多朋友会使用高版本的VS,于是我把当时的情况重现出来,并把解决办法记录下来。

用迭代实现无限级分类
2014/9/6 技术探讨

    说起那个无限级分类,相信很多人都知道是什么东西,也曾经做过。我也相信,大家用得最多的实现方式就是做一个递归。最近我也要做一个带无限级分类的菜单,但是我又不想用递归来做,所以我需要用其他方式来实现,那就是迭代了。

如何让我们的PHP在Jexus中跑起来
2014/9/6 技术探讨

    最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP。其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的。不过由于没有这个方面的需求,我也一直没有用它这一项功能。

    早在前两天,群里一名朋友找到我,他想把一个PHP版的BBS改为.NET版的,问我有没有兴趣,我看了下这个BBS的用途,也乐意的接受了他的邀请。于是问题就来了,这个BBS是PHP版的,我需要先把它挂上服务器,先大概的“玩”一下有些什么功能、好不好使,但是当前手头上,我没有任何可以供PHP运行的环境(早在一年前我就已经没有和LAMP接触了),我需要快速的获得一个PHP的运行环境。

    搭建一个新的,这是我唯一的一个选择。如果这是一个新装的系统,并且我只是想单纯的跑PHP的话,我也许会选择经典的LAMP构架(Linux+Apache+Mysql+PHP),但是由于当前的系统中已经存在了一套完整的Linux.NET环境,所以我也不折腾了,直接采用最简单的方式,快速的这个BBS跑起来。

Linux.NET实战手记—自己动手改泥鳅(上)
2014/9/6 技术探讨

    各位读者大家好,不知各位读者有否阅读在下的前一个系列《Linux.NET 学习手记》,在前一个系列中,我们从Linux中Mono的编译安装开始,到Jexus服务器的介绍,以及如何在Linux中简单的部署自己的WebForm程序和ASP.NET MVC应用程序。如果各位读者有阅读该系列的文章并且成功的实现上面的每一个功能点,那么小弟认为,你对Linux.NET已经入门,剩下的就是各自在Linux.NET中自由发挥,在这另一天地中做自己爱做的事,创出一番更新的新天地来。

Linux在Hyper-V中实现与Windows的宽带共享上网
2014/9/5 技术探讨

    相信不少读者都会做(或者曾经做过)这么一项活动——把一个Linux系统安装到Windows系统下的虚拟机软件中,然后在Windows这个大环境中对Linux进行学习或者一些实验操作。在进行这么一项活动时,不知道各位读者是否感受到网络连通的重要性(这里指外网的Internet),而事实上,无论是在虚拟机中还是在真实的物理机上“玩”Linux,(外网)网络都扮演着一个非常重要的角色。试想一下,当我们的Linux无法(外网)网路,这时我们又需要安装一个gcc编译器,各位读者会怎么做?采用源码编译?我想,gcc的编译安装这并不是一般人所能够做到的。采用rpm包安装?那光解决rpm包的依赖性就可能要折腾不少的时间。采用yum,并且把源指向安装光盘?这,确实是可以解决gcc的安装问题。但是,各位读者是否又想过这么一个问题,虽然Linux的安装光盘确实已经为我们提供了不少的软件包,但是一个安装光盘才有多大呀,CentOS 6.4的安装光盘也就只有那个四个来G,这就意味着,光盘并不是万能的,还会有不少的软件我们是无法从光盘中获取的,比如Mono,我们就必须自己从官网中下载一个并自己编译安装。(外网)网络是如此的重要,我们是不能够失去它的,哪怕是在虚拟机中也不例外。

    在现实生活中,虚拟机软有非常多的种类,比较有名并且常用的有VM、VirtualBox等。如果各位正在阅读此文的读者是使用VM机作为自己的Linux虚拟机的,那么你们是幸福的,因为VM这款软件做得非常好,它自带的NAT技术一下子就可以帮各位读者解决联网问题,换句话说,只要作为大环境的Windows可以正常的访问网络,那么只需要在VM的网卡设置用选择“nat”选项或者采用“8号网卡(vmnet8)”,安装在VM中的Linux就已经获得了访问(外网)网络的权利了,用户完全无需为了网络的事情而烦恼和折腾。

初识Entity Framework CodeFirst(3)
2014/9/2 技术探讨

前两回合,我们讨论学习了如何采用Entity Framework在没有数据库的情况下自己写一些实体类,然后通过CodeFirst反向生成对应的数据库。通过CodeFirst,我们摆脱了edmx文件,没有了繁琐的Xml关系映射,使代码变得无比的清晰,修改起来也变得更加容易。

在前两篇文章中,我们的数据库都是通过反向生成的,也就是说,属于一个New Database(新数据库),那么,对于一个Exist Database(已存在的数据库),我们又应该怎么办呢?本节文章,我们将对 Code First to an Existing Database 做出讨论学习。