摘要:
项目介绍 基于Ionic2的 "Ionic中文论坛" 客户端,该应用也是边学边做的,为了将更多常用东西加入到APP中,有些逻辑不通之处,敬请包涵。 开源地址 "https://github.com/zxj963577494/Ionic2 IonicClub" 安装指南 1.git clone htt 阅读全文
摘要:
从C 1到C 3逐步认识委托,由于C 4与C 5对委托改动并不大,故不作说明。 好久没看.NET了,一直在搞HybridAPP,都忘得差不多了,这也是自己从书中摘下笔迹,供日后翻阅。 C 1 1.什么是委托 委托是一种定义方法签名的类型。当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。 阅读全文
摘要:
介绍这几天闲着没事,就做了个第三方的Ionic社区的移动客户端,练练手,界面设计和图片资源直接从官方版拿来的。真懒o(︶︿︶)o 唉网站开放出来的接口,都已全部实现,大家可以下着试试看。源码https://github.com/zxj963577494/IonicClub简单介绍该源码可作为ioni... 阅读全文
摘要:
Ionic 框架介绍 Ionic是一个基于Angularjs、可以使用HTML5构建混合移动应用的用户界面框架,它自称为是“本地与HTML5的结合”。该框架提供了很多基本的移动用户界面范例,例如像列表(lists)、标签页栏(tab bars)和触发开关(toggle switches)这样的简单... 阅读全文
摘要:
1.请求进入时,.NET Framework就找出所有的HttpModule,以此调用它们的Init方法,如下图所示,我们重点关注"UrlRoutingModule-4.0"的HttpModule.2.我们看看UrlRoutingModule方法中做了哪些操作. 继续往下看 我们来到了PostR... 阅读全文
摘要:
1.RouteTable RouteTable翻译过来的意思就是路由表,一个Web应用程序具有一个全局的路由表,该路由表通过System.Web.Routiing.RouteTable的静态只读属性Routes表示,该类型返回一个类型为System.Web.Routingg.RouteCollec... 阅读全文
摘要:
一、应用程序启动 1.Application_Start方法,程序启动 2.RegisterRoutes方法,注册路由 3.System.Web.Mvc.RouteCollectionExtensions.MapRoute方法,出现了MvcRoutehandler对象 二、请求进入 在 “$... 阅读全文
摘要:
一、数据库 1.数据表 Category:类别标签表(字段Type=1为类别,Type=2为标签) Category_Post:类别标签与文章中间表 Post:文章表 Comment:评论表 2.数据库关系图 3.简单说明 Category和Post表为多对多关系 Post和C... 阅读全文
摘要:
一、Active Record(活动记录)模式 Active Record是业务逻辑层中(《企业应用架构模式》将该模式归为数据源模式)常用的一种框架模式,尤其在底层数据库模型匹配业务模型时它特别有用,它是一种以数据库驱动为主的框架模式。 通常,数据库中的每张表都对应一个业务对象。业务对象表示表中... 阅读全文
摘要:
1.Could not compile the mapping document: (string)错误?如果确保配置文件没有错误,那请检查用户身份,必须是Administrator才行,即使有管理员权限的其它用户也不行。 阅读全文
摘要:
一、定义 不应该强迫客户程序依赖并未使用的方法二、接口污染 接口污染,在C#、C++这样的静态类型语言中是很常见的。一个接口会被他不需要的方法污染。在接口中假如一个方法只是为了能给它的一个子类带来好处。若持续这样做的话,那么每次子类需要一个新方法时,这个方法就会加到基类中去。这会进一步污染基类的... 阅读全文
摘要:
一、定义 1.高层模块不应该依赖低层模块,二者都应该依赖抽象 2.抽象不应该依赖于细节。细节应该依赖于抽象二、层次化 1.简单介绍 结构良好的面向对象架构都具有清晰的层次定义,每个层次通过一个定义良好的、受控的接口向外提供了一组内聚的服务。 对于这个陈述的简单理解可能会致使设计者设计出类似... 阅读全文
摘要:
一、定义 子类型必须能替换掉它们的基类型二、提取公共部分的方法代替继承 如果一组类都支持一个公共的职责,那么它们应该从一个公共的超类继承该职责。 如果公共的超类不存在,那么就创建一个,并把公共的职责放入其中。毕竟,这样一个类的有用性是确定无疑的。 然而稍后对系统的扩展也许会假如一个新的子类,该子... 阅读全文
摘要:
一、定义 软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。 如果正确的应用了OCP原则,那么 以后在进行同样的改动时,就只需要添加新的代码,不必修改已经正常运行的代码。二、OCP概述 1.对于扩展是开放的 这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展... 阅读全文
摘要:
一、定义 一个类应该只有一个发生变化的原因。二、为什么要使用SRC 因为每一个职责都是变化的一个轴线。当需求变化时,这种变化就会反映为类的职责的变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。 如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会消... 阅读全文
摘要:
一.设计臭味1.僵化性 僵化性是指难以对软件进行改动,即使是简单的改动。如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计就是僵化的。改动时,必须要改动的模块越多,设计就越僵化。2.脆弱性 脆弱性是指,在进行一个改动时,可能会导致程序的许多地方出现问题。常常是,出现新问题的地方与改动的地... 阅读全文
摘要:
一、概述 传入的客户端调用消息会分发给Windows I/O线程池(线程默认为1000)上的服务实例。多个客户端可以发起多个并发的调用,并且服务可以在多个线程上处理这些请求。如果传入的调用分发给同一个服务实例,就必须对内存中的服务状态提供线程安全的访问方式,否则,可能存在错误的风险。客户端回调时... 阅读全文
摘要:
一、投票与提交 虽然WCF负责事务传播及两阶段提交协议的管理工作,但是 她不知道事务是否应该提交或终止。这需要根服务告诉WCF应该何时启动两阶段提交协议、是提交还是终止。WCF提供了两种编程模式来对事务的结果进行投票,即声明式和显式模式。 声明式投票 WCF可以代替服务自动完成提交或终止事务的... 阅读全文
摘要:
一、设置环境事务 默认情况下,服务类和操作没有环境事务,即使客户端事务传播到服务端也是如此。 尽管强制事务流从客户端传播过来,但服务端的环境事务依旧为null。为了启用环境事务,每个操作必须告诉WCF启用事务。为了解决这个问题,WCF提供了OperationBehaviorAttribute的TransactionScopeRequired属性: // 指定服务方法的本地执行行为... 阅读全文
摘要:
一、概述 .NET2.0在命名空间System.Transactions下提供了Transaction类,它表示所有.NET事务管理器使用的事务。 [Serializable]
public class Transaction : IDisposable, ISerializable
{ //...... public static Transaction Curr... 阅读全文
摘要:
一、事务传播概述 WCF可以跨越服务边界传递事务。这可以让服务参与到客户端事务里,客户端还可以在同一个事务里调用多个服务。客户端本身不一定是WCF服务。客户端事务是否传播到服务端可以通过绑定和操作契约契约的设置来控制。 我们把能够支持客户端事务传播给服务端的绑定称为“事务感知”型绑定。 只有TCP、IPC和WS绑定支持事务传播。 二、事务流与绑定 默认情况下,事... 阅读全文
摘要:
一、事务协议 总体来说,WCF开发人员不需要涉及事务协议与管理器。我们应该依赖WCF来选择相应的事务协议和管理器,重点关注业务逻辑的实现。 WCF是根据事务范围里的参与个体来选择事务管理协议的。事务管理协议之间的差别与远程调用、通行协议,以及跨越的系统边界有关。 可选择的管理协议如下: 轻量级事务协议 这个协议只在本地同一个应用程序域内的上下文环境里管理事务,他不... 阅读全文
摘要:
一、事务概述 维护系统一致性和正确地处理错误恢复挑战的最佳方式是使用事务。 一个事务就是一个复杂操作的集合,这个集合中任何一个操作的失败都会引起整个集合的失败。 尽管在事务进行时系统被允许暂时出于不一致的状态,但是一旦事务结束,系统一定会处于一直的状态。 事务资源 事务编程需要资源(如数据... 阅读全文
摘要:
一、错误传播 服务需要向客户端报告特定错误,当WCF默认的错误屏蔽方法并不包含这一实现。另一个重要的问题与传播到客户端有关,即由于异常是针对特定技术的,因此无法跨越服务边界而被共享。要实现无缝的互操作性,就需要将基于特定技术的异常映射为某种与平台无关的错误信息。这种表现形式就是所谓的SOAP错误... 阅读全文
摘要:
一、错误概述 不管是哪一种操作,在任意时刻都可能出现不可预期的错误。问题在于我们应该如何将错误报告给客户端。异常和异常处理机制是与特定技术紧密结合的,不能跨越边界的。此外,如果有客户端来处理错误,必定会导致耦合度增加。通常,错误处理应该是本地的实现细节,并不会影响到客户端。在设计良好的应用程序中... 阅读全文
摘要:
一、流操作概述 在默认情况下,当客户端调用服务时,服务只有在接收到完整的消息后才会被调用,同样,客户端只有在包含了调用结果的返回消息被完整接受时,才会解除对它的阻塞。 对于数据量小的消息,这种交换模式提供了简单的编程模型,因为接收消息的耗时较之处理消息本身而言是微不足道的。然而,一旦需要处理数据量较大的消息,如包含了多媒体内容、大文本或数据块的消息,如果每次都要等到完整接收消息之... 阅读全文
摘要:
一、事件概述 基础的WCF回调机制并不能阐明客户端与服务之间交互的本质。双向回调的规范使用可以通过事件来完成。客户端发生的相关事项都可以通过事件通知客户端或者多个客户端。事件可能源于直接的客户端调用,也可能来源于服务监听器。激活事件的服务称为发布者,而接受事件答得客户端则称为订阅者。如下图所示: 与回调操作相比,WCF更重视对事件的运作。从本质讲,事件代表了发布者与订阅者之间更... 阅读全文
摘要:
一、回调操作概述 WCF支持服务将调用返回给它的客户端。在回调期间,许多方面都将颠倒过来:服务将成为客户端,客户端将编程服务。回调操作可以用在各种场景和应用程序中,但在涉及事件或者服务发生时间需要通知客户端时,显得特别有用。 回调操作通常被认为是双向操作。并非所有的绑定都支持回调操作,只有在具有了双向能力的绑定时,才支持回调操作。比如,HTTP协议本质上是与与连接无关的,所以他不... 阅读全文
摘要:
一、单向操作概述 WCF提供了单向操作,一旦客户端调用,WCF会生成一个请求,但没有相关的应答信息返回给客户端。所以,单向操作是不能有返回值,服务抛出的任何异常都不会传递给客户端。 理想情况下,一旦客户端调用了一个单向操作,它只会在要求调用的一瞬间被阻塞。事实上,单向调用不等于异步调用。当单向调用到... 阅读全文
摘要:
一、调用操作概述 WCF除了支持经典的服务端-客户端的请求/应答操作外,还提供了对其他操作类型的内建支持,包括:即发即弃的单向调用;允许服务将调用返回给客户端的双向回调;允许客户端或服务器处理大量负荷的流操作。 二、请求/应答操作 在先前介绍的实例中,契约中的操作均为请求/应答类型。在这些类型中,客户端以消息形式发出请求,它会阻塞客户端直到收到应答消息。应答的默... 阅读全文