Linux.NET学习手记(8)

    上一回合中,我们讲解了Linux.NET面对OWIN需要做出的准备,以及介绍了如何将两个支持OWIN协议的框架:SignalR以及NancyFX以OwinHost的方式部署到Linux.NET当中。这一章,我们将对框架与OwinHost之间怎么通过OWIN协议作出解析。

Linux.NET学习手记(7)

    前一篇中,我们简单的讲述了下如何在Linux.NET中部署第一个ASP.NET MVC 5.0的程序。而目前微软已经提出OWIN并致力于发展VNext,接下来系列中,我们将会向OWIN方向转战。

    早在三周之前,我偶然的得到了一本《SignalR Programming in Microsoft ASP.NET》,在晚上不工作的时候对这本书进行细细研读(到目前为止大概只研读了一半)。虽然目前只有英文原版,但是这本书讲得很不错,即使需要抱着一本词典来辅助阅读,那也是值得的。

    OWIN的发展,不仅对于传统的MS.NET(常规运行于Windows中的.NET)方向的开发是一个新的征程,对于我们Linux.NET方向的开发也同样是一个新的纪元。至于关于OWIN发展所给我们带来的好处,我这里给各位读者随意的列出这么几条:

  (1)、我们写的代码兼容性更高,项目的迁移更可靠(当然前提是你使用的框架是支持OWIN的框架)

  (2)、社区将会更加活跃(由于OWIN具有更开放性,它鼓励了一批人把自己的创意变成现实)

  (3)、Web Server我们有更多的选择,可以使用非IIS挂载自己的站点(当然在Windows下,IIS仍然为一个最佳的选择,不过目前IIS暂时没有支持OWIN,想尝试OWIN的暂时读者只能用Katana,而Linux下的Jexus则已经支持)。

  (4)、更多……

    不过,凡事总有两面性,OWIN所带来的除了巨大的好处之外,还带来了一些短期内不好的附加属性,最直接的就是增加了我们的学习成本,我们需要同时学习VNext之前的.NET知识,以及伴随VNext新产生的知识(三五年内这个是必须的)。不过我们目前还有Visual Studio 2014还没有正式的发布,我们还有少许的时间供我们赛跑。等万事已成定局的时候再来努力,那就只能看着其他人的背影了,毕竟“先来的喝汤,迟来的喝水,不来的啥都没得喝”我说得对吧?

如何安装并简单的使用OwinHost——Katana
2014/9/7 技术探讨

    微软OWIN的提出必然会引起一场风暴,而我们作为C#阵营中一份子,自然免不了会卷入其中。OWIN是什么东西,我在这里就不解析了,还不知道是OWIN是什么的读者请打开浏览器,然后搜索即可,中文的英文的应有尽有。

    OWIN的发展,预示着将来会有越来越多的基于OWIN的应用框架出现,也将会由更多的OwinHost出现。就在我写这篇文章的时候,就我所知的就已经有两款的支持OWIN的Host出现:其一就是微软先发制人Katana,它能够运行于Windows中,独立于IIS为支持OWIN协议的框架提供宿主支持;而另外一款则是率先支持OWIN协议的运行于Linux以及FreeBSD的Jexus Web Server(需要Jexus 5.6 以上版本)。

    关于Jexus,本文中就不作介绍了,安装方式、使用方式还是和以前的一样,不了解的读者可以翻阅《Linux.NET学习手记》,本文中,我们还是介绍如何快速的安装并如何简单的使用Katana来调试我们的程序。想想在Windows下用Katana作为宿主,借助强大的VS进行开发,开发完成之后发布到Linux中,使用Jexus作为生产服务器,何尝不是一个愉快的事情。

如玫瑰一般的PHP与C#混合编程
2014/9/7 技术探讨

    故事背景是这样的,有一套项目,服务器端是用C#写的,为了完成某种事情,它需要使用到一个组件,这个组件很小但很重要,很不巧的是,这个这个组件是用PHP语言写的,如果为了使用这个组件而专门搭建一个PHP的环境显得有点高射炮打蚊子(况且还有其他不可预见的阻力)。或许有读者会提出“抗议”:不是PHP写的么,直接看源码翻译出一份C#版的不就行了?然而事实并不如想象的美好,总之就是短期内无法这么做了。

    如今的C#已经非常强大了,它除了可以做我们普通的站点开发、桌面开发和原生的Windows Phone、应用商店开发,还可以做其他诸如IOS、安卓开发;也通过用CLR来托起一个JVM(这里指IKVM.NET)来跑Java应用程序,当然也可以通过把PHP编译成IL来跑PHP的网站程序了。

绿色版的Linux.NET——“Jws.Mono”(续)
2014/9/7 技术探讨

    在前一篇文章中,我们简略的介绍了jws.mono的安装使用,以及我们如何自己动手做一个jws.mono出来。

    在文章发表之后的几天里,我一直觉得有点不妥之处,直到后来猛然的意识到:我们自己动手做的jws.mono虽然可以见到info页面,但实际上却是无法挂载任何的.NET站点的。因此这也有必要写下这篇的续篇来对前面的疏漏进行填补。

绿色版的Linux.NET——“Jws.Mono”
2014/9/7 技术探讨

    Linux.NET环境的搭建,不仅是一项比较耗时的事情,同时也是一项略显复杂繁琐的事情。特别是对于近期的几个Mono版本,由于官方所提供的源码包中出现代码文件的缺失,这总让我们的付出变得徒劳。另外一方面,由于Linux.NET的环境搭建涉及到比较多Linux的操作知识,这无疑增加了它的学习使用成本,提高了学习的门槛,这也令不少习惯于Windows中开发ASP.NET的开发者对其望而生畏。

    降低Linux.NET的学习难度,需要从环境部署开始着手,为此,Jexus的作者宇内给我们制作了一款绿色版的Linux.NET环境包,当中提供了Jexus Web Server以及Linux.NET的运行环境,带来了解压即可用,删除即卸载便利,同时还降低了Linux,NET初学者的学习门槛。

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

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