.NET 系统以Main方法作为应用程序的启动入口点,Enterprise Solution的启动程序源代码如下:
[STAThread]
static void Main()
{
string MAIN_INSTANCE_KEY = "EnterpriseMain";
SingleProgramInstance mainInstance = new SingleProgramInstance(MAIN_INSTANCE_KEY);
if (!mainInstance.IsSingleInstance)
{
mainInstance.RaiseOtherProcess();
return;
}
CustomExceptionHandler eh = new CustomExceptionHandler();
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CustomExceptionHandler.CurrentDomain_UnhandledException);
Application.ThreadException += new ThreadExceptionEventHandler(eh.OnThreadException);
Application.SetCompatibleTextRenderingDefault(false);
Application.EnableVisualStyles();
Application.DoEvents();
BaseCommon.SetProcessPriority(ProcessPriorityClass.AboveNormal);
SerializationHelper.Optimization = SerializationOptimization.Fast;
SerializationHelper.PreserveObjectIDs = false;
ReadConfigFile();
ApplicationInstance.Appplication.Run(Environment.GetCommandLineArgs());
}
1 单件模式,电脑只能启动一个进程实例。如果系统已经启动,只将进程重新唤醒,显示主窗体。
2 异常处理。WinForms程序实现自定义业异常处理,将.NET代码中抛出的异常拦截处理,包含抛出异常的完整堆栈。
3 设置进程的优先级别,加快执行速度。
4 设置ORM序列化模式。每一个Entity都有一个Id标识符,这里设置不生成Id,可加块ORM运行速度。
如果是调试阶段,可以保留此选项以方便调试诊断问题。
5 读取配置文件。
6 启动程序主界面。应用到参数化的方式启动。这里应用可以启动组件缓存,验证许可文件,测试数据库连接,连接应用服务器(.NET Remoting)程序。
比如给进程传递启动参数FLEX MIS MIS 2,这4个参数的含义依次是登入FLEX帐套,使用的登入用户名和密码依次是MIS,登入界面使用2(简体中文)。