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.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2005-06-20 AjaxHelper 0.4 Reference