天天看点

C++程序员的C#转型手册之一:环境资源 基本开发环境选择 其他开发工具

这是C++程序员的C#转型手册的第二篇。

以下是一年来从C++转型到C#的经历总结,如果你也正在这条路上,可做参考。

本人之前曾经算是个C++高手,之前用过Fortron/Baisc/C,从C和C++居多,最后一句代码写在2003年的11月。主要编写Server端的代码,但和数据库打交道很少,主要是业务模式、架构、底层这些内容;所学无外乎模板、虚函数、算法之类。

到2010年2月开始重新建起编码,不过选择了C#,开始编写Web程序,而且必须与数据库打交道,中间遇到不少困难,也遇到不少新技术和新环境,与同在路上的大家分享。

当初选择了asp.net 3.5 + MVC2 + LINQ + SSE(Sql Server Express)+ Win7家庭高级版 + IE9,现在一年半下来,没有太后悔的地方。

asp.net 4.0是最新版本,建议从这里开始。这个没什么好说的了,既然是新来的,就一定选新的技术,等学会了,也就变成成熟技术了;新学东西,就要学新东西,这是本人现在的立场,之前吃过亏,曾经抱着DOS和TurboC++不放,一直坚持到1999年……

MVC现在最新版本是MVC3。曾有文指出MVC很难学,而Code Behind相对容易理解。同意但同时应注意,这是针对首次学习语言就是asp.net/C#的人说的,如果本来学过C++,尤其曾经在C++中尝试MVC思想的人,则似乎更容易理解asp.net MVC的做法,那点层次也绕不晕人,反而能以“物以稀为贵”增加竞争力。

MVC现在赫然列在ASP首页的醒目位置,日后必是MS平台的主流。

对笔者而言,LINQ是个比较奇怪的东西,可以理解是“让C#程序员不学习SQL就能访问数据库的方法”,非常推荐。个人在LINQ和EF(Entity Framework)中间做了很多犹豫,但最终结果是:除非做巨型的软件,基本上LINQ就可以用,而且这东西几乎没有学习成本,说用就用。以后有需要,转成EF也不浪费。

SSE是SS的免费版本,可以支撑10G空间,对一般的企业应用而言足够了,推荐在SSE上面做开发/部署,直到遇到实质性障碍为止。

为什么不用MySql?选了LINQ,暂时只能选择微软系列的数据库(或许已经出来LINQ to MySql了?没注意),这个会造成一些困扰。但我因为那10G空间足够用了,所以没有看到MySQL与SSE的实际区别。

建议开始可以关注一下SSCE(SQL Server Compat Edition),是一个微软新推出的免安装自驱动的数据库,最大空间支持2G。如果当初微软就发布了SSCE,我会选择SSCE而不是SSE(需要安装),SSCE与SSE的基本性能相同,有一些限制但不大,而且随时可以转为SSE。现在一些Hosting的网站要么只提供收费的SS,要么提供SSE但也收取费用,而SSCE就不用担心这些。

Win7家庭高级版听起来很不专业,但到现在为止还没有出现任何开发问题,到现在还没有在本机部署过,不知道是否可以当作Server用(如有知道的请回帖,谢谢),但至少开发起来没有任何问题。

IE9肯定是不二选择,调试环境比IE8方便。试过Chrome,发现MS肯定做了什么手脚,总之觉得没有IE9方便。

里边有在线调试器,直接在里边实验,直到满意为止,非常棒的网站。

中文网站有些内容不全,比如CSS3/Html5等,找不到就到英文网站看看。

JQuery是用来产生一些动画效果的,比如鼠标滑过的时候显示某些内容,点击的时候让某些东西显示或不显示,实现拖拽,等等。这一切发生在浏览器里边,无需惊扰后台。

JQuery是一种JavaScript工具包,而JQueryUI则是其处理界面部分的一个子集。后者能处理更复杂的事情,但也很难写。笔者到现在没好好写过JavaScript(以后肯定免不了),如果不想深学,可以先学一点JQueryUI,一般情况下基本够用。

一个人开发也要配置管理工具的,否则很容易出事。

开始我使用SVN Server + TortoiseSVN + 金山快盘,大致玩法如下:

先找一台电脑做服务器,安装上金山快盘,会产生一个20G的虚拟分区;把SVN Server安装在这个分区上;然后再在客户端机器上安装Tortoise。每次提及变化,金山快盘都会将变化上传到金山的服务器上,因此即使本地的服务器损毁,数据一样在,很“云”。

后来发现自己不会玩Aphachi,所以无法让别人访问我的服务器,而且本地服务器也没有外网IP,在外面无法访问,于是后来改成使用Hosting的免费服务器。

到此为止,基本上所需的环境就全部搭建起来了。

发布工具优先选择WebMatrix,比VS2010中自带的好。它的工作原理,就是把某个目录中的内容,发布到目的机器上,简单得令人发指。

如果数据库结构变化了,只想更新结构不想更新数据……我也不知道怎么弄,还没到这个地步,呵呵。

SSCE可以被发布到没有安装任何数据库的目标机器上,很不错。

另有一篇“转型学习过程”,尚未完成,敬请留意(日后会有一个链接加载本文中)。

本文转自火星人陈勇 51CTO博客,原文链接:http://blog.51cto.com/cheny/1100394