我需要构建一个'可自定义的'asp.net Web应用程序(不是asp.net mvc).
我正在考虑使用IoC容器将用户控件注入aspx页面.
有人试过吗?
简而言之,我认为这可以实现:
我使用Scott Guthrie的方法构建一个可重用的"用户控件库"(参见他的文章"创建和使用用户控件库").
该库中的控件和页面应具有动态接收用户控件的位置(例如,在asp PlaceHolder中).
在我的自定义Web应用程序中,构建在该库之上,我创建了特定的用户控件.
我将它们以某种方式放在IoC容器中,以便它们可以注入"用户控件库"的控件/页面中(例如,在PlaceHolders中).
而已.
这基本上可以用Spring.Net来完成,如http://blogger.forgottenskies.com/?p=70所讨论的那样,但是要注入用户控件.
有没有人对这些东西有一些经验?还是听起来很傻?备择方案 ?
我们的想法是可以在我的"用户控件库"之上构建不同的Web应用程序,而无需触及该库.
例如:在我的库中,我有一个包含4个文本框的页面,对于一个特定的应用程序,我需要添加一个文本框,而不更改页面的代码.我们的想法是在该页面中放置一个占位符,并在此占位符中动态注入我的自定义文本框.
我正在尝试优化数据库中的查询。该查询类似于以下内容:
select * from Account
inner join udf_Account('user') udfAccount
on Account.Id = udfAccount.AccountId
Run Code Online (Sandbox Code Playgroud)
实际上,真正的查询要长得多,但最重要的一点是它包含一些取决于用户 ID 的用户定义函数 (udf) 的内部联接。(所以这是常量参数,在查询评估期间不会改变)。
由于数据量很大,我的查询在生产数据库上大约需要 20 秒,这是不可接受的。
我已经看到,通过将函数的结果存储在临时表中并在查询中使用这些表可以大大减少查询的持续时间。
我问以下问题:
我可以避免使用临时表吗?这不是告诉 sql 该函数只能计算一次的方法吗?使用临时表意味着我的代码会发生一些重要的变化,这就是为什么如果我有另一个解决方案我会很高兴。
还有其他方法可以优化我的查询吗?