Mono,asp.net c#和MVC如何和教程

前端之家收集整理的这篇文章主要介绍了Mono,asp.net c#和MVC如何和教程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
熟悉Mono或Mono Development的任何人都可以提供一些基本的问题(不管它叫什么),而在.net中编程和部署在linux(如果你也知道的话)。关于我自己,我主要工作在MVC3和MVC4,几个窗体,也许在未来的移动应用程序。 98%的时间在c#和其余c。

1)您是否可能会遇到更多的错误错误,只是坚持使用Windows部署?如果是这样,一些错误有多糟糕,你有没有项目根本不起作用?

2)您是否建议在Visual Studio中编程,然后将其部署到单声道平台?还是有一个更好的IDE推荐,如Mono(或Eclipse,如果可能的话)?目前我使用Linux作为我的操作系统,并使用Visual Studio运行Windows 7。

3)由于我有几个使用.net 4.5 beta和mvc4 beta完成的应用程序,是否与当前版本的Mono兼容?如果不是从框架正式发布到Mono变得兼容的平均时间框架是多少?

4)我不了解数据库。我的数据库是针对sql Server的,我必须将它们更改为在linux服务器上运行。这是痛苦还是错误?我的sql server数据库首先使用实体​​代码创建,如果我必须创建MysqL数据库(或任何),这是否工作?

5)目前我将我的mvc网站部署到Server 2008r2远程服务器。是否有一个替代IIS,您将用于linux?你可以提供一个链接到一个教程设置这个。

6)如果问题4是可能的,在linux上部署MVC网站的损失是甚么?速度,可靠性,安全性等?

7)你能给我一个关于单一的某种iis框架等的磁盘空间的估计值吗?在将Linux操作系统与Windows操作系统进行比较时,Windows占用了更多的TON空间;那么使用这个单声道设置也会占用一个磁盘空间的TON吗? (我明白OS的大小比较不是很好的例子。)

8)有没有什么缺点,我可能会忽视,你可以想到?像目录浏览,配置文件hirearchy,jquery / ajax问题等有什么奇怪的问题。

你有什么建议,教程,博客等吗?是否有一个Stack Exchange网站处理这些类型的问题比这更好? (我找不到一个,除了Linux之外。

10)虽然我不需要这样做,但我想设置它,只是为了在未来有选择,但如果它是一个完整的浪费,我不会浪费我的时间。我现在都有一个linux VPS和Windows VPS,所以如果我这样做,还可以让我只有一个Linux远程服务器(可能有更少的硬盘空间和RAM),所以它可能会节省我的钱。所以我的最后一个问题是,如果你的情况类似于我,你会建议这么做吗?

请回答你可以提出的任何问题,
提前感谢,很抱歉有这么多问题,
加雷特·福格里

解决方法

首先,很好的问题。

我没有使用ASP.Net MVC的Web的经验,但我确实有ASP.Net Web表单的经验,并将商业ASP.Net应用程序从Windows迁移到在Linux上运行的Mono。

我可以回答你的一些问题。

1)您是否可能会遇到更多的错误错误,只是坚持使用Windows部署?如果是这样,一些错误有多糟糕,你有没有项目根本不起作用?

我会说是但不是很多。我们的应用程序是200K行代码,目前我只能想到我们的代码中存在的一个Mono错误。该错误正在调用遇到Apache的Session.Abandon方法。我认为您会在较新的.Net API中找到更多错误,但总体而言,框架非常稳定。

2)您是否建议在Visual Studio中编程,然后将其部署到单声道平台?还是有一个更好的IDE推荐,如Mono(或Eclipse,如果可能的话)?目前我使用Linux作为我的操作系统,并使用Visual Studio运行Windows 7。

我相信没有比Visual Studio更好的IDE,它提供的功能/稳定性。不过说这个MonoDevelop是一个非常好的IDE,非常类似于Visual Studio。它只是缺乏很多Visual Studio提供的额外的功能。例如用于网页的Visual Designer,并附加到进程调试。在我公司工作,我们在Windows / Mac和Linux上使用MonoDevelop。所以,如果你正在寻找一个跨平台的解决方案,然后去MonoDevelop,但如果你不介意使用Windows作为你的开发电脑和支付VS许可证,那么VS是好的。

3)由于我有几个使用.net 4.5 beta和mvc4 beta完成的应用程序,是否与当前版本的Mono兼容?如果不是从框架正式发布到Mono变得兼容的平均时间框架是多少?

我不知道这些API是否受支持。一种找出方法是使用Moma工具来分析您的程序集。另一个选择是下载最新版本的Mono MonoDevelop,并尝试使用它们来构建解决方案。我不知道API的发布的确切时间段,但我认为通常是.Net版本之后很快,有时甚至在微软发布之前。

4)我不了解数据库。我的数据库是针对sql Server的,我必须将它们更改为在linux服务器上运行。这是痛苦还是错误?我的sql server数据库首先使用实体​​代码创建,如果我必须创建MysqL数据库(或任何),这是否工作?

是的,这是一个痛苦的切换数据库。如果您正在使用存储过程,更多的是痛苦。有商业程序可以将您的数据库表和数据从MS sql Server转换为MysqL或Postgresql。我们使用DBConvert的工具将我们的数据库模式转换为Postgresql。转换桌子很容易。
最难的是转换我们的存储过程。我们的应用程序在数据库中严重依赖存储过程与900个存储过程。我必须手工重写Postgresql中的每个存储过程。如果您的存储过程只是直接的sql,那么它不会那么复杂,但是如果您非常依赖TSQL,那么您将需要在您选择的数据库使用的编码语言中找到与代码相同的代码。使用Postgresql最好的等价物是PL/pgSQL
我没有使用DBConvert提供的商业工具迁移数据的经验。我们对数据库进行了大量更改,同时我们迁移到Mono,因此我们编写了我们自己的代码进行迁移的数据迁移。

5)目前我将我的mvc网站部署到Server 2008r2远程服务器。是否有一个替代IIS,您将用于linux?你可以提供一个链接到一个教程设置这个。

&安培;&安培;

7)你能给我一个关于单一的某种iis框架等的磁盘空间的估计值吗?在将Linux操作系统与Windows操作系统进行比较时,Windows占用了更多的TON空间;那么使用这个单声道设置也会占用一个磁盘空间的TON吗? (我明白OS的大小比较不是很好的例子。)

Apache2mod_mono用于在Linux上托管Mono的网站。 Linux使用最小的空间。我们正在使用Amazon EC2托管我们的Web应用程序。我们的堆栈的新安装基本上包括Ubuntu,Mono,Apache2,Postgresql和Postfix只占用1.2 GB的空间。所以答案是没有Mono不占用大量的磁盘空间。
Here是关于在Ubuntu上设置Mono的教程。我不知道任何教程是非常好的。如果您需要帮助,那么最好的地方是Mono IRC channelMono mailing lists.在这里,您可以与社区和Xamarin工作的开发人员交谈。

8)有没有什么缺点,我可能会忽视,你可以想到?像目录浏览,配置文件hirearchy,jquery / ajax问题等有什么奇怪的问题。

个案敏感性可能是一个问题。 Linux是一个区分大小写的操作系统,因此您需要确保所有文件系统调用都区分大小写。根据您选择的数据库,也可以区分大小写。 Postgresql是一个区分大小写的数据库,因此在执行查询时,列名必须区分大小写。
使用MVC URL不区分大小写,所以你应该很好。 ASP.Net网站区分大小写,因为页面名称正在使用URL。
如果在首次使用linux在Mono上运行应用程序时遇到区分大小写的问题,那么可以使用Mono IOMap来启动并运行。 IOMap处理不区分大小写的错误,但它确实给您的应用程序带来了性能影响,因此不建议在生产环境中使用。

你有什么建议,教程,博客等吗?是否有一个Stack Exchange网站处理这些类型的问题比这更好? (我找不到一个,除了Linux之外。

除了stackoverflow和serverfault之外,我无法想到任何更好的编程网站和服务器管理员

10)虽然我不需要这样做,但我想设置它,只是为了在未来有选择,但如果它是一个完整的浪费,我不会浪费我的时间。我现在都有一个linux VPS和Windows VPS,所以如果我这样做,还可以让我只有一个Linux远程服务器(可能有更少的硬盘空间和RAM),所以它可能会节省我的钱。所以我的最后一个问题是,如果你的情况类似于我,你会建议这么做吗?

我会推荐它,但您必须意识到,有一个很大的学习曲线,以熟悉Linux操作系统,不同的数据库服务器以及安装/配置应用程序以在Mono框架上运行。您可能会发现很多事情并不像使用MS技术一样直观。您将不会在服务器上使用GUI部署和配置应用程序,因为SSH是与Linux服务器交互的最佳方式。

猜你在找的asp.Net相关文章