C#项目架构搭建经验

发表于:2014-7-28 09:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:cctext    来源:51Testing软件测试网采编

  读过.Net项目中感觉代码写的不错(备注1)有:bbsMax(可惜唧唧喳喳鸟像消失了一样),Umbraco(国外开源的cms项目),Kooboo(国内做开源cms)。本人狭隘,读的代码不多,范围也不广泛。
  你是否一直渴望自己能开发出一套系统架构,让人读起来感觉到程序有条理,结构很合理。
  好的架构师需要具备:
  1.项目经验丰富。(应该是从一堆堆项目中走出来的,丰富的经验比大篇大论的理论更深刻。)
  2.知识的全面性,基础的扎实程度。(知识的全面性不要求你什么都知道,起码要能熟练掌握WCF,Silerlight,WebService,WindowService,Asp.net,WinForm,Asp.net Mvc,ORM(Entity Framework,Linq,NHibernate)DI/IOC(Autofac,Unity,Cast),Javascript(javascript能自己封装类库,很熟练jquery),Ajax(js帮助方式,AjaxPanel),OAuth(Open Identity),OData等)
  3.会从不同的角度去了解问题。(但不必什么语言都懂,起码你不能只懂一种技术,当你去读不同语言实现的架构时会给你带来不一样的感觉,处理事情的方式。比如:Django,或者Ruby On Rails,可以让你能了解到MVC架构的真谛,在读Java的struts的感觉又是不同的感觉)
  4.熟练应用的设计模式。(行为模型,结构模式,创建型模式)
  5.对程序有浓厚的兴趣。(如果你只把程序当作换取收入的一种技能,估计很难成为资深级别;业余时间【晚上8:00到10:00你在忙什麽,你将在你的未来收获什么。】(备注2),你是否能达到每天这样做,从毕业一直到离开这个行业,业务时间一直把程序作为你的爱好,它是否在业余时间能成为能让你充实的东西)
  6.理科是否优秀。(不管你信不信,如果你理科不好,计算机技术你成为高手会很漫长)
  怎么搭建c#项目架构像计算机一样运行的计算机
  1.Boot.cs,它应该在工程中出现在什么位置,它能做什么事情。
  配置信息管理类的初始化(加载)。。。
  系统信息管理类的初始化(加载)。。。
  业务订阅实现的初始化(加载)。。。
  系统适配管理类初始化(加载)。。。
  模版引擎初始化(加载)。。。
  theme管理类初始化(加载)。。。
  plugin管理类初始化(加载)。。。
  widget管理类初始化(加载)。。。
  数据操作实现类初始化(加载)。。。
  等等
  实现示例:
1     protected void Application_BeginRequest(object sender, EventArgs e)
2     {
3             if (false == hasInit)
4             {
5                 lock (locker)
6                 {
7                     if (false == hasInit)
8                     {
9                         // 第一次HttpApplicaiton初始实例化时,启动Boot类中全局静态型变量信息
10                         // AllEnums初始化:包含Enum属性,字段,注解信息,避免每次使用enum上下文信息时都动态创建;
11                         // AllSettings初始化:避免全局唯一配置管理类多次初始化,保证应用程序池中保留一份对象实例
12                         // 配置信息管理类的初始化(加载)。。。
13                         // 系统信息管理类的初始化(加载)。。。
14                         // 业务订阅实现的初始化(加载)。。。
15                         // 系统适配管理类初始化(加载)。。。
16                         // 模版引擎初始化(加载)。。。
17                         // theme管理类初始化(加载)。。。
18                         // plugin管理类初始化(加载)。。。
19                         // widget管理类初始化(加载)。。。
20                         // 数据操作实现类初始化(加载)。。
21                         Boot.Init();
22                     }
23                 }
24             }
25
26             // 每次http请求开始时,都需要初始化http上下文包装类
27             AppContext.Init();
28 。。。。。。
29     }
30
31     /// <summary>
32     /// 启动时
33     /// </summary>
34     public class Boot
35     {
36         /// <summary>
37         /// 初始化。。。
38         /// </summary>
39         public static void Init()
40         {
41             // 全局系统变量加载
42             Globals.Init();
43
44             // 全局唯一配置信息加载
45             SettingsManager.Init();
46
47             // 全局Enums上下文加载
48             AllEnums.Init();
49             // 全局配置信息
AllSettings.Init();
50             // 初始化Theme代理实现类
51             ThemeProxies.Proxies.Clear();
52             ThemeProxies.Proxies.Add(new DefaultThemeProxy());
53 。。。。。。
54          }
55      }
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号