希望这些建议,能推动管理软件开发的规范化进程 (当前操作员类BaseUserInfo)
我们编写管理软件时,很重要的一个基础观念是:
1. 当前软件系统是谁在操作?
2. 当前软件系统的操作者部门信息是什么? 公司信息是什么? 通过这些信息获得相关数据.
3. 当前软件系统操作者是否为系统管理员?
4. 当前软件系统是谁在输入数据,谁在修改数据?
这个基础思想甚至会影响你整个系统的架构,贯穿各个层。
若没有这些数据,操作员在你系统里干了坏事,总得能记录吧?好让警察来破案。
在管理软件中,在登录过程中,确认当前操作员是谁?谁在操作数据等。
当软件系统不需要登录时,也可以把IP地址等标示信息,看成是一个特定的用户信息。
每个公司侧重的数据,每个软件侧重的数据理念都会有些不同,命名也有些不同,
其中的信息也大有不同,现在我只是提一个建议。
大家都统一命名为 BaseUserInfo,类的实体都命名为 UserInfo。
你可能这里的属性只需要几个,但是多几个也无妨,就当是后备用好了。
在C/S系统中,当前用户的信息可以存储在 Static 类里,在B/S系统中可以存在 Session 中。
代码
1 1//------------------------------------------------------------
2 2// All Rights Reserved , Copyright (C) 2008 , Jirisoft , Ltd.
3 3//------------------------------------------------------------
4 4
5 5using System;
6 6
7 7namespace Jirisoft.Common.Utilities
8 8{
9 9 /// <summary>
10 10 /// BaseUserInfo
11 11 /// 当前操作员信息的简要信息类
12 12 ///
13 13 /// 修改纪录
14 14 ///
15 15 /// 2008.08.26 JiRiGaLa 版本:1.2 整理代码。
16 16 /// 2006.05.03 JiRiGaLa 版本:1.1 添加到工程项目中。
17 17 /// 2006.01.21 JiRiGaLa 版本:1.0 远程传递参数用。
18 18 ///
19 19 /// 版本:1.2
20 20 ///
21 21 /// <author>
22 22 /// <name>JiRiGaLa</name>
23 23 /// <date>2008.08.26</date>
24 24 /// </author>
25 25 /// </summary>
26 26 [Serializable]
27 27 public class BaseUserInfo
28 28 {
29 29 /// <summary>
30 30 /// 操作员代码
31 31 /// </summary>
32 32 private String id = String.Empty;
33 33 public String ID
34 34 {
35 35 get
36 36 {
37 37 return this.id;
38 38 }
39 39 set
40 40 {
41 41 this.id = value;
42 42 }
43 43 }
44 44
45 45 /// <summary>
46 46 /// 操作员用户名
47 47 /// </summary>
48 48 private String userName = String.Empty;
49 49 public String UserName
50 50 {
51 51 get
52 52 {
53 53 return this.userName;
54 54 }
55 55 set
56 56 {
57 57 this.userName = value;
58 58 }
59 59 }
60 60
61 61 /// <summary>
62 62 /// 操作员姓名
63 63 /// </summary>
64 64 private String realname = String.Empty;
65 65 public String Realname
66 66 {
67 67 get
68 68 {
69 69 return this.realname;
70 70 }
71 71 set
72 72 {
73 73 this.realname = value;
74 74 }
75 75 }
76 76
77 77 /// <summary>
78 78 /// 当前的组织结构部门代码
79 79 /// </summary>
80 80 private String departmentID = String.Empty;
81 81 public String DepartmentID
82 82 {
83 83 get
84 84 {
85 85 return this.departmentID;
86 86 }
87 87 set
88 88 {
89 89 this.departmentID = value;
90 90 }
91 91 }
92 92
93 93 /// <summary>
94 94 /// 当前的组织结构部门编号
95 95 /// </summary>
96 96 private String departmentCode = String.Empty;
97 97 public String DepartmentCode
98 98 {
99 99 get
100 100 {
101 101 return this.departmentCode;
102 102 }
103 103 set
104 104 {
105 105 this.departmentCode = value;
106 106 }
107 107 }
108 108
109 109 /// <summary>
110 110 /// 当前的组织结构部门名称
111 111 /// </summary>
112 112 private String departmentFullName = String.Empty;
113 113 public String DepartmentFullName
114 114 {
115 115 get
116 116 {
117 117 return this.departmentFullName;
118 118 }
119 119 set
120 120 {
121 121 this.departmentFullName = value;
122 122 }
123 123 }
124 124
125 125 /// <summary>
126 126 /// 当前的组织结构公司代码
127 127 /// </summary>
128 128 private String companyID = String.Empty;
129 129 public String CompanyID
130 130 {
131 131 get
132 132 {
133 133 return this.companyID;
134 134 }
135 135 set
136 136 {
137 137 this.companyID = value;
138 138 }
139 139 }
140 140
141 141 /// <summary>
142 142 /// 当前的组织结构公司编号
143 143 /// </summary>
144 144 private String companyCode = String.Empty;
145 145 public String CompanyCode
146 146 {
147 147 get
148 148 {
149 149 return this.companyCode;
150 150 }
151 151 set
152 152 {
153 153 this.companyCode = value;
154 154 }
155 155 }
156 156
157 157 /// <summary>
158 158 /// 当前的组织结构公司名称
159 159 /// </summary>
160 160 private String companyFullName = String.Empty;
161 161 public String CompanyFullName
162 162 {
163 163 get
164 164 {
165 165 return this.companyFullName;
166 166 }
167 167 set
168 168 {
169 169 this.companyFullName = value;
170 170 }
171 171 }
172 172
173 173 /// <summary>
174 174 /// 操作员类型
175 175 /// </summary>
176 176 private String operatorCategory = String.Empty;
177 177 public String OperatorCategory
178 178 {
179 179 get
180 180 {
181 181 return this.operatorCategory;
182 182 }
183 183 set
184 184 {
185 185 this.operatorCategory = value;
186 186 }
187 187 }
188 188
189 189 /// <summary>
190 190 /// 操作员类型名称
191 191 /// </summary>
192 192 private String operatorCategoryFullName = String.Empty;
193 193 public String OperatorCategoryFullName
194 194 {
195 195 get
196 196 {
197 197 return this.operatorCategoryFullName;
198 198 }
199 199 set
200 200 {
201 201 this.operatorCategoryFullName = value;
202 202 }
203 203 }
204 204
205 205 /// <summary>
206 206 /// IP地址
207 207 /// </summary>
208 208 private String iPAddress = String.Empty;
209 209 public String IPAddress
210 210 {
211 211 get
212 212 {
213 213 return this.iPAddress;
214 214 }
215 215 set
216 216 {
217 217 this.iPAddress = value;
218 218 }
219 219 }
220 220
221 221 /// <summary>
222 222 /// MAC地址
223 223 /// </summary>
224 224 private String macAddress = String.Empty;
225 225 public String MACAddress
226 226 {
227 227 get
228 228 {
229 229 return this.macAddress;
230 230 }
231 231 set
232 232 {
233 233 this.macAddress = value;
234 234 }
235 235 }
236 236
237 237 /// <summary>
238 238 /// 当前语言选择
239 239 /// </summary>
240 240 private String currentLanguage = String.Empty;
241 241 public String CurrentLanguage
242 242 {
243 243 get
244 244 {
245 245 return this.currentLanguage;
246 246 }
247 247 set
248 248 {
249 249 this.currentLanguage = value;
250 250 }
251 251 }
252 252
253 253 /// <summary>
254 254 /// 当前布局风格选择
255 255 /// </summary>
256 256 private String themes = String.Empty;
257 257 public String Themes
258 258 {
259 259 get
260 260 {
261 261 return this.themes;
262 262 }
263 263 set
264 264 {
265 265 this.themes = value;
266 266 }
267 267 }
268 268
269 269 /// <summary>
270 270 /// 描述
271 271 /// </summary>
272 272 private String description = String.Empty;
273 273 public String Description
274 274 {
275 275 get
276 276 {
277 277 return this.description;
278 278 }
279 279 set
280 280 {
281 281 this.description = value;
282 282 }
283 283 }
284 284
285 285 /// <summary>
286 286 /// WebService 用户名
287 287 /// </summary>
288 288 private String webServiceUsername = "Jirisoft";
289 289 public String WebServiceUsername
290 290 {
291 291 get
292 292 {
293 293 return this.webServiceUsername;
294 294 }
295 295 set
296 296 {
297 297 this.webServiceUsername = value;
298 298 }
299 299 }
300 300
301 301 /// <summary>
302 302 /// WebService 密码
303 303 /// </summary>
304 304 private String webServicePassword = "Jirisoft";
305 305 public String WebServicePassword
306 306 {
307 307 get
308 308 {
309 309 return this.webServicePassword;
310 310 }
311 311 set
312 312 {
313 313 this.webServicePassword = value;
314 314 }
315 315 }
316 316
317 317 public BaseUserInfo()
318 318 {
319 319 this.GetUserInfo();
320 320 }
321 321
322 322 public void GetUserInfo()
323 347
324 348 /// <summary>
325 349 /// 当前操作员是否为系统管理员
326 350 /// </summary>
327 351 public bool IsAdministrator
328 352 {
329 353 get
330 354 {
331 355 if (this.ID.Equals(Jirisoft.Common.OperatorCategory.Administrator.ToString()))
332 356 {
333 357 return true;
334 358 }
335 359 if (this.OperatorCategory.Equals(Jirisoft.Common.OperatorCategory.Administrator.ToString()))
336 360 {
337 361 return true;
338 362 }
339 363 return false;
340 364 }
341 365 }
342 366 }
343 367}
344 368


浙公网安备 33010602011771号