zoukankan      html  css  js  c++  java
  • This is jqMVC# Definition & Summary

    Before discussing more, please realize what I’m talking about is not “theoretical research”, but “real successful practice”.

    Definition

    I created the word – “jqMVC#”, which means bunch of things:

    • “j”  means it is about JavaScript;
    • “q” means it is about jQuery & jQuery plugins;
    • “MVC” means it is about MVC pattern;
    • “#” means it is about C#;
    • “j”+”#” means it is about Script#;

    Another thing which is not directly represented by the word but implied is TDD in JavaScript but whose code is written in C#.

    When all these things come together, it is jqMVC# – a new practical architecture which makes enterprise-level HTML & JavaScript only rich UI development in B/S-architecture application become not only possible, but also as a representative of HTML5 with which we could really say ‘Good bye!’ to Flash & Silverlight even now for most cross-browser web applications which do not really require those complex animation effects.

    Summary

    In this summary, I’m trying to talk a little bit more for each of the items I mentioned in previous section to make this architecture look more conceivable.

    Firstly, our JavaScript code is written in C# with the help of Script#. Script# could compile C# source code to JavaScript automatically. The biggest benefit here is, even a junior developer who is familiar with C# but only know a little of JavaScript could write huge OO JavaScript code efficiently.

    Secondly, the M, V, C classes implementing the MVC pattern in client-side JavaScript are written in C# and are compiled into JavaScript through Script# automatically.

    Why MVC?

    Two main benefits:

    1. Separations of data, controlling and presentation;

    2. Easier for unit testing;

    In JavaScript, when we implementing MVC pattern,

    • Models are JSON comes from server-side services through AJAX and JSONP communication, which should be under TDD in server-side coding;
    • Controllers are Script# classes focus on the controlling of Models and Views, which should be under TDD in Script# coding;
    • Views are as connectors between pure HTML & JavaScript code and Script# based Models & Controllers code, which should also be under TDD in Script# coding;

    Thirdly, jQuery & jQuery plugins are wrapped by Script# together with the Script# predefined libraries as the main tool libraries for client side UI rendering & controlling. Especially, jTemplate is used as the main HTML rendering engine. QUnit is also wrapped by Script# and used as the client-side testing library to implement client-side regression testing which is the core of client-side TDD.

    To be continued…

    In next post, I’m going to give a simple but runnable example to demonstrate the benefits of applying jqMVC# architecture.

  • 相关阅读:
    通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址
    算法的时间复杂度和空间复杂度
    session cookie的区别最全总结
    汉明码(海明码)计算方法
    测试 markdown
    PHP扩展--opcache安装及配置
    PHP_EOL
    BUG:php7.1 访问yii数据库 自动加端口3306 报错
    BUG:upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected
    图的遍历之 深度优先搜索和广度优先搜索
  • 原文地址:https://www.cnblogs.com/teddyma/p/1761122.html
Copyright © 2011-2022 走看看