当前位置: 首页 > news >正文

上海做网站建设公司排名苏州百度快速排名优化

上海做网站建设公司排名,苏州百度快速排名优化,制作网页网站小说教程,wordpress默认后台登陆自从吾修主页上发布了QMVC1.0#xff0c;非常感兴趣#xff0c;用了半月的时间学习#xff0c;真的感觉收益非浅#xff0c;在此声明非常感谢吾修大哥的分享#xff01; 1、轻快简单#xff0c;框架就几个类#xff0c;简单#xff0c;当然代码少也就运行快#xff01…     自从吾修主页上发布了QMVC1.0非常感兴趣用了半月的时间学习真的感觉收益非浅在此声明非常感谢吾修大哥的分享     1、轻快简单框架就几个类简单当然代码少也就运行快单纯的MVC使的如果你想扩展框架可以轻易的在QMVC上增加和减少功能也就是说更容易的去修改和读懂源码。     2、可以与webform框架融合也就是说你用webform和mvc共同在同一个项目中运行。     3、QMVC APP开发QMVC APP可以轻易实现多个QMVC项目合并到一个项目中运行也可以轻易将其分离开独立运行比如一个网站常有论坛、文章系统、新闻系统等如果你的程序用qmvc app哪么可以轻易实现多个系统的融合。     本文主题“QMVC高级开发”所谓高级我可不认为就是学不会搞不懂的忽悠者是高级!而是高与初级的层面上知识所以在此我假设你己经懂了QMVC的基础级应用如果想了解QMVC的初级应用可以参考我写的一篇文章《高性能.NET MVC之QMVC》或QMVC官网www.wuxiu.org。     怎样的框架是最适合你的哪么豪无疑问最适合你的框架什么是最适合自己的肯定是量身定制的就像是如果说qmvc他的代码非常少层次简单逻辑清晰简单。你可以通过基于QMVC轻易扩展成适合自己系统的框架本文就谈谈如何扩展自己的MVC APP框架、谈谈QMVC源码结构     1、QMVC源码分析     首先QMVC源码中存在两种MVC模式一种是QMVC基本框架一种是QMVC APP框架QMVC APP的代码是基于QMVC基本框架实现的源码中APPS目录中存的是关于QMVC APP框架的实现代码。根目录下是QMVC基本框架Router为QMVC的路由功能用HTTP请求地址的分析。     ControllerBase类    所有控制器的基类     IMVCModel  模型调用接口当然你的Model也可以不继承于此接口如果想在Model中调用QMVCRazorPage类哪么可以实现接口中获取。     MVCRazorPageBase类  是关于View模板的基类      QMVCCore类          QMVC框架的核心类控制qmvc运行的支持者。     ViewResult类        是Controller传值给QMVCCore去调用Razor模板时的信息类Controller把要显示的信息给ViewResultQMVCCore通过ViewResult加载Razor模板。     Router.IRouterProvider接口   如果你想重写QMVC的路由功能哪么可以实现Router.IRouterProvider接口实现。     至于APPS中的类于以上的类类似并且实现了固定的Router。     如果你想重写模板显示路径规则可以重写ControllerBase类中的getTemplateUrl方法这无疑对你编写自己的框架起到了最大控制的空间原方法代码 protected virtual string getTemplateUrl(string themeName,string controllerName,string viewName) {return ~/ themeName Views/ controllerName / viewName .cshtml; } DefaultRouter类 using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Reflection; using System.Text; using System.Text.RegularExpressions; using System.Web;namespace wuxiu.QMVC.Router {public class DefaultRouter : IRouterProvider{string DefaultController;string DefaultAction;RouterControllerCollection controllers new RouterControllerCollection();public DefaultRouter(Assembly asm, string defaultController, string defaultAction){DefaultController defaultController;DefaultAction defaultAction;//controllers.LoadAssembly(asm);}public ControllerBase LoadUrl(HttpContextBase context, string apprawurl){string controllerName DefaultController;string action DefaultAction;string pageurl;if (apprawurl.IndexOf(?) ! -1){pageurl apprawurl.Substring(0, apprawurl.IndexOf(?));}else pageurl apprawurl;string[] urls Utils.ClearStrArrayEmpty(pageurl.Split(/));string[] urldata;if(urls.Length0){controllerNameurls[0];}else controllerNameDefaultController;if(urls.Length1){actionurls[1];if (!action.EndsWith(.action,StringComparison.OrdinalIgnoreCase)){return null;} action action.Substring(0,action.Length - .action.Length);}else actionDefaultAction;if(urls.Length2){urldatanew string[urls.Length-2];for(int i2;iurls.Length;i)urldata[i-2]urls[i];}else urldatanew string[]{};Type ControllerType controllers.GetController(controllerName);if (ControllerType ! null){ControllerBase controller Activator.CreateInstance(ControllerType) as ControllerBase;controller.init(context, controllerName, action, urldata);return controller;}return null;}} } QMVC默认路由器类没有实现正则表达式其实我觉得这是一个好事因为使用字符分析更准确性能更佳。DefaultRouter类中实现了IRouterProvider接口在LoadUrl函数中分析了http请求地址并且通过反射的方式调用的控制器中的方法。    2、QMVC APP介绍   QMVC APP的实现目的是为了实现多个项目融合提出的解决方案当然如果你的程序按照QMVC APP模式开发可以很容易的实现与另一个APP之间融合到一个站点中运行。   如果你的项目按照QMVC APP模式开发哪么Controller是继承自wuxiu.QMVC.APPS.APPController基类每一个应用中必须实现APPProvider类。每个应用中存放app.config文件。     QMVC APP目录结构     APPS      APPName         DefaultViews            ControllerName               ActionName.cshtml            ...         App.config   Controllers   Models   APPProvider.cs   Global.asax   Web.config   以上树中APPS目录是必须目录用于包含当前项目中所有的应用文件夹APPName是应用的文件夹其中包括了Views和app.configViews里存放了应用所用的视图app.config中定义了应用的配置信息。   APPProvider.cs是APPS模式中所有应用实现的一个类他继承于wuxiu.QMVC.APPS.APPProvider类该类在QMVC初始化时调用用于初始化APP。   Models和Controllers文件为当前应用的相关控制器和模型存放目录。    QMVC APP项目配置   若建一个QMVC APP模式的项目必须以6.2节中定义的目录结构外需要修改一些配置文件让ASP.NET运行框架支持QMVC APP运行。   Web.config中添加或修改以下配置项    configurationsystem.webcompilation debugtrue targetFramework4.5assembliesadd assemblySystem.Web.WebPages.Razor2, Version0.0.0.0, Cultureneutral, PublicKeyToken14679ed9c77dd5f5 /add assemblySystem.Web.WebPages2, Version0.0.0.0, Cultureneutral, PublicKeyToken14679ed9c77dd5f5 /add assemblySystem.Web.Razor2, Version0.0.0.0, Cultureneutral, PublicKeyToken14679ed9c77dd5f5 //assembliesbuildProvidersremove extension.cshtml/addextension.cshtmltypeSystem.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor2//buildProviders/compilation/system.websystem.webServermodules runAllManagedModulesForAllRequeststrue//system.webServer/configuration   APPS/web.config中添加或修改以下配置项 configurationconfigSectionssectionGroup namesystem.web.webPages.razor typeSystem.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor2section namehost typeSystem.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor2 requirePermissionfalse /section namepages typeSystem.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor2 requirePermissionfalse //sectionGroup/configSectionssystem.web/system.websystem.web.webPages.razorpages pageBaseTypewuxiu.QMVC.MVCRzorPageBasenamespacesadd namespacewuxiu.QMVC //namespaces/pages/system.web.webPages.razor /configuration APPS/APPName/APPProvider.config    ?xml version1.0 encodingutf-8 ?app name贴吧系统version1.0copyrightbobbyurlFolderwuxiuappProviderClasswuxiu.tiebaAPP.TiebaAPPProviderassemblybin:wuxiu.tiebaAPPenabletrueappSettingsadd key value/... /appSettingscustomElements/customElements /app   如果您创建一个QMVC APP哪么必须写一个app.config描述您的应用信息QMVC会按照您的配置去加载应用并且把您的配置信息传给应用。   APP节点属性 Name 应用的名称 Version                 当前应用的版本号 appProviderClass 表示实现wuxiu.QMVC.APPS.APPProvider类的命名空间和类名用于初始化APP的类。 assembly         当前应用的APPProvider所在的类库值有两种书写形式                         1、file冒号开头标识app/bin/目录下的dll文件名,如“file:mydll.dll”。                         2、bin:默认为程序跟目录Bin目录下的程序集名称,如“bin:mydll”。 说明推荐使用bin前缀因为file虽然可以独立自己的程序目录确存在着运行中独占的问题可能导致程序运行页dll不允许移动和删除。 Enable 标识当前程序是否可用值有两个true或false。 以上章节是翻译自吾修主页的QMVC Doumentation章节中关于QMVC APP章节      实现一个自己的AppController public class HomeController:wuxiu.QMVC.APPS.APPController{public wuxiu.QMVC.ViewResult Index(){return View();} } 实现一个IMVCModel类 当在模型类中可以获取到MVCRazorPage对象无疑将Model的功能增加他可以更灵活的提供些程序逻辑减少了Razor模板中的代码毕竟Razor是给美工操作的层面代码。 public class MyModel:wuxiu.QMVC.IQMVCModel{public string LoginPageUrl { get { return page.APPUrlStart /user/login.action; } }wuxiu.QMVC.APPS.APPRazorPage page;public void Init(QMVCRzorPageBase page){this.page (wuxiu.QMVC.APPS.APPRazorPage)page;}}   转载于:https://www.cnblogs.com/jsmblog/p/qmvc_app.html
http://www.pierceye.com/news/235282/

相关文章:

  • 对网站开发语言的统计杭州网站设计公司有哪些
  • 不会代码 怎么做网站兴义网络推广
  • 综合电子商务型企业网站怎么做网站的网盘
  • ucenter使用自己做的网站房地产新闻时事热点
  • 企业网站备案 过户电商运营视频教程
  • 做网站运营这工作怎么样北京网站优化价格
  • 河南专业网站建设网站怎么做高权重
  • 国内大型电子网站建设做网站时怎么透明化
  • 微应用和微网站的区别手机网站开发的目的
  • 网站ico开一个网站建设公司好
  • wordpress中文站cn外贸网站怎么换域名
  • 淘宝客怎么做直播网站吗学校网站建设发展概况分析
  • 广州网站外贸推广建筑师必看的16部纪录片
  • 深圳网站建设平台网站右侧浮动广告
  • 中英文网站源码浙江东南网架公司
  • 个人备案网站放什么资料培训
  • html做企业门户网站提供设计的网站
  • 成都三合一网站建设成年s8视频加密线路
  • 做网站购买服务器如何优化网络
  • 企业公司网站 北京怎样用前端知识制作企业网站
  • 精湛的赣州网站建设襄阳哪里有做网站的
  • 拿了网赌代理后怎样做自己的网站河南最新消息今天
  • 北京最大的网站开发公司中山市企业网站seo营销工具
  • 苏州营销型网站建设方案哪些网站做的比较好的
  • 淘宝上买的建设网站能退款吗app怎么查网站备案
  • 电子商务网站开发与设计报告专业网站建设公司兴田德润怎么样
  • 如何建立p2p网站win2003怎么做网站
  • 免费网页设计制作网站建筑公司愿景口号大全
  • 个人可以做网站维护吗专业团队电脑壁纸
  • 东营专业网站建设公司排行鞍山市人力资源招聘信息网