园子里已经有网友谈论过基于.Net的热插拨Web框架实现,我的方法与之不同。这里记录下来,有兴趣的网友可以看看。
一 设计该框架的缘由和难处
设计这个框架的原因是我想要构建一个类似wordpresss这种能够方便启用、禁用插件和主题的Web应用。Wordpress是一个广受欢迎的博客应用。通过使用wordpress,一个新手也能够快速的搭建一个博客或者网站,用上各种各样的自己需要的插件——从seo、社交媒体账号登陆到后台管理应用插件,再配上好看的主题,只需要几个步骤,你就能够拥有一个时尚并且紧跟潮流的网站。
ASP.Net下面已经有插件化的程序。Orachard、DotNet Nuke是其中比较好的例子,但是我希望能够构建一个支持在线编辑插件、主题的Web应用,同时这些插件和主题能够完全的用ASP.Net页面或者.Net实现——不限制于特定的模板语言、渲染引擎或者只有单纯的html和javascript。
ASP.Net本身确实已经有主题这一概念,但是其实现方法太过僵硬,要灵活的表现不同的页面还是存在一定的困难。
要实现类似wordpress这样的应用,首先要有支持完整的ASP.Net功能的插件和主题,仅靠特定的模板语言和html总是限制太多;其次,插件和主题应该能够无缝的集成,彼此间可以相互独立也可以相互依赖,切换插件和主题都不影响页面最后的正常渲染;最后,类似wordpress,提供一个中心化的插件和主题服务器,所有插件和主题能够一键升级。
实现这么一种程序,主要问题在于
1. 插件的实现与结合——插件的实现要尽可能自由、各种类型的请求都可以处理、请求结果的渲染、能够随心所欲的在插件间和插件与Web应用间进行数据沟通
2. 如何管理插件——怎样加载和启用插件才不影响当前Web应用、插件的发布和升级
3. 主题化——主题页面完全用ASP.Net实现、主题的管理
4. 其它——配置的支持、多语言支持、动态编译支持、源代码的管理、安全、性能
头有点大,要说的东西好像有点多,放着,慢慢更。最后的目标是一个类似wordpress的.Net实现。
路漫漫其修远兮,吾将上下而求索。