微软 OrchardProject 介绍及项目近期 Roadmap
微软 OrchardProject 介绍及项目近期 Roadmap
Orchard Project 是一个基于 Asp.net 的开源项目,创建于 2009 年 11 月,与微软有很大关系,但并不作为微软内部开发和支持的项目,而是一个 free, open source, community-focused project 。官方对 Orchard Project 的介绍是:aimed at delivering applications andreusable components on the ASP.NET platform. It will create shared componentsfor building ASP.NET applications and extensions, and specific applicationsthat leverage these components to meet the needs of end-users, scripters, anddevelopers. Additionally, we seek to create partnerships with existingapplication authors to help them achieve their goals.
我对 Orchard 的理解就是 dotnet 平台下的 wordpress (官方没这么说)。不同的是 wordpress 最开始是单纯的 blog ,后来慢慢可以做 cms (3.0对cms的支持更凸显),同时也可以看作是一个开发框架,因为很多应用都可以基于 wordpress 开发,例如 buddypress 就是一个基于 wordpress 的 sns 扩展。而 Orchard 最开始做的就是做一个框架同时包含可以重用的程序组件,该框架可以自然的支持blog,wiki,forum,cms,social network 等。
Orchard 项目开发只有半年,很年轻因此很不完善,Orchard 社区能否做到像 wordpress 社区那样火不好说,不过 orchard 项目对我的吸引力还是很大的,在我看来dotnet开源社区确实需要这些实用的项目,有潜力的项目。
Orchard 吸引我的地方:
- 强大的后台,因此有强大的开发团队, 开发很活跃,这是个人开源项目所不能具备的
- 强大的团队开发出来的基本是精品,可以作为程序开发和技术学习的良好范例
- 可以作为项目开发的基础,开发自定义插件,自行扩展,并且该框架理论上可以做的更多,不仅仅可以用做内容发布及管理框架
- 很多基于 Orchard 的具有丰富功能的开源项目将会涌现,我们可以利用这些社区资源创建自己的应用
Orchard 开发使用技术
目前Orchard 正在从dotnet3.5环境迁移至dotnet4.0环境,使用最新的asp.net mvc 2.0作为核心开发框架,注入机制使用的是 Autofac 2 & Autofac contrib 及 Castle Windsor 2.0(没有使用 entlib 及 unity),界面使用 JQuery 及部分 YUI ,持久层使用的 nHibernate 及 fluentnhibernate, nhlambdaextensions,linqnhibernate 。配置使用 Yamlnet,编辑器使用 tinymce,数据库除了支持 sql server 还内建支持 sqlite 。因为 Orchard 开发刚刚开始,dotnet4.0及vs2010刚发布,Orchard将开发运行的最低标准定为dotnet 4.0是很自然的,因此开发调试环境需要提高到vs2010了(不知官方支持3.5会到什么时候)。
Orchard Project Roadmap
当前 Currently implemented (partially)
- 基本管理及登录 panel Basicadmin panel and login
- CMS 页面创建管理 CMS page creation and management
- 页面模板和页面内内容区域 content zones Pagetemplates and content zones within pages
- 不同内容类型,元数据,查看者及编辑者 Content –Different content types/metadata, viewers and editors for content
- 编辑发布功能(草稿,调度,预览)Content editing and publication (drafts, scheduling,preview)
- 扩展-基本内容及组合内容架构 Extensibility - Initial content typeand composability infrastructure (based on MVC2 areas)
- 媒体管理(目前仅支持图片) Media management (basic support foruploading and rendering images in content)
- 用户,角色,成员及资料数据 Users, roles, membership and profiledata (Users/Roles/Permissions, Mgmt)
- 面向 Live Writer及MetaWebBlog 的博客XML-RPC 功能 XML-RPC (Live Writer, MetaWebBlog) support for blogs
- 基本博客系统 Basic blog (create and manage blogs and posts, RSS/Atom,draft/publish, archives)
- 评论 Comments – Associate comments with content types, manage comments,spam protection
- 标签 Tags – Associate tags with content types, browse by tag
- 设置-应用层,扩展层设置定义及UI管理 Settings – App-level,extension-level settings definition and UI/management
- 主题 Themes – Theming model, UI to install/remove themes, preview themes
- 安全权限 Users/Roles – Authentication/permissions, users and role management,default roles and permissions, UI trimming
- 安装 Setup
- 简单导航 Simple navigation
- 多租户 Multi-tenancy
- 支持 Azure Azure support
- 命令行工具 Command-line tooling
- 事件模型(插件机制) Event model (a.k.a. plugins)
- 内容类型元数据 Content type meta-data
近期 Priorities for the current iteration, ending 7/2
- 模块开发 Module development
- 开发流程,代码控制指南 Guidance on development process, sourcecontrol, etc.
- 包格式及源码规范 Packaging format suitable for distribution and continued development(including source code)
- 主要的基于 orchardproject.org 的项目列表Preliminary list of known projects on orchardproject.net
- 安装 Installation
- 版本 Versions
- 依赖项 Dependencies
- 数据移植 Data migrations
- 动态编辑 Dynamic compilation
- 动态内容部件,域 Dynamic content parts, fields
- 类型包含部件,部件包含域 Types have parts, parts have fields
- 行式化及标准化容器 Formalize & standardize containers
- 动态内容定义的导入导出 Import and export of dynamic typedefinitions
- 域类型可以有多个 UI 表现 Field types can have multiple UI representations
- 实现基本域类型,例如字符串,枚举等 Implementation of basic field typessuch as string, enum, etc.
- 搜索 Search
- 集成 Lucene Integration of Lucene
- 后台索引 Background indexation
- ContentManager中集成搜索 Integration of searchin ContentManager
- 前台搜索框及搜索结果界面 Search field and results UI integrationinto front-end
- 本地化和时区 Localization & time zones
- 网站级Culture定义,可以被自定义模块覆盖(基于个人信息,来自浏览器设置,或来自地理位置) Culture defined at the site level, withpossible override by custom modules (to be profile-based, or from browsersettings, or from geolocation for example)
- 基于标准.po格式的本地化文件资源(一种语言一个文件模块) Localization files for resource stringsunder standard .po format (one file per language and per module)
- 内容项目本地化 to be done Localization of content items: TBD
- 性能优化 More performance work
- 用户体验优化 to be done UX priorities: TBD.
将来 Areas of focus for future iterations (backlog, not inpriority order)
- 发布-工作流/权限,草稿批准,历史 Publishing – Workflow/permissions, draft approval, history (restorefrom)
- 多模板 Multiple templates for pages
- 评价/评级 Votes/ratings – Associate ratings/rankings with content types
- 搜索引擎优化 SEO – Semantic URLs, metas/keywords, Web standards, sitemap
- 优化搜索 Search – Ability to easily search application content using local andexternal engines
- 优化导航 Navigation – Navigation management, front-end UI (menus,breadcrumbs)
- 邮件订阅 Email subscriptions
- 管理增强-UI增强,仪表盘,通知/email Admin – UI improvements, dashboard,notifications/email
- 数据库配置及导入导出 Database – Database configuration (local in-memory and server),import/export
- 个人信息,头像,声望系统 Profiles - User profiles, avatars,reputation system
- 模板增强,浏览器内编辑等 Themes – Additional themes improvements(in-browser editing, etc)
- 插件增强 Plug-ins – Extensibility model for event handling and filteringhooks
- 窗体小部件 Widgets – Admin UI and management for widgets, widget groups,mapping to zones
- 可扩展包及安装界面 Packaging – Extension packaging and installation UI
- 服务-更新提醒,在线及无损更新 Servicing – Update notifications,in-place and non-destructive updates
- 缓存,优化,脚本合并缩小Performance – Caching, optimization, scriptcombining/minification
- 日志 Logging – Trace, debugging, profiling, error handling
- 分析 Analytics – Reporting, site-use statistics
- 国际化 i18n – Localizable, time zone and calendar aware
- 在线程序目录 Marketplace – Ability to browse/install extensions from onlinegallery
- 手机支持 Mobile - Support for management, moderation, publishing from mobiledevice
- 其他商业,维基,论坛,广告等领域特定程序 Other Domain-specific packages –Commerce, Wiki, Forums, Ads, etc
- 数据移植 Data migrations
以上内容值得期待,下半年 FLYabroad 工作室将会拿出更多时间研究 orchard project ,并考虑使用该项目为基础框架开发简单应用,有兴趣的朋友可以加入 orchardproject 小组 。
更多 Orchard project 文档请直接访问官方网站:
http://www.orchardproject.net/docs/MainPage.ashx
Multi-tenancy解释:
http://en.wikipedia.org/wiki/Multitenancy
http://tech.ddvip.com/2010-02/1266835975145197.html
Multi-tenancy 是一种软件体系结构,在这种体系结构中软件运行在 software as a service 服务商的服务器上,服务于多个客户组织即tenant。Multi-tenancy 使每个客户组织都工作在一个为其定制好的虚拟软件或者解决方案实例中,并认为自己在独享环境。Multi-tenancy 与多软件实例体系结构不同,多软件实例结构拥有多个软件实例并且每个实例服务于一个客户组织,而 Multi-tenancy 结构是由一个软件实例为所有的客户组织提供服务。多软件实例结构物理上隔离客户组织的数据,而 Multi-tenancy 环境中的软件或者解决方案逻辑上隔离客户组织的数据和配置。
posted on 2010-05-26 22:26 FLYabroad 阅读(6459) 评论(15) 编辑 收藏 举报