Python 查询网站开发,2023年国内十大新闻,乐清新闻最新消息视频,医药网站备案在《WeText项目#xff1a;一个基于.NET实现的DDD、CQRS与微服务架构的演示案例》文章中#xff0c;我介绍了自己用Visual Studio 2015#xff08;C# 6.0 with .NET Framework 4.6.1#xff09;开发的DDD/CQRS/微服务架构的案例项目#xff1a;WeText。文章发出后反响很好… 在《WeText项目一个基于.NET实现的DDD、CQRS与微服务架构的演示案例》文章中我介绍了自己用Visual Studio 2015C# 6.0 with .NET Framework 4.6.1开发的DDD/CQRS/微服务架构的案例项目WeText。文章发出后反响很好也很感谢大家的关注。在本文中我将介绍如何在Ubuntu 14.04.4 LTS中运行WeText项目的服务端。 为跨平台而生 从一开始的设计我就把WeText的服务端跨平台纳入了实践目标因此所选择的框架和技术全部都是可以跨平台运行的。在这个过程中我没有尝试最新的.NET Core RC而是继续使用最新版本的Mono。Mono目前对微软官方的.NET Framework兼容性已经做得非常好了一句话概括除了WPF、WWF不支持以及部分WCF与ASP.NET 4.5异步支持不完善以外其它功能完全支持。.NET Framework已经支持到4.6.1C#语言规范已经支持到C# 6.0。具体详情可以参考Mono的官方说明http://www.mono-project.com/docs/about-mono/compatibility/。在最近工作上遇到一个项目需要能够运行在Linux下项目本身不大也非常简单但美国团队一听说我打算采用Mono就不太愿意接受最后还是选择使用Java。当然我承认Java在多平台的支持方面的确非常出色但我还是想亲身实践一下Mono想证明基于Mono的方案的确也能做得很好。这也是我将WeText定位为能够跨平台的一个原因吧。话说回来从客户的角度微软的开源为解决方案的技术选型提供了更为广阔的选择余地客户的整套方案不需要像以前那样一个部分使用了微软技术就整个解决方案都要使用微软技术比如选择了.NET Framework就需要运行Windows的服务器使用了Windows服务器LDAP就是Active Directory最合适使用Entity Framework就需要SQL Server做数据库客户一想我还有一大堆的服务程序都是运行于Linux的凭什么我的服务器一定要选择Windows于是客户也不会选择.NET Framework。当然这是另外的话题在这里我还是继续介绍WeText服务端的跨平台特性吧。 我在Ubuntu 14.04.4 LTS版本的Linux系统中成功安装并运行了WeText的服务端而且成功从Windows下的WeText.Web项目访问这台Linux服务器并跑通了所有的业务逻辑。听起来是不是很让人兴奋现在就请和我一起了解一下整个安装和运行过程吧。 环境准备 首先得要有一台Ubuntu 14.04.4 LTS的机器如果是其它系列的Linux以下安装过程会有些不同请大家自行参考各种组件在相应版本的Linux下的安装步骤进行安装但不会影响后续WeText的编译和执行。在准备完这台机器之后就可以开始一步步地准备环境了。 安装Mono 在Linux系统中安装Mono可以参考http://www.mono-project.com/docs/compiling-mono/linux/。基本上有两种方式一种是直接从发布版本进行编译安装另一种是通过克隆代码库然后编译安装。当然无论哪种方式在编译之前请先通过下面的命令确保所有所需的软件包都已经正确安装 1 sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext 我自己是通过下载Release Package完成安装的Mono所有的Release Package位于http://download.mono-project.com/sources/mono/。直接选择最新版本下载解压即可。 解压完成后进入解压后的目录依次执行下面的命令完成编译安装 1 2 3 ./configure --prefix/usr/local make make install 第一条命令中的—prefix参数可以根据自己的情况设定。 安装MongoDB 在WeText中MongoDB被用作Event Store事实上Event Sourcing暂时还未实现。使用MongoDB的原因是因为事件数据本身是非结构化的而且MongoDB在replication方面有着很好的解决方案。安装过程如下 1. 为包管理系统导入公钥 1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 2. 为MongoDB创建list文件 这将为MongoDB在/etc/apt/sources.list.d目录下创建mongodb-org-3.2.list文件。 1 echo deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list 3. 刷新本地包数据库 1 sudo apt-get update 4. 安装最新版本的MongoDB 1 sudo apt-get install -y mongodb-org 5. 启动MongoDB服务 1 sudo service mongod start 6. 直接执行mongo命令检查MongoDB是否已经正确安装 如果需要更加详细的安装步骤请直接参考官方文档或者也可以上网搜索相关的中文资料参考。注意目前暂时建议整个安装过程采用默认设置因为MongoDB的配置目前是写死在服务端代码中的具体位置是WeText.DomainRepositories项目下的WeTextMongoSetting.cs文件中。如果更改了MongoDB的配置那么也需要相应地更改这部分代码然后重新编译WeText服务端本文后半部分会介绍编译过程。今后会将MongoDB的配置移到配置文件中。 安装RabbitMQ 1. 使用以下命令将RabbitMQ的APT Repository加到/etc/apt/sources.list.d目录下 1 echo deb http://www.rabbitmq.com/debian/ testing main | sudo tee /etc/apt/sources.list.d/rabbitmq.list 2. 将RabbitMQ的公钥加入受信秘钥列表中 1 wget -O- https://www.rabbitmq.com/rabbitmq-signing-key-public.asc | sudo apt-key add - 3. 刷新本地包数据库 1 sudo apt-get update 4. 安装RabbitMQ 1 sudo apt-get install rabbitmq-server 如果需要更加详细的安装步骤请直接参考官方文档。 安装MySQL 1. 刷新本地包数据库 1 sudo apt-get update 2. 安装MySQL 1 sudo apt-get install mysql-server 3. 使用以下命令尝试连接MySQL服务 1 mysql -u root -p 如果需要更加详细的安装步骤请直接参考这篇文章。 从源代码编译 1. 使用下面的git命令将WeText源代码克隆到本地 1 git clone https://github.com/daxnet/we-text.git 2. 进入we-text\scripts目录执行mysql –u root –p命令启动MySQL客户端。并在MySQL中执行下面的命令初始化WeText所需使用的查询数据库 1 \. mysql_query_databases.sql 3. 注意在Linux下的nuget.exe还是有些问题在WeText下执行nuget.exe restore命令无法将所有的依赖库下载下来我还没找到解决方案。因此只能在Windows中先使用Visual Studio 2015编译WeText.sln然后再将下载下来的packages目录复制到Linux下we-text\src目录下。可以通过Samba服务或者使用FTP将packages目录上传到Linux系统中 4. 进入we-text\src目录使用下面的命令完成WeText服务端的编译 1 xbuild /p:TargetFrameworkVersionv4.6.1 /p:ConfigurationServerDebug WeText.sln 5. 编译完成后会出现一些Assembly Binding的警告请暂且忽略 运行WeText服务端 进入we-text\bin目录执行./WeText.Service.exe命令启动WeText服务端将看到以下画面 在Windows中通过Visual Studio 2015打开WeText项目修改WeText.Web项目的web.config文件将下图中的设置更改为Linux中的WeText服务端地址 启动WeText.Web项目新建一个daxnet的用户 登录后点击菜单栏的My Texts菜单创建一个新的Text 现在查看Linux下的MongoDB数据库 查看MySQL查询数据库 查看RabbitMQ消息队列 OK整个流程运行下来没什么问题。最后只要在WeText.Service.exe的窗口中直接回车即可退出服务端的运行退出需要花几秒钟时间。 总结 本文详细介绍了在Linux环境中编译运行WeText客户端的方法并成功走通了整个流程。正如前文所述WeText还有很多需要改进的地方我也会一步步对其进行改进调整如果有新的心得体会我也会继续分享给大家。 原文地址http://www.cnblogs.com/daxnet/p/5426806.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注 赞赏 人赞赏