3

我有LoginForm,Splashscreen和.MainFormAuthentification

当前的设计是LoginForm在任何其他操作之前显示,并且MainForm.

Main() 调用模态 LoginForm 来检查凭据,如果可以的话 Application.Run(MainForm) 与 Splashcreen。

问题:当 EF 检查 uid/pwd 时,LoginForm 冻结 6 秒。结果,闪屏显示 < 1 秒。

Q1:有没有办法加快冷启动,因为在 MainForm 启动之前只检查用户/密码组合?

Q2:最好的开始序列设计是什么?你的想法:

  1. LoginForm,调用Spashscreen上下文加载虚拟数据(所有用户),
  2. 然后显示LoginForm并检查凭据。
  3. 在模态 LoginForm 关闭 Run(MainForm) 之后。

注意: EF600rc 还没有 UNIQUE 注释。

4

3 回答 3

0

据我所知,我可以找到答案:

A1:升级 EF,并使用 Ngen 和 VS2013 为 EntityFramework 程序集生成本机映像,如链接(性能问题)。但是VS2013不是我的选择。其他选择可能是降级到 EF5.?!?

A2:建议的登录表单的启动顺序与初始屏幕暴露是好的。

于 2013-11-08T23:03:09.063 回答
0

更好的解决方案是使用显示登录屏幕的框架窗口。登录屏幕检查凭据并让框架窗口切换到主屏幕。

你可以在这里阅读。源代码也可用。

于 2013-10-30T09:31:01.083 回答
0

关于序列

启动画面有助于为您的应用程序提供“面子”。它们通常很吸引人,等等等等,但它们对于开发人员来说是一个很好的工具,可以让应用程序的某些部分在幕后初始化。因此,有时这个批量最初是在身份验证之前或之后,具体取决于应用程序。很多时候它会晚一些,因为必须加载与用户相关的数据。

现在从用户的角度来看,如果视图 Login->Splash->Application 过渡太多,IMO 尤其是考虑到将两者结合起来的可能性。

另类的想法

这是另一个满足要求并使编程更容易的想法。您可以将 2 与启动屏幕 UID 的一些精心设计结合起来,密码字段可能就在启动屏幕上。然后,当单击用户 ID/密码并且服务器正在进行身份验证时,您可能会在用户通过身份验证(> 3 秒)时继续显示一些“进度条”,您现在可以预加载您的应用程序数据(授权/安全数据等)和仍然继续。

我不熟悉 MS 技术,因此无法具体说明,但鉴于您面临的问题的性质,这应该很容易完成。祝你好运。

于 2014-07-18T18:48:22.227 回答