Ext JS 6开发实例(二) :使用CMD创建应用程序
由于Ext JS 6将原来的Ext JS和Sencha Touch合并为一个框架,因而在使用CMD来创建应用程序前,需要考虑清楚你是要创建一个通用应用程序,还是仅仅只是针对桌面或移动设备的应用程序。
要做这样的考量,是因为通用应用程序和比较单一的应用程序在开发上会有些小麻烦。这些小麻烦主要是因为Ext JS的自动加载机制造成的,有时候会很困扰人。
Ext JS的自动加载机制是根据类名来划分目录兵加载脚本的,例如SimpelCMS.view.Main,如果没有自定义过SimpelCMS的路径指向,默认的脚本位置就是app/view/Main.js目录。在Ext JS 6中,通用应用程序为了区分桌面和移动两个应用程序所需要的不同的文件,添加了classic和modern目录,这时候问题就来了,同一个类名,可能是在app目录,也可能是在classic或modern目录。如果直接根据自动加载机制,就会出现找不到类文件的情况(默认在app目录下找),为了解决这一问题,就以指定路径的方式将类与对应的路径写在了classic.json和modern.json文件中。这时候,另外一个问题产生了,当你新建了一个类的时候,你就必须build一次,将类的路径写进classic.json或modern.json中,不然就找不到该类了,也就是说,你最好是执行sencha app watch监控着目录,让cmd随时去生成classic.json或modern.json,这点对开发来说应该问题不大。最主要的还是生成操作需要获取首页文件的路径,然后根据脚本与首页的相对路径来构建脚本的路径,这对于使用MVC作为后台开发的应用程序来说就会出现找不到脚本的情况,还需要通过调整bootstrap.js来修正,总的来说是小问题很多,不过,整个过程熟悉了之后,问题也不算太大。而对于只针对唯一平台的项目,就没这个困扰了,会减少不少麻烦。
由于SimpelCMS并没有针对移动平台的考量,因而不需要创建通用应用程序,这样,开发环境和过程就和之前Ext JS 4的差不多了。下面来创建这个应用程序。
由于命令使用太少,记忆力也不怎么样,会不记得如何来创建应用程序,这时候,可以先输入以下命令来获取帮助:
sencha help gen app
这时候会看到如下图所示的输出:
从图中可以看到,这个帮助做得不错,在图中的3、4行就给出了创建针对于特定平台的创建应用程序的命令格式。其中,第3行的参数“classic”就清楚表明了这只创建一个针对桌面平台的经典应用程序,而第4行则是创建针对移动设备的现代应用程序。
下面执行以下命令来创建一个名为SimpleCMS的应用程序:
sencha -sdk d:\Workspace\ext6 gen app -classic SimpleCMS ./SimpleCMS
以上命令添加了sdk参数用来指定Ext JS 6的框架目录,不然它会从互联网上下载框架,这得花不少时间。
等待一会,就可在SimpleCMS目录看到以下目录和文件了:
对比之前使用Ext JS 4创建的应用程序,会发现目录结构基本差不多,因而,如果已经熟悉了Ext JS 4的开发,使用Ext JS 6进行开发,不会感觉太困难。
现在在Visual Studio打开之前创建的SimpleCMS项目,在解决方案资源管理器中将原来的Scripts目录修改为Scripts_old,并创建一个新的Scripts目录。然后将使用CMD创建的应用程序中的文件和目录复制到Scripts目录下。
接下来是修改首页。打开scripts目录下的index.html文件,将代码全部复制到Views\Home目录下的index.cshtml文件里。
注意:需要修改加载bootstrap.js脚本的路径。
打开app_start目录下的BundleConfig.cs文件,将暂时代码全部屏蔽掉,因为这些文件和目录已经没有了。
复制scripts目录的index.html文件,然后点选项目SimpleCMS,在右键菜单中选择粘贴,这样做的目的是为了在使用sencha app build命令的时候,让CMD能找到index.html文件,以免出现错误。
打开app.json文件,找到indexHtmlPath,将首页修改为“../index.html”,这样生成应用程序的时候就能正确设置路径了。
在命令提示符窗口进入Scripts目录,然后运行sencha app build命令重新生成一下应用程序。
好了,现在在生成菜单选择重新生成解决方案,然后在调试菜单选择“开始执行(不调试)”,就可在浏览器看到如下的界面了:
今天就说到这里了。如果有任何疑问,可以到qq交流群391747779 进行咨询。
Ext JS 6开发实例(二) :使用CMD创建应用程序的更多相关文章
- Ext JS 6开发实例(一)
很久没写文章了,主要原因和大家差不多,都要为生活奔忙,搞了两个小项目.这两个小项目很凑巧,都可以使用Ext JS来开发,这正是练习使用Ext JS 6的好机会,自然不会错过. 很多读者可能会问,为什么 ...
- Ext JS 6开发实例(三) :主界面设计
在上文中,已经将CMD创建的应用程序导入到项目里了,而且也看到默认的主界面了,今天的主要工作就是修改这个主界面,以符合项目的需要.除了设计主界面,还有一些其他的东西需要配置一下. 添加本地化包 打开a ...
- Ext JS 6开发实例(四) :调整主视图
上文把主界面设置好,但是主视图因为界面的微调出现了显示问题,本文将把它调整好了. 打开app/view/main/Main.js,可以看到主视图是派生于标签面板(Ext.tab.Panel)的.在视图 ...
- 【转】EXT JS MVC开发模式
原文链接:EXT JS MVC开发模式 在app(亦即根目录)文件夹下面创建controller.model.store和view文件夹,从名称上就知道他们该放置什么代码了吧.然后创建Applicat ...
- Ext Js v6.2.0.103 Sencha Cmd 命令
Sencha Cmd v6.2.0.103 Sencha Cmd 提供几种全局开关命令. 在大多数案例中, 第一步是在Sencha SDK基础上创建应用 例如 Ext JS 或 Sencha Touc ...
- NDK 开发实例二(添加 Eigen库)
上一篇,我已经阐述了如何创建一个简单的NDK实例: NDK 开发实例一(Android.mk环境配置下) 在上一篇的基础上,我们来添加Eigen库,然后做一个简单实例. Eigen是一个高层次的C + ...
- EXT.NET高效开发(二)——封装函数
在上一篇<EXT.NET高效开发(一)--概述>中,大致的介绍了一下EXT.NET.那么本篇就要继续完成未完成的事业了.说到高效开发,那就是八仙过海各显神通.比如使用代码生成器,这点大家可 ...
- 【翻译】如何创建Ext JS暗黑主题之二
原文:How to Create a Dark Ext JS Theme– Part 2 我已经展示了如何去开发一个精致的暗黑主题,看起来就像Spotify.在本文的第一部分,了解了Fashion.S ...
- Ext JS 5初探(二) ——Bootstrap.js
在Bootstrap.js文件中,总共有1500行(包含注释和空行),使用编辑器的代码折叠功能就如下图可以一窥全貌了. 从代码可以看到,这里主要定义了Ext.Boot.Ext.globalEval.E ...
随机推荐
- hdu 4453 splay
Looploop Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- SpringCloud学习之Zuul统一异常处理及回退
一.Filter中统一异常处理 其实在SpringCloud的Edgware SR2版本中对于ZuulFilter中的错误有统一的处理,但是在实际开发当中对于错误的响应方式,我想每个团队都有自己的处理 ...
- C++ C# python 中输入输出函数对比
C++ cin>>"nihao";cout<<"nihao"<<endl; C# System.Console.ReadLi ...
- 背景重复样式background-repeat
一.background-repeat属性 在CSS中,使用background-repeat属性可以设置背景图像是否平铺,并且可以设置如何平铺. 语法: background-repeat:取值; ...
- 索引法则--LIKE以%开头会导致索引失效进而转向全表扫描(使用覆盖索引解决)
Mysql 系列文章主页 =============== 1 准备数据 1.1 建表 DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS st ...
- 基于PHP的地址智能解析案例-快宝开放平台
快宝地址智能解析,批量录入收件人.发件人最好的解决方案,广泛应用于快递行业,电商行业,ERP应用等. 一.对接前准备 注册快宝开放平台,获得开发者账号,查看如何注册. 二.对接联调 快宝开放平台支持多 ...
- Luogu P2756 [网络流24题]飞行员配对方案问题_二分图匹配
二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #in ...
- MAX(字段)加0与不加0的测试
--max(字段名)中的"字段名"的数据类型是字符型的,"字段名"+ 0后,oracle会隐式的转换成数字型 --测试 )); insert into Test ...
- python打造一个分析网站SQL注入的脚本
前言: 昨天晚上其实就已经写完代码.只不过向FB投稿了,打算延迟一晚上在写博客 所有才到今天早上写.好了,接下来进入正题. 思路: 1.从网站源码中爬取那些类适于:http://xxx.com/xx. ...
- PHP 实例 - AJAX 实时搜索
AJAX Live Search 在下面的实例中,我们将演示一个实时的搜索,在您键入数据的同时即可得到搜索结果. 实时的搜索与传统的搜索相比,具有很多优势: 当键入数据时,就会显示出匹配的结果 当继续 ...