用MVC5+EF6+WebApi 做一个小成效(一)开场挖坑,坑的名字叫在线答题系统

即使10年前搞过一段时间的Web应用开发,且为所在集团筹划了一个基于ASP.NET
WebForms(在.NET
1.1的根底上)的Web应用开发框架。不过,后来径直做的都是桌面类的利用,比如SmartClient,基于Silverlight的RIA,甚至到现行,大家集团的产品就是一个纯客户端的单机WinForms应用。所以,我应当是一个彻彻底底的桌面应用程序员了。已经很久不碰JavaScript那样的东西了。

从哪开始说啊,这几年微软的技艺一贯在变,像是牟足了劲要累死所有的NET程序员,从WebForm到MVC到明天MPA、SPA
、Razor单页,从net2.0直接走到现在.net4.6.2,后边还有一个Core在等着攀登。唉,不知多少net程序员死在沙滩上,又有稍许net程序员转行送了外卖!

一切技术行业,从观念的单机应用到共同应用,然后Web应用,暴发式的移动应用,然后又起来了云总计,又来了微服务,还有大数据、AI人工智能。还有微信自己搞起了一片园地叫做微信支付(不驾驭是否其一名字)。前端也是从无到有,从一个写破脚本的到现在的到处前端大神。加上UI设计师、UE设计师等等,看似繁花似锦的西楚盛世一样。

探访自己,在那热闹优异盛世依旧拿着打狗棍等着丐帮大当家传授不不世武功,等来等去回看只会打狗。有心换个门庭投靠个好点的门派,试想这么长年累月苦练打狗棍,换了该用匕首或者大刀,完全不是一个套路,少林棍法听说也未可厚非,不过有清规戒律怕不适应,人老了或者就那样了不得不老实的混吃等死吗。

一堆废话,今儿晚上睡太晚,脑子一片乱糟糟,不知所言。

近年开始对JavaScript感兴趣的因由,不外乎上边多少个:

言归正传,方今做项目,原来的品类是行使WebForm做的,想当年也是从VS2005起来入的行,但是后来有了MVC用过MVC将来再想再次回到WebForm开发的确挺难的。然后就和高管说了下想法,领导很有风姿,不管进度如何,只要功效落成即可。然后就乐呵的给协调挖了个坑埋了。带着社团成员初叶了no
zuo no
die的旅程,其实首如果自个儿的下压力大些,负责后端数据提供,还有管理功用的页面完毕。

  • 不久前1年Node.js的极致火热,想深刻摸底一下,尤其Azure(及WebMatrix)对Node.js强力支持越发加剧了我的趣味;
  • ASP.NET
    MVC中放置了一个MVVM的JavaScript库——KnockoutJS,想知道怎么微软对KO情有独钟;
  • Windows 8
    App可以运用JavaScript和HTML5来支付,可知即使是桌面应用,JavaScript未来也有用武之地;
  • 微软推出了TypeScript,以及从前微软非官方的Script#,还有CoffeeScript的被持续关怀,都表达人们期待以越来越简明的章程来利用JavaScript开发大型越发Rich的应用程序

从MVC 1开端关怀,MVC
3照着musicshop的例子做了一个demo,到现行MVC5,一直有关切,真正的选用大致有两三年左右,照旧穿插加杂,因为做事一向用集团自有研发平台,理清工作就从头转移、复制粘贴、调试发表、测试上线。越发有的集团搞一套东西完全和大环境下技术栈格格不入的时候,对同盟社是大大的利好(功能高、安全),对于个体来说,大概就是百害无一利,唯一可能就是多了过多行当业务上的累积。好了扯多了。

本人做的简易尝试的现象如下:

按照种种原因(其实就是光顾蒙头干活,没有抬头看看路),想着把这些类型中的某个模块抽离出来单独的整理统计,包罗前端后端整个的贯彻过程,省的之后再上项指标延续看哪都熟识,就是记不清怎么写~

  • 合作社官网用php创设的,对php不是太熟练,也不想去对原有网站框架做调整;
  • 商店博客基于wordpress创设
  • 亟待在官网中活动突显博客的前卫篇章列表

 

鉴于事先早已初叶上学Knockout的东西,所以前些天控制依据KO来完成上述情景,那可以说是对KO的一点实在尝试。具体做法如下:

请留心,上面才是本文

  1. 在wordpress中安装feed json插件,暴露json的接口
  2. 创制一个html文件布署到网站根目录
  3. 在官网中开创一个栏目块(援助自定义HTML),在其间插入iframe元素,指向上边的html文件。从前尝试过在HTML中直接促成代码,不过出于jQuery版本会争执,所以改用iframe。

类型要求抽离的职能叫做在线考试

本条大致应用程序的HTML文件如下:

由来:网上类似没怎么有人演示过那么些,同时这一块的变现的情节以及复杂度也基本满意超过一半项目

<body>
    <div>
        <div data-bind="foreach: blogs">
            <p>
                <a data-bind="attr: {href: $data.permalink, title: $data.title}" target="_blank">
                    : 

                </a>
            </p>
        </div>
        <a href="blog" title="More" target="_blank">More</a>
    </div>
    <script type='text/javascript'>
        function Blog(data) {
            this.title = ko.observable(data.title);
            this.permalink = ko.observable(data.permalink);
            this.date = ko.observable(data.date.substr(0, 10));
        }

        function BlogViewModel() {
            var self = this;

            self.blogs = ko.observableArray([]);

            $.getJSON("/blog/?feed=json", function (allData) {
                var mappedBlogs = $.map(allData, function (item) { return new Blog(item) });
                self.blogs(mappedBlogs);
            });
        }

        ko.applyBindings(new BlogViewModel());
    </script>
</body>

动用技巧:

地点HTML文件分作多个部分。第二个部分就是用来展现界面的HTML,第二有的是实体对象的定义和获取数据执行绑定的JavaScript代码。

  • ASP.NET MVC 5
  • ASP.NET Web Api
  • Entity Framework 6
  • jQuery+bootstrap
  • 以及各样网上拼凑的插件

在首先局地中,由于选拔了MVVM思想的绑定机制,对于自身而言是相当熟识的,那些和XAML没有太多分歧。

涵盖作用:

其次有的中,首先拔取jQuery获取JSON数据并转换为可绑定的JavaScript对象(那里确实不难的让自家倍感惊喜),可绑定是透过ko.observable来已毕的;然后在ViewModel对象中提供一个可绑定的数组属性给界面(即blogs属性)。

  • 试题库管理
  • 考题管理
  • 试卷管理
  • 测验管理
  • 在线考试
  • 成绩发布
  • 考试统计

上述作用就算简单,可是本人觉着已经触动到了所谓Rich JavaScript
Application或微软号称 Scale JavaScript Application的完结路径了。即:

里头写道的是未曾开发的,其他的已经开发出来了,就等着在拎出来了

  • 使用jQuery这样的框架来简化DOM的操作
  • 行使KnockoutJS或者AngularJS那样库或框架来简化数据表现,行为处理
  • 使用CoffeeScript或者TypeScript来简化JavaScript的编写
  • 支出能够跨浏览器运行的纯客户端应用,也颇具和服务端的并行能力(一般按照RESTful),那样的利用拥有非凡的交互性,可以做到复杂的数额控制。

 

那边有一篇参考小说,值得一读:

上述效能以外,还富含

Rich JavaScript Applications – the Seven Frameworks (Throne of JS, 2012)

  • 公用仓储库
  • 依靠注入
  • 简易的权位管理

 

眼前项目到位后基本满意客户的急需,一般项目标目的是客户满足,实际是客户永远不会满意,手段就是让客户尽快的展开产品竞相和感受,针对其须求疾速迭代。

 

约莫就像此,想起什么再补偿,把安排记录与此,以此文督促和谐赶紧作计算。

发表评论

电子邮件地址不会被公开。 必填项已用*标注