当前位置: 首页 > news >正文

php做的一个网站如何在手机上自己制作软件

php做的一个网站,如何在手机上自己制作软件,邯郸市建设局网站政策,wordpress 登入.net猿遇到了小鲸鱼#xff0c;觉得越来越兴奋。本来.net猿只是在透过家里那田子窗看外面的世界#xff0c;但是看着海峡对岸的苹果园越来越茂盛#xff0c;实在不想再去做一只宅猿了。于是#xff0c;.net猿决定搭上小鲸鱼的渡轮到苹果园去看看。 .net猿上了小鲸鱼渡轮就先… .net猿遇到了小鲸鱼觉得越来越兴奋。本来.net猿只是在透过家里那田子窗看外面的世界但是看着海峡对岸的苹果园越来越茂盛实在不想再去做一只宅猿了。于是.net猿决定搭上小鲸鱼的渡轮到苹果园去看看。 .net猿上了小鲸鱼渡轮就先问了一个问题苹果园上有能用来编写c#代码的和Visual Studio一样强大的IDE么这时天空闪过一道Gamma射线艾瑞克神说给你一个 Visual Studio Code去玩吧。于是.net猿搭这小鲸鱼的快船顺利的抵达了苹果山开始了他的吃苹果之旅。 … … 小编只能憋出来这么多了还是来干货吧。 今天我们来看看如何在macOS上使用 Visual Studio Code 开发 Asp.net Core 应用并使用Docker来进行开发调试和部署。之前在使用 Visual Studio 的时候我们看到了良好的集成性IDE把所有的工具链全部配置好了你要做的只是F5就可以了今天我们来尝试一下手工编写Dockerfile和Docker-Compose文件。另外既然要开源我们就彻底一点这次我们不再使用sqlite或者sql server作为数据库而采用开源界最流行的mysql作为我们应用的后台数据库。 准备开发环境 首先我们需要下载和安装几个工具 1. Visual Studio Code 和 .Net Core Visual Studio Code 是微软为广大开发人员提供的免费开源的跨平台代码编辑器和其它流行的代码编辑器如Sublime, Atom一样它非常小运行速度快同时通过各种插件支持不同开发语言的编写。不同的地方在于VSC的插件不仅仅提供静态的语言高亮自动语法检测和完成功能外还提供更加高级的编译器服务支持这使得VSC可以在一定程度上替代IDE的功能进行代码的编译调试和发布操作。 下载地址https://code.visualstudio.com同样大家可以在公众号中输入d4dtools获取最新版本的code安装包提供Windows/Mac/Linux不同版本 Asp.net Core 是一个跨平台的 asp.net 开发环境可以通过以下地址下载macOS上的安装包 下载地址http://dot.net 注如果你之前安装过asp.net 5或者 rc版的.net core需要在运行以上安装命令之前先卸载在d4dtools网盘中下载 dotnet-uninstall-pkgs.sh运行即可。 2. Node.JS和NPM以及 bower, gulp 和 grunt 等前端工具 Node.js是一个javascript的运行引擎提供服务端的javascript运行能力同时也包含了npm这个包管理器可以用来安装 bower, glupgrunt等前端工具。 下载地址http://nodejs.org(d4dtools中包含v4.4.7 LTS安装包的Windows和Mac版本 安装完成后让通过以下命令安装前端工具 npm install bower gulp grunt-cli -g 3. 安装项目模版生成工具 yeoman 和 asp.net generator YEOMAN是用来创建项目模版的工具用惯了Visual Studio的开发人员一定都很喜欢新建项目的引导工具选择自己要用的项目类型就可以创建出一个可运行的基本项目框架这让启动一个项目或者学习编程都变的非常容易。Yeman提供了同样的功能。 运行以下命令就可以完成yeoman的安装 npm install yo -g 在yeoman中提供了不同的generator模版生成器来提供不同类型的项目的生成为了能够生成asp.net core应用我们需要安装aspnet generator npm install generator-aspnet -g 安装好以后就可以创建项目了 你也可以自己创建generator可以参考 aspnet generator 的 github 源代码来学习。https://github.com/omnisharp/generator-aspnet 4. Docker for Mac 与 Docker for Windows 一样我们可以在macOS上安装Docker for Mac来支持Docker环境的管理。 下载地址https://www.docker.com/products/docker(d4dtools网盘Docker.dmg 至此我们的开发环境就准备完毕了。 创建asp.net core webapp 使用以上这些工具我们就可以很顺畅的建立应用程序了 1. 创建项目模版 首先创建一个应用目录源代码目录 mkdir aspnet-mysql cd aspnet-mysql mkdir src 然后进入src目录使用yoman创建项目 cd src yo aspnet 选择 Web Application [without Membership and Authorization]作为项目类型Bootstrap作为前端框架并给出应用名称aspnet-mysql 回车后yeoman创建项目中的代码文件结构并运行 bower install 完成所需要的javascript/css的安装 然后运行以下命令完成asp.net的nuget依赖包安装 cd aspnet-mysql dotnet restore 最后键入以下命令打开 Visual Studio Code code . 这时VSC会自动生成以下配置文件用于配置VSC中的开发调试工具链 .vscode/launch.json .vscode/task.json 现在你就可以切换到调试视图并点击运行按钮开始调试你的应用了你也可以在代码中设置断点像在Visual Studio中一样进行单步调试查看变量数值的变化。 2. 创建mysql容器作为开发数据库 数据库的开发一般会要求我们先安装一个数据库引擎在自己的机器上现在使用docker我们可以在容器中运行一个数据库引擎。这样做有很多好处1自己的机器可以很干净不用担心各种程序之间互相冲突2数据库随用随开不用的时候就关掉不必占用资源3可以每次都用干净的数据库进行调试不用操心恢复数据状态如果需要的话也可以把容器中的数据卷内容同步到本机上。 要这样做首先你需要一台容器化主机可以参考本系列第二篇 《docker4dotnet 2 容器化主机》中的做法 这里我使用了一台运行在本地的vmwarefusion中的docker主机 首先通过以下命令将docker命令重定向到这台主机中 eval $(docker-machine env {machine-name}) 运行以下命令启动一台mysql数据库容器创建一个叫做ef的数据并将3306端口暴露给本地环境 docker run --name mysql-dev -e MYSQL_ROOT_PASSWORDP2ssw0rd -e MYSQL_DATABASEef -p 3306:3306 -d mysql 参数说明 name: 给容器起个名字叫做mysql-dev这样便于后边管理用如果不给名字的话docker会给一个随机名字-e: 配置容器的环境变量这里我配置了MYSQL_ROOT_PASSWORD root用户密码MYSQL_DATABASE: 新数据库名称mysql容器会按照要求创建一个ef为名称的空数据库 -p: 暴露端口将3306端口暴露出来便于管理 如果你本地没有mysql的镜像docker会到docker hub去下载如果已经有了镜像那么启动真的是毫秒级的启动完成后你就可以使用管理工具连接到这个容器上这里我用的MySQL Workbench 你可以看到 ef 数据库已经创建好了。 3. 配置asp.net应用使用mysql作为Entity Framework数据源 默认的asp.net 应用程序在Windows上使用sql server或者localdb作为数据源在非windows系统上使用的是sqlite。这里localdb和sqlite都只能作为开发调试用途如果需要投入生产就需要使用sql server对应到开源产品我们可以选用mysql作为sql server的替代品。在上一步中我们已经配置好了用于开发的mysql服务器容器现在我们需要对应用程序进行配置让Entity Framework可以使用mysql作为数据源。 这里我们使用的是由国内开发人员贡献的开源库github地址如下https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql 首先在 project.json 文件的 dependencies 配置节中加入以下引用 Pomelo.EntityFrameworkCore.MySql: 1.0.0-prerelease-20160726 同时添加一个nuget.config配置文件并在里面添加Pomelo的源地址这主要是因为这个nuget库现在还没有正式发布发布以后就不用进行这个配置了 ?xml version1.0 encodingutf-8? configurationpackageSourcesadd keyNuGet official package source valuehttps://nuget.org/api/v2/ /add keyPomeloMysql valuehttps://www.myget.org/F/pomelo/api/v2///packageSources /configuration 然后再次运行 dotnet restore这次需要添加 –configfile nuget.config这个参数确保dotnet restore可以正确使用nuget源 dotnet restore --configfile nuget.config 4. 添加 MVC Model到项目中 现在我们就可以在项目中创建我们的实体类了并且为了演示方便我在还添加了一些示例数据。 代码文件 https://github.com/ups216/aspnet-mysql/blob/master/src/aspnet-mysql/Models/Blog.cs   然后在starup.cs中的ConfigureServices方法中添加依赖注入代码 services.AddDbContext(optionsoptions.UseMySql(Configuration.GetConnectionString(Mysql))); 在Configure方法中调用SampleData.InitDB来创建示例数据 await SampleData.InitDB(app.ApplicationServices); 代码文件https://github.com/ups216/aspnet-mysql/blob/master/src/aspnet-mysql/Startup.cs 在 appsetting.json 中创建名为Mysql的连接字符串 ConnectionStrings: {DefaultConnection: Data Sourceaspnetweb01.db,Mysql: Server{docker machine ip};databaseef;uidroot;pwdP2ssw0rd;} 代码文件https://github.com/ups216/aspnet-mysql/blob/master/src/aspnet-mysql/appsettings.json 确保 uid及pwd参数与docker run命令中的MYSQL_DATABASEMYSQL_ROOT_PASSWORD一致[docker machine ip]地址可以通过以下命令获取 docker-machine ip 现在再次使用VSC启动应用进行调试你可以看到在mysql中的ef数据中Blogs和Users两个表已经创建并且写入了示例数据。 使用Docker打包发布应用 以上我们已经完成了asp.net应用的创建并且使用了一个运行在容器中的mysql进行开发调试现在我们需要将这个应用使用docker打包并运行在容器中。 1. 创建Dockerfile 使用yoman创建的应用本身就已经包含了一个Dockerfile我们只需要进行简单修改即可文件内容如下 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN [dotnet, restore, --configfile, nuget.config] RUN [dotnet, build] EXPOSE 5000/tcp ENTRYPOINT [dotnet, run, --server.urls, http://0.0.0.0:5000] 代码链接https://github.com/ups216/aspnet-mysql/blob/master/src/aspnet-mysql/Dockerfile 这个文件很简单我们来看看它都做了些什么 FROM microsoft/dotnet:latest 告诉docker build使用microsoft/dotnet这个镜像的最新版作为我们的base imageCOPY . /app 将本机上Dockerfile所在目录的所有文件拷贝到容器的/app目录中WORKDIR /app 设置容器使用/app作为工作目录这样后续的操作就都在这个目录中进行RUN dotnet restore 和 RUN dotnet build告诉docker build要执行dotnet restore和dotnet build两个命令同时使用nuget.config作为restore的配置文件EXPOSE 5000/tcp 暴露5000端口ENTRYPOINT [“dotnet”, “run”, “–server.urls”, “http://0.0.0.0:5000”]设置容器入口为dotnet run命令这个命令将启动我们应用 2. 构建容器镜像并运行容器 现在我们就可以运行以下命令完成容器构建了 docker build -t {image name}. 其中 {image name} 你可以随便起我这里用的是ups216/aspnet-mysql这是我后面要上传到docker hub上所用的名字 这里在dotnet restore这一步会比较慢因为需要下载所有的依赖包。 注在日常开发中你可以将先用常用包创建一个自己的base image替换Dockerfile中的microsoft/dotnet这样就不用每次都重新下载包了。 现在键入docker images命令就可以看到我们新创建的image了 运行 docker run --name aspnet-msyql-dev -p 5000:5000 ups216/aspnet-msyql 你可以看到我们的容器现在也正确连接到了mysql容器的对外端口上了。在浏览器中输入docker主机的ip地址5000端口我们的应用就完全在容器中跑起来了。 在docker ps中看到的2个容器是这样的 3. 生产部署打包 以上过程中我们已经将应用部署到了容器中并且连接到另外一个容器中运行的mysql服务。但是我们这个连接是通过mysql容器暴露给主机的端口来连接的这样做在开发过程中会比较方便因为你可以容器的实用工具连接到mysql进行操作但是如果要进行对外发布就不是个好主意了。 同时我希望能够将web应用和mysql容器一同部署形成一个完整的应用部署包。这时就需要借助docker-compose来完成了。 首先我们创建一个用于生产环境的配置文件appsettings.Production.json内容如下 {ConnectionStrings: {DefaultConnection: Data Sourceaspnetweb01.db,Mysql: Serverdb;databaseef;uidef;pwdP2ssw0rd;},Logging: {IncludeScopes: false,LogLevel: {Default: Debug,System: Information,Microsoft: Information}}} 代码链接https://github.com/ups216/aspnet-mysql/blob/master/src/aspnet-mysql/appsettings.Production.json 这里我们主要修改了Mysql的连接字符串使用db作为数据库并使用ef作为连接用户。 然后我们创建一个 docker-compose.yml 文件内容如下 version: 2services:db:image: mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: P2ssw0rdMYSQL_DATABASE: efMYSQL_USER: efMYSQL_PASSWORD: P2ssw0rdweb:build: .depends_on:- dblinks:- dbports:- 5000:5000restart: alwaysenvironment:ASPNETCORE_ENVIRONMENT: Production 里面的内容基本上可以从字面意思读懂这里主要创建了db和web两个容器web容器依赖db容器并通过db这个名字链接过去同时设置asp.net core的environment环境变量为Production。 对应以上我们在appsettings.Production.json文件中做的修改你就可以理解我们通过Production这个环境变量配置我们的应用去到一个叫做db的mysql服务器上链接名为ef的数据库并且使用ef作为用户名。 现在你只需要运行以下这一个命令就可以完成这两个容器的启动了 docker-compose up 以上代码都已经发布到我的github上地址如下 https://github.com/ups216/aspnet-mysql/ 如果你按照本文的第一部分安装了所有工具那么你应该可以直接用行docker-compose up来启动这个应用以下我录制了一段简单的视频(3分钟)来演示这个过程。 相关阅读 docker4dotnet #1 – 前世今生 世界你好docker4dotnet #2 容器化主机docker – 你应该知道的10件事DockerCon 2016 – 微软带来了什么  请关注微信公众号 【devopshub】获取更多关于DevOps研发运维一体化的信息 内容转载自公众号 DevOps 了解更多
http://www.sadfv.cn/news/45378/

相关文章:

  • 网站建设需申请注册域名自己怎么做网站卖车
  • 网站空间如何续费凡客精选带货达人
  • 主营网站开发医疗器械监督管理条例
  • 青岛做网站皆赴青岛博采网络网站开发研究综述
  • 深圳网站设计联系电话微信小程序开发大赛
  • 建网站与建网页的区别电子商务网站建设与管理期末答案
  • 品牌网站方案西南交通建设集团股份有限公司网站
  • 长沙市制作网站网站设计需求文档
  • 浙江网站建设制作wordpress如何qq登录界面
  • 网站网站开发不存储数据犯法吗合肥建设工程网
  • wordpress修改地址后网站打不开php做网站 价格
  • 做安利能开个人网站如何建响应式网站
  • 站长工具大全集威海市住房和城乡建设局网站
  • 营销型网站建设要求ie8打不开建设银行网站
  • 苏州市郭巷建设局网站微商城网站建设咨询
  • 做网站 帮别人卖服务器wordpress发不文章不按顺序怎么办
  • 内蒙古住房与建设官方网站wordpress 商城 app
  • 营销网站的设计与实现顺德品牌网站建设优惠
  • 自己做的网站标题wordpress旅游主题
  • 承德网站建设专家那家网站建设好
  • wordpress电影网站建设项目从哪个网站可以查
  • 企业网站建设的目的是什么互联网站建设维护有关岗位
  • 营销型网站推广方案廊坊建设局网站
  • 东莞人才网官方网站网站建设培训班多少钱
  • 企业网站建设管理视频衡水网站建设03181688
  • wordpress修改网站名称wordpress 4.5 汉化主题
  • 什么软件可以做网站公司网站设计案例
  • vip视频解析网站怎么做的大莲网站建设公司
  • 杭州网站建设网络公司中企动力科技股份有限责任公司
  • 长治建一个网站大概要多少钱建筑八大员报考时间和条件