新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → [转载].NET大迁移:如何进行? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2162 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转载].NET大迁移:如何进行? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 [转载].NET大迁移:如何进行?


    发信人: percyboy (破宝), 信区: DotNET        
    标  题: [转载].NET大迁移:如何进行?
    发信站: BBS 水木清华站 (Wed Nov 13 22:16:30 2002)


    .NET大迁移:如何进行?

    仙人掌工作室   
    2002-4-17 14:10:23

    ------------------------------------------------------------------------------
    --
      

    如果你的公司开发在Windows上运行的Web应用或其他产品,那么几乎可以肯定的是,你会
    在某个时候迁移到.NET。你正在阅读本文这一简单的事实足以说明,你正在考虑转到.NET
    。但在正式开始迁移计划之前,你应该先回答两个重要的问题:应该在何时实施迁移,哪
    些地方需要付出金钱或精力?这些问题的答案并不固定,它们与你当前开发的工程类型、
    企业的规模、职员的经验和其他一些因素有关——因此,这里无法简单地给出放之四海皆
    准的标准答案。然而,这里将分析一些重要的问题,它们是你决定何时实施迁移和迁移投
    资规模时必须考虑的。   
      
    对于不同的企业,采用.NET技术有着不同的含义。最小规模的迁移可以是简单地把开发环
    境升级到Visual Studio.NET(VS.NET),但与此同时,继续进行非.NET应用的开发;最大
    规模的迁移可以是在VS.NET下启动一个全新的工程,使用.NET的语言和.NET的框架类,把
    应用建立在.NET企业服务器基础上。成本、培训、软件工程的类型和时间等因素都会影响
    .NET迁移过程。另外必须注意的是,现在的.NET是一个全新开发平台的第一个版本,因此
    早期使用者免不了会面临一些风险。   


      
    一、成本评估   
      
    迁移到.NET时,有许多成本因素需要评估。不仅需要计算迁移到.NET(具体地说,是VS.N
    ET)时购买和实现的成本,而且还要估计无形之中由于生产效率和维护效率的提高而节省
    的开支。得到这两个数字后,再对节省的开支和购买、实现的成本进行比较(参见图一,


    .NET迁移的前期投资决非无关紧要。培训和短时间内生产效率的下降在这些开支中占主要
    部分,但从长期来看,生产效率的提升和维护费用的下降将远远超越短期内的支出)。对
    于规模较大的企业来说,实现成本也许会远远超过购买VS.NET的成本。然而,对于小型企
    业,购买成本可能是最重要的考虑因素,甚至可能是迅速迁移到.NET平台的一个障碍。   

      
    http://www.ccw.com.cn/htm/center/app/02_4_11.gif
    (图一)
      
      
    尽管通过SDK也能够使用.NET技术,但如果不用VS.NET,从近期来看这样的决策不是很实际
    。第三方开发工具市场的繁荣以及真正开始提供可以与VS.NET竞争的工具还需要一段时间
    ,在此之前,仅仅为了节省购买VS.NET的费用而让你的开发人员使用SDK里面的命令行工具
    是得不偿失的。   
      
    评估成本时,还应该考虑到其他已经购买或计划购买的开发工具对总体成本的影响。例如
    ,如果你正在考虑购买设计和建模工具,VS.NET企业版的VS.NET Enterprise Architect带
    有Visio的一个特别版本,它具备了可与其他专用工具媲美的完整UML建模功能。Enterpri
    se Architect还支持企业应用的管理、分析、报表生成以及其他许多可能影响你购买策略
    的工具。因此,如果你正打算购买一个报表生成工具,不妨先看看Enterprise Architect
    包含的Crystal Reports工具是否能够满足你的需求。   
      
    接下来还要评估一下你的开发者当前在VS环境下使用的第三方工具,确信它们仍旧能够在
    新的集成开发环境下运行,或至少应该确认它们的制造商计划在短期内进行升级,并把这
    部分成本计入预算。   
      
    对于许多企业来说,VS.NET工具的价格与实现成本相比显得微不足道。除了软件购买成本
    ,接下来要计算的是在不影响正常工作的前提下,把新的软件安装到所有开发者的机器上
    需要投入多少。为了让VS.NET稳定、流畅地运行,也许你应该升级一下硬件,当然这与实
    际的硬件配置情况有关。迁移总成本中另一个重要的组成部分可能是对开发者、测试者和
    其他IT职员的培训,应当根据培训程度和迁移进度的要求,计算出各类人员分别需要哪些
    正规的或非正规的培训。另外,还要考虑增加额外的审计项目,以跟踪在迁移期间以及各
    类职员熟悉新平台之后,生产效率的变化情况以及投资回报率。对这些方面进行审计的全
    面和深入程度也将影响到实现成本。   
      


    二、跨越.NET的知识障碍   
      
    评估成本之后,接下来应确定如何让职员为.NET迁移做好准备。掌握.NET开发技术需要一
    个深入的学习过程,而且不同的开发人员之间差别很大。VB开发者属于付出努力最多的人
    群之一,因为他们需要适应语法的变化和熟悉面向对象编程的方法。C++开发者仍旧可以按
    照过去的方式编写代码,也可以轻松地转移到.NET平台下的托管C++或C#。对于Web开发者
    ,如果要在Web Form或Web服务开发中利用ASP.NET的优势,则必须调整到OO编程。另外,
    现在所有的开发者都能够方便地协作和共享知识,因为所有的语言都共享.NET框架上一组
    同样的类库。   
      
    如果能够对部分开发人员进行有针对性的.NET培训,成功进行迁移的机会就大大地提高。
    谨慎地选择培训课程;为期一周的新手训练是最好的选择之一。确保培训者有至少六个月
    的.NET经验,看看他们是否能够把培训的主题集中到你想要了解的开发类型上。.NET是一
    个包罗万象的庞然大物,如果你的开发组创建的是独立的应用程序,针对Web服务和ASP.N
    ET的培训对他们来说没有什么好处。如果你不能或者不想对所有职员进行正规的培训,可
    以先培训几个关键的成员,然后建立一个内部的培训规划。   
      


    三、移植现有的应用   
      
    进行.NET迁移规划时,还有一个必须考虑的问题,它也会对最终成本和培训需求产生重要
    影响,这就是如何调整现有的工程使其适应.NET环境。很少有公司处在一种允许他们从头
    开始开发.NET应用的情形下,更多的情形是,你必须考虑现有产品和系统的兼容性问题。
    如果你正在开始一个新的合同或工程,可以按照最简洁的方式完全采用.NET工具和技术进
    行开发。但是,即使对于这种工程,你也常常要用到某些现有的库、组件或其他代码。面
    对这些问题时,应当对如何迁移、整合或丢弃现有的代码作出一个规划(参见图二)。   

      
      http://www.ccw.com.cn/htm/center/app/02_4_12.gif
    (图二)

      
    如果原来的工程使用VB 6编写,你将面临一些艰苦的抉择,因为VB 6代码与VB.NET编译器
    和库不兼容。一种选择是把代码全部移植到.NET,或者你也可以选择继续使用VB 6。虽然
    迁移工具能够帮助你移植代码,但要把一个复杂的VB 6工程完整地移植到VB.NET,你仍有
    大量的事情要做。   
      
    如果一个软件工程的大部分代码是C++,另外还包括一些MFC类、ActiveX库模板(ATL)和
    Win32 API调用,迁移这类工程也有其特点。首先,转到VS.NET能够有效地提高开发效率,
    而且也为利用.NET开发工程的某些部分做好了准备(尽管混合运用VS 6和VS.NET开发同一
    个工程是允许的,但你必须保证新旧两个IDE之间工程文件的配置信息同步,因此这不是一
    种好选择)。在此基础上,开始在.NET中开发新的GUI和组件,但仍通过.NET平台提供的互
    操作功能利用原来的代码。   
      
    Web应用是适合逐步迁移的最简单的情形之一。如果你有一个ASP工程,可以先开始引入AS
    P.NET页面,ASP.NET页面与原来的ASP页面分开并独立运行。虽然ASP.NET页面和ASP页面在
    不同的进程中运行,但对于最终用户来说,这是透明的。这种情况下,最好用数据库或其
    他持久性存储设施实现页面之间状态信息的共享。   
      
    无论在哪种情况下,都可以先用.NET开发新的组件,然后利用.NET框架的COM互操作功能把
    这些组件集成到传统应用。类似地,通过COM互操作功能或Platform Invoke功能,在.NET
    应用中也可以重用以COM组件或Windows DLL文件形式封装的传统代码。因此,如果要按照
    一种比较缓慢但稳妥的方式迁移到.NET,首先可以找出正在进行的开发项目中那些全新的
    模块(例如在一个你正在加以改进的大型模块式应用中),然后以.NET应用或组件的形式
    实现这些模块。   
      
    为了高效地管理这类开发工程,应该把开发工程分成可以分别独立开发的传统代码部分和
    .NET代码部分,利用组件开发技术定义各个部分都应该遵从的接口。然后,如果可能的话
    ,就用.NET开发组件;但如果要面对大量不可能一下子全部移植到.NET的传统代码,则仍
    旧使用VB 6、ATL或MFC。   
      


    四、时间就是一切   
      
    规划好.NET迁移计划中成本、培训、工程管理方面的因素之后,接下来要考虑的显然就是
    引入.NET技术的合适时机。如果你的开发组正在开发一组ATL组件,而且有一部分的工作已
    经完成,那么,仅仅因为.NET的发行而让开发组改用.NET从头设计组件是不可取的;但是
    ,如果这些正在开发的组件属于一个大型.NET开发项目最前期的一小部分,中途改换开发
    平台也许是值得的。   
      
    如前所述,对于新的开发项目,从一开始就完全采用.NET技术是最简单和直接的途径。但
    是,如果开发项目中已完成的工作占了较大的比重,或要对一个大规模的系统进行维护和
    扩展,决定何时引入.NET技术就要困难多了。如果软件系统或产品的生命已经接近尽头,
    那就不必自找麻烦,因为代码互操作带来的复杂性、培训和性能影响等方面的代价,很可
    能超过少量.NET代码带来的优势。但是,如果预期软件项目还有数年以上的生存时间,努
    力把整个系统逐步迁移到.NET可能更为合理。具体的做法是以.NET组件或应用的形式,分
    阶段引入新的模块。   
      
    迁移的时间计划中还应该考虑到职员的稳定性问题。如果打算对职员安排作重大的调整,
    在实施调整之前,首先应该明确.NET迁移策略。传统技术或.NET技术的选择将对职员类型
    和技能要求产生重大影响。例如,传统的应用要求熟悉脚本编程的程序员,而.NET Web应
    用要求具有Web开发经验且熟悉OO编程的程序员。如果你有一些传统的C++应用,就不应该
    雇用只懂VB的程序员来维护代码。然而,对于.NET开发,VB程序员和C++以及C#程序员可以
    并肩工作,因为他们都使用.NET框架下同样的编程模式和库。也就是说,在.NET下,不同
    之处只是语法,而不是以前在编程模式上的截然不同。   
      
    迁移到.NET决不是一件轻而易举的事情,它意味着短期之内的多项重大投入。但是,许多
    研究.NET的业界分析人士和开发者得到的结论都一样:从长远的眼光来看,生产效率、性
    能、维护简易性等方面的优势会证明对.NET迁移的投资是值得的。  

    (网页编辑:编程浪子)  
      


    percyboy 转自 http://www.ccw.com.cn/htm/center/app/02_4_17_5.asp



    --

    ※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.196.65.171]
    上一篇
    返回上一页
    回到目录
    回到页首
    下一篇


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 2:26:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/1 14:16:17

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    58.594ms