遇到一个项目是这样的。。。

二孩子 2017-04-24 04:33:37
前提:公司内部管理系统

软件架构:ASP.NET Mvc、WebApi + Angularjs + EntityFramework

MVC 的Controller 向浏览器输出 cshtml,然后 cshtml 页面加载 angularjs脚本再异步请求webapi获取数据(一个简单的列表)。

大概就是这样。。。

我就想不通了。。。为啥要做的这么的这么的绕。。。。

常规的mvc做法1步2步3步就做出来了。。。

用上这套架构需要1步2步3步4步5步6步7步才能实现常规mvc的效果。。。

这种架构方式是一种新模式么???
...全文
612 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Angularjs(实际上 knockout 更精炼、效率更高)这类东西在 html 上稍加声明,然后就能绑定 json 表示的复杂对象,立刻更新界面。你就会发现它比 asp.net mvc 的一大堆什么 Helper、布局都要简单,特别是根本不需要 asp.net 服务器端去考虑页面设计问题! 你随便找一个一线城市的最近3年开办的创业公司,去看看,就明白了。 其实说白了,是你学不会 Angularjs 或者其它任何一种前端技术。如果学会了Angularjs、knockout、Vue、React等等之一,我没有见过一个人会再去说过去的开发方式更好的。
丰云 2017-04-27
  • 打赏
  • 举报
回复
这类脱离了技术本质的所谓的程序员,遍地都是,占据了大部分人群,搞得整个行业都不好了
丰云 2017-04-27
  • 打赏
  • 举报
回复
这种情况现在很常见了。。。。 有些人会点技术,就喜欢炫耀, 项目里不用些热点技术,好像就逼格太低,不足以显示自己的水平似得, 因此什么技术牛逼就网系统里加, 不管有没有用,有没有必要, 一定要面子过得去, 跟领导有所交代。。。 唉。。。。。
  • 打赏
  • 举报
回复
我先不强调“分工”问题,我强调的是企业级 web 应用的设计模式。其实这种设计模式从2005年就应该开始实际出现,慢慢发展,最近3、4年开始呈现逐步爆发的趋势。这就好像是2003、2004年时代的 asp.net 一样。 我还是相信必须要用“全栈工程师”,而不用什么单纯的只会前端或者单纯地去纠结什么“我只做asp.net后台”的人。一个 asp.net 程序员应该是全栈的,因为 asp.net 本身就是客户端代理网站,不是什么真正的业务服务器。 那么asp.net 程序员编程知识的转型,假设你们是一个外包公司,你们的产品就会明显地别竞争对手的更轻、更快、更稳定(在程序员的经验基本相当的情况下)。仅仅因为框架不同!
  • 打赏
  • 举报
回复
一个现代的网页,通常是这样的
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial=1.0, user-scalable=no, target-densitydpi=medium-dpi" />

    <title>XXXXXXXXXXXXX</title>

    <link href="Content/bootstrap.min.css" rel="stylesheet" />
    <link href="css/myCss.css" rel="stylesheet" />
</head>
<body>
   <div class="template_container"></div>

    <script src="Scripts/jquery-3.1.1.min.js"></script>
    <script src="Scripts/bootstrap.min.js"></script>
    .....如上格式一堆的 js 文件引用 .....

    <div class="seo"></div>
</body>
</html>
这样的页面非常小。其中只有 seo 部分可能需要在服务器端插入一些 html 内容,插入文本、连接等等,这些纯粹是“清洁”过的 html 专门给搜索引擎看,而用户不看。 用户看的内容,都是 js 文件最后一个动态加载的。它可以使用
jQuery.get("......, fn);
这样的形式动态加载模板到</body> 之前,然后每一个“页面”都自动加载到 template 里边,然后加载数据并且再绑定模板。 现代的前端都是动态绑定模板(或者叫做 html 组件)的,当切换一个子页面,或者比如说 Tab 上的一个选项卡,则可以自动移除或者增加一个 <div> 片段组件。总之都是动态的,页面上千变万化,怎么可能是服务器短产生一个静态 html 大文件的这种传统思路?!!
zdg20042586 2017-04-26
  • 打赏
  • 举报
回复
越学知识漏洞越多.....
wanghui0380 2017-04-25
  • 打赏
  • 举报
回复
其实你所谓很绕的事情,在这个行业已经流行很多年了。 比如游戏:你看到所有的游戏产业是怎么玩滴?写引擎的专业写引擎,写脚本的专业写脚本,玩服务器处理并发的专业处理并发,做原画设定的专业做原画设定,建模的专业建模 只是web上以前人才的缺失才能将就就将就(不将就不行,程序员不会美工,美工不会程序,当需要结合的时候,只能程序员去将就美工) 但是现在人才不缺,自然就可以明确分工了,美工干美工的(比较一下游戏的原画设定),交互干交互的(比较一下游戏脚本实现),后端逻辑专业干后端逻辑(比较一下玩服务器处理并发的),当然建模这块就比较分散了,有前端mvvm有后端做逻辑架构的(也有nodejs这样前后端统一架构的),这样的好处是,专业的人处理专业的事,当然就是专业的产品。同时各自隔离领域,不要混着来,前端修改不必让你这个大asp.net mvc程序员出手,前面另外有人干,你去忙你应该忙的事情去
  • 打赏
  • 举报
回复
我在 2008 年下半年就总说 asp.net 即将过时了,但是国内培训机构其实在2010年之后还是炒了2年asp.net 的(注意根本不是什么 mvc,而是企业应用开发) 现在微软 .net 将部分移植到 linux 系列平台,就能让其火起来吗?我看如果没有别的更好的条件,那顶多是占有区区5%的市场而已,根本没有多大价值。 开发企业应用软件,不管是网页还是手机app,只要是企业级的应用程序,你采取前端开发框架,肯定比你说的 asp.net mvc 的开发效率高几倍以上,费用少得多得多。要说“1、2、3、4、5、6、7步才能完成”,那是你自己的认识方式,在关键点没有能实际解决技术壁垒,没有算过来这笔用户体验的帐。就好象共享单车在欧洲早在2000年刚过一些的时候已经大范围出现了,国内过了很多年才出现。就好像是世界上最简单的前端模式 mvc 模式你也是用了好长时间才接受为很么要将 V 和 C 分成2 层的理念。在你不理解的时候,一定都会认为“很绕”,但是你要相信你不理解、有人已经替你理解过了这些。
  • 打赏
  • 举报
回复
asp.net 10年前已经扔掉了(其实只是非常基础的几十个)企业级的开发控件,国内前4、5年成功地毁掉了 asp.net 的优势(使得 jsp 和 php 大放光彩),如今如果还不来拥抱前端,就非常危险了。不要过多地纠结什么 asp.net core 再增删改查、参数封装上有什么新的语法的问题,我认为先想想 asp.net 还有什么竞争优势,需要赶紧熟悉新的 web 工程开发模式,这样反而能给你的 asp.net mvc 编程技术找到出路。
wanghui0380 2017-04-25
  • 打赏
  • 举报
回复
小作坊和大工厂的区别 小作坊你自己什么都来,大工厂每个人只关心每个人自己的事情 同时这也是同质异构系统的需要,假设你有一个后台,N种前端。好吧你现在跟我说,我要asp.net mvc两步就搞定,问题是你把的asp.net mvc搞定了,人家jsp,php,安卓,IOS,windows桌面的怎么办? 至于你说1,2,3,4,5,6步那又如何,你是小公司做这些事情都是你一个人,所以你觉着绕。 但是大公司说,我们是专业的人做专业的事情,这些事情是4个专业的人互相配合完成的,对于这4个人联合开发来说,每个人的其实并不绕,相反他们的手上的事情更少更专业,也更专注
  • 打赏
  • 举报
回复
说远一点,web 前端可能轻松取代绝代部分桌面程序,因为它已经越来越接近纯粹原生客户端程序了,实际的瓶颈就在于程序员的前端框架知识和观念。 用太低级的 js 就好像用汇编语言来开发企业管理软件一样,一旦程序员普遍从汇编语言升级到 turbo c、c++之类的,并且有强大的 UI 类库,那么企业管理软件就会产生火山喷发的趋势。 web 前端也是如此,一旦 web 前端程序员确实地都以某种前端 mvvm 框架为基础,那么企业级的前端程序就会几乎彻底淘汰传统的桌面程序。而现在的 html、javascript这些“基础设施”在跨平台方面已经做得不错了,缺的就是上层的高级的框架。而 asp.net 程序员如果只是关心一些 asp.net 服务参数的序列化封装、增删改查之类的东西,那就会跟不上潮流。
  • 打赏
  • 举报
回复
因此假设我们要开发一个高性能、用户体验很好的企业级的web 富客户端应用(而不是简单的宣传性的网站),我们就算是把 html 模板部署到企业业务web 服务器上了,我们也欣赏哪种能够把模板单独下载到浏览器端的技术架构。 这种架构不但不麻烦,而且很“正”。
  • 打赏
  • 举报
回复
再明白一点吧,比如说把相关的 html 文件和一两个基本的配置文件、图标文件封装为 ipa 或者 apk 文件,那么此web应用的地址是什么呢? 是 http://localhost/index.html 这样的地址啊! 仔细想想你就会明白,什么叫做现代的前端。前端可以部署在任何地方,包括在你的电脑桌面上,在手机app的本地。所以你再回过头来看你问题中描述的那种程序(虽然它可能只有一些皮毛,还没有做到真正的全面设计),它为什么先加载 html 模板,然后又从浏览器端拉取数据呢? 因为它是前端程序,目标直指这种程序将来要练的内功、要做大的技术。一个 html 文件运行 5 个小时,而不回发刷新页面,这就是前端。如今的 web 企业级的前端技术就如过去的桌面 c/s 程序一样!!!
正怒月神 版主 2017-04-25
  • 打赏
  • 举报
回复
如果你们公司只有网站,那有没有webapi都没关系。 可是如果你们有手机端呢?是不是需要接口来传递数据?
正怒月神 版主 2017-04-25
  • 打赏
  • 举报
回复
我不知道你说的繁琐是指什么。 ASP.NET Mvc、WebApi + Angularjs + EntityFramework 有哪块是多余的吗? 这4块东西本来分工就不一样。
by_封爱 2017-04-25
  • 打赏
  • 举报
回复
我虽然没用过这些东西 不过我也感觉好复杂... 开发不就前台跟后台么..弄了2个后台 难道是为了 提高"比格" ?
showjim 2017-04-25
  • 打赏
  • 举报
回复
如果是自动化处理,多几个步骤有什么关系?好处是方便了前端 UI 交互。 如果是手工处理,那要看应用类型了,如果没有前端 UI 交互那当然是自找苦吃。
  • 打赏
  • 举报
回复
如果用 PhoneGap builder 轻松打包一下 www.xyz.com/download/server1/index.html 文件,不出半分钟,其实就自动产生了 apk 和 ipa 文件,可用来安装到安卓或者苹果手机上(winphone其实也支持啦,但是我懒得说)。 而且这样的手机应用安装包很小,可能只有1M 而已,安装和更新起来特别快速。这么个小的 html 文件为主打包的 app,还能通过 Cordova 的插件访问手机的各种硬件,例如可以调用摄像头,可以监听短信接收事件,可以使用陀螺仪,可以知道待机和恢复事件,等等。 回到问题来说,这种前端编程技术,绝不是简单地做个 asp.net mvc 传统网页。前端编程人员如果真的理解前端开发,就跟传统的 c/s 开发人员一样,可以委以重任。而不是一个只会做网页的。
  • 打赏
  • 举报
回复
我把话再说明白一点吧,这样有利于解释问题。 比如说你们的业务服务器的地址是 http://www.abc.com/server1,那么有一个大型 web 客户端应用,请问通常是访问这个网站来打开应用吗? 其实可以把 html 文件放在任何地方。例如放在 http://www.xyz.com/download/server1/index.html。当这个非常小的 html 文件被下载,一个大型的 web 客户端程序就开始了,这就好像是一个桌面 c/s 程序,它自动跑到 http://www.abc.com/server1 网站去访问数据服务,甚至可能用其它方式跟互联网上任何数据服务系统交互,而这个 html 页面会自动下载其中的各种局部模板,从互联网上下载 html 文件(里边都是片段 html 代码)、自动下载 css 文件、自动下载 js 模块文件,按需下载。 这个过程中,asp.net 根本没用。整个客户端企业级程序看上去就是一个静态 html 文件!就够了!
x80819092 2017-04-24
  • 打赏
  • 举报
回复
引用 5 楼 qq_36291408 的回复:
是新的模式不错,现在asp.net core成熟了,国外full stack的开始研究asp.net core mvc + angular+ef core ,没有精力的话还是少搞吧
asp.net core 新版的razor,性能蛮强大的,比mvc5好用多了
加载更多回复(6)

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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