什么是Serenity平台
Serenity是一个 ASP.NET MVC / Javascript 的已经建立在开源技术上的平台
它的目标是让开发变得更容易,同时降低维护成本,避免样板式代码,减少重复性的任务所花费的时间和应用最好的软件设计实践。
它是用来做什么/给谁用的
Serenity 是最适合业务应用程序,有许多数据输入表单或公共网站面临的管理界面。它的功能可以用于其他类型的web应用程序。
去哪里找资料
在阅读本指南和教程之后,遵循下面的参考资料,了解更多有关Serenity的信息。
- Github Repository:
- https://github.com/volkanceylan/Serenity
- Issues / Questions
- https://github.com/volkanceylan/Serenity/issues
- Change Log:
- https://github.com/volkanceylan/Serenity/blob/master/CHANGELOG.md
- Serene Application Template:
- https://visualstudiogallery.msdn.microsoft.com/559ec6fc-feef-4077-b6d5-5a99408a6681
- Tutorial / Sample Source Code:
- https://github.com/volkanceylan/Serenity-Tutorials
What's In The Name
Serenity 字典里意味着和平、舒适 、平静。
这是我们正在用Serenity努力实现的。我们希望在安装和使用它时你也会有这样的感觉……
它提供了什么特性
- 一个模块化、基于服务的web应用程序模型
- 代码生成器生成初始服务/为SQL表生成用户界面代码
- T4引用脚本代码生成基于服务器小部件与智能感知/编译时验证
- T4 based code generation to provide compile time type safety and intellisense while calling AJAX services from script side.
- 从脚本端调用AJAX服务时,基于T4代码生成提供编译时类型安全和智能感知。
- An attribute based form definition system (prepare UI in server side with a simple C# class)
- 基于属性的表单定义系统(一个简单的c#类在服务器端预备UI)
- 通过表单定义自动无缝的数据绑定(< - >实体< - >服务)。
- 缓存助手(本地/分布)
- 自动缓存验证
- 配置系统(存储介质独立。设置存储在数据库,文件等等…)
- 简单的日志记录
- 报告(报告只提供数据,没有依赖呈现,类似于MVC)
- 脚本绑定,缩小(利用节点/ UglifyJS / CleanCSS)和内容版本(没有更多的F5 /清除浏览器缓存)
- Fluent SQL Builder (SELECT/INSERT/UPDATE/DELETE)
- Micro ORM (集成Dapper)
- Customizable handlers for REST like services that work by reusing information in entity classes and do automatic validation.可定制的处理程序等其他服务工作通过重用信息实体类和自动验证。
- 基于特性的导航菜单
- UI 本地化 (本地化文本存储在json文件、嵌入式资源数据库,在内存中类,任何地方)
- 数据本地化(使用一个扩展表机制有助于定位即使用户输入的数据,如查找表)
- Script widget 系统 (灵感来自jQueryUI但更适合c#代码)
- 客户端和服务器端验证(基于jQuery验证插件,但抽象依赖)
- 审计日志记录(在CDC 不可用的地方)
- 系统基于数据集成测试
- 动态脚本
- 脚本端模板
背景
这部分最初是写给CodeProject上的一篇文章介绍Serenity。文章被拒绝的原因是,它不包含代码而是一个广告代码。他们是对的,因为我在教程里面放了电影指导教程链接,而不是复制粘贴代码。
您可以安全地跳到下一章,如果你不喜欢阅读历史:)
开发人员,我们每天都解决同一方面的问题。就像大学生在他们的问题书本上面工作一样
即使我们知道他们已经解决了答案的地方,它不会阻止我们的工作。事实上,它可以帮助我们提高我们的技能,嘿,你不能学习没有犯一些错误,你能吗?但是我们应该学会培训和浪费时间之间画一条线。
当你开始一个新项目,你有几个决策平台,架构和图书馆。今天你有很多的选择每一个主题。是的,有一些选项是好的,只要他们是有限的,因为我们的时间不是无限的。这里是一个Serenity简短的历史,旨在处理常见的任务你处理业务应用程序,并让你抽出你宝贵的时间专注于特定于应用程序域的特性我第一份真正的工作在网络技术在web代理设计国家网站的一些知名产业,如自动化公司(顺便说一句,我们谈论的是10 +年过去,时间流动快)。
我有一个软件架构师职业在桌面应用程序之前签署,我被要求设计一个ASP.net WebForms平台。他们解释说,他们有很多共享的模块,比如新闻,画廊,在每个站点导航,但随着需求是不同的,他们必须复制/粘贴特定于每一位客户定制代码。当他们想要添加一个共同的特点,他们不得不对每个网站重复它。
当时市场没有很多CMS系统,我设计了他们之中的一个,甚至都不知道它被称为CMS。对我来说,这并不完美,甚至不足够好,我只是设计了几个星期。但是他们对结果很满意,用了新网站的开发时间从月减少到天/周。也比以前生成的代码更易于管理。
从经验、错误中学习,那是poor-mans CMS变成更好的东西。进化后,该平台是被应用在不同的领域,像一个服务台系统,CRM,ERP、人事管理、电子文档管理、大学生信息系统等等。
兼容不同类型的应用程序,系统甚至遗留数据库,必须灵活,经历了许多架构的变化。
现在需要我们用Serenity。尽管它是一个开源项目大约2年了,它有一个大得多的背景。但也年轻,精力充沛,不害怕改变。它可以适应新技术,因为他们成为受欢迎的和稳定的。这可能意味着打破不时变化,但是我们努力让他们保持最低而不偏执的向后兼容性。