SQL Server 2008R2 百度雲下載:
鏈接: https://pan.baidu.com/s/1HZNwEdWoQx1o5AfjT6W7oQ
提取碼: 關注公眾號【GitHubCN】回復3528獲取

SQL Server 2008 R2安裝激活序列號密鑰
開發版32位:MC46H-JQR3C-2JRHY-XYRKY-QWPVM
開發版64位:FTMGC-B2J97-PJ4QG-V84YB-MTXX8
工組版:XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q
WEB版:FP4P7-YKG22-WGRVK-MKGMX-V9MTM
企業版32位:R88PF-GMCFT-KM2KR-4R7GB-43K4B
企業版64位:GYF3T-H2V88-GRPPH-HWRJP-QRTYB (一般用這個)
標准版32位:CXTFT-74V4Y-9D48T-2DMFW-TX7CY
標准版64位:B68Q6-KK2R7-89WGB-6Q9KR-QHFDW
數據中心版32位:PTTFM-X467G-P7RH2-3Q6CG-4DMYB
數據中心版64位:DDT3B-8W62X-P9JD6-8MX7M-HWK38
插件式(AddIn)架構,不是一個新名詞,應用程序采用插件式拼合,可以更好的支持擴展。很多著名的軟件都采用了插件式的架構,如常見的IDE:Eclipse,Visual Studio,SharpDevelop等等。
這些插件式架構在實現上各有特色,但是基本原理大致相同:
定義插件框架,用來下載,創建,銷毀插件,並管理插件間的通信等等。
定義插件契約,定義統一的接口規范。獲取源碼
private void btLogin_Click(object sender, EventArgs e) { try { string ip = NetworkUtil.GetLocalIP(); string macAddr = HardwareInfoHelper.GetMacAddress(); string loginName = this.cmbzhanhao.Text.Trim(); string identity = WHC.Security.BLL.BLLFactory<WHC.Security.BLL.User>.Instance.VerifyUser(loginName, this.tbPass.Text, Portal.gc.SystemType, ip, macAddr); if (!string.IsNullOrEmpty(identity)) { UserInfo info = WHC.Security.BLL.BLLFactory<WHC.Security.BLL.User>.Instance.GetUserByName(loginName); if (info != null) { #region 獲取用戶的功能列表 List<FunctionInfo> list = WHC.Security.BLL.BLLFactory<WHC.Security.BLL.Function>.Instance.GetFunctionsByUser(info.ID, Portal.gc.SystemType); if (list != null && list.Count > 0) { foreach (FunctionInfo functionInfo in list) { if (!Portal.gc.FunctionDict.ContainsKey(functionInfo.ControlID)) { Portal.gc.FunctionDict.Add(functionInfo.ControlID, functionInfo.ControlID); } } } #endregion bLogin = true; Portal.gc.UserInfo = info; Portal.gc.LoginUserInfo = ConvertToLoginUser(info); this.DialogResult = DialogResult.OK; } } else { MessageDxUtil.ShowTips("用戶帳號密碼不正確"); this.tbPass.Text = ""; //設置密碼為空 } } catch (Exception err) { MessageDxUtil.ShowError(err.Message); } }