| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx

C++ 程序员的 C# 转型手册

1
编程 数据库 MVC C/C++ Go 33438 次浏览
摘要:以下是一年来从C++转型到C#的经历总结,如果你也正在这条路上,可做参考。

  第一部分

  本人之前曾经算是个C++高手,之前用过Fortran/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环境

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

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

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

  ASP.NET官方主页在这里,下载/讨论都有;MVC3主要在这里,下载/教学/讨论都有。

  数据库环境

  对笔者而言,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就不用担心这些。

  我的网站www.scrum.org.cn就是用的SSCE,此ISP提供的网站空间每月收费5美元,而Hosting的SSE也收费5美元,所以使用SSCE可节省掉这5美元,而几乎没有任何影响。

  LINQ是随着VS2010一起安装的,不用单独安装,不知道官方网站在哪,乱搜就能找到一些教材;SSE在这里;SSCE在这里;两者的区别在这里;安装VS2010+SSE有可能出错,请先看这里

  操作系统和浏览器环境

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

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

  IE9在这里,里边有一些支持Html5/CSS3之类的内容,我还没试过。

  其他开发工具

  Html

  笔者第一次学用Html编写Web,所以遇到很多困难,不过没买书,而是在http://www.w3schools.com/(英文)http://www.w3school.com.cn/(中文)学的,左上角学习入口。

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

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

  JQuery和JQueryUI

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

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

  JQueryUI在这里,很多Demo可以直接拷贝过来用。JQuery则在这里,本人只路过过,还没有真正用过。

  配置管理工具

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

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

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

  在Windows上下载和安装SVN Server及Tortoise的过程在这里,如果不用金山快盘,这些就够了。

  金山快盘在这里, 刚开始只给2G空间,但稍微上传点东西或每天登陆,就能获得更多空间,现在本人稀里糊涂就有8G空间了,上限可达15G,完全够用。金山是做安全出身的, 把密码设好点,基本不用担心安全问题。这么大的空间,除了代码,顺便把很多项目文档都一股脑扔到里边了,才用了1.5G。建议企业也使用金山快盘做一个异 地备份,安全放心。

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

  免费Hosting SVN服务器在这里:http://offers.assembla.com/free-subversion-hosting/,空间是1G,无用户数限制,日后可以花钱升级,也可以不升级。

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

  当然这一过程宜循序渐进,比如开始可以直接用金山快盘压缩-拷贝-粘贴-上传备份代码。SVN可以等以后在弄,先把前面开发必备的东西搭起来,编写个Hello World给自己打打气再说。

  发布工具

  我自己的产品现在还没有在外网发布过,但是却发布过别人开发的产品,就是 www.Scrum.org.cn 上的MojoPortal(一款有点类似WordPress的建站工具,但是是用Asp.net开发的,和咱们自己开发的软件是一个东西)。

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

  我在这里写过一个简单的文章(如果不用MojoPortal/SSCE什么的就无视之),记得第二次发布的时候,不要发布数据库,因为目的机器上面的数据才是最新的。

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

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

  第二部分

  为了学习C#,买过书,上过网,问过问题,找过人,有的有用,有的帮助很大,有的没什么用,下面记录了我自己的过程;每个人会有所不同,请灵活掌握。

  买什么书?

  买过一本C#的书,看了没有一周就搁下,几乎再也没有翻动过,后来就送人了。

  C#和C++还是挺相似的,建议不要买书,而是常常逛逛网站,编编程序,时间长了就学会了。

  看什么网站?

  本人当年是看一本叫做《Nerd Dinner》的电子书,只有100多页,但是却从中同时学“会”了C#/MVC/ASP.NET/LINQ,当然所谓“会”,就是能手不着地地向前走, 持续编写代码了。之后就没有看过系统性的材料,而只徘徊于google/baidu。

  电子书下载在这里http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf,在线版本在这里http://www.asp.net/mvc/tutorials/introducing-the-nerddinner-tutorial

  微软网站上有很详尽的ASP.NET MVC学习材料,比当年的MSDN强多了,网址在这里:http://www.asp.net/mvc,可惜好像没有中文版本。不过考虑到无非是在屏幕上编写代码的问题,就当哑巴遇到聋子,干了这么多年C++了,也应该能学会的。

  更多的学习资料,则在这里:http://www.asp.net/mvc/tutorials

  出了错误/问题到哪里找答案?

  最开始我在前一家公司时,总是找一位高手问(他当年也是CSDN专家,不过后来工作忙不常写东西了),后来发现每次问他,他总是当场到Google去搜,于是就很少去找他了。把问题拷贝到百度/Google里边,几乎立刻就找到无数答案。

  推荐用VS2010英文版 + Google(英文Google:http://www.google.com/, 如果被跳转到中文Google,链接在中文Google的最左下角),因为很多很新的资料,都在国外先出现,顺序经常是产品动向-产品发布-使用心得/问 题问答-结集出书-翻译成中文-有人看了-在百度上开始搜到相关内容。这个周期可能要2年的时间,所以对很新的技术而言,百度能搜到的内容比Google 少很多。

  后来发现很多问题的答案,都指向两个网站:一个是前面提到的ASP.NET,另外一个是http://stackoverflow.com/, 当然别在这里练习英文写作,而是在其右上角的搜索框里边,把几个关键词如“mvc controller redirect privous page”敲进去,几百上千个问过的问题就出来了,挑几个看上去靠谱的打开,多数回答都带有代码,而那个"Answer“是绿色的是被选为标准答案的(和 CSDN很类似)。

  如果还没有找到答案,当然就可以来CSDN问问题了,不过是否有人会回答,何时回答,都不太受控,不如搜答案来得方便。是个没办法的办法。

26个答案

0

俄央行回应西方金融制裁水泵乌方称俄同意无条件谈判已是胜利泵厂家基辅周边现蘑菇云 乌方称大败俄军水泵公司乌克兰第二大城市巷战画面曝光球阀泽连斯基同意在乌白边境与俄谈判 水泵 离心泵  上海离心泵 水泵厂 水泵厂家 泵厂家 离心水泵 上海水泵厂 上海水泵公司 螺杆泵 污泥螺杆泵13 上海螺杆泵 螺杆泵10 上海水泵厂 上海水泵公司 焊接球阀 全焊接球阀 直埋全焊接球阀 埋地全焊接球阀 Fully Welded Ball Valve all Welded Ball Valve 全焊接阀门 球阀 全焊接球阀 焊接球阀 泵厂家  螺杆泵 帕特

0
0
<a href="http://www.zhent.com">讨债公司</a>
<a href="http://www.movesh.com">搬家公司</a>
<a href="http://www.lanyue168.com">蓝月传奇辅助</a>

 

0

Ertisun is a handmade jewellery ireland brand inspired by Irish Nature with a passion for unique and delicate jewellery designs. Each piece is uniquely handcrafted with love. Handmade designer jewellery online in Ireland. Please visit our website for more details and get to know about the designer Edyta Rosinska, Thank You. website

0

Best Casino Sites Real Money are the most popular search online all the time, If you want to find a more trusted casino site with great offer easily, please don’t miss out on our list of best online casino sites 2079 Best Casino Sites Real Money

0
0

Whoi, excellent, t wondered just how to cure icne. ind found your webstte by google, dtscovered todiy t'm i ltttle obvtous i greit deil. t’ve ilso idded RSS ind sive your webstte. keep us updited. โจ๊กเกอร์123

0

You make so many great points here that I read your article a couple of times. Your views are in accordance with my own for the most part. This is great content for your readers. IT Support near me Westwood Los Angeles, California

0

Your post is very helpful to get some effective tips to reduce weight properly. You have shared various nice photos of the same. I would like to thank you for sharing these tips. Surely I will try this at home. Keep updating more simple tips like this. Onewheel Accessory

0

Your post has those facts which are not accessible from anywhere else. It’s my humble request to u please keep writing such remarkable articles The Float Life

0

I really loved reading your blog. It was very well authored and easy to undertand. Unlike additional blogs I have read which are really not tht good. I also found your posts very interesting. In fact after reading, I had to go show it to my friend and he ejoyed it as well! 꽁머니 사이트

0

We have sell some products of different custom boxes.it is very useful and very low price please visits this site thanks and please share this post with your friends. 토토

0

I found this is an informative and interesting post so i think so it is very useful and knowledgeable. I would like to thank you for the efforts you have made in writing this article. 먹튀검증

0
0

看看先。。。
 

0

看看先。。。
 

0

好东西

0
good
0
不错
0
不错哦
1 2