我计划在C#3.5中开发自己的简单优雅的Web应用程序框架。我有一些想法,但还不是应该如何实施的最佳实践。也许你可以帮忙吗?
我的想法:
您是否有想法开始设置此类框架的最佳方式是什么?或者在C#中已经存在这样的框架了吗?
这是一个小小的想法,当你有表'Customer'和'Address',并且想要发布一个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!"
引擎接收帖子,并通过Reflection收集所需命令的类,在本例中为DatabaseCommand和MailCommand并运行它。你看,我想使用某种排序排序。在这种情况下,Customer-command必须是第一个,然后是Mail(请参阅Mail.AFTER)和/或地址(请参阅依赖关系#Customer.ResultId#)。
那你对这个项目有什么看法?
此致
答案 0 :(得分:4)
您考虑过扩展MVC模型而不是从头开始吗?
不完全确定你要用xslt做什么 - 你想发送它xml并让它转换回html吗?如果是这样,您可以尝试继承ActionResult并使用标准.NET库执行转换。
这种方法将支持mysql,sql server,oracle等按照.NET库,具有security / auth,可以使用自定义路由来执行你的/ a / b / c - > /?id = 33映射,基于OO并且可以插入,缓存可以完成,因为它的基础是ASP.NET,并且可以在IIS上启用GZIP / DEFLATE压缩。
将xslt应用于数据/模型层听起来不是正确的地方 - 我会把它放得更接近视图层。
关于你的POST数据,你可以选择使用标准的MVC方式来处理这个动词,否则听起来你想要一个基于RESTful的架构http://en.wikipedia.org/wiki/Representational_State_Transfer
当然你总是可以继承IHttpHandler并给自己带来很多痛苦;)
答案 1 :(得分:1)
开发任何框架(基于网络或不基于网络)都涉及大量工作。考虑Ruby的两个流行的Web框架“Rails”和Python的“Django”。它们由团队建造,相当广泛。你可以建立一个,但肯定会占用很多时间。
我所知道的.NET网络框架并不多,但以下是值得注意的(虽然它们可能不一定都是“Web框架”):
答案 2 :(得分:0)
对于URL解析,我最近在我现有的框架中实现了它。它利用了ASP.Net路由引擎。
我可以向您发送包含如何使用它的示例代码的模块。
<强>更新强>
这是真正的帮助:
其他: