我打算在 C# 3.5 中开发自己的简单而优雅的 Web 应用程序框架。我有一些想法,但还不是最佳实践应该如何实施。也许你能帮忙?
我的想法:
- 它是一个 C# 库 (DLL)
- 它需要使用 XSLT 作为模板语言,所以 XML 必须是我的 data-/model-layer 的输出
- 它需要连接到不同的数据库,如 MySQL en SQL Server 和 ODBC
- 它需要是命令库,比如命令设计模式,所以我可以发布一个命令,其中包含一些分组到该命令的参数并执行“东西”
- 来自 1 个帖子的所有命令和数据库操作都需要在 1 个事务中,因此所有内容都可以回滚
- 它需要有一个安全/授权模型(什么是好的?)
- 它需要某种 URL 解析,例如 /a/b/c 解析为 /?id=33
- 它需要是可插拔的,因此当我为有特定需求的人创建网络应用程序时,我不需要更改我的基本引擎库
- 它需要在内部具有缓存和/或压缩技术
- 它需要快速、线程安全和执行
- 它需要有调试日志
- 如果能在数据/模型层中实现某种动态脚本(例如 IronPython),以便将我的输出动态脚本化到 XSLT,那就太好了,这样就可以快速进行调整,而无需进入 Visual Studio 并调整我的 DLL。
您是否知道开始建立这样一个框架的最佳方式是什么?还是在 C# 中已经有这样的框架?
这是一个小想法,当您拥有“客户”和“地址”表,并且您想发布一个 html 表单以将记录添加到数据库中并邮寄给他时,您需要在 1 个 postaction 中发布这些字段:
Customer.ACTION = add
Customer.Name = "John Smith"
Customer.Email = "john.smith@emailaddress.com"
Address.ACTION = add
Address.CustomerId = #Customer.ResultId#
Address.Street = "Mainstreet"
Address.Number = "1"
Mail.ACTION = send
Mail.AFTER = Customer
Mail.To = #Customer.Email#
Mail.From = "test@case.com"
Mail.Subject = "Welcome"
Mail.Body = "Welcome new customer!"
引擎接收帖子,并通过反射收集所需命令的类,在本例中为 DatabaseCommand 和 MailCommand 并运行它。你看,我想对排序使用某种排队。在这种情况下,客户命令必须是第一个,然后是邮件(请参阅 Mail.AFTER)和/或地址(请参阅依赖项#Customer.ResultId#)。
那么你对这个项目有什么想法呢?
问候