.Net MvcContrib分离MVC项详细操作方法

.Net MvcContrib分离MVC项详细操作方法
.Net MvcContrib分离MVC项详细操作方法

概述

在https://www.360docs.net/doc/665810509.html, MVC复杂项目的开发中,随着项目规模的扩大,我们可能需要对不同模块按需进行分离。可以使用https://www.360docs.net/doc/665810509.html, MVC框架提供的“区域(Areas)”功能来组织项目,但是从上文可以看出,几个项目都是围绕Areas,通过“Build Event”最后整合到一起,总是有些“藕断丝连”的感觉。可以说,通过Areas 独立出来的项目,并没有达到彻底的分离。在上文的评论中,有朋友指出可以使用MvcContrib,于是学习了一下。

MvcContrib(Portable Area)可以将一个MVC项目里的所有内容(包括Views,Controllers,Scripts等)都编译到一个dll里面。如此一来,该MVC项目就可以作为一个“插件(或部件)/Plugin(or Widget)”为其他项目使用,具有很强的重用性。

环境准备

仍然考虑上文中的场景:将面向用户的前台和面向管理员的后台进行分离。

1.首先新建一个https://www.360docs.net/doc/665810509.html, MVC3项目MyPortableAreaDemo(前台项目),项目模板选择

“Internet Application”,视图引擎选择“Razor”。

2.新增一个空的MVC项目MyPortableAreaDemo.Admin(后台项目),删除Global.asax.

3.在MyPortableAreaDemo.Admin项目上面右键,添加一个类AdminAreaRegistration.cs

并输入以下内容:

?

安装MvcContrib

使用NuGet为MyPortableAreaDemo.Admin安装MvcContrib:

或者在Package Manager Console里面输入:Install-Package MvcContrib 进行安装。

使用MvcContrib

打开AdminAreaRegistration.cs,然后将其基类AreaRegistration修改为PortableAreaRegistration,将RegisterArea方法声明修改为(重要!):

为默认路由加上命名空间限制,并且在RegisterArea方法中加入RegisterAreaEmbeddedResources()。现在看起来应该是这样子:

在MyPortableAreaDemo.Admin/Controllers下面添加一个HomeController和Index的Action,并且添加相应的View文件:

下面这一步非常重要:

将所有的css,js,image静态文件的属性-生成操作(Build Action)选择“嵌入的资源(Embedded Resources)”。这意味着这些静态文件都将被编译进dll文件里面,而不是像之前那样,以单独物理文件存在。这样做的好处是整个项目里面的结构都是相对固定的,一个dll就包括了整个工程里的所有内容,可复用性高。缺点是每次修改了这个项目里的内容(即便是修改js或view等静态内容),也必须要重新编译整个项目。这就要看个人的取舍了,你可以权衡这样做是否值得。

现在在主项目里面引用Admin项目。在主项目里面添加一个叫做Areas的文件夹,并将MyPortableAreaDemo/Web.config复制到新建的Areas文件夹下。

为什么需要这样做呢?这是因为Admin项目里的Portable Area在被主项目加载时,会被映射到这个Areas文件夹里,此时Controller就会在Areas下面去寻找对应的Views(而不是在主项目里寻找)视图。

好了,现在编译(记住,Portable Areas 项目修改任何内容都必须重新编译!)整个解决方案,从主项目启动后访问:/Admin/Home/Index ,如果一切顺利,你会看到:

访问静态文件

前面我们提到所有的静态文件(js,css,image)都被编译到了dll 中,那么我们如何访问这些静态内容呢?尝试直接访问/Admin/Scripts/jquery-1.4.4.min.js ,浏览器会提示“无法找到资源”。因此我们还需要修改一下AdminAreaRegistration.cs ,添加如下路由:

这段路由的意思是将所有的静态资源都交给MvcContrib.PortableAreas.EmbeddedResource 去处理,因此现在我们可以使用:/Admin/resource/Scripts.jquery-1.4.4.min.js 来访问jquery 。注意其中的“Scripts.jquery -1.4.4.min.js”中间是“.”而不是

“/”

在View 视图中,还可以用<%= Url.Resource("Scripts.jquery-1.4.4.min.js") %>的访问形式。Url.Resource()方法集成在MvcContrib 中。

通过这种方式,我们可以完全控制程序集中的所有静态内嵌资源,如果想通过访问物理文件的方式访问内嵌资源,可以添加如下路由:

注意其中的resourcePath的值。现在我们就可以直接使用/Admin/Scripts/jquery-1.4.4.min.js这种方式来访问内嵌资源了。

总结

通过MvcContrib Portable Area我们可以将MVC项目进行有效分离,并且使用内嵌资源的方式,将整个分离出来的项目编译成一个dll,可以随意复制引用,可重用性较好。

但是,这种方式也存在以下不足之处:

1.由于所有静态资源都被编译到dll中,这就不可避免造成dll的体积变得越来越大,尤其在图片

比较多的情况下更为明显。

2.静态资源的访问形式。如果上面的Content,Scripts文件夹下面还有子文件夹(这是很常见的

情形),只能通过resource的方式访问,而不能通过伪物理地址的方式,不算太友好。

接下来准备研究一下nopCommerce的项目分离方式,插件式开发,希望每天都能进步一些。

三大主流框架的技术起源

在Java开发中,我们经常使用Struts、Hibernate和Spring三个主流框架,但你是否知道这三个框架最初是为解决怎样的问题而生的? Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的? 我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页面中需要使用<%>符号嵌入很多的Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。 Struts 为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP 中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行<%%>包围的Java代码了。可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。 使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。Hibernate 这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new 一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。为此,出现Spring 框架。 Spring Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring 集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。

2019年最流行的10个JavaScript框架

根据Stack Overflow 2018开发者调查报告,JavaScript是使用最广泛的编程语言之一。感谢它不断发展的框架生态系统,为复杂和具有挑战性的问题找到最佳解决方案。 多年来,业界已经发布了大量JavaScript 框架,怎样进行选择可能是一个挑战。如果你感到困惑,不知道应该选哪个,那么这篇文章你应该读一读。 01 React React 是今年最受喜爱的JavaScript 的工程!每个人似乎都在谈论ReactJS。每一个会议上,去年出席的会议,至少有两个人是在讨论React。React 是开

源的,主要是由facebook 借助其它公司的主要技术开发出来的。React 描述自己是一个JavaScript 库,用于构建用户界面。 React 在MVC 中,主要是View。它完全专注于MVC 那部分,无视应用程序的其它部分。它提供了一个成分层,可以更容易使用UI元素,并将它们组合在一起。它抽象了DOM,使其擅长于优化渲染,并允许使用node.js 来表述React ; 它实现了一个单向灵活的数据流,使得它更容易理解和使用其它框架。 02 Vue Vue是Evan You在Google工作后使用AngularJS为多个项目中创建的。它在2018年首次发布,Evan分享了他创建Vue的动机,他说:“我想,如果我能提取出我真正喜欢Angular的那部分,然后构建一些真正轻量级的东西会怎么样呢?”Vue继续在JavaScript开发人员中得到广泛采用,这种趋势应该还会继续下去。根据npm调查,一些开发人员更喜欢Vue而不是React,因为他们觉得“在保持可扩展性的同时更容易上手”。

框架和开源项目

总结Java部分的框架和开源项目 Spring Framework【Java开源JEE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用 JavaBean属性的InversionofControl 容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring 还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。【SpringIDE:Eclipse 平台下一个辅助开发插件】 WebWork【Java开源Web开发框架】 WebWork是由 OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架。WebWork目前最新版本是2.1,现在的 WebWork2.x 前身是RickardOberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command 模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机 (interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL–theObjectGraphNotationLanguage),IoC(InversionofControl倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层 Action类),session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。在WebWork2.2中添加了对 AJAX的支持,这支持是构建在DWR与Dojo 这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse 插件】 Struts【Java开源Web开发框架】 Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP 技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】

开源工作流框架对比.

开源工作流框架对比 工作流是基于业务流程的一种模型,它可以把业务流程组织成一个具有逻辑和规则的模型,从而指导业务工作的进行。开源工作流把工作流进行了合理化、科学化的设计与组织,使其更能够满足现在的业务需求。开源工作流可以帮助实现业务目标,通过计算机进行文档的传递,其使用非常广泛。目前国内主要有几种开源工作流框架,下面我们简单地对比一下,帮助大家更深刻地了解开源工作流: 1.JBPM:要想了解JBPM,首先要了解JBPM的简单定义,JBPM是指业务流程管理,它包含了整个业务流程管理过程中的工作流与服务协作,是一种灵活的、开源的管理模式。JBPM可以把一些复杂的业务流畅简单化,让系统更加灵活运行,同时也很方便业务的跟踪、监控和管理,是一种很好的业务工作流框架模式。 2.OSWORKFLOW:这种框架是用java语言编写出来的,简单地说就是一种工作流引擎,其技术性非常强,它能满足用户多方面的需求。用户可以根据自己的需要来设计一些简单或者是复杂的工作流,为企业业务流程管理服务。这种工作流最大的优点是灵活简单,比较容易实现,能够满足当前市场对开源工作流的需求。 3.oa办公软件系统:这种工作流是符合相关标准的系统管理工作流软件,它也是由java编写出来的,其扩展性比较强,功能也多,还具有通用性的特点,可以用于完整的工作流管理系统中。要说这种软件最大的特点,就是其功能模块比较多,比如说动态表单、可视化工作表、智能报表等等,不同的功能表可以帮助用户实现不同的功能,受到了用户的好评。 以上就是现在市场上比较常见的几种开源工作流管理模式,由此可见,不同的工作流模式其优势特点是不同的,不过这些工作流都能给企业业务流程管理起到一个很好的效果,受到了很多企业的欢迎。在这几种工作流模式中,最值得一提的是JBPM,这种工作流是目前比较先进的,已经收到了很多企业的信赖。

分享6个国内优秀Java后台管理框架的开源项目,建议收藏!

分享6个国内优秀Java后台管理框架的开源项目,建议收藏! 后台管理系统是内容管理系统Content Manage System(简称CMS)的一个子集。CMS是Content Management System的缩写,意为'内容管理系统'。内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场。我自己也一直在搭建一个即好用,又美观的后台管理系统的手动架,可以即拿的即用的项目。不用要重复的去造轮子,把有限的时间用去一些有意思的事。下面分享一下开源中国中有哪些优秀的Java开源后台管理系统。所有项目在https://www.360docs.net/doc/665810509.html,中输入项目都可以搜索的到。ThinkGem / JeeSite(开发人员/项目名称)watch 2100 star 4000 fork 2600JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。JeeSite是您快速完成项目的最佳基础平台解决方案,JeeSite是您想学习Java平台的最佳学习案例,JeeSite还是接私活的最佳助手。JeeSite是在Spring Framework基础上搭建的一个Java基础开发平台,以Spring MVC为模型视图控制器,MyBatis为数据访问层,Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎。是JavaEE界的最佳整合。JeeSite 主要定位于企业信息化领域,已内置企业信息化系统的基础

功能和高效的代码生成工具,包括:系统权限组件、数据 权限组件、数据字典组件、核心工具组件、视图操作组件、工作流组件、代码生成等。前端界面风格采用了结构简单、性能优良、页面美观大气的Twitter Bootstrap页面展示框架。采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。使用Maven做项目管理,提高项目的易开发性、扩展性。JeeSite目前包括以下四大模块,系统管理(SYS)模块、内容管理(CMS)模块、在线办公(OA)模块、代码生成(GEN)模块。系统管理模块,包括企业组织架构(用户管理、机构管理、区域管理)、菜单管理、角色权限管理、字典管理等功能; 内容管理模块,包括内容管理(文章、链接),栏目管理、站点管理、公共留言、文件管理、前端网站展示等功能; 在线办公模块,提供简单的请假流程实例;代码生成模块,完成重复的工作。JeeSite 提供了常 用工具进行封装,包括日志工具、缓存工具、服务器端验证、数据字典、当前组织机构数据(用户、机构、区域)以及其它常用小工具等。另外还提供一个强大的在线代码生成工具,此工具提供简单的单表、一对多、树结构功能的生成,如果对外观要求不是很高,生成的功能就可以用了。如果你使 用了JeeSite基础框架,就可以很高效的快速开发出,优秀的信息管理系统。技术选型:1、后端核心框架:Spring Framework 4.1安全框架:Apache Shiro 1.2视图框架:

外文翻译---JSP技术与主流JAVA+EE开源框架(SSH)技术简介

外文翻译---J S P技术与主流J A V A+E E开源 框架(S S H)技术简介-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

中文3170字 本科毕业设计外文翻译 JSP technology and mainstream open-source framework for JAVA EE 院(系、部)名称:工商管理学院 专业名称:信息管理与信息系统 学生姓名: 学生学号: 指导教师: 2012年 5月 18日

JSP technology and mainstream open-source framework for JAVAEE 1.JSP Profile JSP (Java Server Pages) is initiated by Sun Microsystems, Inc., with many companies to participate in the establishment of a dynamic web page technical standards. JSP technology somewhat similar to ASP technology, it is in the traditional HTML web page document (*.htm, *. html) to insert the Java programming paragraph (Scriptlet) and JSP tag (tag), thus JSP documents (*.jsp). Using JSP development of the Web application is cross-platform that can run on Linux, is also available for other operating systems. JSP technology to use the Java programming language prepared by the category of XML tags and scriptlets, to produce dynamic pages package processing logic. Page also visit by tags and scriptlets exist in the services side of the resources of logic. JSP page logic and web page design and display separation, support reusable component-based design, Web-based application development is rapid and easy. Web server in the face of visits JSP page request, the first implementation of the procedures of, and then together with the results of the implementation of JSP documents in HTML code with the return to the customer. Insert the Java programming operation of the database can be re-oriented websites, in order to achieve the establishment of dynamic pages needed to function.JSP and Java Servlet, is in the implementation of the server, usually returned to the client is an HTML text, as long as the client browser will be able to visit. JSP 1.0 specification of the final version is launched in September 1999, December has introduced 1.1 specifications. At present relatively new is JSP1.2 norms, JSP2.0 norms of the draft has also been introduced. JSP pages from HTML code and Java code embedded in one of the components. The server was in the pages of client requests after the Java code and then will generate the HTML pages to return to the client browser. Java Servlet JSP is the technical foundation and large-scale Web application development needs of Java Servlet and JSP support to complete. JSP with the Java technology easy to use, fully object-oriented, and a platform-independent and secure mainly for all the characteristics of the Internet. JSP technology strength: (1) time to prepare, run everywhere. At this point Java better than PHP, in addition to systems, the code not

java开源框架题目

一、选择题(每题2分,共24分) 1.不属于Action接口中定义的字符串常量的是__B_________。A.SUCCESS B.FAILURE C.ERROR D.INPUT 2.在控制器类中一般需要添加相应属性的____A_______和_____C______。A.setter方法B.as方法 C.getter方法D.is方法 3.控制器需要在____B_______配置文件中进行配置。 A.web.xml B.struts.xml C.struts2.xml D.webwork.xml 4.资源文件的后缀名为___D________。 A.txt B.doc C.property D.Properties 5. 事务隔离级别是由谁实现的?(C) A. Java应用程序 B. Hibernate C. 数据库系统 D. JDBC驱动程序 6.struts中数据验证失败时,通过(B )标签显示错误信息。 A. B. C. D. 7. 有这样一个表单元素,想要找到这个hidden元素,下面哪个是正确的?(B) A. visible B. hidden C.visible() D. hidden() 8下面哪一个是用来追加到指定元素的末尾的?(C) A. insertAfter() B. append() C. appendTo() D. after() 9.不属于Struts2的动作类的常量返回值的是(C) A.success B.input C.never D.login 10.正规开发中,在使用struts2时定义Action使用哪种方式。B

目前市场主流测试工具和管理软件(开源)

目前市场主流的测试工具和管理软件,如Rational和Mercury的系列产品,大多比较昂贵。 商业软件的优势主要表现在其售后服务和工具本身的强大和易用性上,而作为技术基础相对较好的测试人员,也可考虑使用开源的软件,这将为公司节省一大笔开支,必要时也有更好的扩展自由度。 开源测试工具——功能测试工具 Linux Test Project 工具描述: Linux Test Project是一个测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。 使用环境: Linux MaxQ 工具描述: MaxQ是一个免费的功能测试工具。它包括一个HTTP代理工具,可以录制测试脚本,并提供回放测试过程的命令行工具。测试结果的统计图表类似于商用测试工具,比如Astra QuickTest和Empirix e-T est,这些商用工具都很昂贵。MaxQ希望能够提供一些关键的功能,比如HTTP测试录制回放功能,并支持脚本。 使用环境: Java 以上版本 WebInject 工具描述: WebInject是一个针对Web应用程序和服务的免费测试工具。它可以通过HTTP接口测试任意一个单独的系统组件。可以作为测试框架管理功能自动化测试和回归自动化测试的测试套。 使用环境: Windows, OS Independent, Linux 开源测试工具——性能测试工具 Apache JMeter

工具描述: Apache JMeter是100%的Java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计Jmeter的初衷是测试Web应用,后来又扩充了其它的功能。Jmeter可以完成针对静态资源和动态资源(讹误女监, Servlets, Perl脚本, Java对象, 数据查询s, FTP服务等)的性能测试。。Jmeter可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能。Jmeter提供图形化的性能分析。 使用环境: Solaris, Linux, Windows (98, NT, 2000). 以上. DBMonster 工具描述: DBMonster是一个生成随机数据,用来测试SQL数据库的压力测试工具。 使用环境: OS Independent OpenSTA (Open System Testing Architecture) 工具描述: 基于CORBA的分布式软件测试构架。使用OpenSTA,测试人员可以模拟大量的虚拟用户。OpenSTA的结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况,可以精确的度量负载测试的结果。 使用环境: OS Independent TPTEST 工具描述: TPT est的提供测试Internet连接速度的简单方法。 使用环境: MacOS/Carbon、Win32 Web Application Load Simulator

国内外主流前端开发框架技术对比

一、国内外主流前端开发框架技术对比
框架名称 主要 平台 桌面端 jQuery, LESS 丰富 丰 富 丰富 丰富 基础技术 布局 CSS 控件 特效 风格设 置 手动配 置 一般 一般 简单
Ratchet
移动端
HTML5,css
简单
中 等
桌面端
jQuery
-
-
丰富
丰富 预置/可 视化配 置
移动端
jQuery
丰富
-
丰富
丰富 预置/可 视化配 置
桌面端 Ext JS, Sass
丰富
-
极丰 富
极丰 富 丰富
预置
移动端
HTML5
丰富
-
丰富
-
Boostrap
Bootstrap 是目前桌面端最为流行的开发框架,一经推出,势不可挡。 Boostrap 来自于 Twitter,是一个基于 HTML,CSS,JAVASCRIPT 的时尚的、直观 的、强大的流行前端框架及交互组件集,可用于快速,简单构建你的网站。 Bootstrap 主要针对桌面端市场,Bootstrap3 提出移动优先,不过目前桌面端 依然还是 Bootstrap 的主要目标市场。 Bootstrap 主要基于 jQuery 进行

JavaScript 处理, 支持 LESS 来做 CSS 的扩展。 Bootstrap 框架在布局、 版式、 控件、特效方面都非常让人满意,都预置了丰富的效果,极大方便了用户开发。 在风格设置方面,还需要用户在下载时手动设置,可配置粒度非常细,相应也比 较繁琐,不太直观,需要对 Bootstrap 非常熟悉配置起来才能得心应手。在浏 览器兼容性方面,目前 Firefox, Chrome, Opera, Safari, IE8+等主流浏览器 Bootstrap 都提供支持。 但是在 IE 支持方面略显短板,对 IE6 和 IE7 支持都 不是特别理想。在 Bootstrap3 中甚至放弃了对 IE6、IE7 的支持。在框架扩展 方面,随着 Bootstrap 的广泛使用,扩展插件和组件也非常丰富,涉及显示组 件、兼容性、图表库等各个方面。
Bootstrap 拥有以下特性: ? ? ? ? ? ? ? ? ? ? ? 适应各种技术水平 跨设备,跨浏览器 12 列栅格布局 响应式设计 样式化的文档 不断完善的库 定制的 jQuery 插件:Bootstrap 提供了定制的 jQuery 内置插件。 用 LESS 构建 支持 HTML5 标签和语法 支持 CSS3 免费开源
Ratchet
Ratchet 最初是 Twitter 的一套面向 iOS 原生应用程序的 HTML/CSS 原型。 在 看到这些原型对于开发过程多么重要之后, 团队决定将其作为一个移动应用程序 原型设计工具开源。团队很快就清楚地认识到,Ratchet 不仅非常适合构建移动 应用程序原型,而且还非常适合完备的移动应用程序。Ratchet 并没有试图在平 台或浏览器方面使用 CSS 做任何特别的事。它的目标是保持简洁,那样更容易理 解和实现。

主流分布式系统架构分析

主流分布式---系统架构分析

目录 一、前言 (3) 二、SOA架构解析 (3) 三、微服务(Microservices)架构解析 (7) 四、SOA 和微服务架构的差别 (9) 五、服务网格(Service Mesh)架构解析 (9) 六、分布式架构的基本理论 (11) 七、分布式架构下的高可用设计 (15) 八、总结 (19)

一、前言 本文我们来聊一聊目前主流的分布式架构和分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了。分布式架构中,SOA和微服务架构是最常见两种分布式架构,而且目前服务网格的概念也越来越火了。那我们本文就先从这些常见架构开始。 二、SOA架构解析 SOA 全称是: Service Oriented Architecture,中文释义为“面向服务的架构”,它是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务之间通过网络进行调用。架构图如下:

跟SOA 相提并论的还有一个ESB(企业服务总线),简单来说ESB 就是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB 做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通; 随着我们业务的越来越复杂,会发现服务越来越多,SOA架构下,它们的调用关系会变成如下形式:

很显然,这样不是我们所想要的,那这时候如果我们引入ESB的概念,项目调用就又会很清晰,如下:

SOA所要解决的核心问题 ?系统间的集成: 我们站在系统的角度来看,首先要解决各个系统间的通信问题,目的是将原先系统间散乱、无规划的网状结构,梳理成规整、可治理的星形结构,这步的实现往往需要引入一些概念和规范,比如ESB、以及技术规范、服务管理规范; 这一步解决的核心问题是【有序】。 ?系统的服务化: 我们站在功能的角度,需要把业务逻辑抽象成可复用、可组装的服务,从而通过服务的编排实现业务的快速再生,目的是要把原先固有的业务功能抽象设计为通用的业务服务、实现业务逻辑的快速复用;这步要解决的核心问题是【复用】。 ?业务的服务化: 我们站在企业的角度,要把企业职能抽象成可复用、可组装的服务,就要把原先职能化的企业架构转变为服务化的企业架构,以便进一步提升企业的对外服务的能力。“前面两步都是从

主流的四大虚拟化架构对比分析教学内容

主流的四大虚拟化架构对比分析

主流四大虚拟化架构对比分析 云计算平台需要有资源池为其提供能力输出,这种能力包括计算能力、存储能力和网络能力,为了将这些能力调度到其所需要的地方,云计算平台还需要对能力进行调度管理,这些能力均是由虚拟化资源池提供的。 云计算离不开底层的虚拟化技术支持。维基百科列举的虚拟化技术有超过60种,基于X86(CISC)体系的超过50种,也有基于RISC体系的,其中有4 种虚拟化技术是当前最为成熟而且应用最为广泛的,分别是:VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM。云计算平台选用何种虚拟化技术将是云计算建设所要面临的问题,文章就4种主流虚拟化技术的架构层面进行了对比分析。 形成资源池计算能力的物理设备,可能有两种,一种是基于RISC的大/小型机,另一种是基于CISC的 X86服务器。大/小型机通常意味着高性能、高可靠性和高价格,而X86服务器与之相比有些差距,但随着Inter和AMD等处理器厂商技术的不断发展,原本只在小型机上才有的技术已经出现在了X86处理器上,如64位技术、虚拟化技术、多核心技术等等,使得X86服务器在性能上突飞猛进。通过TPC组织在2011年3月份所公布的单机计算机性能排名中可以看出,4路32核的X86服务器性能已经位列前10名,更重要的是X86服务器的性价比相对小型机有约5倍的优势。因此,选择X86服务器作为云计算资源池,更能凸显出云计算的低成本优势。 由于单机计算机的处理能力越来越大,以单机资源为调度单位的颗粒度就太大了,因此需要有一种技术让资源的调度颗粒更细小,使资源得到更有效和充分的利用,这就引入了虚拟化技术。当前虚拟化技术中主流和成熟的有4种:VMWARE的ESX、微软的Hyper-V、开源的XEN和KVM,下面将针对这4种虚拟化技术的架构进行分析

前端开发框架对比

近几年随着jQuery、Ext 以及CSS3 的发展,以Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应接不暇。不论是桌面浏览器端还是移动端都涌现出很多优秀的框架,极大丰富了开发素材,也方便了大家的开发。这些框架各有特点,本文对这些框架进行初步的介绍与比较,希望能够为大家选择框架提供一点帮助,也为后续详细研究这些框架的抛砖引玉。JavaScript & CSS 目前前端框架主要采用JavaScript+CSS模式,我们先来了解一下这两者。 预准备之JavaScript 目前主流的JavaScript 框架排名中,jQuery和Ext 可算是佼佼者,获得了用户的广泛好评。国内的一些框架很多也是仿照jQuery对JavaScript 进行了包装,不过这些框架的鼻祖YUI 还是坚持用自己的JavaScript 类库。 jQuery是目前用的最多的前端JavaScript 类库,据初步统计,目前jQuery的占有率已经超过46%,它算是比较轻量级的类库,对DOM 的操作也比较方便到位,支持的效果和控件也很多。同时,基于jQuery有很多扩展项目,包括jQuery UI(jQuery支持的一些控件和效果框架)、jQuery Mobile(移动端的jQuery框架)、QUnit(JavaScript 的测试框架)、Sizzle(CSS 的选择引擎)。这些补充使得jQuery框架更加完整,更令人兴奋的是,这些扩展与目前的框架基本都是兼容的,可以交叉使用,使得前端开发更加丰富。 Ext 是Sencha公司推崇的JavaScript 类库,相比jQuery,Ext JS 更重量级,动辄数兆的文件,使得Ext 在外网使用的时候会顾虑很多。但是,另一方面,在Ext JS 庞大的文件背后是Ext JS 强大的功能。Ext JS 的控件和功能可以说强大和华丽到了让人发指的程度。图表、菜单、特效,Ext JS 的控件库非常丰富,同时它的交互也非常强大,独立靠Ext JS 几乎就可以取代控制层完成于客户的交互。强大的功能,丰富的控件库,华丽的效果也使得Ext JS 成为内网开发利器。 框架鼻祖YUI 也有自己的JavaScript 类库,DOM 操作和效果处理也还比较方便,功能和控件也很齐全,但是相比jQuery和Ext JS 显得比较中庸一些。随着Yahoo!的没落,YUI 的呼声也逐渐被新起的框架淹没,想来也让人惋惜。 除了上述的三个JavaScript 类库,还有Dojo、Prototype、Mootools等众多类库,由于本文讨论的框架多采用上述框架,所以其他框架暂不讨论。 预准备之CSS 随着CSS3 的推出,浏览器对样式的支持更加上了一个层次,效果更加出众。各框架也纷纷开发出基于CSS3 的样式,让框架更加丰富。 对于CSS3,更是推出了一些预编译的扩展框架,主要是LESS、Sass 和Compass(Compass 是基于Sass 的扩展)。可以方便地进行变量定义,格式引用,函数定义等操作,并内置了大量的效果。让您的CSS 开发效率提升一个档次。根据Chris Coyier的比较,Sass+Compass几

java 常用框架.

java有一些常用的框架,现介绍如下:一、Spring Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate 和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring 提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。二、STRUCTS Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。三、Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任 ------------------------------------------------------------------------------- 主流框架还是MVC框架技术 1:jsp+servlet+javaben适用于比较小的项目 2:strut+spring+hibnate 目前这是主流框架技术组合在一起就是ssh了适用于要求可维护性强的框架技术3:ejb jsf等重量级框架技术比较过时 WebWork 【Java开源 Web框架】 WebWork

Java web开发三大框架整理

中移动杭州研究院 Java web开发三大框架整理报告 Java web开发三大框架整理 目录 1.引言 (1) 2 Java Web 开发三大框架 (2) 2.1 Struts框架 (2) 2.1.1 Struts框架概述 (2) 2.1.2 Struts2 处理流程 (3) 2.1.3 Struts框架的组件分析 (4)

2.2 Hibernate框架 (6) 2.2.1 Hibernate 工作原理和工作流程 (6) 2.2.2 Hibernate框架的组件分析 (7) 2.2.3 Hibernate核心接口 (8) 2.2.4 Hibernate缓存管理 (8) 2.2.5 Hibernate框架优势 (9) 2.3 Spring框架 (9) 2.3.1 Spring框架模块 (10) 2.3.2 控制反转(IoC)和依赖注入(DI) (11) 2.3.3 面相切面编程(AOP) (12) 2.3.4 Spring框架优势 (12) 3 SSH框架整合 (12) 3.1 整合理念 (12) 3.2 整合方案 (14) 3.2.1 Spring 与Struts 的集成 (14) 3.2.2 Spring 与Hibernate的集成 (15) 3.2.3 系统分析 (15) 4 小结 (16) 1.引言 随着计算机网络技术的日益普及,基于Java的Web技术也得到了广泛的应用。然而,利用Java进行Web应用程序的软件架构非常复杂,这在很大程度上限制了Web系统的开发效率,因此轻量级J2EE框架应运而生。优秀的轻量级J2EE框架不仅保留了传统J2EE框架良好的可扩展性、可维护性等特点,还具有开发效率高、各层无缝集成等优点。

Java程序员必备的15个框架,前3个地位无可动摇!

Java程序员必备的15个框架,前3个地位无可动摇! Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分Java 程序员都是Java Web/后端开发。那作为一名Java Web 开发程序员必须需要熟悉哪些框架呢? 今天,栈长我给大家列举了一些通用的、必须掌握的框架,学会这些,20K+ 不是问题。 1.Spring 毫无疑问,Spring 框架现在是Java 后端框架家族里面最强大的一个,其拥有IOC 和AOP 两大利器,大大简化了软件开发复杂性。并且,Spring 现在能与所有主流开发框架集成,可谓是一个万能框架,Spring 让JAVA 开发变得更多简单。 官网: https://spring.io/projects/spring-framework 源码: https://https://www.360docs.net/doc/665810509.html,/spring-projects/spring-framework 推荐: 2.Spring MVC

Spring MVC 是一个MVC 开源框架,用来代替Struts。它是Spring 项目里面的一个重要组成部分,能与Spring IOC 容器紧密结合,以及拥有松耦合、方便配置、代码分离等特点,让JAVA 程序员开发WEB 项目变得更加容易。 官网: https://spring.io/projects/spring-framework 源码: https://https://www.360docs.net/doc/665810509.html,/spring-projects/spring-framework 3.Spring Boot Spring Boot 是Spring 开源组织下的一个子项目,也是Spring 组件一站式解决方案,主要是为了简化使用Spring 框架的难度,简省繁重的配置。 Spring Boot提供了各种组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于Spring 组件的Java 项目。官网: https://spring.io/projects/spring-boot 源码: https://https://www.360docs.net/doc/665810509.html,/spring-projects/spring-boot 推荐:

相关主题
相关文档
最新文档