示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0
刘岛的Blog
本人原创文章及作品发布区,与51aspx相关内容已经转移到这里,也希望大家一如既往地支持51aspx.com的发展
posts - 88,  comments - 484,  trackbacks - 51
   
    (本文原标题:Asp.net源码程序分析所感——印度,一个不可轻视的近邻!)
    最近在国外Asp.net网站晃悠,搜集到了不少宝贝,觉得不错的就汉化调试一下发到51aspx与大家分享,一般代码美洲和欧洲的朋友发布比较多,这些朋友写的有个特点那就是比较粗狂,用的Asp.net技术比较罕见或者前卫(也许是我掌握的肤浅)。
    一直听说印度的软件业比较发达,而且平民化程度也比较高,我以前其实是不以为然的。直到前天下载了一个叫做Timmy M.John印度大学生朋友写的Asp.net程序才让我改变了这个看法,也深刻体会到了了印度软件业扎实的基础,还是言归正传看看那个代码吧,是采用Asp.net2.0(C#)开发的一个大学课程管理系统,是现在商用程序http://www.indiastudychannel.com/的一个雏形,主要功能:实现大学课程的搜索,用户注册后可以自行添加课程,可以通过后台管理大学以及所属二级学院等。下面是程序抓图(注:已经liudao汉化调试)


下面是类结构图

程序的功能方面实现起来并不是很轻松,但是这位印度朋友(Timmy M.John)实现起来思路清晰、简单明了,不像好多朋友一样一个简单的程序弄得很复杂,云山雾罩的。
M.John使用的是面向对象开发,我把几个积累代码给大家看看吧,先看一下数据库操作类:
DataManager.cs

把常用的sql方法写成一个类,看起来非常清晰,功能简单。大家常用的的SqlHelper类既有存储过程又有sql语句实现的方法,让新手一看就晕(我现在偶尔晕晕)~~

通用函数类(字符串处理等)

函数的调用也很简单

        protected void Page_Load(object sender, System.EventArgs e)
        
{
            
string query = "Select UserId, Name, Email, DateJoined from Members";

            dg.DataSource 
= Utils.DataManager.ExecuteQuery(query);
            
            dg.DataBind();
        }

    其他优秀的地方都体现在细节方面,比如Tab菜单的切换,验证函数的处理等。

    通过这个程序发现我们在软件方面要向印度方面学习的确实太多太多,我相信我们之间的差距并不是仅仅因为我们的母语不同而造成的,我们的基础软件教育需要反思的太多——为了暂时的小利益而放弃长远利益(特别是某些民间教育机构);软件需求大环境需要反思的太多——有时候是为了编程而写代码。感慨太多,所以把这个源码翻译了一下特分享给大家来研究、借鉴!

    ·去除了部分“印度”字样
    ·使数据库等等支持中文字符(修改排序规则,否则中文会变成问号)
    ·翻译了大部分菜单及控件名称
文中有翻译可笑或者不妥之处还望大家批评指正!(liudao)

该项目的完整源码下载地址>>

译者补注:该源码适合初学者,高手勿下!一个菜鸟认为“优秀”的代码可能也不足以说明一个国家软件业的如何如何,但是我们永远抱着一个学习的虚心态度去对待可能对于我们这个年代的年轻人没有什么坏处的!
   没想到文章发完以后引各位朋友这么热心的关注,总结一下:
 ·该代码对于高手来说确实是没有什么“优秀”可研,但是思路清晰,使新手容易上手,不云山雾罩
 ·大家要抱着初学者的心态来看待这个源码,过来人想想自己当初走的路,能分享一下经验最好
 ·高手应该在这里引领新手,应该指出新手的不足并提出合理的见解,不是指指点点(这些体现不出你的“高”)
 ·这里提到的印度也许是一个理想的不存在的国度——一个需要我们去实现的良好软件大环境


也许是本人太菜,也许是本人目光短浅,但一个不容置疑的事实——

印度!一个不可轻视的近邻!

讨论提示:
   1、不要就该源码本身的难易进行评论,毕竟大家的水平参差不齐
   2、本人是菜鸟,请各位不要见笑
   3、尽量列举国内优秀程序及与印度进行对比
   4、提一些可行的Asp.net学习的建议(特别是那些“高手”)
   5、我国与印度软件发展的差异化及我们需要在哪些方面加强
   6、对于任何与政治有关无关的攻击、诽谤的评论一律清除!

-----------------
E路有我 任你纵横

posted on 2007-07-06 16:38 liudao 阅读(4433) 评论(86)  编辑 收藏 所属分类: .net功能源码

FeedBack:
2007-07-06 16:45 | Axel [未注册用户]
印度的IT当然不可忽视,但文中的代码不能说明什么。
  回复  引用    
2007-07-06 16:48 | e [未注册用户]
@Axel

同意.

  回复  引用    
2007-07-06 16:48 | Nobody [未注册用户]
看不出来这怎么就能提高到中国与印度的差距上面来。

把程序写成这样的简洁明了是对程序员的基本要求;如果你的水平还是“SqlHelper类既有存储过程又有sql语句实现的方法,让新手一看就晕(我现在偶尔晕晕)~~”,那么在评论这个话题之前,你还需要提升你自己的水平。
  回复  引用    
2007-07-06 16:48 | web报表      
一般来说,只有好一点的东西才可能会被大家见到. 所以也不能因此而说印度的软件厉害.
  回复  引用  查看    
2007-07-06 16:57 | sun [未注册用户]
不觉得厉害到哪儿,园子里的高人多了去了
  回复  引用    
2007-07-06 16:57 | JimC [未注册用户]
示例的代码说明什么问题了么?除了简明以外没感觉有什么优秀的,在page_load里写T-sql,以后要改的话,找起来也很烦吧,这也只能用在单人开发的小程序上吧?
  回复  引用    
2007-07-06 16:57 | Anders06      
看不出,这些代码好在哪里. 很一般的说
  回复  引用  查看    
2007-07-06 16:59 | 过客 [未注册用户]
protected void Page_Load(object sender, System.EventArgs e)
{
string query = "Select UserId, Name, Email, DateJoined from Members";

dg.DataSource = Utils.DataManager.ExecuteQuery(query);

dg.DataBind();
}

如上代码所示,把sql语句弄到前台来写,这样也叫优秀?不符合分层的标准,加重前台程序员的工作量(即要写前台,还得了解后台的数据结构),无语了。
  回复  引用    
#9楼 [楼主]
2007-07-06 17:01 | 51aspx.com      
@过客
这个确实是不符合分层的标准,但是对于初学者来说是一个很好的三层入门过程
  回复  引用  查看    
2007-07-06 17:07 | JerryChou      
@51aspx.com
这个。。。新手水平,不要妄自菲薄!

  回复  引用  查看    
2007-07-06 17:08 | JerryChou      
能从你文章得出:一个不容置疑的事实——

印度!一个不可轻视的近邻!

吗?是为了吸引眼球吧
  回复  引用  查看    
2007-07-06 17:11 | Phinecos(洞庭散人)      
这个内容和标题确实脱节了。。。
  回复  引用  查看    
2007-07-06 17:12 | Aspneter [未注册用户]
印度的程序是挺牛的,我见识过

值得我们学习的太多了
  回复  引用    
2007-07-06 17:13 | dl [未注册用户]
一般般了
  回复  引用    
2007-07-06 17:16 | 不管你 [未注册用户]
我下载了看了看还不错 怎么大家都看过了么?

是大家的水平太高了,还是我比楼主还菜啊
  回复  引用    
2007-07-06 17:17 | try [未注册用户]
string query = "Select UserId, Name, Email, DateJoined from Members";

========
个人感觉看到这个反而会晕.
  回复  引用    
2007-07-06 17:26 | 阿标      
大学课程管理系统??中国高校毕业生经常做的东东,呵呵,这样比较起来可能显示出这个还有点意思。
  回复  引用  查看    
2007-07-06 17:29 | anglelee [未注册用户]
liudao北科大的?

也去过印度噢?
  回复  引用    
2007-07-06 17:31 | windyfancy [未注册用户]
没觉得有什么好的,一般般。
把所有的工具类都扔到Utils里简直太水了。一个工具类里既有字符串处理,又有权限处理,真是乱七八糟的,连我的水平都不如,不知道有什么好崇败的。
  回复  引用    
2007-07-06 17:33 | ╃小〥斌╄      
印度软件业确实不错, 工资也很高。 有朋友在那。
  回复  引用  查看    
2007-07-06 17:33 | 极地银狐.NET      
说到印度人写程序,我比较有发言权.代码没看完,但是第一段代码就有安全方面的问题.不要从一个印度人的角度去看整个印度软件产业的发展.
  回复