新产品选择技术选择问题

CMIC 2014-10-22 01:21:03
最近接受了一家初创互联网公司的offer去做CTO,产品要从头开始做,所用技术可以重新选择。在现在这家公司主产品因为当时一些限制选择不太适合技术,导致后来维护起来特别累,所以有这次机会我想咨询一下大家的意见,尽量避免犯同样的错误吧。

主要技术还是基于微软平台的,这也是讨论的前提条件,但毕竟这里是.Net版块吧。说实话我现在也没定下来在微软平台上现实这个产品,虽然微软平台上的技术我最熟悉,但一点也不排斥其他平台。

首先是Web框架,Web Form和MVC,我想选MVC。我们现在公司的产品是才用Web Form,所以我对Web Form也比MVC熟悉,但越是熟悉越是觉得Web Form限制太多,比如你基本没有办法控制web control所带资源在页面上render的顺序。在这里我想知道大家认为MVC相对Web Form来说有什么重要的缺点没有,我MVC的经验只来源于我做过2-3小项目,基本没有发现什么让我不爽的地方。

前台UI的我想基于Bootstrap,但这个我非常不确定,Bootstrap也是我最近一年才开始接触的,用它做过2-3私活,从developer的角度来说我觉得用起来很舒服,最大的问题是低版本IE兼容性。因为我用Bootstrap做的项目里面都是私活,都没找UI去定制Bootstrap,不知道UI designer角度来看Bootstra怎么样。还有就是Bootstrap定制性怎么样,定制的工作量有多大,Bootstrap有没有比较大的缺点等。

再有就是数据访问技术选择,现在产品中用过Linq for SQL,Linq for Entity,他们的问题不够灵活,输出的SQL也不好控制。这些问题一般场景不会有啥问题,但动态查询,读写分离,分表分库需要动态生成查询语句和连接字符串的时候就比较难控制,所以在我们的产品中允许处理这些问题的时候直接使用ADO.net。至于ORM我都不太熟悉,SQL mapping ibatis倒是很熟悉,用它做过几个项目,java和.net都有,感觉上它是足够灵活的,但最近几年都没用,看到改名叫MyBatis,不知道在.net平台这边稳定性上怎么样,有没有啥bug。 不知道大家有什么推荐我用的没有,我最关心的是可定制性,可以给我更多控制SQL的权利,第二就是易用性,别配置起来和coding的时候麻烦的要死,那还不如不用。



还有一些问题比如一些数据库,基础组件,消息队列方案,分布式cache,反向代理等技术的选择,但这些问题我都没有想好,以后再拿出来和大家讨论吧。

随便评论,我用给面子,呵呵,评论给意见的都有分,呵呵


...全文
575 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
CMIC 2014-10-24
  • 打赏
  • 举报
回复
引用 5 楼 Joyhen 的回复:
初创型公司可以考虑用SqlServer的,没搞起来人家不会找你要版权费的,不够它打牙祭。长远考虑数据库Mysql足矣,辅助库可考虑nosql(stsdb,mongodb等)。MVC妥妥的,不过可优化之处颇多,建议看下此贴:http://msdn.microsoft.com/zh-cn/data/hh949853 ui建议重新定制开发,看得出你们这家公司有风投的,在乎这点小钱啊,bt我认为是裹脚布。angularjs(或wayjs)上手快用起来也超爽。 ef非常不建议用,虽然便捷,但是不利于slq优化,时常要通过sql监听器来优化linq表达式,嵌套实体情况下痛苦。可考虑orm,比如addper; 数据库读写分离,主库至少要一个,分库多个,这里还有一级、二级缓存等。还要有一个调度中心负责分配,资源文件服务器,这个走cdn。另外要考虑到后期移动端可能涉及,API服务建议也分开部署。消息队列可参考此料贴,http://www.codeproject.com/Articles/821220/Throwing-a-Great-Block,就说这么多吧
MySql现在好像也是要钱的,angularjs(或wayjs)研究研究
winnowc 2014-10-22
  • 打赏
  • 举报
回复
首先,互联网公司的话,充分利用云平台能简化很多事情,更关注业务开发。先看看WindowsAzure中国能提供的服务http://www.windowsazure.cn/。 然后,.NET上面HTTP应用栈成熟的解决方案一个是微软的,一个是ServiceStack的, 微软的其实你看http://www.asp.net/,可以说就是MVC+WebApi+SignalR+EF,ServiceStack因为是商业化的开源产品,做的更完整,虽然可能不会选用,不过很多东西可以参考。它集成了 Caching, Logging, Messaging 等等,可以看下https://github.com/ServiceStack/ServiceStack/wiki,应该会有些启发。 对互联网公司,一般都采用混合架构,毕竟Linux平台上有很多优秀的东西,StackOverflow可以说主要是基于微软平台的,它的架构很适合参考,这是它09年,11年,14年的三次架构说明。 1:http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html 2:http://highscalability.com/blog/2011/3/3/stack-overflow-architecture-update-now-at-95-million-page-vi.html 3:http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html 微软的p&p的应用架构指导,虽然有些老,不过还是值得一看,能发现自己没有考虑到的地方。http://msdn.microsoft.com/en-us/library/ff650706.aspx Bootstrap可以用,但是肯定还需要再根据designer的设计来定制,它站点上的定制功能不够用。要拿它less写的原始文件,随便改。
  • 打赏
  • 举报
回复
版主好腻害 我层次低,只知道用linq的时候,如果要写一个很复杂的sql,很难实现。。。 Bootstrap做出来风格太单调(当然还没到定制的那一步,直接换主题之类的)。。。
於黾 2014-10-22
  • 打赏
  • 举报
回复
引用 4 楼 CMIC 的回复:
数据库方面Sql server我都不想选,就是因为价格,db2和oracle就更成问题了
还是看你做的项目到底要用在哪里吧 如果是给大国企做项目,反正钱是他们出,当然选个高大上的 而且他们习惯把所有数据都统合在一起,统一管理,选轻量级的数据库怕会爆掉 如果是作为产品卖给许多零散的小公司作为办公平台,那必须选个免费的,而且也不需要支持太大的数据量
hxm20003 2014-10-22
  • 打赏
  • 举报
回复
正好我这里也要设计一个大型项目,B2C电商网站包括后台,正好参考。
joyhen 2014-10-22
  • 打赏
  • 举报
回复
初创型公司可以考虑用SqlServer的,没搞起来人家不会找你要版权费的,不够它打牙祭。长远考虑数据库Mysql足矣,辅助库可考虑nosql(stsdb,mongodb等)。MVC妥妥的,不过可优化之处颇多,建议看下此贴:http://msdn.microsoft.com/zh-cn/data/hh949853 ui建议重新定制开发,看得出你们这家公司有风投的,在乎这点小钱啊,bt我认为是裹脚布。angularjs(或wayjs)上手快用起来也超爽。 ef非常不建议用,虽然便捷,但是不利于slq优化,时常要通过sql监听器来优化linq表达式,嵌套实体情况下痛苦。可考虑orm,比如addper; 数据库读写分离,主库至少要一个,分库多个,这里还有一级、二级缓存等。还要有一个调度中心负责分配,资源文件服务器,这个走cdn。另外要考虑到后期移动端可能涉及,API服务建议也分开部署。消息队列可参考此料贴,http://www.codeproject.com/Articles/821220/Throwing-a-Great-Block,就说这么多吧
CMIC 2014-10-22
  • 打赏
  • 举报
回复
数据库方面Sql server我都不想选,就是因为价格,db2和oracle就更成问题了
jy251 2014-10-22
  • 打赏
  • 举报
回复
数据库的话,从我个人的浅薄经验的话,如果大型项目,我会选择db2,毕竟我只待过保险和银行两种地方,他们的最新核心系统都是db2的,oracle都只是沦为边缘系统使用,我也不知道为什么要选择这个数据库,但是我相信他们选择这种数据库是有理由的。 数据查询特别是大型项目,还是用第三方吧,自己写一个数据查询框架,费时费力,还有不少bug,后期维护也很麻烦,中间件不错啊。从维护方面和二次开发方面来看的话,我觉得tuxedo不错。tuxedo虽然用起来感觉没有技术含量,但是没有技术含量代表了很好的维护传承。 产品灵活是好,但是灵活还代表了不好控制与后期维护麻烦。用最简单的逻辑,最简单的代码实现项目,让后期维护压力减少,我说的后期维护压力是指技术压力,现在程序员的技术良莠不齐,给他们最简单的,他们都能处理,但是给一个有点深度的,他们总会搞的乱七八糟。
林英南 2014-10-22
  • 打赏
  • 举报
回复
Bootstrap->MVC->WebAPI->ADO/ORM 其实挺不错的 ^_^ 个人觉得前端其实还好处理,选一个自己熟悉的就OK了,最重要的把后面的服务搞定,以后无论要支持网站应用或者移动应用都没有太大问题。 至于用ADO,Linq还是ORM,其实看你项目的需求呗,外面的开源总有不能满足自己项目的地方,看自己的侧重选择吧。
忘丿殇 2014-10-22
  • 打赏
  • 举报
回复
LZ大牛,学习中ing

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧