jexus ASP.NET开发注意项1
Jexus@宇内(273766940) 9:09:02
linux上的文件名和文件路径是大小写敏感的。
Jexus@宇内(273766940) 9:10:11
在win上,你文件名是 Login.aspx,可以用login.aspx访问,但在linux上,你用login.aspx访问就会找不到文件。
肖坤(276953703) 9:11:32
也就是只要是文件名或路径大小写匹配就可以了。这也是linux系统的原因
Jexus@宇内(273766940) 9:12:39
在迁移中,还要注意操作系统API调用方面的问题,如果你的asp.net程序中用dllmport访问了windows的系统api,那么,这种调用在linux上是无法运行的,原因,linux上根本就没有对应的so.
Jexus@宇内(273766940) 9:14:48
即,跨平台的应用,不能有操作系统依赖性。
Jexus@宇内(273766940) 9:17:43
第三,mono的版本号以及类库的版本号与.NET的版本号是有区别的。比如,mono3.2,已经带了.NET2/3.5/4/4.5的类库,带了mvc/mvc2/mvc3的类库,但是并没有带MVC4的类库,带有EF6的类库,但是没有带EF5的类库。这时,如果用VS开发的应用,没有注意到类库版本的区别,也会出问题,因为,VS的开发目标是windows,而不是linux。
小白(89921185) 9:20:01
低一个版本用好些
Jexus@宇内(273766940) 9:20:13
其实,由于类库版本的不对等,才是一个比较实在的拦路虎。很多人喜欢用最新的技术,比如MVC4,而mono并没有带MVC4的库,喜欢用EF,但VS上是EF5而不是mono上的EF6。
^O^清风明月(99687261) 9:20:24
随便说说,EF5是绝对不可用,EF6是“将要”支持
肖坤(276953703) 9:20:59
我喜欢用Nhibernate
Jexus@宇内(273766940) 9:21:46
很多朋友,而且是ASP.NET初学者,外加初学linux,竟然一上手就是MVC4+EF,这不得不说是自己给自己找麻烦!
Dylan_deng() 9:21:54
EF是什么
Jexus@宇内(273766940) 9:22:14
自己做不了,还说mono不得力。
广州-血开阳(764392008) 9:22:25
一个orm
肖坤(276953703) 9:22:39
这不是mono的问题,而是新手的问题
Jexus@宇内(273766940) 9:22:41
真正的老手,是不会这么玩的。
Jexus@宇内(273766940) 9:23:53
初学ASP.NET+初学LINUX,敢直接上最新的技术框架,这不能不说是一种失败!
小白(89921185) 9:24:14
我现在都是3.5为主 偶尔4.0
Jexus@宇内(273766940) 9:26:16
mono3.2.1,无需添加其它dll,直接做mvc3/razor/asp.net4,是没有问题的。当然,也不要用EF。除非对EF6很熟外加VS支持EF6。
肖坤(276953703) 9:30:07
unix上都一样的吧?
Jexus@宇内(273766940) 9:31:56
是
Jexus@宇内(273766940) 9:32:12
你可以简单地把unix看成linux。
肖坤(276953703) 9:33:01
改天找个机器做实验
Jexus@宇内(273766940) 9:36:51
呵呵,很多人都在正式投入生产环节了,你才开始做实验。
肖坤(276953703) 9:37:46
看来我比较落后了
kissbaby(16344438) 10:29:02
大家好,有个问题请教一下,我有个站点路径包含空格,配置文件中root部分应该如何写,比方我的路径是在/var/www/my site,我写成root=/ /var/www/my site后发现无法加载里面的默认索引页,把目录和配置的空格去掉则正常加载了,是不是root不支持空格,希望可以得到解答
Jexus@宇内(273766940) 10:29:33
不支持空格
Jexus@宇内(273766940) 10:30:01
路径不支持空格
kissbaby(16344438) 10:30:12
那中文支持吗
Jexus@宇内(273766940) 10:31:03
中文支持,不过,要想支持中文够麻烦的,比如你需要安装字符集以及修改jexus启动文件。
kissbaby(16344438) 10:32:09
了解,那么空格的支持可以修改什么文件来使之支持吗
Jexus@宇内(273766940) 10:32:20
关于中文路径文件名等的支持,请访问 www.linuxdot.net
Jexus@宇内(273766940) 10:32:39
修改也不支持。
kissbaby(16344438) 10:33:48
那真可惜了,如果能支持类似root=/ '/var/www/my site'这样的写法就好了
Jexus@宇内(273766940) 10:34:10
在linux上,为了不给自己找麻烦,不建议用中文文件名、不建议大小写混用,也不要在路径上加空格。
kissbaby(16344438) 10:35:40
刚好以前有个项目是在原来WIN7系统上的,直接挂载在UBUNTU上,所以也懒得改路径,刚好这路径是中文和空格全有,看来只能改路径了
Jexus@宇内(273766940) 10:35:54
大小写混用,路径有空格,这些都是windows的习惯。因为,比如大小写,windows根本就不理睬它
DataAngel(996421165) 10:36:10
yes
DataAngel(996421165) 10:36:15
大小写注意
kissbaby(16344438) 10:36:16
谢谢流云兄的详解了
DataAngel(996421165) 10:36:18
空格注意
Jexus@宇内(273766940) 10:36:24
不客气。
Jexus@宇内(273766940) 10:37:45
在linux系统上,数十万文件,你很难找到有大小写混用的,也很难找到文件名或路径上有空格的,他们都是清一色的小写。
kissbaby(16344438) 10:37:48
嗯,现在慢慢转型到LINUX中,有些习惯正在慢慢适应中。。。不过感觉UBUNTU还是蛮给力的,基本都不想用WIN系统了
kissbaby(16344438) 10:40:12
另外,我感觉装MONO环境的部分似乎可以直接使用产UBUNTU的软件中心,下载一个叫MONODEVELOP的应用就好了,这样就不用输入太多的命令行了,省事多了,不知有没有理解错
Jexus@宇内(273766940) 10:40:43
jexus是支持大小写混用的,不过,大小写混用的弊病远大小收获。
Jexus@宇内(273766940) 10:41:20
MONODEVELOP是开发用的。
kissbaby(16344438) 10:42:07
空格或中文还能理解,大小写为什么会有这么大的弊端呢,愿闻其详
Jexus@宇内(273766940) 10:43:38
在linux中,Index.aspx index.aspx是两个不同文件,那么,你说,在访问index.aspx时,系统应该以哪个文件为准?
Jexus@宇内(273766940) 10:44:19
明明是两个不同文件,一旦不分大小写,系统就乱套了,因为,你叫它不分大小写,所以它就分不清用哪一个了。
Jexus@宇内(273766940) 10:45:27
在进一步的匹配过程中,系统会用不同的大小写尝试,这时,会浪费很多资源。
kissbaby(16344438) 10:49:23
其实区分大小写挺好,我倒是乐意index和Index是不一样的文件
Jexus@宇内(273766940) 10:50:51
同样,如果访问者打错一个字母大小写,也是极为麻烦的事
Jexus@宇内(273766940) 10:51:19
login.aspx 别人可能好记,LogIn.Aspx,就是与用户过不去!
Jexus@宇内(273766940) 10:51:36
这是折磨用户。
kissbaby(16344438) 10:52:15
那是,看来这倒是要注意了,我旧项目里还真的多数是这种驼峰命名方式,看来全得改了
Jexus@宇内(273766940) 10:58:18
入乡随俗,最简办法就是不路是路径还是文件名,清一色小写。
Jexus@宇内(273766940) 10:58:56
不要给自己找麻烦,也不要给用户找麻烦。