思考:用开发移动app的观念来开发网站

首先祝大家新年快乐。万事如意。

开发网站程序也有一些年头了,从最初的静态HTML+ JS,到后来的WebForm,然后过渡到现在的MVC。

由于最近做一些技术调研,也接触了很多移动开发,iOS和Android的东西也知道点,会做一些简单的app。

做移动app做多了,再回头看网站开发,我开始怀疑,我们到底需不需要ASP.NET MVC这样的框架?

网站的本质就是 HTML + CSS +JS + HTTP(TCP/IP)协议 + 可以响应HTTP协议的服务器。

移动app的本质是 移动UI +  HTTP(TCP/IP)协议 + 可以响应HTTP协议的服务器。

其实,他们没有多少本质区别,所以,现在各种 Hybird App 大行其道。

我们经常说,前后端分离,真正操作的时候,或多或少都会违反这个原则。

在真正做好一个前后端分离的系统,其实可以强迫这个系统现实 移动app和网站共享的功能。

如果一开始的目标就是移动网站共享内容,则设计的时候,就是围绕REST的API开始的,而不是前后端杂糅的Razor的设计。

对于一些老的程序员,习惯MVC的人来说,必然会有些反感,毕竟传统的做法,开发效率非常高,一个小型的网站,可以用小时来计算开发时间。

如果改用新的方法,页面和服务器只是通过AJAX来通讯,则非常考验前端的水平。

AngularJS 或者 ReactJS这样的框架虽然不是必须的,但是如果可以的话,在深入理解的前提下,可以使用。

WebPack,Gulp,Nodejs这些东西,也会随着AngularJS,ReactJS的引入而进入工作范围之内。

这样做的结果就是 MVC里面,

V完全在前端,这个毫无疑问

数据库关联的业务逻辑M完全在服务器端(购物车计算总价格,复核,扣款),前端也会处理一些简单的业务逻辑(购物车计算总价格,只是初步计算,不作为服务器处理凭证),

C的话,基本上变得极其薄了,被Angular或者React和他们的衍生品取代了。或者说,C的话,变成了前端的C和后端的C。

MVC的核心功能:路由,数据和表单绑定,数据验证

数据验证,TypeScript(强数据类型),ES6(完整正则功能)都可以处理了。原本MVC也是靠JS+特性标签做到数据表单验证的。

现在的前端也开始慢慢引入强数据类型的概念了。React框架的prop也是支持强类型的。

数据验证,Razor基本上可以完全被前端框架取代了,(当然,微软在模板上暧昧的态度也值得吐槽一下,Razor之后又推出智能标签(MVC6),原本觉得模板应该像后端,现在觉得模板应该像前端)

路由倒是一个我不熟悉的领域,不发表意见。

将来的网站开发,在大数据和越来越成熟的各种服务的帮助下,可能核心价值会发生很大的变化。

以前我们需要做一个登陆,注册的页面,现在可以直接用微信,QQ,微博进行注册和登陆了,这些功能可以简化了。

像博客园这样的网站,UGC,各种现成的UGC可以直接拿来使用,各领域的内容管理系统,内容的数据挖掘,内容分析,UGC到知识库的整理将变成UGC网站的核心价值。

一个UGC网站的价值不仅仅是提供写作平台,而是如何通过大数据手段,提炼数据中的内容,分类,整理,自动摘要和归档。

如果做不到这一点,即使以后界面再漂亮,也是一个除了用户和文章,什么都没有的网站。

时间: 2024-10-12 08:22:30

思考:用开发移动app的观念来开发网站的相关文章

慕课网实战—《用组件方式开发 Web App全站 》笔记七-饼图和环图组件开发

运用HTML5.CSS3.JS流行技术,采用组件式开发模式,开发Web App全站!技术大牛带你统统拿下不同类型的HTML5动态数据报告! <用组件方式开发 Web App全站 > 饼图开发(绘制饼图准备) 饼图实现原理 饼图开发(绘制饼图) 代码 /* 饼图组件对象 */ var H5ComponentPie =function ( name, cfg ) { var component = new H5ComponentBase( name ,cfg ); // 绘制网格线 - 背景层 v

如何开发一个App(Android)

前言 本篇博客从开发的角度来介绍如何开发一个Android App,需要说明一点是,这里只是提供一个如何开发一个app的思路,并不会介绍很多技术上的细节,从整个大局去把握如何去构思一个app的开发,让你对独立开发一款app的时候有个理解,如果有说的不对的地方,欢迎大家拍砖留言讨论. 开发环境 Android应用层使用的开发语言是Java,自然需要用到Java运行环境,无论你在Window是系统还是Mac系统都需要安装JDK,并且配置它的环境变量,不懂什么叫环境变量的或者不知道怎么配的,请利用好自

iOS开发系列--App扩展开发

概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更新也都是围绕扩展这一主题来进行了的,例如开发的Siri.iMessage Apps其实都是依靠扩展来工作的.在最新的Xcode 8 beta中也增加了众多的Extension 模板帮助开发者更快的实现不同类型的扩展.因此今天有必要介绍一下扩展相关的开发内容. 扩展的生命周期 iOS对于扩展的支持已经

Sublime用户如何快速高效开发跨平台App

2015年9月15日,APICloud举办了一周年开源分享会,发布开源插件支持Sublime用户开发跨平台App,APICloud 开源技术负责人周兴海分享了Sublime关于插件方面相关的内容. Sublime是一款关注度很高的的开发工具,有以下几个特点: 主流前端开发编辑器 体积较小,运行速度快 文本功能强大 支持编译功能且可在控制台看到输出 内嵌python解释器支持插件开发以达到可扩展目的 Package Control:ST支持的大量插件可通过其进行管理 接着,周兴海对APICloud

开发Android app必备知识大分享

开发一个完整的android app需要掌握哪些知识?现在让麦子学院的android开发的老师给大家详细的介绍下android app开发需要哪些知识?大体来说,一个app从规划到终究完结需求你懂得以下几个必要方面: 1.前期需求计划与信息--你需求拟定出一个完好的需求文档,功用文档,流程图,时序图. 2.交互规划.UI规划--规划出基本且完善的原型图和app根底的交互规划作用,以后再依据这些规划出完好的UI界面并学会切图,一些需求做自适应的素材图像需求做点9patch. 这儿还需求你懂得px,

慕课网实战—《用组件方式开发 Web App全站 》笔记五-折线图组件开发

运用HTML5.CSS3.JS流行技术,采用组件式开发模式,开发Web App全站!技术大牛带你统统拿下不同类型的HTML5动态数据报告! <用组件方式开发 Web App全站 > 折现图绘制大致步骤 折线图画布 JavaScript CSS 折线图绘制网格线 // 水平网格线 100份 -> 10份 var step = 10; ctx.beginPath(); ctx.lineWidth = 1; ctx.strokeStyle = '#AAAAAA'; window.ctx = c

Cordova+ionic 开发hybird App --- 开发环境搭建

Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次手动输入太麻烦而且都是重复劳动,于是你下决心改变这种状况,然后学会了把javac命令写到一个bat文件中,以后编译只需要单击运行即可:然后随着你敲的代码越来越多,而且有了JAVA project概念,于是你手动新建了很多文件夹比如src.bin.lib,你有写了一个bat文件来减少你的重复劳动:再后

HBuilder开发移动App——manifest.json文件解析

以前做过Android App开发,对于各项配置都是在AndroidManifest.xml文件中完成的,包括权限的设定.图标.标签.App的名字.Activity注册等等 使用HBuilder开发移动App,HBuilder是基于Eclipse进行二次开发的,所以新建项目等各项操作与Eclipse类似. 首先新建一个移动App项目 这里选择mui项目,点击完成后可以看到项目文件列表,如下: 这里我们主要看一下manifest.json文件 应用信息 选择应用信息一项,然后 1.填写应用名称 也

开发一个 App 有多难?说出来你可能不信!

上图为程序员客栈儿童类视频APP 1.开发一个APP有多难?说实话,单纯地从开发来说,开发一个APP没有那么难.如果一款APP的基本功能点确定了,开发时间一般为1-2个月就完成了,费用大约5-10万的样子.当然了如果1.0版本就要求很多功能,那开发时间就会延长,费用也会增加. 2.需要经历那些流程?简单来说一款APP的开发一般流程是这样的:原型(合格的原型)——设计(合格的设计)——前端——后端——测试. 3.需要哪些人员进行开发?原型:产品经理,根据确定的需求,画原型.设计:UI设计师,负责软