we have a slightly smaller project (about 30 pages) built on Caliburn. As I see it, the only complication with more pages would be memory consumption, since caliburn in its out-of-the-box behavior initializes all pages (screens/viewmodels) and keeps them in memory. We have created our custom way of handling this - kind of "lazy screen conductors" that creates viewmodel only when its page is requested and there is also a way to close it (and thus let garbage collector dispose of it). So now it would not matter whether there was 30 or 300 pages in the application. It would eat as much memory as needed for opened pages (supposing a user won't need all 300 pages opened at once).
Btw: I plan to move to Caliburn.Micro so I'll have to move it to this framework. On the other hand, Caliburn.Micro is much cleaner (and I have also much better understanding of it than I had when creating the solution for old Caiburn) so I expect it to be a good idea to refactor the solution.
总而言之,应用程序的大小和复杂性并不重要。 为了更好地了解 Caliburn 为何有用,我建议阅读 Rob Eisenberg 的系列文章,从这里开始。
请注意,我们鼓励新项目使用 Caliburn Micro,而不是原来的 Caliburn。 Rob 的来自 MIX 10 的视频是另一个可以提供帮助的资源,我们讨论了如何滚动您的自己的框架(独立于 Caliburn)。
We use Caliburn on all of our projects (but that's misleading because we the ones who developed it). :-)
Number of tables will have no impact, as Caliburn has nothing to do with data access. Number of "pages" doesn't necessary have an impact either. The use of the term "page" leads me to think that you have a navigation (browser style) UI metaphor in mind. If so, you can still benefit from Calbiurn when using that approach however it is not the natural "Caliburn way".
To sum up, size of the application and complexity doesn't matter. In order to get a better feel of why Caliburn would be useful, I recommend reading the series of posts by Rob Eisenberg, beginning here.
Note that we are encouraging new projects to use Caliburn Micro, instead of the original Caliburn. An additional resource to help might be Rob's video from MIX 10 we he discusses how to roll your own framework (independent of Caliburn).
发布评论
评论(2)
我们在 Caliburn 上构建了一个稍小的项目(大约 30 页)。在我看来,更多页面的唯一复杂之处是内存消耗,因为 calibburn 以其开箱即用的行为初始化所有页面(屏幕/视图模型)并将它们保存在内存中。我们创建了处理这种情况的自定义方法 - 一种“惰性屏幕导体”,仅在请求其页面时创建视图模型,并且还有一种方法可以关闭它(从而让垃圾收集器处理它)。因此,现在应用程序中有 30 页还是 300 页都不再重要了。它会消耗打开页面所需的内存(假设用户不需要一次打开所有 300 个页面)。
顺便说一句:我计划迁移到 Caliburn.Micro,所以我必须将其迁移到这个框架。另一方面,Caliburn.Micro 更干净(而且我对它的理解也比为旧的 Caiburn 创建解决方案时更好),因此我希望重构该解决方案是一个好主意。
we have a slightly smaller project (about 30 pages) built on Caliburn. As I see it, the only complication with more pages would be memory consumption, since caliburn in its out-of-the-box behavior initializes all pages (screens/viewmodels) and keeps them in memory. We have created our custom way of handling this - kind of "lazy screen conductors" that creates viewmodel only when its page is requested and there is also a way to close it (and thus let garbage collector dispose of it). So now it would not matter whether there was 30 or 300 pages in the application. It would eat as much memory as needed for opened pages (supposing a user won't need all 300 pages opened at once).
Btw: I plan to move to Caliburn.Micro so I'll have to move it to this framework. On the other hand, Caliburn.Micro is much cleaner (and I have also much better understanding of it than I had when creating the solution for old Caiburn) so I expect it to be a good idea to refactor the solution.
我们在所有项目中都使用 Caliburn(但这具有误导性,因为我们是开发它的人)。 :-)
表的数量不会产生影响,因为 Caliburn 与数据访问无关。
“页数”也不一定有影响。使用术语“页面”让我认为您心中有一个导航(浏览器样式)UI 隐喻。如果是这样,在使用该方法时您仍然可以从 Calbiurn 中受益,但这不是自然的“Caliburn 方式”。
总而言之,应用程序的大小和复杂性并不重要。
为了更好地了解 Caliburn 为何有用,我建议阅读 Rob Eisenberg 的系列文章,从这里开始。
请注意,我们鼓励新项目使用 Caliburn Micro,而不是原来的 Caliburn。 Rob 的来自 MIX 10 的视频是另一个可以提供帮助的资源,我们讨论了如何滚动您的自己的框架(独立于 Caliburn)。
We use Caliburn on all of our projects (but that's misleading because we the ones who developed it). :-)
Number of tables will have no impact, as Caliburn has nothing to do with data access.
Number of "pages" doesn't necessary have an impact either. The use of the term "page" leads me to think that you have a navigation (browser style) UI metaphor in mind. If so, you can still benefit from Calbiurn when using that approach however it is not the natural "Caliburn way".
To sum up, size of the application and complexity doesn't matter.
In order to get a better feel of why Caliburn would be useful, I recommend reading the series of posts by Rob Eisenberg, beginning here.
Note that we are encouraging new projects to use Caliburn Micro, instead of the original Caliburn. An additional resource to help might be Rob's video from MIX 10 we he discusses how to roll your own framework (independent of Caliburn).