由于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创建应用程序的更多相关文章

  1. Ext JS 6开发实例(一)

    很久没写文章了,主要原因和大家差不多,都要为生活奔忙,搞了两个小项目.这两个小项目很凑巧,都可以使用Ext JS来开发,这正是练习使用Ext JS 6的好机会,自然不会错过. 很多读者可能会问,为什么 ...

  2. Ext JS 6开发实例(三) :主界面设计

    在上文中,已经将CMD创建的应用程序导入到项目里了,而且也看到默认的主界面了,今天的主要工作就是修改这个主界面,以符合项目的需要.除了设计主界面,还有一些其他的东西需要配置一下. 添加本地化包 打开a ...

  3. Ext JS 6开发实例(四) :调整主视图

    上文把主界面设置好,但是主视图因为界面的微调出现了显示问题,本文将把它调整好了. 打开app/view/main/Main.js,可以看到主视图是派生于标签面板(Ext.tab.Panel)的.在视图 ...

  4. 【转】EXT JS MVC开发模式

    原文链接:EXT JS MVC开发模式 在app(亦即根目录)文件夹下面创建controller.model.store和view文件夹,从名称上就知道他们该放置什么代码了吧.然后创建Applicat ...

  5. Ext Js v6.2.0.103 Sencha Cmd 命令

    Sencha Cmd v6.2.0.103 Sencha Cmd 提供几种全局开关命令. 在大多数案例中, 第一步是在Sencha SDK基础上创建应用 例如 Ext JS 或 Sencha Touc ...

  6. NDK 开发实例二(添加 Eigen库)

    上一篇,我已经阐述了如何创建一个简单的NDK实例: NDK 开发实例一(Android.mk环境配置下) 在上一篇的基础上,我们来添加Eigen库,然后做一个简单实例. Eigen是一个高层次的C + ...

  7. EXT.NET高效开发(二)——封装函数

    在上一篇<EXT.NET高效开发(一)--概述>中,大致的介绍了一下EXT.NET.那么本篇就要继续完成未完成的事业了.说到高效开发,那就是八仙过海各显神通.比如使用代码生成器,这点大家可 ...

  8. 【翻译】如何创建Ext JS暗黑主题之二

    原文:How to Create a Dark Ext JS Theme– Part 2 我已经展示了如何去开发一个精致的暗黑主题,看起来就像Spotify.在本文的第一部分,了解了Fashion.S ...

  9. Ext JS 5初探(二) ——Bootstrap.js

    在Bootstrap.js文件中,总共有1500行(包含注释和空行),使用编辑器的代码折叠功能就如下图可以一窥全貌了. 从代码可以看到,这里主要定义了Ext.Boot.Ext.globalEval.E ...

随机推荐

  1. SPOJ COT(树上的点权第k大)

    Count on a tree Time Limit: 129MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Submi ...

  2. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  3. 《Java技术》第一次作业

    (一)学习总结 1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明. (1)使 ...

  4. Fashion-MNIST:A MNIST-like fashion product database. Benchmark

    Zalando的文章图像的一个数据集包括一个训练集6万个例子和一个10,000个例子的测试集. 每个示例是一个28x28灰度图像,与10个类别的标签相关联. 时尚MNIST旨在作为用于基准机器学习算法 ...

  5. Spring使用webjar

    注意事项 这玩意很简单,但是我们第一次搞就是搞不成功,为什么呢?因为我们都用的是idea或者eclipse编译.webjar只能在maven上才能打包,所以在使用时,记得maven-clean和mav ...

  6. 智能指针之 unique_ptr

    对于动态申请的内存,C++语言为我们提供了new和delete运算符, 而没有像java一样,提供一个完整的GC机制,因此对于我们申请的动态内存, 我们需要时刻记得释放,且不能重复释放,释放后不能再去 ...

  7. OpenResty和Resis一些基本的性能配置

    Basics: 1. Ensure that you have not disabled Lua code cache: https://github.com/openresty/lua-nginx- ...

  8. Mysql 统一设置utf8字符

    无聊的关于有效配置文件路径的备忘 原来阿里云服务器的mysql 5.5 , 配置/etc/my.cnf是没有任何作用的,需要编辑/etc/mysql/my.cnf 妈的, 就是这一点让我测试了两天, ...

  9. iOS图形手势识别框架SGGestureRecognizer

    简介 苹果官方为我们提供了简单手势的识别器,但对于图形手势,例如五角星.三角形等的识别,就需要自己实现了.通过识别这些手势,可以去执行特定的操作,或是输入公式.释放魔法等,可以为App增光添彩. 下载 ...

  10. Java程序员的Golang入门指南(上)

    Java程序员的Golang入门指南 1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如 ...