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 ...
随机推荐
- 习题10-1 UVA 11040(无聊水一水)
题意: 给你一个残缺的塔,每个数字由他下面左右两个数相加得.给你其中一部分,要求输出全部的数字. #include <iostream> #include <cstdio> # ...
- [bzoj1901]动态区间k大
定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1) ...
- Ubuntu 16.04安装JDK/JRE并配置环境变量
作为一个Linux新手,在写这篇文章之前,安装了几次jdk,好多次都是环境变量配置错误,导致无法登录系统.经过几天的研究,今天新装系统,从头来完整配置一遍 系统版本:Ubuntu 16.04 JDK版 ...
- spring+hibernate+struts2零配置整合
说句实话,很久都没使用SSH开发项目了,但是出于各种原因,再次记录一下整合方式,纯注解零配置. 一.前期准备工作 gradle配置文件: group 'com.bdqn.lyrk.ssh.study' ...
- jquery 元素控制(追加元素/追加内容)介绍及应用
http://blog.csdn.net/gisredevelopment/article/details/41126533 一.在元素内部/外部追加元素 append,prepend:添加到子元素 ...
- IOS WebViewJavascriptBridge 使用以及原理分析
本文转自:https://www.jianshu.com/p/b8d4285395c6 概述 从两个方面来讲: js不能直接调用oc的方法 oc可以通过如下函数调用js代码 - (void)evalu ...
- Spring的注解@Qualifier小结
有以下接口: public interface EmployeeService { public EmployeeDto getEmployeeById(Long id); } 有两个实现类: @Se ...
- eclipse安装和配置Gradle插件
配置: 首先下载Gradle:https://gradle.org/gradle-download/ 设置Gradle环境变量: GRADLE_HOME %GRADLE_HOME%\bin" ...
- Async分析
1:android在新版本中不允许UI线程访问网络,但是如果需要访问网络又改怎么办呐?这里有很多解决方案,比如新开一个线程,在新线程中进行访问,然后访问数据,返回后可能会更新界面也可能不更新界面,这 ...
- 在OpenCV3.1.0中使用SIFT,SURF算法
写在前边: 1.我使用的是python2.7 + OpenCV3.1.0 2.OpenCV3.0.0+的文档有很大问题,很多文档写的还是OpenCV2.0+, OpenCV3.0+根本用不了,其中有一 ...