﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Zachary.XiaoZhen - 梦想的天空</title><link>http://www.cppblog.com/BoyXiao/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:08:06 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:08:06 GMT</pubDate><ttl>60</ttl><item><title>【原】到底怎么样才叫看书？</title><link>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193121.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Wed, 10 Oct 2012 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193121.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/193121.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193121.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/193121.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/193121.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body"><p>目录：</p>
<p>一、引入</p>
<p>二、经历了就能理解</p>
<p>三、读书要分级</p>
<p>四、只读经典</p>
<p>五、别吝惜你动笔的那点时间</p>
<p>&nbsp;</p>
<div class="cnblogs_Highlighter">
<h2>一、引入</h2>
</div>
<p>&nbsp;</p>
<p>　　 看到这个题目的时候你可能会感到有点好笑：&ldquo;这还用问，看书就是把书看了一遍呗..&rdquo; 没错，我们从小到大就是这样想的，也是这样看书的，信手拈来一本叫作"书"的东西，从头到尾就开看了！随时年龄的增长，我们的&ldquo;阅历&rdquo;也多了起来了，但你是不是也有和我一样的感觉&mdash;&mdash;书是读了不少，真正入脑的，能融入自己思想的内容却少之又少，而且随着年头的增加，你越来越不记得自己读过这些书，更不用提书里到底大概是些什么内容了！这就是我们的长久以来的读书方式。。。 你会不会也这样想，如果我能把我从小到大读过的书都能记下来形成自己的思想，那我现在得多牛啊！是呢，我也常常这样想！于是为了让自己更有思想，就去读更多的书，然后在短短的几年，或者只是几个月，甚至仅仅是几天以后，生活的琐事会渐渐把你关于那些书的缓存挤掉，你的大脑又变成了一块被重新格式化的硬盘，那些书又与你无关了。</p>
<p>　&nbsp; 说实话，我曾经就是这种情况，并且被其深深的困扰过，花了大量的时间去阅读，但是在脑子里留下的却是星星点点的零碎的内容，于是很快这些零星的内容也会悄悄的跑掉，剩下的只有一个好笑的自欺欺人的解释&mdash;&mdash;这本书我读过。。。。就这样，我骗了自己二十几年，这二十几年里，不管是教科书，还是小人书，不管是专业书，还是小说，真是读了不少书啊！我花了多少时间在这件事上面呢，少说也有二十年吧，可是，要问我对哪本书的内容真的印象最深的，真的很难回答的出来，更别说去吸取书的精华了。估计和我一样有这样困扰的人肯定很多。你是吗？</p>
<div class="cnblogs_Highlighter">
<h2>二、经历了就能理解</h2>
</div>
<p>&nbsp;</p>
<p>　　我经常会想难道我就真的没有从读书中受益过吗？当然有！&ldquo;咳，咳。。&rdquo;我要写条sql去数据库里查一下，数据库里垃圾有点多，估计得花点时间，&ldquo;select * from lifecycle where benefit from reading &mdash;&mdash;&gt;execute!"&nbsp; (一分钟。。。二分钟。。。五分钟。。十五分钟过去了，数据终于出来了，垃圾数据把系统性能拖的太慢了，是需要作作调优的时候了)，好了，你很幸运，系统没有宕掉，下面这些数据留给你们参考：</p>
<p>　　1、我自认为英语水平还凑合，几次重要的升学考试和就业面试中，都没有在英语这块栽过跟头，由于后来集中学习日语的原因，英语过了CET-6后就很少碰，这个原因我下面会解释。现在很多学生中为英语发愁的不在少数，往往其他各科成绩都很好偏偏英语不能达标，错失了好的升学机会。我回顾自己从小学英语的经历，总有一个点在那闪光，那是我学习英语的转折点。那时是小学四年级，学校刚刚开设英语课，那时和其他的孩子一样，我的英语成绩不怎么样，很吃力。我老爸对我的学习比较严格，当他发现我的英语不行的时候，他开始跟我急了，那时我也真怕他，当老子就是威武啊~ 我爸是高中毕业，他那时的外语水平差不多也就是我四五年级的那个水平的，但是他还是选择了硬顶上来！他拿出课本让我逐句的翻译对话，我还大概记得那对话的内容：</p>
<p>A：what's this?</p>
<p>B: it's a pen.</p>
<p>A: what's that?</p>
<p>B: it's a pencil.</p>
<p>A: and what's this?</p>
<p>B: it's a pencilbox.</p>
<p>A: can you spell it ?</p>
<p>B: yes.p-e-n-c-i-l-b-o-x,pencilbox.</p>
<p>A:thank you.</p>
<p>B:your welcome.</p>
<p>　　熟悉吧？后来还有很多学者指责我国小学英语教材的落俗套，以致学生跟人对话只会说&ldquo;what's this&rdquo; &ldquo;How are you? fine, thank you. and you?&rdquo; 之类的，这些我们都暂且不谈。就说我那段时间是怎么被老爸蹂躏的吧。。。</p>
<p>当时有好多的对话内容我翻译不出来，于是就被无情的鄙视了，并且死规定，以后每天晚上都要默写课文、单词！我那时是真怕他呀，为了应付这一关我是想出了一堆的作蔽手段，小抄、写手上、写桌面上。。都用过了，每天像过堂一样的接受蹂躏，给我幼小的心灵带来沉重的压力，就这么坚持了有多半年。于是，后面的事情你们都猜到了，我的英语成绩上来了，随便找出来一篇课文来我都能熟悉的背出来，得到了来自各方面的肯定和鼓励，回头想想，这都是对心理体验非常好的正能量，直到今天，我都能对英语有信心。现在回想起来，那些小抄的作用就相当于笔记，让我对英语的印象从陌生变熟悉。</p>
<p>　　2、高考的经历。对于都经历过高考的人们，这个艰辛的过程我就不再多多描绘了，地球人都知道的。我在这想说的是，在这个备考的过程中对我进步影响最大的一个方面，这也是我高考制胜的法宝。那时我有幸和一名来自山东的转校生(也叫高考移民)同桌，他是我高中时期最好的朋友之一，就是他的学习习惯深深的影响了我，他后来考上了中国公安大学，现在是国家保密机构的人员了，国家机密不多说。他有一个什么习惯呢？作笔记！</p>
<p>　　你看到这可能在笑，&ldquo;原来就是作笔记啊，这谁不知道，谁不作笔记啊&rdquo;，没错，我们从小都会要求作笔记，有时候我们也会假意的去作一些笔记，但很多的时候是东记一笔，西记一笔，记完就忘了，也找不见了。我说的记笔记不是这种情况。</p>
<p>　　在高考那个大环境下，每天我们都会被大量的习题淹没，多的时候每天要作十几张卷子，那时真是麻木了。我的这个朋友就习惯把每次作完的试卷都从头到尾作个总结，把自己不知道的盲点记在一个本子上，随时翻看。我尝试了这个学习方法后，收效非常大，通过自己的实践也对作笔记有了更深的理解，下面说说我的理解：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （1）作笔记一定要找个厚点的本子，品质要好，但不要过于花哨的，简约的最好。因为你要能预见，当你养成这个好习惯以后，你遇到什么新的东西都想往上面记几笔，如果页数太少了，你又要换个新本，这样就会对你的知识系统产生分隔，你会更偏向于经常翻看新的本子，旧的本子就被你束之高阁起来了，渐渐那些你曾经领悟的东西又会变的模糊。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（2）请勿分门别类的记笔记。拿高考这几门课举例，那时我有很多同学的作法是数学一个本，语文一个本，英语一个本，化学一个本。。。 基本上是一门课一个笔记本，分门别类，互不干扰。这样并不是最佳的解决方案。我们俩当时的作法就是所有的内容都记到一个本子上，不分科，新的内容就直接追加到旧的内容的后面，形式上也不要记的太整齐，形式可以多样，圈圈点点，勾勾叉叉，这样更容易在你的大脑里形成再深的印象，我称之为&ldquo;草稿式笔记&rdquo;，比条理清晰的&ldquo;流水式&rdquo;笔记效果好的多。</p>
<p>　　（3）经常翻看。记笔记其实是对大脑缓存的一个整理，就好比你存在计算机内存里的内容永远是不稳定的，而你一旦写入硬盘，这个安全性就提高了几个数量级（对于程序员的你，道理不解释），同样的道理，你今天对一个问题理解了，但不表明你两天后返回来还能理解到那个程度，最好的办法就是把这个你理解的问题用自己说话的方式记录下来，并且随时翻看，可以说，只要你的这个本子不丢，你就永远能保持对这个问题的新鲜的理解。以至后来，每每月考、期中、期末、摸底的所有考试中，我都只需要拿出笔记本来从头到尾翻看几遍，不再需要看书和资料了，很大程度上增强了我的信心，因为没有记在本子上的对我来说都是&ldquo;常识&rdquo;了，所有平时的要点都囊括在了笔记本里面了。如果你身边有面临高考的考生的话，请推荐给他们，这个方法会在高考中给他们很大的帮助。</p>
<p>　　3、学日语的经历。说来比较幸运，有机会能在大学里系统的学习一门二外。能在大学里学习一门外语确实是很有意义的一件事情，因为我们学习英语的战线已经有十几年了，但成果不是太显著，而二外作为一门你有选择的有主动性的去学习的一门语言，如果你肯花心思，进步是很快的。我是从大三开始系统学习日语的，那时刚考完六级，算是完成了阶段性的目标，于是转向日语的学习，洽好赶上学校与某一日企有合作的项目，很幸运的和同专业的几十名同学一起开始学日语，当时是一个中教讲语法，一个日本外教讲口语，因为学时较紧，所以基本上日语课占用了所有专业课之外的所有课时，一周要上20几个课时的日语。这个过程持续了一年多。在这一过程中对我来说受益最大的仍然是大量的笔记。&ldquo;草稿式笔记&rdquo;又一次发挥了它的神奇效果，我记了两个厚本子，记录了我整个学习语言的过程，从浅到深，翻翻笔记就能清晰地回忆起自己是怎么一路走过来的。当我有一段时间没有接触日语的时候，如果我想找回一些日语的感觉，我第一选择就是从头到尾的把笔记本看一遍，一遍看完后我仿佛就回到了以前学习日语时的状态，就像计算机一键还原一样，只有笔记能起到这个作用。</p>
<p>　　P.S 顺便说明一下我为什么学日语的时候就很少去碰英语的东西。语言这东西学的多了真的是容易混，能精通好几国语言的人真的是值得敬佩，这种敬佩不仅仅是语言学习本身。学了两年的日语以后，口语之类的都练的比较熟悉，因为有外教环境，所以大家平时聊天沟通都得到了很好的锻炼，但是有点作英语面试的时候，我发现了一个很严重的问题，我竟然不能说出一整句表达清楚的英文介绍，每句话都不自觉的往外蹦日语，呵呵，英语的思维完全被日语给抑制住了，于是我发现，这两种语言冲突了，不过为了更好的学日语我就把英语放下了，直接最近的工作需要才再次捡起来，不过还好，把日语先放一放，英语自然就不受影响了。</p>
<p>　　4、目前的工作。几个月前换工作到了现在这家外企，外企的宽松的环境和人性化的制度让我很快喜欢上了这里，于是我抱定决心要在这里稳定下来，干出一番事业。从第一天入职我就领到了一个印有公司LOGO的笔记本，现在三个月时间吧，这个本子已经基本用完了。在这个本子上不仅有工作上的事情，meeting,需求讨论，还有大量的读书笔记，内容十分丰富，但都充实的记录了我的每天的轨迹。这本笔记同样比较&ldquo;草稿&rdquo;，但我能真正理解它，它就像我的一部分大脑一样，我现在走到哪里都会带着这个本子，班车上、轻轨上有大量的时间，拿出本子就好像和自己在对话一样，无比的踏实与充实。</p>
<p>&nbsp;</p>
<div class="cnblogs_Highlighter">
<h2>三、读书要分级</h2>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 古人早就说过&ldquo;开卷有益&rdquo;，在信息大爆炸的现代社会里，获取知识和信息的方式变的越来越多元化，网络的兴起让知识变的廉价，理想的说一根网线可以得到这个地球上你想知道的一切。请大家和我一起思考一个问题，不论是以什么样的形式，游戏也好，电影也好，看新闻，刷微博也好，我们的最终目的到底是想干什么。我的观点是，所有的这些行为总结起来，终极目的只有一个&mdash;&mdash;获取信息。</p>
<p>　　回想在还没有Internet的时代里，人们主要获取信息的途径就是读书，这是那时的人们能想到的最直接的选择。而今天的我们选择就多了起来，读书看起来好像是最慢的一种获取知识的方式了。但是，选择多了就一定是好事吗？科学家证实（我也不知道哪个科学家），选择越多效率越差，因为这增加了你决策的时间和后悔的理由。先说上网吧，很简单的道理，大家都会经常体验到的，如果你想在网上集中作一件事情，往往是很难的，你会受到来自各个方面的干扰，各种&ldquo;信息噪声&rdquo;向你扑面而来，你常常会被另外的&ldquo;新鲜&rdquo;信息中断思路，比如QQ右下角讨厌的重大新闻浮动窗。再比如，如果想在电脑上踏下心来看一本PDF版的技术书也是很难的，开始可能还好，看上十页二十页以后，眼酸，想睡，看过什么没太深的印象，想干别的，效率很差，我就是这种情况，对需要用电脑阅读的大段的内容都有抵触的情绪。所以我避免用电脑看一些需要系统理解的东西，因为人有一种心理，就是对于我感到过抵触或厌倦的东西都不想再碰，所以我尽量不用这种方式去触及那些本身应该对我有很大意义的内容，我怕因为一时的不耐烦导致与这些经典失之交臂。 我的习惯作法还是去阅读实体的书，这给人的感觉是完全不一样的，书的厚度是你可以真切感觉到的，而且，看实体书更容易深入内容，这可能因为人类一直以来的习惯都是以书为载体来学习，这促成了人脑的进化，人脑也更习惯这种传统的方式。</p>
<p>　　这部分的标题叫&ldquo;读书要分级&rdquo;，什么叫分级呢，就是读书的深度。</p>
<p>　　走进任何一家图书馆，你可能都有冲动要把这里的书全部读掉，可是这显然不现实。</p>
<p>　　电视剧《士兵突击》里许三多在团部的知识问答竞赛时，团长问他是怎么知道这么多知识的，许三多说&ldquo;我这人笨，不知道应该看什么，我就跑到图书馆，从A开始看，现在才看到D&rdquo;（大概是这意思，是不是D记不清了）。你说这种人真有吗？有，肯定有，但是这只能是个童话，对于一个现代化的大型图书馆来说，你就是光把A看完这辈子恐怕也不够用的。所以，面对浩瀚的书海，有选择的读一些经典之作才是明智之举。并不是每一本书对于我们的成长都是至关重要的，这里有经典，也充斥着垃圾。如果你花了两年读了一堆垃圾书，这样非但无益，反而会害了你。就像老罗曾经说的，他年轻的时候金庸的武侠小说非常火，很多的个体书商不知名的武侠作者出版的武侠书都署金庸的名，因为那时没有目录嘛，什么&ldquo;<span class="Apple-style-span" style="widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; font: small/18px 微软雅黑; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">飞雪连天射白鹿， 笑书神侠倚碧鸳</span>&rdquo;，当时不知道，所以怎么把金庸的书挑出来，很难。</p>
<p>　　那怎么把经典的挑出来呢？这就要借助网络了，豆瓣读书是个不错的地方，这里都是一群爱读书的人，你要看的书在这里基本都能找得到，看过的读者会留下一些感想，如果评价太烂的话，你就应该果断放弃读这本书的想法，因为这可能会浪费你的时间，并且害了你。扯远了，下面开始分级。</p>
<p>　　第一级：经典中的经典&mdash;&mdash;能奉为经典的著作不多，对于我们计算机这个领域，耳熟能详的经典也就是那一百多本吧，对于读这些书的态度就应该给予足够的重视，记笔记是必须的，因为这些思想需要与你的思想融合起来，形成你的理解，从而发挥经典的作用，因为大部分经典之所以长盛不衰就是因为它们都是授人以渔的。</p>
<p>　　第二级：技术类专著&mdash;&mdash;这部分就是指那些资深技术专家，或在某个技术领域比较有建树的行业专家写的书，你选择这类书的目的性更强一些，往往是为了更深入的学习一门技术或熟悉一个行业而选择的，这部分你当然也要细读，因为技术的难度你更应该用笔记来梳理思路，形成整个技术的框架，这里面应该包括更多的细节，以助于以后翻阅的时候能理解的更深入。当然，你可以分章节来笔记，这样可以将一个大目标分割成小目标来激励自己去逐项完成。</p>
<p>　　第三级：技术基础类&mdash;&mdash;有一些书目涉及的是你已经熟悉的技术领域但比较基础的内容，这些书的内容对你的技术水平来说比较基础，但你也不要忽视这样的基础书，这里面可能还有你没有吸收过的精髓也说不定。&ldquo;温故而知新&rdquo;，永远不要轻视基础，同样拿出你的本子，翻开新页，标上今天的日期，把这书中讲到的你意识模糊的内容记到你的本子里吧，可能你会发现，你要记的东西还真是不少呢。</p>
<p>　　第四级：技术周边类&mdash;&mdash;比如《程序员》杂志、技术博客，这一类的资料也不要看过就扔，不要相信你是过目不忘的大师，你大脑的缓存是有限的，你必须要保存到硬盘！所以拿出你的本！</p>
<p>　　第五级：娱乐类&mdash;&mdash;这部分与你的工作没有直接关系，属于你生活的部分，这部分的智慧更多，但是可能会和技术有冲突，所以如果你需要记笔记，请不要记到你记技术和工作的本子上。</p>
<p>&nbsp;</p>
<div class="cnblogs_Highlighter">
<h2>四、只读经典</h2>
</div>
<p>&nbsp;　　代码真得能改变世界，当然代码也正在改变着世界。程序员的时间是很宝贵的，我们不是这个星球上最聪明的一类人，但我们绝对是最有智慧的一类人。呱唧呱唧~</p>
<p>　　我们花了大量的时间去作需求，去Design,去Coding,去Testing,留给我们自己的时间却总是那么少，除去日常生活起居的时间，陪女朋友的时间，上下班的时间，留下读书的时间就没什么了，哦，对，忘了把你打Dota的时间算里了，这还哪有时间看书啊！！？？</p>
<p>　　当程序员的没有不勤奋的，不勤奋的干不了程序员。所以书还是要看的，怎么看，只读经典。</p>
<p>　　关于什么是经典你自己决定咯，在这个圈里吃饭的，对技术都有很强的敏感性，坏书进不了你的眼，好书也一定逃不掉。</p>
<p>　　&nbsp;</p>
<div class="cnblogs_Highlighter">
<h2>五、别吝惜你动笔的那点时间</h2>
</div>
<p>&nbsp;　　说了这么多了，你可能已经意识到作笔记的重要性了，其实事实真的是这样。</p>
<p>　　你是否听说过某某大师一生作了几百本的读书笔记这些事，我以前一直有疑惑，他作笔记都是在干嘛呀？都记什么呀，有什么好记的？后来我真正开始作笔记以后，我才真正理解了这件事，原来大师之所以能成为大师，真的都不是一朝一夕的工夫，这需要持之以恒的坚持和坚定，这内心得多强大呀。你要知道，那几百本的笔记不只是笔记本那么简单，那些都是思想的沉淀，思想本来是抽象飘渺的，笔记这种形式让思想有了重量和形态，这种思想被组织，重构，索引，最终印到大脑里形成一座庞大的知识仓库。</p>
<p>　　　　正所谓磨刀不误砍柴功，记笔记可能会影响你读一本书的速度，但它不会让你白读，如果你读书的目的不是想在你脑子里留下点什么的话还不如去看电视剧，读书就是为了长知识长学问长见识，就是为了将别人好的思想吸取过来，转化成自己的思想体系的一部分，当然，你应该有批判接受这些信息的能力，人云亦云的完全接受也是不合时宜的。</p>
<p>　　我有一个心愿，我渴望能有一天在公交、地铁里看到大家翻看的全是自己的笔记本，而不是一人拿着一部手机在那看着微博还傻笑！</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 传送门：<a href="http://www.cnblogs.com/ytaozhao/archive/2012/08/26/2657018.html" target="_blank">《到底怎么样才叫看书？&mdash;&mdash;下篇》</a></p>
<p>　　<strong><span style="font-family: 仿宋;">版权归博客园和本作者所有，转载请务必注明出处，谢谢合作。本文地址：<a href="http://www.cnblogs.com/ytaozhao/archive/2012/07/31/2616998.html">http://www.cnblogs.com/ytaozhao/archive/2012/07/31/2616998.html</a></span></strong></p>
<p>&nbsp;</p>
<p style="backgroud: #e6fae6; padding: 10px 10px 10px; border: 1px dashed #e0e0e0; font-family: 微软雅黑; font-size: 13px;">作者：<a href="http://www.cnblogs.com/ytaozhao" target="_blank">Tony zhao</a><br>欢迎访问:<a href="http://www.tjwxr.com" target="_blank">天津外乡人论坛</a><img src="http://pic002.cnblogs.com/images/2012/141115/2012092415260322.gif" alt=""></p>
<p style="backgroud: #e6fae6; padding: 10px 10px 10px; border: 1px dashed #e0e0e0; font-family: 微软雅黑; font-size: 13px;">本文出处：<a href="http://www.cnblogs.com/ytaozhao" target="_blank">http://www.cnblogs.com/ytaozhao</a>&nbsp;&nbsp;&nbsp; 本文版权归作者和博客园共有，欢迎转载，但未经作者同意必须保留此段声明，且在文章页面明显位置给出原文连接，否则保留追究法律责任的权利。 </p>
<p>&nbsp;</p></div><img src ="http://www.cppblog.com/BoyXiao/aggbug/193121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-10-10 15:37 <a href="http://www.cppblog.com/BoyXiao/archive/2012/10/10/193121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件设计的一些感想</title><link>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193120.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Wed, 10 Oct 2012 07:36:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193120.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/193120.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193120.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/193120.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/193120.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body"><p>&nbsp; &nbsp; &nbsp; 已经好久没有写博客了，不是因为没有学东西，而是因为学的东西不够系统，不够具体，没有整理起来（外加人懒），所以不想浪费笔墨。所以一直潜水。。但总会有感想的，在学习的过程中，时常会遇到一些令人惊喜的东西，令人拍案叫绝的东西，但学会之后觉得简单或者不值一提，于是没有当机立断写出一些洞见。事后用的时候倒觉得理所当然了。其实这是要不得的，学习的过程我认为<span style="color: #339966;"><strong>不应该是纯粹的吸收，而是要有选择的过滤，留其精华，去其糟粕</strong></span>，如果能加入自己的总结就更好了，只可惜我在很多时候忘记了这事儿，或者在很多时候没有空下来专门做一次如此认真的总结。但在技术的层面上，一般的说法是，任何一种技术都是基于某种设计思想，而至于用什么来具体实现并不是最重要的。其实思想和设计不能用简单的一对一和一对多关系来说明。经常会有人说一种思想可以衍生多种技术，其实他只说对了一半，因为一种技术并不只是一种思想的实现，而是多种思想的交融。</p>
<p> <br>&nbsp; &nbsp; &nbsp; 拿软件设计来说，对于基于窗口的程序设计，我们有多种技术方案可以选择，在windows下有mfc，.net, wpf，在linux下有gtk, qt, wxWidgets，在mac下有cocoa, 但核心思想差不多，大多用到了mvc思想，但mvc思想本身也是一个组合思想，它组合了策略模式，观察者模式等。对于这样的一个设计思想来说，它其实是一个对设计的高度抽象。我甚至可以做这样一个奇怪的思考：如果将mvc模式套用到人身上，那么人所看到的就是view，人所想到的就是controller，人所使用的便是model了，那么针对一个人来说，他的基本动作可能如下：看到东西-&gt;产生需求-&gt;寻找工具来实现自己的需求。所以我感觉，软件设计有时更像对人的行为模拟，软件系统更像是一个虚拟的人（这个人的智商要看你给他多少知识和能力），或者说，软件设计归根到底是以人的认知来实现的，所以我们要划分模块，要理清各个模块之间的关系，要考虑它们之间的相互影响，还要考虑他们之间的交互。如果各个模块之间关系混乱不清，那么你将会的到一个很烂的系统，置于会出现什么结果，那就不得而知了。举个简单的例子：试想一下如果你吃饭咬到舌头了，却发现屁股痛，这是一件多么尴尬的事情。</p>
<p>     <br>&nbsp; &nbsp; &nbsp; 所以，软件的设计实际上是一个很复杂的事情，一个高超的软件更为复杂，因为你要考虑太多的情况，一个人是极其复杂的。但正如所有的物质都是由简单的原子组成的，所有的复杂性都能划分成最简单最基本的东西。就好比操作系统这样一个常人很难企及的东西，其实最底层也就六个操作，引用linux创始人linus的话来说就是：&ldquo;你在UNIX上完成的大部分任务都是通过六个基本操作完成的，它们被称作"系统呼叫"（system call）。第一个基本操作是"创建子进程"（fork），一个程序把自身完全复制出来，这样你就有了两个相同的拷贝。第二个基本操作是复制出来的程序，再用一个新项目替换自己。其他四个基本系统呼叫--打开、关闭、读和写--都是为了访问文件的。这六个系统呼叫便组成了UNIX的简单操作。然后，你只需在程序之间创造出交流渠道（pipes），就能解决复杂的问题。&rdquo;，那么归结到人身上，也就是那么几种：活动（身体活动和思维活动），新陈代谢，睡觉（纯属个人想法勿喷）。</p>
<p>     <br>&nbsp; &nbsp; &nbsp; 记得以前看bbc的纪录片《混沌理论》中讲到图灵的一段，图灵曾经提出一个伟大的构想：自然界由一个最简单的数学公式组成。这个理论促进了后来的&ldquo;混沌理论&rdquo;和&ldquo;分形学&rdquo;的研究和发展，包括著名的&ldquo;蝴蝶效应&rdquo;，也和&ldquo;混沌理论&rdquo;有关。我们都知道，图灵被称为&ldquo;计算机之父&rdquo;，而现代的软件设计方法和这种构想肯定存在千丝万缕的联系。所以，我认为，软件设计如果是一种把问题搞复杂的设计，那将是一个失败的设计。软件设计应该是将一个复杂的系统一步一步划分成&ldquo;原子&rdquo;的过程，而<span style="color: #339966;"><strong>软件架构的目标应该是使每一个分块都容易理解而且容易改变</strong></span>（所谓的可维护性和可扩展性）。</p>
<p>     <br>&nbsp; &nbsp; &nbsp; 而对于人来说，人生活在一个&ldquo;实体&rdquo;的世界里，如果把人类的历史看作一天，那么人拥有真正的思想是在一分钟以前，所以上帝无法阻止人类用&ldquo;面向对象&rdquo;的方式来进行软件设计，也无法阻止程序员用mvc的思想来实现一个软件系统，因为这一切看起来理所当然。所以，无论你的技术多么高超，我都可以想象你在面对一堆复杂的算法和一堆鲜活的对象的时候的不同感受，因为我也可以感同身受:)。所有的人都喜欢用简单的方式解决问题（如果你不是，那你也许是公务员，:)），更喜欢用简单的方式解决复杂的问题，那样会有成就感，程序员是最佳案例。为什么说一个会偷懒的程序员是一个好的程序员？那是因为程序员的偷懒是对问题的抽象和扩展，对之前冗长而繁琐的解决问题的方式建立一个更为宽泛的适用模型，从而应对类似重复的问题。而所谓的抽象，便是思维的结晶。其实，抽象在各行各业都有应用，只不过在软件开发领域，这个词被提及的非常之广范非常之响亮，以至于成了某些编程语言的关键字。其实抽象是一个很宽泛的概念，<span style="color: #339966;"><strong>它是一种对事物本质的提取过程</strong></span>（《数据结构》中有这样的定义），所以我觉得在软件设计中的抽象，可以运用到其他领域，在其他领域中的抽象，也能应用到软件设计中来。所以，没必要惊讶图灵是个数学家，或者唐纳德也是数学家...，因为从本质上来说，数学这门科学就是一种抽象科学，把自然界抽象成数学模型，而计算机就是对数学抽象模型的模拟器。</p>
<p>     <br>&nbsp; &nbsp; &nbsp; 胡说了一大堆，也不知从哪儿来的灵感，但作为一个软件工程师，我觉得这些东西是应该而且值得去思考的。上次看到一则博文讲到，这个世界由三种人推动：科学家，艺术家，工程师。也许这种说法并不一定正确，但至少说明了一个观点：工程师想要实现优秀的产品，必须懂得科学家和艺术家的抽象，因为那是他们的思维结晶。而<span style="color: #339966;"><strong>一个好的工程师，从某种程度来说，也是一个科学家或者一个艺术家</strong></span>。</p></div><img src ="http://www.cppblog.com/BoyXiao/aggbug/193120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-10-10 15:36 <a href="http://www.cppblog.com/BoyXiao/archive/2012/10/10/193120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跟小静学MVC3[02]--从注册模块实战MVC新特性</title><link>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193119.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Wed, 10 Oct 2012 07:34:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193119.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/193119.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/193119.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/193119.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body"><p>上一节我们创建了自己的第一个MVC3项目，并了解了Controller和View的添加方法。今天我们将仿照<a href="http://www.damifanli.com/">大米返利网</a>注册模块写个小例子，来进一步了解Model、Action、Form等相关内容。</p> <p>【<strong>情景假设</strong>】</p> <ul> <li>首页--欢迎页面，简单介绍大米返利网，并提供注册链接；  </li><li>注册--用户使用网站之前要先注册为会员，注册页面还要对用户填写的信息进行有效性验证；</li></ul> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.damifanli.com/user/register.php"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016332966.png" border="0" height="306" width="423"></a></p> <ul> <li>注册完成--完成之后会跳转到一个提示页面，并向用户邮箱发送一封邮件。</li></ul> <hr>  <h3><font color="#ff0000">一. 首页</font></h3> <p>1. 将上一节的Index页面用作首页，再添加一些说明文字。</p> <div class="cnblogs_code" onclick="cnblogs_code_show('01d27a8e-6076-4e8c-a842-0b774c8c9694')"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_01d27a8e-6076-4e8c-a842-0b774c8c9694" alt=""><img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_01d27a8e-6076-4e8c-a842-0b774c8c9694" onclick="cnblogs_code_hide('01d27a8e-6076-4e8c-a842-0b774c8c9694',event)" style="display:none"><span class="cnblogs_code_collapse">首页 View代码</span><div id="cnblogs_code_open_01d27a8e-6076-4e8c-a842-0b774c8c9694" class="cnblogs_code_hide"><div>@{<br>&nbsp;&nbsp;&nbsp;&nbsp;ViewBag.Title&nbsp;=&nbsp;"首页";<br>}<br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">h2</span><span style="color: #0000FF;">&gt;</span>@ViewBag.hello<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">h2</span><span style="color: #0000FF;">&gt;</span><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>大米返利网提供淘宝网等多家商城的返现优惠，<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">br</span><span style="color: #0000FF;">/&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;返现比例高，提现速度快，注册赠1元，满3元提现。<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>点此注册<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span></div></div></div><p>&nbsp;</p> <p><a href="http://images.cnblogs.com/cnblogs_com/janes/201210/20121010101634425.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/janes/201210/20121010101634915.png" border="0" height="304" width="648"></a></p> <p>接下来我们就要为&#8220;点此注册&#8221;提供链接页面了。</p> <h3><font color="#ff0000">二. 添加注册页面</font></h3> <p><strong>1. 创建数据Model</strong></p> <p>MVC中的M代表的领域模型，是应用程序中极其重要的部分之一，一个设计完好的MVC项目往往从设计完好的model开始，然后在此基础上继续添加controller和view。在我们的项目中，model是对现实世界对象的封装，定义规则、处理等等。具体实现时Model一般就是对项目中通用性对象的属性、方法进行封装而来的C#类，然后controller和view以一定的方式暴露给客户端。</p> <p>接下来我们添加一个用户信息的model类：右键models文件夹-&gt;Add-&gt;Class-&gt;UserInfo.cs-&gt;Ok.</p> <div class="cnblogs_code" onclick="cnblogs_code_show('ad88a37d-3804-4105-9153-8572100ac72c')"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_ad88a37d-3804-4105-9153-8572100ac72c" alt=""><img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_ad88a37d-3804-4105-9153-8572100ac72c" onclick="cnblogs_code_hide('ad88a37d-3804-4105-9153-8572100ac72c',event)" style="display:none"><span class="cnblogs_code_collapse">UserInfo.cs Code </span><div id="cnblogs_code_open_ad88a37d-3804-4105-9153-8572100ac72c" class="cnblogs_code_hide"><div><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;注册用户实体<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">class</span>&nbsp;UserInfo<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;自动编号<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">int</span>&nbsp;Id&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;用户名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;UserName&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;密码（明文简单示例）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;Password&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;qq号码<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;QQ&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;邮箱地址<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;Email&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}</div></div></div><p><strong>2. 添加Action</strong></p> <p>在IndexController中添加新的action：</p> <div class="cnblogs_code"><div><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</span><span style="color: #008000;">注册</span><span style="color: #008000;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;ActionResult&nbsp;Register()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">return</span>&nbsp;View();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div></div><p><strong>3. 添加强类型View</strong></p> <ul> <li>创建view：强类型view目的是展现针对具体类型的实体，指定具体类型之后MVC会为其提供许多快捷的操作。需要注意的是，在添加强类型View之前，我们要先编译整个MVC项目，否则添加View时就会找不到先前添加的UserInfo实体。</li></ul> <p>添加步骤：</p> <p>在Register Action代码块内右键-&gt;Add View-&gt;选中 Create a strongly type view复选框-&gt;Model class下拉框选择UserInfo-&gt;提供的模板选择Empty-&gt;Add。如下图所示：</p> <p><a href="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016354229.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016367751.png" border="0" height="506" width="464"></a></p> <p>添加完成之后我们发现新添加的View是以<strong>@model</strong>的Razor代码开头的。接下来我们将会看到，这正式强类型view以及它能提供诸多便捷的关键所在。</p> <h3><font color="#ff0000">三、编辑表单</font></h3> <p><strong>1. View代码</strong></p> <div class="cnblogs_code"><div><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000FF;">&gt;</span>大米返利网<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000FF;">&gt;</span><br><strong>@using(Html.BeginForm())</strong><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>用户名：<strong>@Html.TextBoxFor</strong>(m=&gt;m.UserName)<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>密码:@Html.PasswordFor(m=&gt;m.Password)<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>确认密码：@Html.PasswordFor(m=&gt;m.Password)<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>QQ:@Html.TextBoxFor(m=&gt;m.QQ)<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>Email:@Html.TextBoxFor(m=&gt;m.Email)<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">type</span><span style="color: #0000FF;">="submit"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">="马上注册"</span><span style="color: #0000FF;">/&gt;</span><br>}</div></div><p>&nbsp;</p> <p>这里用的是Razor语法，使用过程中VS为我们提供了丰富的智能感知。以前不熟悉的同学可能会看着满眼的@符号不太自在，用一段时间就该上瘾了，因为它真的很好上手。运行效果如下：</p> <p><a href="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016361622.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016362669.png" border="0" height="317" width="593"></a></p> <p><strong>2. Html几个helper方法：</strong></p><p>首先，我们看一下页面源代码： <br></p><br><div class="cnblogs_code" onclick="cnblogs_code_show('b4877214-d785-4b95-8b13-ec0273f56312')"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_b4877214-d785-4b95-8b13-ec0273f56312" alt=""><img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_b4877214-d785-4b95-8b13-ec0273f56312" onclick="cnblogs_code_hide('b4877214-d785-4b95-8b13-ec0273f56312',event)" style="display:none"><span class="cnblogs_code_collapse">页面源代码</span><div id="cnblogs_code_open_b4877214-d785-4b95-8b13-ec0273f56312" class="cnblogs_code_hide"><div><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">h1</span><span style="color: #0000FF;">&gt;</span>大米返利网<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">h1</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">form&nbsp;</span><span style="color: #FF0000;">action</span><span style="color: #0000FF;">="/index/register"</span><span style="color: #FF0000;">&nbsp;method</span><span style="color: #0000FF;">="post"</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>用户名：<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">id</span><span style="color: #0000FF;">="UserName"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="UserName"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="text"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">=""</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>密码:<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">id</span><span style="color: #0000FF;">="Password"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="Password"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="password"</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>确认密码：<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">id</span><span style="color: #0000FF;">="Password"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="Password"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="password"</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>QQ:<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">id</span><span style="color: #0000FF;">="QQ"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="QQ"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="text"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">=""</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span>Email:<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">id</span><span style="color: #0000FF;">="Email"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="Email"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="text"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">=""</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">type</span><span style="color: #0000FF;">="submit"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">="马上注册"</span><span style="color: #0000FF;">/&gt;</span><br><br><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">form</span><span style="color: #0000FF;">&gt;</span>&nbsp;</div></div></div><ul> <li>不难看出，通过Razor语法中的Html helper方法，将Model中的属性用Input控件形式展现出来了。例如</li></ul> <div class="cnblogs_code"><div>@Html.TextBoxFor(m=&gt;m.UserName)</div></div><p> </p><p>生成html时，input控件type=&#8221;text&#8221;, id和name属性都被赋值为"UserName&#8220;。对应html代码为：  </p><div class="cnblogs_code"><div><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">id</span><span style="color: #0000FF;">="UserName"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="UserName"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="text"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">=""</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;</span></div></div><ul> <li>对于强类型view，书写lamda语法时有着丰富的智能感知。如果不想写成lamda形式，还可以这样 <strong>@Html.TextBoxFor(&#8220;UserName&#8221;) </strong> </li><li>Html.BeginForm：</li></ul> <p>代码格式为<span style="background-color: yellow;">@using(Html.BeginForm()){&nbsp;&nbsp; &#8230;}</span>，通常使用using关键字是为了走出花括号时释放较占资源的对象，而在这里可以理解为关闭&lt;form&gt;标签。生成form属性时，默认的action会提交回当前的url，而method默认设置为post。最终生成的html源码为：&lt;form action="/index/register" method="post"&gt; &#8230;&#8230;&lt;/form&gt;。</p> <p>另外，在WebForm开发时，每个页面只允许使用一个服务端form，并且包含ViewState以及postback逻辑，而在MVC中是没有服务器端form这个概念的，没有ViewState以及postback机制，每个页面可以放置多个form。</p> <ul> <li>Html.ActionLink:用来添加action页面的链接，我们可以在首页为&#8220;点此注册&#8221;添加链接：</li></ul> <div class="cnblogs_code"><div>@Html.ActionLink("点此注册","Register","Index")</div></div><p><strong></strong></p> <h3><font color="#ff0000">四. 表单提交</font></h3> <p>&nbsp;<strong> 1.&nbsp; HttpGet和HttpPost: </strong> </p><p>为了接收并处理提交的表单数据，我们还需要再添加一个Register action，这两个action的作用是：  </p><ul> <li>一个用来响应Http Get请求： 为action添加HttpGet特性(也可以省略)，Get请求通常是用户第一次访问页面时，通过该action初始化空白表单。  </li><li>一个用来响应Http Post请求：为acton方法添加HttpPost特性，Html.BeginForm()创建的窗体默认被浏览器处理为Post请求。这个版本的action方法负责接收提交的表单数据并进行相应处理。</li></ul> <div class="cnblogs_code"><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: yellow;">[HttpGet]</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ActionResult&nbsp;Register()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;View();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: yellow;">[HttpPost]</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ActionResult&nbsp;Register(UserInfo&nbsp;userInfo)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;View("Complete",userInfo);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div></div><p><strong>2.Model Binding</strong></p> <p>在上面的post方法中，使用了MVC中一个非常不错的特性---Model Binding，它可以解析传来的数据并将其对应到领域模型的属性。其实这个Model Binding过程是双向的，当创建form数据时，input控件的值是根据与其name对应的model属性来赋值的；反过来，当提交form表单时，通过model binding又可以根据input控件的name属性来为model实体同名的属性赋值，进而提交到post action方法。</p> <h3><font color="#ff0000">五、表单验证</font></h3> <p>在MVC应用程序中，我们一般把验证添加在model实体而不放在用户界面，这样只要我们在一处定义了验证规则便可以多处生效。ASP.NET MVC总具体实现方式是：使用<span style="background-color: yellow;">System.ComponentModel.DataAnnotations</span> 中定义的特性，将其声明在model属性作为验证规则就可以生效了。</p> <p><strong>1. Model实体添加验证规则</strong></p><div class="cnblogs_code" onclick="cnblogs_code_show('ccc02a01-4285-4865-9d14-9f105fff415d')"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_ccc02a01-4285-4865-9d14-9f105fff415d" alt=""><img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_ccc02a01-4285-4865-9d14-9f105fff415d" onclick="cnblogs_code_hide('ccc02a01-4285-4865-9d14-9f105fff415d',event)" style="display:none"><span class="cnblogs_code_collapse">Model Validation Code</span><div id="cnblogs_code_open_ccc02a01-4285-4865-9d14-9f105fff415d" class="cnblogs_code_hide"><div><span style="color: #0000FF;">using</span>&nbsp;System.ComponentModel.DataAnnotations;<br><span style="color: #0000FF;">namespace</span>&nbsp;DamifanliMvc3.Models<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;注册用户实体<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">class</span>&nbsp;UserInfo<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;自动编号<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">int</span>&nbsp;Id&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;用户名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Required(ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入用户名</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[RegularExpression(<span style="color: #800000;">"</span><span style="color: #800000;">^[a-zA-Z][a-zA-Z0-9]{2,14}$</span><span style="color: #800000;">"</span>,&nbsp;ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入3-15位字母或数字</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;UserName&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;密码（明文简单示例）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Required(ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入密码</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;Password&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;qq号码<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Required(ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入QQ号码</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[RegularExpression(<span style="color: #800000;">"</span><span style="color: #800000;">[1-9][0-9]{4,}</span><span style="color: #800000;">"</span>,ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入正确的qq号码</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;QQ&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;邮箱地址<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Required(ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入邮箱地址</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[RegularExpression(<span style="color: #800000;">@"</span><span style="color: #800000;">\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</span><span style="color: #800000;">"</span>,ErrorMessage&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">请输入正确的邮箱地址</span><span style="color: #800000;">"</span>)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">string</span>&nbsp;Email&nbsp;{&nbsp;<span style="color: #0000FF;">get</span>;&nbsp;<span style="color: #0000FF;">set</span>;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</div></div></div><p><strong>2.ModelState.IsValid</strong></p> <p>我们可以在Controller中使用ModelState.IsValid来检验是否存在验证问题。</p> <div class="cnblogs_code"><div><span style="color: #0000FF;">public</span>&nbsp;ActionResult&nbsp;Register(UserInfo&nbsp;userInfo)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; background-color: yellow;">if</span><span style="background-color: yellow;">(</span><span style="background-color: yellow;">ModelState.IsValid)</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">return</span>&nbsp;View(<span style="color: #800000;">"</span><span style="color: #800000;">Complete</span><span style="color: #800000;">"</span>,&nbsp;userInfo);&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">Complete&nbsp;Action后续创建</span><span style="color: #008000;"><br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">return</span>&nbsp;View();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div></div> <p><strong>3.错误提示</strong></p> <p>当用户输入不符合规则时，我们可以在view中使用Html.ValidationSummary()来提示用户。</p><div class="cnblogs_code"><div>@using(Html.BeginForm())<br>{<br><span style="background-color: yellow;">@Html.ValidationSummary()</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;用户名：@Html.TextBoxFor(m=&gt;m.UserName)&lt;/p&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br><br>}</div></div><p>该方法会在页面中放置一系列隐藏的li，MVC可以令这些位置可见并显示model验证属性中定义的错误信息，如下图所示。点击注册按钮时该页面不会进行跳转，直到所有输入都符合规范为止。值得庆幸的是，提交失败时之前填写的数据仍然会保留在页面中。</p> <p><a href="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016378176.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016375634.png" border="0" height="358" width="670"></a></p> <p>&nbsp;</p> <p>查看页面源代码：</p><div class="cnblogs_code"><div><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>用户名：<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">input&nbsp;</span><span style="color: #FF0000;">class</span><span style="color: #0000FF;">="input-validation-error"</span><span style="color: #FF0000;">&nbsp;data-val</span><span style="color: #0000FF;">="true"</span><span style="color: #FF0000;">&nbsp;data-val-regex</span><span style="color: #0000FF;">="请输入3-15位字母或数字"</span><span style="color: #FF0000;">&nbsp;data-val-regex-pattern</span><span style="color: #0000FF;">="^[a-zA-Z][a-zA-Z0-9]{2,14}$"</span><span style="color: #FF0000;">&nbsp;data-val-required</span><span style="color: #0000FF;">="请输入用户名"</span><span style="color: #FF0000;">&nbsp;id</span><span style="color: #0000FF;">="UserName"</span><span style="color: #FF0000;">&nbsp;name</span><span style="color: #0000FF;">="UserName"</span><span style="color: #FF0000;">&nbsp;type</span><span style="color: #0000FF;">="text"</span><span style="color: #FF0000;">&nbsp;value</span><span style="color: #0000FF;">=""</span><span style="color: #FF0000;">&nbsp;</span><span style="color: #0000FF;">/&gt;</span><br><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span></div></div><h3><font color="#ff0000">六、注册完成页面</font></h3> <p><strong>1.添加Complete View:</strong></p> <p>在前面的post提交的Register中，我们已经给出了注册完成时要跳转的目标&#8221;Complete&#8221;,并且传递了变量userInfo,接下来我们添加一个强类型UserInfo类型的View。</p> <p><a href="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016382537.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/janes/201210/201210101016382994.png" border="0" height="522" width="479"></a></p> <p>修改代码如下：</p> <div class="cnblogs_code"><div>@model&nbsp;DamifanliMvc3.Models.UserInfo<br>@{<br>&nbsp;&nbsp;&nbsp;&nbsp;ViewBag.Title&nbsp;=&nbsp;"注册完成";<br>}<br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">h2</span><span style="color: #0000FF;">&gt;</span>注册完成<span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">h2</span><span style="color: #0000FF;">&gt;</span><br><span style="color: #0000FF;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;恭喜，您已注册成功，请妥善保管注册信息：<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">br</span><span style="color: #0000FF;">/&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;账号:@Model.UserName<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">br</span><span style="color: #0000FF;">/&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;QQ:@Model.QQ<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">br</span><span style="color: #0000FF;">/&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;Email:@Model.Email<span style="color: #0000FF;">&lt;</span><span style="color: #800000;">br</span><span style="color: #0000FF;">/&gt;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;大米返利网祝您购物愉快！<br><span style="color: #0000FF;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000FF;">&gt;</span></div></div><p>&nbsp;</p> <p><strong>2. 发送邮件通知</strong></p><br><div class="cnblogs_code"><div>在展示Complete&nbsp;View的同时，我们使用WebMail类来发送通知邮件。<br><br>@{<br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.SmtpServer&nbsp;=&nbsp;"smtp.sina.com";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.SmtpPort&nbsp;=&nbsp;587;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.EnableSsl&nbsp;=&nbsp;true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.UserName&nbsp;=&nbsp;"CathyChen";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.Password&nbsp;=&nbsp;"damifanli";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.From&nbsp;=&nbsp;"cathychen@sina.com";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebMail.Send(@Model.Email,"成功注册大米返利网",@Model.UserName+",您已成功注册大米返利网，祝您购物愉快！");<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;catch<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@:抱歉，通知邮件发送失败！<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</div></div><p><strong>小结：</strong></p> <p>到这里，今天的学习基本结束了。当然了这只是一个简单的示例，实际使用中还有很多可以改进的地方，比如将发送邮件功能放在单独的模块中调用而不是将代码块嵌在View中，以便重复使用；另外，这里的错误处理使用的try&#8230;catch，其实可以跳转到单独的错误页面。</p></div><img src ="http://www.cppblog.com/BoyXiao/aggbug/193119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-10-10 15:34 <a href="http://www.cppblog.com/BoyXiao/archive/2012/10/10/193119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于带泛型约束的虚函数在托管函数中的调用问题</title><link>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193118.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Wed, 10 Oct 2012 07:34:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193118.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/193118.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/10/10/193118.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/193118.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/193118.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body"><p>新编辑内容（2012-10-10 14：49：00）</p><p>根据1楼朋友doylecnn的测试，我重新进行了尝试，发现是VS2012才有这个问题，估计是个BUG，看来新东西不能乱用啊。</p><p>VS2010下正常，Mac里Mono下正常。跟操作系统没有关系。</p><p>&nbsp;</p><p>为啥VS2012会有这个问题呢？用的也是.NET 4没有用.NET 4.5。只是编译时一个采用VS2010一个采用VS2012，就有不同的结果？</p><p>我已经上传了编译程序和源代码，感兴趣的可以下载玩玩。。。。。。&nbsp;</p><p><a href="http://files.cnblogs.com/sweetwxh/%E6%89%93%E5%8C%85.rar">点击下载</a></p><hr><p>今天遇到个很奇怪的问题，我写了一个组件，要求传入一个Action对象，于是我同事调用时传入了一个匿名函数，如下：</p><p>&nbsp;</p><div class="cnblogs_code"><div>caller.Process(()=&gt;{<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.Delete&lt;News&gt;(id);<br>});&nbsp;</div></div><p>&nbsp;</p><p>然后运行后出现异常：类型参数&#8220;TEntity&#8221;与类型参数&#8220;TEntity&#8221;的约束冲突。</p><p>那么多年第一次遇到这种稀有问题，经过跟踪调试，发现这个问题出现的条件如下：</p><p>1.要调用的方法必须是一个在父类当中的虚方法（virtual）。</p><p>2.在子类中，必须通过一个托管函数来直接调用父类的base.Func()虚方法，如果子类进行了覆盖（override），然后在覆盖中使用base.Func()都没有问题。</p><p>3.父类的这个虚方法是泛型 ，并且必须具备泛型约束，没有约束也不会出现问题。</p><p>写了个简单的示例代码：</p><p>&nbsp;</p><div class="cnblogs_code"><div><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000FF;">using</span>&nbsp;System;<br><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000FF;">using</span>&nbsp;System.Collections.Generic;<br><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000FF;">using</span>&nbsp;System.Linq;<br><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000FF;">using</span>&nbsp;System.Text;<br><span style="color: #008080;">&nbsp;5</span>&nbsp;<br><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000FF;">namespace</span>&nbsp;VirtualFunction<br><span style="color: #008080;">&nbsp;7</span>&nbsp;{<br><span style="color: #008080;">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">class</span>&nbsp;Program<br><span style="color: #008080;">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">static</span>&nbsp;<span style="color: #0000FF;">void</span>&nbsp;Main(<span style="color: #0000FF;">string</span>[]&nbsp;args)<br><span style="color: #008080;">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SubClass&nbsp;sub&nbsp;=&nbsp;<span style="color: #0000FF;">new</span>&nbsp;SubClass();<br><span style="color: #008080;">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub.CallFunc();<br><span style="color: #008080;">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey();<br><span style="color: #008080;">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">17</span>&nbsp;<br><span style="color: #008080;">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">abstract</span>&nbsp;<span style="color: #0000FF;">class</span>&nbsp;SuperClass<br><span style="color: #008080;">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">virtual</span>&nbsp;<span style="color: #0000FF;">void</span>&nbsp;Func&lt;TEntity&gt;()<br><span style="color: #008080;">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">where</span>&nbsp;TEntity&nbsp;:&nbsp;<span style="color: #0000FF;">class</span><br><span style="color: #008080;">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(<span style="color: #800000;">"</span><span style="color: #800000;">super&nbsp;class's&nbsp;function</span><span style="color: #800000;">"</span>);<br><span style="color: #008080;">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">25</span>&nbsp;<br><span style="color: #008080;">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">void</span>&nbsp;NonVirtualFunc&lt;TEntity&gt;()<br><span style="color: #008080;">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">where</span>&nbsp;TEntity&nbsp;:&nbsp;<span style="color: #0000FF;">class</span><br><span style="color: #008080;">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(<span style="color: #800000;">"</span><span style="color: #800000;">super&nbsp;class's&nbsp;none&nbsp;virtual&nbsp;function</span><span style="color: #800000;">"</span>);<br><span style="color: #008080;">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">32</span>&nbsp;<br><span style="color: #008080;">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">class</span>&nbsp;SubClass&nbsp;:&nbsp;SuperClass<br><span style="color: #008080;">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">delegate</span>&nbsp;<span style="color: #0000FF;">void</span>&nbsp;Caller();<br><span style="color: #008080;">36</span>&nbsp;<br><span style="color: #008080;">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">/这里覆盖父类的虚方法，但是下面用不同的调用方式调用，实际测试结果为有没有这个覆盖方法效果都一样，该异常的地方还是异常</span><span style="color: #808080;"><br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #808080;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">override</span>&nbsp;<span style="color: #0000FF;">void</span>&nbsp;Func&lt;TEntity&gt;()<br><span style="color: #008080;">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.Func&lt;TEntity&gt;();<br><span style="color: #008080;">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">42</span>&nbsp;<br><span style="color: #008080;">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">public</span>&nbsp;<span style="color: #0000FF;">void</span>&nbsp;CallFunc()<br><span style="color: #008080;">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">这里采用普通方式调用父类的虚方法Func</span><span style="color: #008000;"><br></span><span style="color: #008080;">46</span>&nbsp;<span style="color: #008000;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.Func&lt;<span style="color: #0000FF;">string</span>&gt;();<br><span style="color: #008080;">47</span>&nbsp;<br><span style="color: #008080;">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">这里使用一个代理来调用父类的虚方法Func，注意这里子类并没有覆写父类的Func方法</span><span style="color: #008000;"><br></span><span style="color: #008080;">49</span>&nbsp;<span style="color: #008000;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Action&nbsp;action&nbsp;=&nbsp;<span style="color: #0000FF;">new</span>&nbsp;Action(()&nbsp;=&gt;<br><span style="color: #008080;">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.NonVirtualFunc&lt;<span style="color: #0000FF;">string</span>&gt;();<span style="color: #008000;">//</span><span style="color: #008000;">不会出现异常</span><span style="color: #008000;"><br></span><span style="color: #008080;">52</span>&nbsp;<span style="color: #008000;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">this</span>.Func&lt;<span style="color: #0000FF;">string</span>&gt;();<span style="color: #008000;">//</span><span style="color: #008000;">不会出现异常</span><span style="color: #008000;"><br></span><span style="color: #008080;">53</span>&nbsp;<span style="color: #008000;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.Func&lt;<span style="color: #0000FF;">string</span>&gt;();<span style="color: #008000;">//</span><span style="color: #008000;">出现异常</span><span style="color: #008000;"><br></span><span style="color: #008080;">54</span>&nbsp;<span style="color: #008000;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br><span style="color: #008080;">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;action();<br><span style="color: #008080;">56</span>&nbsp;<br><span style="color: #008080;">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">另外一种托管调用方式，效果和上面通过Action调用一样</span><span style="color: #008000;"><br></span><span style="color: #008080;">58</span>&nbsp;<span style="color: #008000;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caller&nbsp;caller&nbsp;=&nbsp;()&nbsp;=&gt;<br><span style="color: #008080;">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><span style="color: #008080;">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.NonVirtualFunc&lt;<span style="color: #0000FF;">string</span>&gt;();<br><span style="color: #008080;">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF;">base</span>.Func&lt;<span style="color: #0000FF;">string</span>&gt;();<br><span style="color: #008080;">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br><span style="color: #008080;">63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caller();<br><span style="color: #008080;">64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">65</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><span style="color: #008080;">66</span>&nbsp;}</div></div><p>&nbsp;</p><p>&nbsp;</p><p>就上面这个问题，查询了大量的资料，都没有找到原因，谁能解答一下呢？&nbsp;</p><p>&nbsp;</p></div><img src ="http://www.cppblog.com/BoyXiao/aggbug/193118.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-10-10 15:34 <a href="http://www.cppblog.com/BoyXiao/archive/2012/10/10/193118.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Reminder: TechCrunch Is Coming To Greenville, SC Tonight! (UPDATED&amp;nbsp;LOCATION)</title><link>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183337.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Sat, 14 Jul 2012 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183337.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/183337.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/183337.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/183337.html</trackback:ping><description><![CDATA[<div class="body-copy">
							<div class="post-first-image">
							<img width="288" height="183" src="http://tctechcrunch2011.files.wordpress.com/2012/07/sc2.jpeg?w=288" class="attachment-image wp-post-image" alt="sc2" title="sc2">							</div>

							<p>For many a TechCruncher, the past week has been the same as most. Break some news, go to some events, turn the world on with your smile&#8230; you know the drill. But for John Biggs, Josh Zelman and I (and at times Matt Burns), this week has been a whirlwind of crazy awesome parties, Southeastern drawls, incredibly cool startup pitches, and an amazing amount of both pork and beer. </p>
<p>It&#8217;s the Southeast Meetup tour ya&#8217;ll, and it&#8217;s coming to a close tonight. We&#8217;ve hit Atlanta, Raleigh-Durham, Charlotte, and now we&#8217;re headed to Greenville, South Carolina. <strong>(As a side note, the location has changed. We&#8217;ll now be holding the event at <a target="_blank" href="http://www.overlookgrill.com/">The Overlook Grill</a> &#8211; 601 South Main Street Greenville, SC 29601.)</strong> </p>
<p>It&#8217;s been a long ride, but a great one. In fact, we&#8217;ve invited at least two dozen companies to apply for Disrupt &mdash; yep, that&#8217;s how cool these companies are. </p>
<p>It&#8217;s amazing to look for startups outside of Silicon Valley and Silicon Alley and find an abundance of exactly that. Hopefully, the last spot on this totally successful meetup tour will bring more of the same. </p>
<p>Again, the location has changed, so if you&#8217;re coming tonight be sure to familiarize yourself with <a target="_blank" href="http://www.overlookgrill.com/">The Overlook Grill</a> &#8211; 601 South Main Street Greenville, SC 29601.</p>
<p>Here&#8217;s another look at our sponsors:</p>
<p><strong>Sponsors:</strong></p>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-05-at-9-27-14-am.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-05-at-9-27-14-am.png?w=640" alt="" screen="" shot="" 2012-06-05="" at="" 9.27.14="" am"="" class="aligncenter size-full wp-image-566185"></a></p>
<blockquote><p>Honda has long viewed itself as a mobility company, focused on creating new value for its customers and society through innovations developed from the initiative and original thinking of Honda associates around the world. The willingness to pursue new dreams for the customer, which Honda expresses as “The Power of Dreams,” has been at the core of the company’s success and comes not only from new ideas but also from the determination of Honda associates to make these ideas come true for the customer. By creating new value for its customers — and by focusing on areas of critical social concern, such as the environment — Honda hopes to gain recognition throughout the world as a company that society wants to exist.</p></blockquote>
<h2>Savannah:</h2>
<p><img src="http://tctechcrunch2011.files.wordpress.com/2012/05/screen-shot-2012-05-29-at-5-54-50-pm.png?w=640&amp;h=126"></p>
<blockquote><p><a target="_blank" href="http://www.thecreativecoast.org/launchpad">The Creative Coast</a> is a non-profit organization supported by The City of Savannah and SEDA. We exist to nurture the members of our community engaged in creative or innovative endeavors and to cultivate an environment in which they can thrive.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/rm_logo_on_white.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/rm_logo_on_white.png?w=640" alt="" rm_logo_on_white"="" class="aligncenter size-full wp-image-566959"></a></p>
<blockquote><p><a target="_blank" href="http://railsmachine.com/">Rails Machine</a> is a full-service web operations and hosting company. We&#8217;re a small team of experienced, dedicated, and focused people who have a genuine interest in technology and enjoy working with and giving back to the Ruby on Rails community. We founded Rails Machine in 2006 to create the ultimate hosting environment for Rails applications.</p></blockquote>
<h2>Atlanta:</h2>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/tss.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/tss.jpg?w=640&h=224" alt="" tss"="" class="aligncenter size-full wp-image-565611" height="224" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.totalserversolutions.com">Total Server Solutions</a> was founded in 2005 with the goal of providing unsurpassed support and technical services to the web hosting community. Over the years, Total Server Solutions has grown to offer some of the finest colocation facilities in the world as well as fully managed dedicated server offerings, custom solutions, and cloud computing services.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/thumbfriendly-logo.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/thumbfriendly-logo.jpg?w=640" alt="" thumbfriendly-logo"="" class="aligncenter size-full wp-image-565618"></a></p>
<blockquote><p><a target="_blank" href="http://www.thumb-friendly.com">Thumb Friendly</a> helps local businesses and national brands acquire new customers with powerful mobile marketing strategies. With web access at their fingertips, mobile users are ready to learn, ready to interact, and ready to buy; but a mobile optimized website is only the beginning. Our m360 Strategy Plan is a complete management program proven to drive new visitors to your site, retain them with a great user experience, and convert them into revenue generating customers. Our solution tracks and records visitor engagement through a sophisticated monitoring program. The real power behind m360 is our consultative approach to building a mobile marketing strategy. We provide detailed reports and analysis of your campaign&#8217;s performance which we use to refine your strategy to its optimal state. No contracts, just results!</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/yovia-logo-2011.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/yovia-logo-2011.png?w=640&h=247" alt="" yovia-logo-2011"="" class="aligncenter size-full wp-image-565681" height="247" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://about.yovia.com">Yovia</a> is a People Engine &#8211; a technology that monetizes social media. Yovia enables individuals and businesses to spread the word® profitably and organically throughout Facebook, Twitter, LinkedIn, Instagram, Pinterest and Google+.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/privatedocs.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/privatedocs.png?w=640&h=269" alt="" privatedocs"="" class="aligncenter size-full wp-image-565625" height="269" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://privatedocs.com/">PrivateDocs</a> is the first enterprise social network with a core emphasis of document management and collaboration among internal teams, personal and business relationships. Secure, fast and beautiful- PrivateDocs is the next generation of business collaboration. Come share with us- we&#8217;re Awesome!</p></blockquote>
<blockquote><p><a target="_blank" href="http://www.atlcap.com/">Atlanta Capital</a> is an SEC registered investment advisory firm that specializes in managing high quality stock and bond portfolios on behalf of institutional and individual investors. For over 40 years, Atlanta Capital has remained dedicated to a single investment philosophy which has been successfully executed over a variety of market conditions. Today, our philosophy is consistently applied across a broad range of traditional equity and fixed income investment strategies. We believe the experience and stability of our investment professionals are the hallmarks of our organization.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/levitatelogo1-e1308679147337.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/levitatelogo1-e1308679147337.png?w=640" alt="" levitatelogo1-e1308679147337"="" class="aligncenter size-full wp-image-565628"></a></p>
<blockquote><p><a target="_blank" href="http://levitatemedia.com/">Levitate Media</a> develops video for the tech market. We help companies explain their offerings more effectively through animation, 3D, motion graphics, live video capture, testimonials, and more. Our productions help simplify complex ideas and are viewed on websites, during sales presentations, at trade shows, and anywhere else video can be played.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-04-at-2-09-08-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-04-at-2-09-08-pm.png?w=640" alt="" screen="" shot="" 2012-06-04="" at="" 2.09.08="" pm"="" class="aligncenter size-full wp-image-565632"></a></p>
<blockquote><p>The <a target="_blank" href="http://startupchicks.org/">StartupChicks</a> mission is to build a world-wide community of like-minded female founders, to educate, coach and mentor entrepreneurs to help accelerate their businesses, and to inspire aspiring female entrepreneurs to take the leap.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/atdc.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/atdc.jpg?w=640" alt="" atdc"="" class="aligncenter size-full wp-image-565640"></a></p>
<blockquote><p>The <a target="_blank" href="http://atdc.org/">Advanced Technology Development Center (ATDC)</a> is a startup accelerator that helps technology entrepreneurs in Georgia launch and build successful companies. Founded in 1980, ATDC has helped create millions of dollars in tax revenues by graduating more than 130 companies, which together have raised over a billion dollars in outside financing. Headquartered in Atlanta’s Technology Square, ATDC serves as the hub for technology entrepreneurship in Georgia. ATDC provides business incubation and acceleration services to hundreds of startups through coaching, connecting and community. Membership is open to all technology startup companies in Georgia, from those at the earliest conception stage to revenue generating, venture-fundable companies.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-04-at-3-12-19-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-04-at-3-12-19-pm.png?w=640" alt="" screen="" shot="" 2012-06-04="" at="" 3.12.19="" pm"="" class="aligncenter size-full wp-image-565684"></a></p>
<blockquote><p> <a target="_blank" href="http://www.pardot.com/">Pardot</a> is a B2B cloud marketing automation software provider that increases revenue and maximizes efficiency for companies with multi-touch sales cycles. Pardot’s platform features CRM integration, email marketing, lead nurturing, lead scoring and ROI reporting to help marketing and sales teams work together to generate and qualify sales leads, shorten sales cycles, and demonstrate marketing accountability. Pardot offers affordable pricing for the SMB market.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/socialfortress-logo.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/socialfortress-logo.png?w=640&h=137" alt="" socialfortress-logo"="" class="aligncenter size-full wp-image-565688" height="137" width="640"></a></p>
<blockquote><p><a target="_blank" href="https://socialfortress.com/">Social Fortress</a> is data security and information privacy reinvented. Backed by the people who originally invented it. For both the enterprise and the consumer.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/badgylogo.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/badgylogo.png?w=640&h=198" alt="" badgylogo"="" class="aligncenter size-full wp-image-565838" height="198" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://bad.gy/">Badgy</a> delivers &#8220;SEO for Social&#8221; for major brands, increasing the reach of their content on Facebook and Twitter. It&#8217;s the fastest and most seamless way for a brand to operate a social loyalty program. Most recently, we&#8217;ve made it dead simple to get any Facebook app page using the extremely effective Facebook Timeline Actions.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/codeguardlogo.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/codeguardlogo.png?w=640&h=192" alt="" codeguardlogo"="" class="aligncenter size-full wp-image-565843" height="192" width="640"></a></p>
<blockquote><p><a target="_blank" href="https://codeguard.com/">CodeGuard</a> provides automatic cloud website backup and restore built upon Amazon Web Services: WordPress, MySQL, and FTP/SFTP. Restore files or entire sites whenever your want, and be notified when content on the site changes. Launched May 2011 at TechCrunch Disrupt &#8211; NYC, CodeGuard received the Audience Choice Award. Since then over 4 billion files have been examined and they recently announced the closure of a 1.3M Series A financing.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/collectordash_logo.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/collectordash_logo.jpg?w=640&h=243" alt="" corporate="" logo="" copy="" copy"="" class="aligncenter size-full wp-image-565881" height="243" width="640"></a></p>
<blockquote><p>Collectors are the best consumers&#8230;crazy and passionate. <a target="_blank" href="http://collectordash.com/">CollectorDASH</a> gives collectors a community-based experience making collecting more fun and affordable. With an innovative and integrated solution, the CollectorDASH platform is set to disrupt this multi-billion dollar market.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/ecommhub.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/ecommhub.png?w=640" alt="" ecommhub"="" class="aligncenter size-full wp-image-565882"></a></p>
<blockquote><p>In the growing e-commerce market, small and medium businesses with online stores often choose to drop-ship products direct from supplier to customer to compete with the big players. <a target="_blank" href="http://ecommhub.com/">eCommHub</a> is a drop shipping platform that integrates with your online store to automate inventory management and order fulfillment through a third-party, effectively allowing you to expand product offerings, route orders intelligently, and minimize backorders. With its easy setup process and pay as you grow™ pricing, eCommHub can serve smaller online retailers, allowing them to grow their business, increase their margin and improve customer retention.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/ideastringlogo.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/ideastringlogo.png?w=640&h=134" alt="" ideastringlogo"="" class="aligncenter size-full wp-image-565883" height="134" width="640"></a></p>
<blockquote><p>Employees today are publishing and sharing their valuable product and process optimization ideas almost everywhere except where they are needed the most – inside their own companies. What we do at <a target="_blank" href="http://ideastring.com/">IdeaString</a> is help companies capture the innovation and genius of their employees, customers and partners &#8212;then efficiently identify the best ideas so they can put them to work in their own business – instead of having to read about it on the internet, in the media or even from a direct competitor. IdeaString’s patent-pending technology puts the human spirit at the center of innovation – every employee’s unique talents and behaviors are intelligently leveraged to optimize the innovation process for richer, more creative Ideas that equals more valuable outcomes for business.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/ifusion_transparent.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/ifusion_transparent.png?w=640" alt="" ifusion_transparent"="" class="aligncenter size-full wp-image-565884"></a></p>
<blockquote><p>We’re fans of innovation and we’re completely sold on startups. It’s in <a target="_blank" href="http://www.ifusionmarketing.com/">iFusion</a>&#8216;s DNA. In addition to providing chief marketing officer counsel on a fractional basis, we also provide a full-range of marketing services to emerging growth companies. We’ve been in the trenches and understand the unique demands of taking a start up from idea to market. Ours is a customer-centric approach to marketing that raises awareness, nurtures leads and generates revenues.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/taglogo.gif" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/taglogo.gif?w=640" alt="" taglogo"="" class="aligncenter size-full wp-image-565885"></a></p>
<blockquote><p><a target="_blank" href="http://www.tagonline.org/">TAG</a> educates, promotes, influences and unites Georgia&#8217;s technology community to foster an innovative and connected marketplace that stimulates and enhances Georgia&#8217;s tech-based economy.</p></blockquote>
<h2>Raleigh-Durham</h2>
<p><img src="http://tctechcrunch2011.files.wordpress.com/2012/05/scaled-gbw-strategies.jpeg?w=640&h=197" alt="" title="StrikeironLogo_black" class="aligncenter size-full wp-image-566168" height="197" width="640"></p>
<blockquote><p>Special thanks to the fellows at GBW Strategies who helped us organize the event.<br>
<a target="_blank" href="http://gbwstrategies.com/">GBW Strategies</a> is a new era, Triangle-based public relations and marketing firm serving clients such as Facebook and the Cherokee Challenge.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/strikeironlogo_black.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/strikeironlogo_black.png?w=640&h=197" alt="" strikeironlogo_black"="" class="aligncenter size-full wp-image-566168" height="197" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.strikeiron.com">StrikeIron</a> is the leader in Data-as-a-Service (DaaS), delivering data quality and communications solutions via our cloud platform IronCloud. We provide address verification, email verification, phone validation, phone append, SMS text messaging, and sales tax solutions to customers in a variety of markets. Our solutions are delivered as Web services that can be easily integrated into any application or system. Additionally, our solutions are pre-integrated into leading platforms like: Magento, Eloqua, Salesforce.com, Informatica, Oracle CRM On-Demand and more.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/americantobacco.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/americantobacco.jpg?w=640&h=227" alt="" americantobacco"="" class="aligncenter size-full wp-image-568230" height="227" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.americantobaccocampus.com/">American Tobacco Campus</a> has evolved from an abandoned industrial husk to a thriving hub for cutting edge companies, restaurants and festivals. In addition to longtime tenants Burt’s Bees and global advertising firm McKinney, American Tobacco recently welcomed a R&amp;D arm of HTC. Late last year, Brooklyn-based Wireless Generation chose the campus for a development branch expressly because of its cultural verve and access to top talent.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/americanunderground.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/americanunderground.jpg?w=640&h=164" alt="" americanunderground"="" class="aligncenter size-full wp-image-568231" height="164" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.americanunderground.com/">American Underground</a> (inside American Tobacco) is home to the most capitalized technology accelerator in the southeast, startups, a gaming incubator, and resources such as NC IDEA and CED The Underground has become a model for other cities eager to foster entrepreneurialism, and an attractive asset to larger companies looking for spark, ideas and talent.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/tsf.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/tsf.jpg?w=640&h=179" alt="" tsf"="" class="aligncenter size-full wp-image-568232" height="179" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://trianglestartupfactory.com/">Triangle Startup Factory</a>, the most highly capitalized technology accelerator in the southeast, runs an intensive, three month program customized for early stage startup companies. Startups receive seed capital, hands-on mentorship, and access to a network of active angels, veteran startup founders, and experienced technology experts.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/digitalsmiths.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/digitalsmiths.jpg?w=640&h=204" alt="" digitalsmiths"="" class="aligncenter size-full wp-image-568233" height="204" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.digitalsmiths.com/">Digitalsmiths</a> is the technology leader in video search and recommendation; with customers such as Warner Brothers and Paramount.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/argylesocial_rgb.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/argylesocial_rgb.png?w=640&h=365" alt="" argylesocial_rgb"="" class="aligncenter size-full wp-image-568234" height="365" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://argylesocial.com/about/company">Argyle Social</a> is a Durham based marketing software company committed to helping their customers “harness the social channel and bend it to their will.</p></blockquote>
<blockquote><p><a target="_blank" href="http://www.netsertive.com/">Netsertive</a> drives increased local sales opportunities and targeted online exposure by providing technology-driven, high-performance online marketing to businesses and their related brands.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/geomagic.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/geomagic.jpg?w=640&h=162" alt="" geomagic"="" class="aligncenter size-full wp-image-568235" height="162" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.geomagic.com/en/about/geomagic/overview">Geomagic</a> is a leading provider of 3D software for creating digital models of physical objects.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-08-at-1-25-56-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-08-at-1-25-56-pm.png?w=640" alt="" screen="" shot="" 2012-06-08="" at="" 1.25.56="" pm"="" class="aligncenter size-full wp-image-568237"></a></p>
<blockquote><p><a target="_blank" href="http://www.sciquest.com/">SciQuest</a> helps organizations streamline their entire source-to-settle process, and is the only company that provides the scale, expertise and transparency that your organization requires to improve your bottom line.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/relevance.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/relevance.jpg?w=640" alt="" relevance"="" class="aligncenter size-full wp-image-568238"></a></p>
<blockquote><p><a target="_blank" href="http://thinkrelevance.com/">Relevance</a> delivers open source software solutions to help businesses succeed.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/sharefile.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/sharefile.jpg?w=640&h=196" alt="" sharefile"="" class="aligncenter size-full wp-image-568239" height="196" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.citrix.com/lang/English/home.asp">Sharefile/Citrix</a> provides business solutions that are enabling mobile workstyles and powering cloud services.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/nc-idea-logo.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/nc-idea-logo.jpg?w=640&h=295" alt="" nc="" idea="" logo"="" class="aligncenter size-full wp-image-568240" height="295" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.ncidea.org/">NC Idea</a> is a 501(c)(3) not-for-profit organization created to serve as a catalyst for young, high-growth, technology companies in North Carolina. They help these innovative companies mainly by providing early financing in the form of grants.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/groundwork-trans.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/groundwork-trans.png?w=640&h=138" alt="" groundwork="" trans"="" class="aligncenter size-full wp-image-568241" height="138" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://groundworklabs.com/">Groundwork Labs</a> is a catalyst to generate momentum for North Carolina startups and help prepare them for funding opportunities such as grants, accelerators, or angel investment.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/idea-fund-partners-1200x375.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/idea-fund-partners-1200x375.jpg?w=640&h=200" alt="" nc="" idea="" fund="" partners="" c"="" class="aligncenter size-full wp-image-568242" height="200" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.ideafundpartners.com/">Idea Fund Partners</a> is a seed and early stage venture capital firm with offices in Durham, North Carolina and Orlando, Florida. They invest mainly in the Southeast and Mid-Atlantic, focusing on companies developing software, medical devices or other technologies where intellectual property is an important asset and source of differentiation from competitors.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-08-at-1-24-53-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-08-at-1-24-53-pm.png?w=640&h=195" alt="" screen="" shot="" 2012-06-08="" at="" 1.24.53="" pm"="" class="aligncenter size-full wp-image-568243" height="195" width="640"></a></p>
<blockquote><p><a target="_blank" href="https://www.shoeboxed.com/sbx-home/">Shoeboxed</a> provides the fastest way to turn a pile of receipts into digital data for effortless expense reporting, accounting, bookkeeping, and tax preparation.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/bandwidth-logo-dark1200.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/bandwidth-logo-dark1200.png?w=640&h=107" alt="" bandwidth="" logo="" dark1200"="" class="aligncenter size-full wp-image-568244" height="107" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://bandwidth.com/">Bandwidth.com</a> provides Internet and telephone solutions to power business.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/reverbnation.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/reverbnation.jpg?w=640&h=172" alt="" reverbnation"="" class="aligncenter size-full wp-image-568245" height="172" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.reverbnation.com/">ReverbNation</a> provides a central site for musicians, producers, and venues to collaborate and communicate.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/chamber.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/chamber.jpg?w=640" alt="" chamber"="" class="aligncenter size-full wp-image-568246"></a></p>
<blockquote><p>The <a target="_blank" href="http://durhamchamber.org/">Durham Chamber</a> serves the needs of businesses, non-profits and government agencies of all sizes in the greater Durham-area.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/theescapistlogo_lt_bg_2012.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/theescapistlogo_lt_bg_2012.png?w=640" alt="" theescapistlogo_lt_bg_2012"="" class="aligncenter size-full wp-image-577677"></a></p>
<blockquote><p><a target="_blank" href="http://www.escapistmagazine.com/">The Escapist</a> is a multiple Webby Award-winning internet site focusing on games and entertainment, and is the leading voice in videogame culture for 4 million fans worldwide. This year, The Escapist will host the Escapist Expo, North Carolina’s premier consumer convention, which will unite fans of videogames, tabletop games, comics, music and more in a celebration of everything great in multi-media escapisim.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-25-at-1-16-18-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-25-at-1-16-18-pm.png?w=640" alt="" screen="" shot="" 2012-06-25="" at="" 1.16.18="" pm"="" class="aligncenter size-full wp-image-577679"></a></p>
<blockquote><p><a target="_blank" href="http://www.contactology.com/">Contactology</a> is the go-to provider of email marketing software for white labeling, API integrations, enterprise and startups. Marketers know we’re the ESP they’ll never outgrow.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-26-at-3-02-44-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-26-at-3-02-44-pm.png?w=640" alt="" screen="" shot="" 2012-06-26="" at="" 3.02.44="" pm"="" class="aligncenter size-full wp-image-578618"></a></p>
<blockquote><p><a target="_blank" href="http://www.inmotionnow.com/">inMotionNow</a> is a leading provider of workflow solutions for the enterprise creative department,  facilitating efficiency and productivity in the approval process for print, video, and interactive content. The company’s flagship product, the inMotion SaaS application for Creative Workflow Management, enables companies to manage and track their marketing and creative projects in a centralized, online environment. inMotion reviewers can access and markup content online and deliver approval back in minutes, from any internet-enabled device or through the inMotion Mobile Review app for iPhone and iPad.</p></blockquote>
<h2>Charlotte</h2>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/05/screen-shot-2012-05-29-at-5-49-56-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/05/screen-shot-2012-05-29-at-5-49-56-pm.png?w=640" alt="" screen="" shot="" 2012-05-29="" at="" 5.49.56="" pm"="" class="aligncenter size-full wp-image-562587"></a></p>
<p>Special thanks to <a target="_blank" href="http://redf.com/packard/">Packard Place</a> for hosting the event.<br>
<a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/nexticon2.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/nexticon2.jpg?w=640&h=640" alt="" nexticon2"="" class="aligncenter size-full wp-image-566176" height="640" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.nextable.com/NexTable/Home.html">NexTable</a> started with an idea to make reservations better and more affordable to our restaurant community. NexTable was founded by a group of dedicated entrepreneurs, restaurateurs and developers. Together with the assistance of local restaurateurs and mentors, we are committed to serving the restaurant industry by creating a revolutionary iPad real-time reservation, table management and marketing system that simply excels in value, innovation, features, and ease of use. Our objective is to liberate restaurants from using manual booking systems and costly competitors.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-05-at-9-18-45-am.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-05-at-9-18-45-am.png?w=640" alt="" screen="" shot="" 2012-06-05="" at="" 9.18.45="" am"="" class="aligncenter size-full wp-image-566178"></a></p>
<blockquote><p><a target="_blank" href="http://virtualracebags.com/">Virtual Race Bags</a> provides a fully-integrated online platform for Event Directors to efficiently and cost-effectively deliver sponsor messages to event participants. Much more than a simple “virtual goody bag,” Virtual Race Bags delivers sponsor deals, offers and messages to event participants using an online platform that is customized for each event. In addition, through our network of events, national brands can reach over 1.5MM participants in 2012. Virtual Race Bags was founded in 2010 by a team seeking to leverage their professional experience in the Endurance industry and as Athletes to help significantly improve upon the iconic race bag.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-05-at-9-23-12-am.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-05-at-9-23-12-am.png?w=640" alt="" screen="" shot="" 2012-06-05="" at="" 9.23.12="" am"="" class="aligncenter size-full wp-image-566180"></a></p>
<blockquote><p>Founded by a team of compassionate doctors, <a target="_blank" href="http://launch.werx.org/">WeRx.org</a> believes that all patients deserve the right to be fully informed about their healthcare. WeRx.org provides a community of caring advocates and patients a platform to share and compare the most up-to-date prescription drug costs between their local and online pharmacies. If you believe that every American deserves the right to have access to their needed medications, join us!</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/autopilot_wpheaderwhitebg.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/autopilot_wpheaderwhitebg.png?w=640&h=133" alt="" autopilot_wpheaderwhitebg"="" class="aligncenter size-full wp-image-576039" height="133" width="640"></a></p>
<blockquote><p>Autopilot allows you to book a vetted, professional driver on demand when you can’t, shouldn’t, or simply don’t want to drive your own vehicle. You can reserve a driver with the push of a button, track their arrival, and enjoy the benefits of automated, cashless payments all from your mobile device.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/mailvu-logo2-2.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/mailvu-logo2-2.jpg?w=640&h=341" alt="" mailvu-logo2"="" class="aligncenter size-full wp-image-576045" height="341" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://mailvu.com/">mailVU.com</a> provides an business video platform to service providers. Our API and private label accounts enable businesses to easily integrate video recording and distribution functionality into their own service. mailVU&#8217;s combination of mobile and computer apps allow real-time video recording of testimonials, pitches, applications, or personal messages and presentations. Customers access a private content library where videos can be viewed and managed, and then distributed in a variety of manners including social media, newsletters and email, or embedding onto websites.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-26-at-3-02-44-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-26-at-3-02-44-pm.png?w=640" alt="" screen="" shot="" 2012-06-26="" at="" 3.02.44="" pm"="" class="aligncenter size-full wp-image-578618"></a></p>
<blockquote><p><a target="_blank" href="http://www.inmotionnow.com/">inMotionNow</a> is a leading provider of workflow solutions for the enterprise creative department,  facilitating efficiency and productivity in the approval process for print, video, and interactive content. The company’s flagship product, the inMotion SaaS application for Creative Workflow Management, enables companies to manage and track their marketing and creative projects in a centralized, online environment. inMotion reviewers can access and markup content online and deliver approval back in minutes, from any internet-enabled device or through the inMotion Mobile Review app for iPhone and iPad.</p></blockquote>
<h2>Greenville:</h2>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/umatch.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/umatch.png?w=640&h=209" alt="" umatch"="" class="aligncenter size-full wp-image-566862" height="209" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.umatch.com">Umatch</a> combines cutting edge technology, proven research and retention principles, and dynamic machine learning into a proactive, holistic approach to improving enrollment yields, student retention rates, and graduation rates.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-06-at-12-06-56-pm.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/screen-shot-2012-06-06-at-12-06-56-pm.png?w=640" alt="" screen="" shot="" 2012-06-06="" at="" 12.06.56="" pm"="" class="aligncenter size-full wp-image-566963"></a></p>
<blockquote><p><a target="_blank" href="http://www.nextupstatesc.org/">NEXT</a> is an economic development program of the Greenville Chamber uniquely focused on the growth and attraction of early-stage knowledge-based companies in Greenville, South Carolina.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/theironyard.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/theironyard.png?w=640" alt="" theironyard"="" class="aligncenter size-full wp-image-566964"></a></p>
<blockquote><p><a target="_blank" href="http://www.theironyard.com">The Iron Yard</a> provides innovation, education, coworking, mentorship, capital, and events for the technology and design communities.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/ucan.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/ucan.jpg?w=640" alt="" ucan"="" class="aligncenter size-full wp-image-566965"></a></p>
<blockquote><p><a target="_blank" href="http://www.upstateangels.com/">The Upstate Carolina Angel Network</a>, LLC (UCAN) is a group of accredited investors located in Upstate South Carolina who invest in and support start-up and early-stage, high-growth businesses in the Southeastern United States. Since its inception in 2008, UCAN has invested more than $5.6 million in 22 companies.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/clemson.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/clemson.jpg?w=640" alt="" clemson"="" class="aligncenter size-full wp-image-566967"></a></p>
<blockquote><p>The mission of the <a target="_blank" href="http://www.clemson.edu/centers-institutes/spiro/">Arthur M. Spiro Institute for Entrepreneurial Leadership</a> is to support educational, research and outreach programs that promote entrepreneurial activity and economic development of the region, state and nation. The focus is on wealth creation through entrepreneurial activity.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/dealerignition.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/dealerignition.jpg?w=640" alt="" dealerignition"="" class="aligncenter size-full wp-image-566969"></a></p>
<blockquote><p><a target="_blank" href="http://dealerignition.com/">Dealer Ignition</a> is the fastest, easiest, most effective way for brands and dealers to market online.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/servosity.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/servosity.png?w=640" alt="" servosity"="" class="aligncenter size-full wp-image-566970"></a></p>
<blockquote><p><a target="_blank" href="http://www.servosity.com/">Servosity’s</a> Mission is to: Deliver Mission-Critical Backup and Disaster Recovery to MSPs and IT Resellers in a way that makes their brain do the happy-dance.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/mailprotector.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/mailprotector.png?w=640&h=332" alt="" mailprotector"="" class="aligncenter size-full wp-image-566971" height="332" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.mailprotector.com/">Mailprotector</a> provides a suite of SaaS based email security and management solutions to over 3,000 organizations across six continents.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/foxfire.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/foxfire.jpg?w=640&h=172" alt="" foxfire"="" class="aligncenter size-full wp-image-566973" height="172" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.foxfiresoftware.com/">Foxfire</a> specializes in Warehouse Management Software solutions and services. Our warehousing software is available as Level 1: Inventory Management, Level 2: WMS Express, and Level 3: WMS Enterprise. Foxfire warehousing software is ideal for start-up to mid-sized warehouses that want to optimize production and processes. Foxfire WMS provides the flexibility to use the system as is or to configure to exact specifications.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/rapindex.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/rapindex.png?w=640&h=283" alt="" rapindex"="" class="aligncenter size-full wp-image-566974" height="283" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.rapindex.com/">RAP Index</a> is a key contacts software service, developed by advocacy experts for advocacy professionals, that uses a patent-pending scoring process to decisively identify and measure the Relationships, Advocability and Political Capital of an organization’s stakeholders, to find their key contacts and activate their best messengers. RAP Index is an indispensable service that helps organizations Know Who They Know℠ from the Capital to Main Street.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/fusionwebclinic.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/fusionwebclinic.png?w=640&h=316" alt="" fusionwebclinic"="" class="aligncenter size-full wp-image-566976" height="316" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.fusionwebclinic.com/">Fusion Web Clinic</a> is the smartest Electronic Medical Record (EMR) system in therapy. It is the first and only system that automatically keeps track of daily, required tasks for each staff member, and graphs patient progress. Fusion allows you to work smarter, not harder.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/vigilix.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/vigilix.jpg?w=640" alt="" vigilix"="" class="aligncenter size-full wp-image-566978"></a></p>
<blockquote><p><a target="_blank" href="http://www.vigilix.com/">Vigilix</a> helps companies improve the value of their technical support services through PCI validated proactive monitoring and remote access. Currently over 20,000 systems are supported by companies using Vigilix’s POS Monitoring &amp; Management solution.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/proactive.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/proactive.jpg?w=640&h=187" alt="" proactive"="" class="aligncenter size-full wp-image-566979" height="187" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://www.pa-tech.com/Pages/default.aspx">ProActive Technology</a> delivers dynamic solutions to help clients identify what data is necessary for improved business performance and then to develop the most efficient software for that purpose. Specializations include SharePoint Development, Custom Programming, and Database Management. ProActive provides fully-managed, worry-free custom software development that&#8217;s sensitive to your budget, schedule, and business model.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/locengine.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/locengine.jpg?w=640" alt="" locengine"="" class="aligncenter size-full wp-image-566981"></a></p>
<blockquote><p><a target="_blank" href="http://signup.locengine.com/">Loc Engine</a>: You are here. They are there. Let’s share. Real-time tracking and location management.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/tribr.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/tribr.png?w=640&h=466" alt="" tribr"="" class="aligncenter size-full wp-image-566984" height="466" width="640"></a></p>
<blockquote><p><a target="_blank" href="http://signup.tribr.me/">tribr</a> is taking the hassle out getting together with a group of your friends. More fun with your tribe, and less hassle!</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/pathwright.png" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/pathwright.png?w=221&h=300" alt="" pathwright"="" class="aligncenter size-medium wp-image-566985" height="300" width="221"></a></p>
<blockquote><p><a target="_blank" href="http://www.pathwright.com/">Pathwright</a> is a platform for creating, teaching, and selling beautiful online courses.</p></blockquote>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/06/eleos.jpg" rel="lightbox[586536]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/06/eleos.jpg?w=640" alt="" eleos"="" class="aligncenter size-full wp-image-566987"></a></p>
<blockquote><p><a target="_blank" href="http://www.eleostech.com/">Eleos Technologies</a> is on a mission to eradicate fax machines from the face of the earth. Our cloud- based mobile platform enables businesses to capture documents and photos from remote workers and customers.</p></blockquote>
  <div id="jp-post-flair" class="sharedaddy"></div>							
							<div style="clear:both;"></div>
													</div><img src ="http://www.cppblog.com/BoyXiao/aggbug/183337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-07-14 11:50 <a href="http://www.cppblog.com/BoyXiao/archive/2012/07/14/183337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Kickstarter, M.D.: MedStartr Finally Brings Crowdfunding To Health&amp;nbsp;Projects</title><link>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183336.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Sat, 14 Jul 2012 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183336.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/183336.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/183336.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/183336.html</trackback:ping><description><![CDATA[<div class="body-copy">
							<div class="post-first-image">
							<img width="288" height="87" src="http://tctechcrunch2011.files.wordpress.com/2012/07/logo-5-20121.png?w=288" class="attachment-image wp-post-image" alt="logo-5-2012" title="logo-5-2012">							</div>

							<p>The Crowd is on the loose. Thanks to the JOBS Act, mainstream attention came to crowdfunding this year, and platforms like Kickstarter and Indiegogo have been benefitting in kind. Kickstarter, in particular, has seen an exponential increase this year in how much capital its projects have been able to raise. (Exhaustive <a href="http://techcrunch.com/2012/07/08/how-pebble-and-other-product-phenomenons-killed-it-on-kickstarter/">post on the subject here</a>.) The Crowd has pledged $275 million to some 63,000 Kickstarter projects to date, and companies of all breeds are now using these platforms as launchpads and for a little proof of concept.</p>
<p>But, sadly, you know who really isn&#8217;t benefitting from the crowdfunding boom? Healthcare startups. Brian Dolan of <a target="_blank" href="http://mobihealthnews.com/17841/medstartr-to-launch-after-kickstarter-rejects-some-health-projects/">MobiHealth points out that</a>, in fact, Kickstarter officially prohibits health, fitness, and medical projects. Healthcare is absolutely jonesin&#8217; for innovation, and there are tons of <a href="http://techcrunch.com/tag/healthtech/">cool health companies</a> trying to change the world &#8212; some of them even a little sexy and consumer-facing.</p>
<p>That&#8217;s why serial healthtech entrepreneur Alex Fair and founding Kickstarter product manager Mike Pence have set out to give health-focused entrepreneurs and projects a Kickstarter of their own. <a target="_blank" href="http://www.medstartr.com/">Medstartr</a>, which launched in beta today, is a crowdfunding platform designed specifically for healthcare companies, providing startups with a vehicle to market their wares, generate awareness and raise capital &#8212; direct from strangers, investors, and Doogie Howsers alike.</p>
<p>Sure, support for healthtech startups &#8212; and their small victories &#8212; are worth noting just on principle. But, MedStartr isn&#8217;t aiming just to be a lazy port of Kickstarter/Indiegogo to healthcare. Fair was inspired to create Medstartr not only because of the rejection his healthtech ideas found on Kickstarter, but also because of the much-ballyhooed JOBS Act. The legislation legalized funding in startups by non-accredited investors and has likely changed early-stage investing for good.</p>
<p>The SEC is still working out the specifics of the regulations aimed at bringing some order to the wild and wooly west that will be Crowdfunding 1.0. In particular, the government must decide on where to cap the amount of capital businesses can raise via crowdfunding platforms, whether or not they&#8217;ll be able to raise cash by selling securities, etc. And, as it goes with medical biznass, the regulations will have specific measures (i.e. restrictions) on health businesses, with some of those being determined by the FDA. </p>
<p>Until the regulations are released, crowdfunding platforms have to wait and over-prepare if they can. In the meantime, MedStartr is limiting the amount of capital its projects can raise to $40,000 and, like the Kickstarters of the world, MedStartr is non equity-based, instead offering market validation and non-dilutive funding as value propositions for startups. Once SEC rules are set, however, Fair tells us that the company will establish an equity model.</p>
<p>In this way, the co-founders have plenty of plans for how the platform will differentiate from the big names, but some are still incipient &#8212; in part because the platform was founded about three months ago and in part because some may be subject to change.</p>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/07/medstartr_community_screenshot.png" rel="lightbox[586356]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/07/medstartr_community_screenshot.png?w=640&h=430" alt="" medstartr_community_screenshot"="" width="640" height="430" class="aligncenter size-full wp-image-586442"></a></p>
<p>For starters, Fair has nearly two decades worth of experience in healthtech, health IT, and consulting, which he plans to leverage to help MedStartr&#8217;s health projects not only reach their targets but find follow-on funding and support. Of course, while it will become trickier at scale, entrepreneurs can expect much more of a hands-on, or proactive, approach from the founders in comparison to Kickstarter. </p>
<p>They have already started to, and plan to continue with an events-based model, in which MedStartr will hold mini-conferences (with panels, etc.) in various cities, allowing project creators to set up booths and interact and network with potential investors. Like a MeetUp for Medics.</p>
<p>Fair also sees some bigger potential industry benefits than the requisite low-cose inbound marketing that is typically a built-in perk of crowdfunding platforms. Up to this point, hospitals, doctors, patients, and healthcare companies have largely lacked public resources by which to discover, interact with, and invest in health companies.</p>
<p>Many health or medical projects also inherently have highly motivated and engaged user bases (<a href="http://techcrunch.com/2012/07/11/23andme-first-acquisition/">see 23andMe and CureTogether for examples</a>), as they often promote healthier lifestyles, provide support for people in need or suffering from illnesses, try to find cures, and reduce medical and insurance costs. All of which can be emotional issues. </p>
<p>A crowdfunding platform for health projects allows the many who, say, want to help make or find ways to contribute to the health of loved ones to participate actively in the process. And feel a direct connection to projects and their founders and feel they&#8217;re making a difference. MedStartr launched with both a <a target="_blank" href="http://beta.medstartr.com/projects/19-endogoddess-diabetes-app-clinical-trial-fundraiser">diabetes project</a> and <a target="_blank" href="http://beta.medstartr.com/projects/21-so-they-can-know">a project that supports those with STDS</a>, for example.</p>
<p>On top of this, it seems that MedStartr also has the potential to incorporate some elements of AngelList and healthtech incubators like Rock Health and Blueprint. The crowdfunding platform can function as a screening ground for investors. Startups turn their project pages into pitch platforms, incorporating video, images, etc., and investors can interact and connect with the entrepreneurs through the site. </p>
<p><a target="_blank" href="http://tctechcrunch2011.files.wordpress.com/2012/07/screen-shot-2012-07-11-at-9-30-03-pm.png" rel="lightbox[586356]"><img src="http://tctechcrunch2011.files.wordpress.com/2012/07/screen-shot-2012-07-11-at-9-30-03-pm.png?w=640&h=472" alt="" screen="" shot="" 2012-07-11="" at="" 9.30.03="" pm"="" width="640" height="472" class="aligncenter size-full wp-image-586443"></a></p>
<p>MedStartr can also incorporate partner programs that allows doctors, CIOs, or executives of health companies to use MedStartr for validation and deal flow and to support them. If they like the idea, they can offer up a deal. If they sign up a certain number of physicians, attract a certain amount of feedback and hit a set target for funding, then a CTO of Pfizer, say, could reward them by funding their first pilot study. The company already has a big pharma company and medical society on board.</p>
<p>All that being said, MedStartr&#8217;s current incarnation owes a lot to the popular crowdfunding platforms. Its name (and the design of its site) make that apparent enough. But, if MedStartr is able to deliver on even half of its goals, it can become more than a valuable, feel-good medtech experiment. VCs and investors want to invest in great healthtech companies, and this gives them a great way to interact with health startups and source potential investments. </p>
<p>It&#8217;s not clear that there can be enough cross-over from mainstreamers and consumers to give MedStartr the lift it needs to hit scale, rather than remaining a purely industry resource. But if they play it well, and turn it into a viable Kickstarter/MeetUp/AngelList hybrid for health startups, why not?</p>
<p>Find <a target="_blank" href="http://www.medstartr.com/">MedStartr at home here</a>.</p>
  <br>  <div class="module-crunchbase">
   	<div class="configuration-neighbor">
       <h2 class="global-module-header-default">
   			<span class="line-1">
   			  <div class="cb-home-header cb-stack-home-header">
   			    <a href="http://crunchbase.com">Crunchbase</a>
   			  </div>
   			</span>
   		</h2>
   		<div class="container" id="tabs-crunchbase">
     		<ul class="tab-container">
    			    				<li><a class="tab" href="#tabs-crunchbase-1" onclick="s_objectID='post_widget_crunchbase';">MEDSTARTR</a></li>
    			    				<li><a class="tab" href="#tabs-crunchbase-2" onclick="s_objectID='post_widget_crunchbase';">KICKSTARTER</a></li>
    			    				<li><a class="tab" href="#tabs-crunchbase-3" onclick="s_objectID='post_widget_crunchbase';">MEETUP</a></li>
    			  			</ul>
			<!--<div class="panel-container">-->
								<div class="panel" id="tabs-crunchbase-1">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Company:</span>
								<span><a href="http://www.crunchbase.com/company/medstartr" onclick="s_objectID='post_widget_crunchbase';">MedStartr</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://www.medstartr.com/" onclick="s_objectID='post_widget_crunchbase';">medstartr.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>April 2012</span>
						</div>
																	</div>
							<div class="body-copy">
					<p>MedStartr is the Kickstarter for health. That is to say it&#8217;s also a platform by which anyone and everyone can fund and support healthcare projects, startups, and innovations that improve healthcare and help people live longer, better lives. 

MedStartr is powered by an all-or-nothing funding method where projects must be fully-funded or no money changes hands. This makes it so you have no obligations either way if critical mass is not achieved to get to your minimum viable product.</p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/company/medstartr"><img src="http://crunchbase.com/assets/images/resized/0020/0362/200362v1-max-150x150.png" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/company/medstartr" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
									<div class="panel" id="tabs-crunchbase-2">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Company:</span>
								<span><a href="http://www.crunchbase.com/company/kickstarter" onclick="s_objectID='post_widget_crunchbase';">Kickstarter</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://www.kickstarter.com" onclick="s_objectID='post_widget_crunchbase';">kickstarter.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>April 2009</span>
						</div>
															<div class="left-align">
						<span class="header-text">Funding:</span>
						<span>$10M</span>
					</div>
												</div>
							<div class="body-copy">
					<p>Every week, tens of thousands of people pledge millions of dollars to projects from the worlds of music, film, art, technology, design, games, fashion, food, publishing, and other creative fields. Since its launch on April 28th, 2009, more than one and a quarter million people have pledged $130 million to projects by creators who always maintain full ownership and complete creative control of their work. </p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/company/kickstarter"><img src="http://crunchbase.com/assets/images/resized/0011/6725/116725v1-max-150x150.png" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/company/kickstarter" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
									<div class="panel" id="tabs-crunchbase-3">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Company:</span>
								<span><a href="http://www.crunchbase.com/company/meetup" onclick="s_objectID='post_widget_crunchbase';">Meetup</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://www.meetup.com" onclick="s_objectID='post_widget_crunchbase';">meetup.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>January  7, 2002</span>
						</div>
															<div class="left-align">
						<span class="header-text">Funding:</span>
						<span>$18.4M</span>
					</div>
												</div>
							<div class="body-copy">
					<p>Meetup is a local community organizing network that makes it easy for anyone to organize a local group or find one of the thousands already meeting up face-to-face. Over 9.5 million people have created and joined long-lasting local Meetup Groups around shared interests and purposes. A Meetup starts somewhere on the planet every 13 seconds. 

Meetup&#8217;s mission is to revitalize local community and help people around the world self-organize. Meetup believes that people can change their personal world, or...</p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/company/meetup"><img src="http://crunchbase.com/assets/images/resized/0001/3896/13896v3-max-150x150.jpg" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/company/meetup" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
								<!--</div> End of panel-container -->
			</div>
		 </div>
 	</div>
 	<div style="clear: both;"></div>
<script>
jQuery(function() { jQuery("#tabs-crunchbase").tabs(); });
</script>

 	<div id="jp-post-flair" class="sharedaddy"></div>							
							<div style="clear:both;"></div>
													</div><img src ="http://www.cppblog.com/BoyXiao/aggbug/183336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-07-14 11:50 <a href="http://www.cppblog.com/BoyXiao/archive/2012/07/14/183336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>P2P Storage Startup Space Monkey Raises $2.25M Led By Google Ventures And&amp;nbsp;Venture51</title><link>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183335.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Sat, 14 Jul 2012 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183335.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/183335.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/183335.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/183335.html</trackback:ping><description><![CDATA[<div class="body-copy">
							<div class="post-first-image">
							<img width="288" height="193" src="http://tctechcrunch2011.files.wordpress.com/2012/07/space-monkey.jpeg?w=288" class="attachment-image wp-post-image" alt="space monkey" title="space monkey">							</div>

							<p><a target="_blank" href="http://www.spacemonkey.com">Space Monkey</a>, the startup offering a peer-to-peer alternative to cloud storage services like Dropbox, just raised $2.25 million in a seed round of funding.</p>
<p>The company says that it&#8217;s combining the benefits of both local storage and the cloud. Every Space Monkey customer gets their own storage device, so they can access their files without having to worry about download times or pay the higher cost of cloud storage (which can become an issue when you&#8217;re talking about large media files like videos). Copies of those files are also distributed in chunks to other Space Monkey devices, allowing for remote access and backup.</p>
<p>I first wrote about the company when it <a href="http://techcrunch.com/2012/03/08/space-monkey-launch/">won the best new startup prize at the Launch conference</a> in March. At the time, some readers pointed out that there are some open source solutions trying to do something similar. However, there&#8217;s a big difference between an interesting open source project and a consumer-grade service and company. Product Guy Clint Gordon-Carroll (yes, that&#8217;s his real title) says that the real challenge is creating something that&#8217;s actually compelling to a large audience. For example, he notes that by introducing the Space Monkey device, users no longer need to keep their computers online at all times.</p>
<p>In the first week alone, Gordon-Carroll says Space Monkey saw 10,000 sign ups. The company is now planning to ship the first devices this fall.</p>
<p>At the conference, Space Monkey had already raised $750,000. That amount was rolled into the new seed round, which was led by by Google Ventures and Venture51. Here&#8217;s the full, incredibly long list of investors (or at least those who can be disclosed publicly):</p>
<ul>
<li>Polaris Venture Partners</li>
<li>Morado Ventures</li>
<li>Social + Capital Partnership</li>
<li>Zelkova Ventures</li>
<li>Data Collective (Matt Ocko)</li>
<li>B-Squared Ventures</li>
<li>TriplePoint</li>
<li>Sky Dayton</li>
<li>Benjamin Ling</li>
<li>Nicolas Berggruen</li>
<li>Jason Calacanis</li>
<li>Bill Lee</li>
<li>Steve Chen</li>
<li>Ben Narasin</li>
<li>Don Hutchison</li>
</ul>
  <br>  <div class="module-crunchbase">
   	<div class="configuration-neighbor">
       <h2 class="global-module-header-default">
   			<span class="line-1">
   			  <div class="cb-home-header cb-stack-home-header">
   			    <a href="http://crunchbase.com">Crunchbase</a>
   			  </div>
   			</span>
   		</h2>
   		<div class="container" id="tabs-crunchbase">
     		<ul class="tab-container">
    			    				<li><a class="tab" href="#tabs-crunchbase-1" onclick="s_objectID='post_widget_crunchbase';">GOOGLE VENTURES</a></li>
    			    				<li><a class="tab" href="#tabs-crunchbase-2" onclick="s_objectID='post_widget_crunchbase';">VENTURE51</a></li>
    			    				<li><a class="tab" href="#tabs-crunchbase-3" onclick="s_objectID='post_widget_crunchbase';">SPACE MONKEY</a></li>
    			  			</ul>
			<!--<div class="panel-container">-->
								<div class="panel" id="tabs-crunchbase-1">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Financial-organization:</span>
								<span><a href="http://www.crunchbase.com/financial-organization/google-ventures" onclick="s_objectID='post_widget_crunchbase';">Google Ventures</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://www.googleventures.com" onclick="s_objectID='post_widget_crunchbase';">googleventures.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>March 31, 2009</span>
						</div>
																	</div>
							<div class="body-copy">
					<p>Google Ventures is the financially motivated venture capital arm of Google Inc., founded in 2009.

Google Ventures invests in startups in industries including consumer Internet, software, hardware, clean-tech, bio-tech, health care and others. 

They aim to invest about $100 million a year, with deal sizes ranging from seed to late-stage investments of tens of millions of dollars, depending on the stage of the opportunity and the company&#8217;s need for capital.

Google Ventures currently invests in the U.S. and has offices in...</p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/financial-organization/google-ventures"><img src="http://crunchbase.com/assets/images/resized/0003/9829/39829v8-max-150x150.jpg" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/financial-organization/google-ventures" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
									<div class="panel" id="tabs-crunchbase-2">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Financial-organization:</span>
								<span><a href="http://www.crunchbase.com/financial-organization/venture51" onclick="s_objectID='post_widget_crunchbase';">Venture51</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://www.venture51.com" onclick="s_objectID='post_widget_crunchbase';">venture51.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>August  1, 2010</span>
						</div>
																	</div>
							<div class="body-copy">
					<p>Venture51 is an early-stage venture fund built for entrepreneurs by entrepreneurs. We partner with promising entrepreneurs at the earliest stages in the highest-growth segments of the Information Technology market, bringing our own entrepreneurial experience, relationships, and marketing/product expertise to the table. </p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/financial-organization/venture51"><img src="http://crunchbase.com/assets/images/resized/0012/5493/125493v2-max-150x150.png" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/financial-organization/venture51" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
									<div class="panel" id="tabs-crunchbase-3">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Company:</span>
								<span><a href="http://www.crunchbase.com/company/space-monkey" onclick="s_objectID='post_widget_crunchbase';">Space Monkey</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://spacemonkey.com/" onclick="s_objectID='post_widget_crunchbase';">spacemonkey.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>July 2011</span>
						</div>
															<div class="left-align">
						<span class="header-text">Funding:</span>
						<span>$2.25M</span>
					</div>
												</div>
							<div class="body-copy">
					<p>Space Monkey builds cheaper, faster, and a more efficient cloud data storage service for its users offering more space for less. Space Monkey keeps all your content in one place and secure while accessible anywhere and on any device.</p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/company/space-monkey"><img src="http://crunchbase.com/assets/images/resized/0020/0328/200328v1-max-150x150.png" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/company/space-monkey" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
								<!--</div> End of panel-container -->
			</div>
		 </div>
 	</div>
 	<div style="clear: both;"></div>
<script>
jQuery(function() { jQuery("#tabs-crunchbase").tabs(); });
</script>

 	<div id="jp-post-flair" class="sharedaddy"></div>							
							<div style="clear:both;"></div>
													</div><img src ="http://www.cppblog.com/BoyXiao/aggbug/183335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-07-14 11:50 <a href="http://www.cppblog.com/BoyXiao/archive/2012/07/14/183335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Andreessen-Backed LearnSprout Wants To Help Developers Unlock Educational&amp;nbsp;Data</title><link>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183334.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Sat, 14 Jul 2012 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183334.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/183334.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183334.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/183334.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/183334.html</trackback:ping><description><![CDATA[<div class="body-copy">
							<div class="post-first-image">
							<img width="288" height="99" src="http://tctechcrunch2011.files.wordpress.com/2012/07/screen-shot-2012-07-11-at-11-48-49-am.png?w=288" class="attachment-image wp-post-image" alt="Screen shot 2012-07-11 at 11.48.49 AM" title="Screen shot 2012-07-11 at 11.48.49 AM">							</div>

							<p>APIs are marching into education, and it&#8217;s about time. Education is rife with legacy infrastructure, with one of the primary offenders being Student Information Systems (SIS). Schools use these systems to store huge amounts of sensitive student information (class lists, attendance, grades and allergies, etc.), but they differ widely from school to school, which, among other things, forces developers to manually integrate with each unique system, making it difficult for their cool educational software or apps to achieve any kind of scale.</p>
<p><a target="_blank" href="http://learnsprout.com/">LearnSprout</a>, a recent graduate of the education-focused startup accelerator <a target="_blank" href="http://www.imaginek12.com/">Imagine K12</a> wants to help both schools and developers unleash those opaque educational data silos with the help of a few clean, standardizing APIs. While the recently-launched startup is not alone &#8212; <a href="http://techcrunch.com/2012/06/26/clever-launches-twilio-for-ed-data/">Y Combinator-backed Clever launched a similar platform last month</a> &#8212; LearnSprout now has the benefit of some notable investors to help fuel its fires. </p>
<p>The startup is in the process of closing its first round of funding with participation from Andreessen Horowitz, Formation 8 (a new VC fund headed by Palantir co-founder Joe Lonsdale), Benjamin Ling, Philip Fung and Luke Shepard &#8212; to name a few. LearnSprout is in the process of adding a few more investors and is hoping to cap the round at around $1 million. </p>
<p>LearnSprout is also one of eight companies (and the only education startup) to be accepted into the inaugural cohort of <a target="_blank" href="http://codeforamerica.org/accelerator/">Code For America&#8217;s accelerator program</a>, which provides early-stage businesses with a grant, mentoring, and introductions to tech-savvy decision makers in local and federal government in an effort to help them grow civically-minded businesses. </p>
<p>Founded in January this year by Franklyn Chien, Anthony Wu, and Joe Woo, veterans of Facebook, Google, and Microsoft respectively, today LearnSprout is already working with 40+ schools and another 200+ schools are in the pipeline, and it&#8217;s begun to generate revenue to boot. All in all, not bad progress for six months.  </p>
<p>But, as it so often goes, this isn&#8217;t where the team initially planned to end up. Chien tells us that, going into Imagine K12, LearnSprout had begun to build a modern learning management system-student information system hybrid that was intended to be v2.0 of Blackboard &#8212; something not too dissimilar <a href="http://techcrunch.com/2012/06/15/cisco-teams-up-with-instructure-to-move-the-worlds-largest-it-classroom-to-the-cloud/">from Instructure&#8217;s Canvas</a>. But, it wasn&#8217;t long before the founders came to the realization that getting schools to dump their existing systems was basically a fool&#8217;s errand.</p>
<p>Rather than shell out money for new systems or software, schools tend to make due with what they have, adding ad hoc fixes as they go. There are over 100 student information systems in operation today, each of them built in Frankenstein ways to save costs. Teachers end up having to manually enter data themselves, making transferring, aggregating, and gaining insight into these data silos a nightmare.</p>
<p>Because schools aren&#8217;t eager to budge, the best fix is to give them (and developers) one set of APIs that allows them to keep their systems in place while making their data portable and fluent in a universal language. The startup&#8217;s APIs essentially create a secure channel through which developers and schools can transfer the sensitive information from their student information systems.</p>
<p>LearnSprout removes the pain for developers of having to manage CSV files, exports and FTP servers, and removes manual data entry. As extra incentive for schools, LearnSprout handles all data integration with the student information systems itself, whether it&#8217;s CSV or direct database connection. The team is also providing schools with two applications that come on top of its APIs and work right out of the box &#8212; one of them being a school-wide emergency notification system, for example. The purpose of including these apps, Chien says, is to showcase the power of the platform, give schools a way to get used to the new system, while giving developers an archetype with which to work.</p>
<p>LearnSprout also handles data duplication, serving developers and schools with only the most up-to-date information. What&#8217;s more, for schools, it&#8217;s all free. LearnSprout offers them one-click install to get them started, charging developers either with a flat fee or offering a revenue share based on the number of integrations. If they bring a new school to LearnSprout, however, integration is free. Right now, Chien says that the startup is already working with about 70 percent of the SIS in operation in the U.S. and is hard at work on covering the remainder.</p>
<p>In terms of its plan going forward, the team is already thinking beyond the U.S., eyeing tons of potential abroad and plans to leverage contacts from Andreessen and Formation 8 to begin taking international steps.</p>
<p>You can find <a target="_blank" href="http://learnsprout.com/">LearnSprout at home here</a>, or check out their pitch at Imagine K12&#8242;s Demo Day below:</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/whHZL4pj6mQ?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
  <br>  <div class="module-crunchbase">
   	<div class="configuration-neighbor">
       <h2 class="global-module-header-default">
   			<span class="line-2">
   			  <div class="cb-home-header cb-stack-home-header">
   			    <a href="http://crunchbase.com">Crunchbase</a>
   			  </div>
   			</span>
   		</h2>
   		<div class="container" id="tabs-crunchbase">
     		<ul class="tab-container">
    			    				<li><a class="tab" href="#tabs-crunchbase-1" onclick="s_objectID='post_widget_crunchbase';">LEARNSPROUT</a></li>
    			  			</ul>
			<!--<div class="panel-container">-->
								<div class="panel" id="tabs-crunchbase-1">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Company:</span>
								<span><a href="http://www.crunchbase.com/company/learnsprout" onclick="s_objectID='post_widget_crunchbase';">LearnSprout</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://learnsprout.com/" onclick="s_objectID='post_widget_crunchbase';">learnsprout.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>January 2012</span>
						</div>
																	</div>
							<div class="body-copy">
					<p>LearnSprout makes it easy for developers to build and distribute education apps by providing a standard API to schools’ data that unlock the grading, attendance, and roster information.</p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/company/learnsprout"><img src="http://crunchbase.com/assets/images/resized/0020/0213/200213v4-max-150x150.png" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/company/learnsprout" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
								<!--</div> End of panel-container -->
			</div>
		 </div>
 	</div>
 	<div style="clear: both;"></div>
<script>
jQuery(function() { jQuery("#tabs-crunchbase").tabs(); });
</script>

 	<div id="jp-post-flair" class="sharedaddy"></div>							
							<div style="clear:both;"></div>
													</div><img src ="http://www.cppblog.com/BoyXiao/aggbug/183334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-07-14 11:50 <a href="http://www.cppblog.com/BoyXiao/archive/2012/07/14/183334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bing Fund: Microsoft Officially Launches Its New Angel Fund And Incubator&amp;nbsp;Program</title><link>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183333.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Sat, 14 Jul 2012 03:48:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183333.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/183333.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/183333.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/183333.html</trackback:ping><description><![CDATA[<div class="body-copy">
							<div class="post-first-image">
							<img width="244" height="244" src="http://tctechcrunch2011.files.wordpress.com/2012/07/6644-b-fund-logo_3669b89f.png?w=244" class="attachment-image wp-post-image" alt="6644.b-fund-logo_3669B89F" title="6644.b-fund-logo_3669B89F">							</div>

							<p>This wasn&#8217;t exactly <a target="_blank" href="http://www.techmeme.com/120708/p6#a120708p6">a secret</a> anymore, but Microsoft just officially <a target="_blank" href="http://www.bing.com/community/site_blogs/b/search/archive/2012/07/12/bing-seeks-to-drive-innovation-with-bing-fund.aspx">unveiled</a> its <a target="_blank" href="http://www.bingfund.com">Bing Fund</a>, a new angel fund and incubator program sponsored by Bing and &#8220;backed by the experience, expertise, and resources of Microsoft.&#8221; The idea here, says Microsoft, is to &#8220;partner with like-minded entrepreneurs—great talent that is innovating online to solve big problems and create amazing new experiences.&#8221; The fund is looking for startups that focus on mobile and web experiences and which provide &#8220;both inspirational vision&#8221; and the &#8220;ability to execute.&#8221;</p>
<p>Microsoft also recommends that the startups that plan to apply for this program already have a working prototype and a broad plan for how to tackle the problem they are trying to solve and what the market for their products looks like.</p>
<p>Startups will be accepted on an on-going basis and the Bing Fund is also looking to partner with existing accelerators to find potential candidates for the new fund. The plan is to focus on just a few startups at a time and as companies graduate, new ones will be accepted to fill their spots. Microsoft doesn&#8217;t promise that it will acquire successful startups, but the company says that &#8220;acquisition is always a possibility.&#8221;</p>
<p><a href="http://techcrunch.com/2012/07/12/bing-fund-microsoft-launches-its-own-angel-fund-and-incubator-program/bing-fund/" rel="attachment wp-att-586853"><img src="http://tctechcrunch2011.files.wordpress.com/2012/07/bing-fund.jpg?w=300&h=160" alt="" title="Bing Fund" width="300" height="160" class="alignright size-medium wp-image-586853"></a>Besides receiving funding, the startups that are accepted into this program will receive subsidies to use Bing&#8217;s APIs and also access to technologies developed by Microsoft Research. Microsoft also plans to provide these startups with mentors inside the company and promises that the IP and product will remain in the hands of the participating companies.</p>
<p>Startups that are located in Seattle will also be able to take advantage of co-workspace in Bellevue (a few miles <a target="_blank" href="http://binged.it/MkEUIZ">away</a> from the company&#8217;s main Redmond campus), where the Bing Fund team and Microsoft&#8217;s machine learning, search and data experts are located.</p>
<p>It&#8217;s worth noting that the Bing Fund does not require companies to use development stack, but it does encourage startups to participate in its BizSpark program, which gives companies that are less than three years old and make less than $1 million per year discounted access to its development tools. BizSpark already <a target="_blank" href="http://www.microsoft.com/en-us/news/press/2012/jan12/01-30TechStarsPR.aspx">works with TechStars</a>, by the way, to make $60,000 worth of Azure compute and storage services available to the companies in its <a target="_blank" href="http://www.microsoft.com/bizSpark/accelerator/azure/?WT.mc_id=Accelerator_offer">Microsoft Accelerator for Windows Azure program</a>.</p>
  <br>  <div class="module-crunchbase">
   	<div class="configuration-neighbor">
       <h2 class="global-module-header-default">
   			<span class="line-2">
   			  <div class="cb-home-header cb-stack-home-header">
   			    <a href="http://crunchbase.com">Crunchbase</a>
   			  </div>
   			</span>
   		</h2>
   		<div class="container" id="tabs-crunchbase">
     		<ul class="tab-container">
    			    				<li><a class="tab" href="#tabs-crunchbase-1" onclick="s_objectID='post_widget_crunchbase';">MICROSOFT</a></li>
    			  			</ul>
			<!--<div class="panel-container">-->
								<div class="panel" id="tabs-crunchbase-1">
						<div class="leftgreen">
							<div class="info-container info-container-stack-view">
								<div class="left-align">
								<span class="header-text">Company:</span>
								<span><a href="http://www.crunchbase.com/company/microsoft" onclick="s_objectID='post_widget_crunchbase';">Microsoft</a></span>
								</div>
																<div class="left-align">
								<span class="header-text">Website:</span>
								<span><a href="http://www.microsoft.com" onclick="s_objectID='post_widget_crunchbase';">microsoft.com</a></span>
								</div>
																						<div class="left-align">
						<span class="header-text">Launch Date:</span>
						<span>April  4, 1974</span>
						</div>
															<div class="left-align">
						<span class="header-text">IPO:</span>
						<span>
						NASDAQ:MSFT						</span>
					</div>
												</div>
							<div class="body-copy">
					<p>Microsoft, founded in 1975 by Bill Gates and Paul Allen, is a veteran software company, best known for its Microsoft Windows operating system and the Microsoft Office suite of productivity software.

Starting in 1980 Microsoft formed a partnership with IBM allowing Microsoft to sell its software package with the computers IBM manufactured. 

Microsoft is widely used by professionals worldwide and largely dominates the American corporate market.

Additionally, the company has ventured into hardware with consumer products such as the Zune and...</p>
							</div>
							<div class="profile-image">
															<a href="http://www.crunchbase.com/company/microsoft"><img src="http://crunchbase.com/assets/images/resized/0001/0926/10926v1-max-150x150.png" alt=""></a>
														</div>
						</div>
				<a class="learn-more" href="http://www.crunchbase.com/company/microsoft" onclick="s_objectID='post_widget_crunchbase';">Learn more</a>
				</div> <!-- End of panel item -->
								<!--</div> End of panel-container -->
			</div>
		 </div>
 	</div>
 	<div style="clear: both;"></div>
<script>
jQuery(function() { jQuery("#tabs-crunchbase").tabs(); });
</script>

 	<div id="jp-post-flair" class="sharedaddy"></div>							
							<div style="clear:both;"></div>
													</div><img src ="http://www.cppblog.com/BoyXiao/aggbug/183333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-07-14 11:48 <a href="http://www.cppblog.com/BoyXiao/archive/2012/07/14/183333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>駭客入侵各國銀行帳戶  至少已竊取7,500萬美元</title><link>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183319.html</link><dc:creator>BoyXiao</dc:creator><author>BoyXiao</author><pubDate>Sat, 14 Jul 2012 02:16:00 GMT</pubDate><guid>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183319.html</guid><wfw:comment>http://www.cppblog.com/BoyXiao/comments/183319.html</wfw:comment><comments>http://www.cppblog.com/BoyXiao/archive/2012/07/14/183319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/BoyXiao/comments/commentRss/183319.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/BoyXiao/services/trackbacks/183319.html</trackback:ping><description><![CDATA[<span class="fA_D"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">資安業者<span lang="EN-US">McAfee</span>和<span lang="EN-US">Guardian Analytics</span>於日前<span lang="EN-US">(6/26)</span>發出一份報告，指出一個國際駭客組織正向全球金融機構展開攻擊，並將攻擊行動命名為<span lang="EN-US">Operation High Roller</span>，至今已成功入侵<span lang="EN-US">60</span>家銀行，藉由取得具有高額存款的企業或個人帳戶的登入資訊，已經竊取至少<span lang="EN-US">7500</span>萬美元。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office"?><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">目前已經有數千個金融機構受到影響，包括信用卡中心、國際銀行，以及地區性銀行等，受害地區則從一開始的歐元區蔓延至南美洲和美國。報告中指出，這些攻擊手法比透過<span lang="EN-US">SpyEye</span>和<span lang="EN-US">Zeus</span>等惡意軟體展開的攻擊更加複雜且自動化，而且通常不需要人為介入就能完成任務。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold" lang="EN-US">McAfee</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">實驗室的安全研究總監<span lang="EN-US">David Marcus</span>表示，幾年前，多數的網路犯罪都發生在終端，但<span lang="EN-US">Operation High Roller</span>把攻擊目標轉移至中央伺服器，讓竊取行為變得更有效率，而這種鎖定特定個人或金融機構所發起的攻擊，造成的損失也相當驚人，由此看來，駭客組織的攻擊手法愈來愈先進。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">以過去採用惡意軟體<span lang="EN-US">Zeus</span>和<span lang="EN-US">SpyEye</span>而展開的中間人攻擊為例，通常都是終端電腦先感染病毒，使用者透過這些被感染的電腦進入網路銀行網頁時，惡意程式就在背景執行瀏覽器，藉此非法移轉使用者銀行帳戶裡的錢。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">而在<span lang="EN-US">Operation High Roller</span>攻擊中，駭客組織則是針對特定的網路銀行網站設計相關程式，讓整個詐騙過程自動化，包括可以讀取帳戶的餘額、將金額轉至錢騾<span lang="EN-US">(money mules)</span>帳戶中以掩護行動，甚至連選擇哪些帳戶作為中介性的錢騾帳戶都是自動化的。為了不被偵測到，駭客組織經常性的移動，並結合<span lang="EN-US">Rootkits</span>與加密技術，讓這些攻擊過程得到更好的掩護並防止被偵測。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">報告中指出，今年一月時就已經發現此駭客組織開始活動。當時一家德國銀行的伺服器遭受攻擊，共<span lang="EN-US">176</span>個帳號受到影響，讓駭客盜取了近<span lang="EN-US">100</span>萬歐元。三月時，駭客組織再度攻擊荷蘭銀行的資訊系統，成功繞過了用來防禦網路詐騙的偵測工具，至少被竊走了<span lang="EN-US">5,000</span>個商業帳戶。隨後，南美洲也發生災情，數十個企業帳戶成了駭客下手的目標，每個帳戶的存款約介於<span lang="EN-US">50</span>萬到<span lang="EN-US">200</span>萬美元。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; mso-hansi-font-family: ''Times New Roman''" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font size="3"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-bidi-font-weight: bold">該報告稱這波攻擊所使用的技術為「網路詐騙技術中的重大突破」，因為它們成功突破了用來避免帳號被盜用的雙重認證機制。面對這種新的攻擊手法，銀行業者勢必要重新思考該如何提升安全防護措施。</span><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Arial; mso-font-kerning: 0pt; mso-hansi-font-family: ''Times New Roman''; mso-bidi-font-weight: bold" lang="EN-US"><o:p></o:p></span></font></p>
<p style="MARGIN: 0cm 0cm 0pt; BACKGROUND: white; mso-pagination: widow-orphan" class="MsoNormal"><span style="FONT-FAMILY: 新細明體; COLOR: black; mso-bidi-font-family: Helvetica; mso-font-kerning: 0pt" lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></p></span><img src ="http://www.cppblog.com/BoyXiao/aggbug/183319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/BoyXiao/" target="_blank">BoyXiao</a> 2012-07-14 10:16 <a href="http://www.cppblog.com/BoyXiao/archive/2012/07/14/183319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>