bs架构软件一般是用什么工具开发的(bs开发框架有哪些)
可以做BS架构的工具有很多,比较常见的有net的visualstudio,有Java的eclipse等等。
所谓B/S架构,其实就是服务器端软件,是通过浏览器来访问的,也就是所有界面都是网页,所回以你问用什么工具开发,很多工具都可以,当然最重要的跟用户交互的是网答页页面,所以开发网页的工具加上后台的语言都可以开发的。
BS架构是指浏览器/服务器架构,通常包含3层:浏览器层次作为客户端zd,Web服务器(或者应用服务器)作为业务处理端专,数据库服务器作为数据存储端。
扩展资料:
BS架构主流开发语言与数据库:
BS架构是一种基于浏览器知载体的框架,包含前端、后端和数据库三个大的方向,各个方向的技术都不一样,如果都懂的就是全栈了。现在主流的技术包含NET、SqlServer、Bootstrap等。
1、Web前端开发技术包括三个要素:HTML、CSS和JavaScript,当然还有很多高级的前端框架,比如bootstrap、Jquery等,前端开发也是比较的复杂,如果找到规律,开发起来也比较的快。
2、Web后端技术也有很多,比如Net、JAVA、PHP等,各大语言都有其开发架构,像NET的MVC架构,一般web后端技术的知识面是很广的,设计模式、回需求分析、性能优化等都要懂。
3、数据库现在有答三种主流的数据库:MysqlSQLserverOracle,还有Nosql数据库:Redis、Mogodb等。
1、Django
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。
2、Flask
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
3、Tornado
Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。
关于干货分享!Python三大web框架简单介绍,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。如果您还想继续了解关于python编程的学习方法及素材等内容,可以点击本站其他文章学习。
我也做服务端开发的,服务器和客户端传输数据使用到了servlet,为了提高效率使用了httpclient, 传输数据类型采用json,如果要跨语言开发那还要使用About thrift ,因为我们是做社交这块的,所以还要用到java socket技术,推送消息用的是极光推送,框架的话使用轻量级spring ICO DI ,然后数据库的话使用了三种 mongodb(主要使用) 、mysql(辅助)和redisdb(缓存)。大概就这么多了。还有app里面不全是原生开发,还可以使用html5进行辅助开发。
为什么golang的开发效率高?
golang是一编译型的强类型语言,它在开发上的高效率主要来自于后发优势,不用考虑旧有恶心的历史,又有一个较高的工程视角。良好的避免了程序员因为“ { 需不需要独占一行 ”这种革命问题打架,也解决了一部分趁编译时间找产品妹妹搭讪的阶级敌人。
它有自己的包管理机制,工具链成熟,从开发、调试到发布都很简单方便;
有反向接口、defer、coroutine等大量的syntactic sugar;
编译速度快,因为是强类型语言又有gc,只要通过编译,非业务毛病就很少了;
它在语法级别上支持了goroutine,这是大家说到最多的内容,这里重点提一下。首先,coroutine并不稀罕,语言并不能超越硬件、操作系统实现神乎其神的功能。golang可以做到事情,其他语言也可以做到,譬如c++,在boost库里面自己就有的coroutine实现(当然用起来跟其他boost库一样恶心)。golang做的事情,是把这一套东西的使用过程简化了,并且提供了一套channel的通信模式,使得程序员可以忽略诸如死锁等问题。
goroutine的目的是描述并发编程模型。并发与并行不同,它并不需要多核的硬件支持,它不是一种物理运行状态,而是一种程序逻辑流程。它的主要目的不是利用多核提高运行效率,而是提供一种更容易理解、不容易出错的语言来描述问题。
实际上golang默认就是运行在单OS进程上面的,通过指定环境变量GOMAXPROCS才能转身跑在多OS进程上面。有人提到了的pomelo,开源本来是一件很不错的事情,但是基于自己对callback hell的偏见,我一直持有这种态度:敢用nodejs写大规模游戏服务器的人,都是真正的勇士 : ) 。
2、Erlang与Golang的coroutine有啥区别,coroutine是啥?
coroutine本质上是语言开发者自己实现的、处于user space内的线程,无论是erlang、还是golang都是这样。需要解决没有时钟中断;碰着阻塞式i\o,整个进程都会被操作系统主动挂起;需要自己拥有调度控制能力(放在并行环境下面还是挺麻烦的一件事)等等问题。那为啥要废老大的劲自己做一套线程放user space里面呢?
并发是服务器语言必须要解决的问题;
system space的进程还有线程调度都太慢了、占用的空间也太大了。
把线程放到user space的可以避免了陷入system call进行上下文切换以及高速缓冲更新,线程本身以及切换等操作可以做得非常的轻量。这也就是golang这类语言反复提及的超高并发能力,分分钟给你开上几千个线程不费力。
不同的是,golang的并发调度在i/o等易发阻塞的时候才会发生,一般是内封在库函数内;erlang则更夸张,对每个coroutine维持一个计数器,常用语句都会导致这个计数器进行reduction,一旦到点,立即切换调度函数。
中断介入程度的不同,导致erlang看上去拥有了preemptive scheduling的能力,而golang则是cooperative shceduling的。golang一旦写出纯计算死循环,进程内所有会话必死无疑;要有大计算量少i\o的函数还得自己主动叫runtimeSched()来进行调度切换。
3、golang的运行效率怎么样?
我是相当反感所谓的ping\pong式benchmark,运行效率需要放到具体的工作环境下面考虑。
首先,它再快也是快不过c的,毕竟底下做了那么多工作,又有调度,又有gc什么的。那为什么在那些benchmark里面,golang、nodejs、erlang的响应效率看上去那么优秀呢,响应快,并发强?并发能力强的原因上面已经提到了,响应快是因为大量非阻塞式i\o操作出现的原因。这一点c也可以做到,并且能力更强,但是得多写不少优质代码。
然后,针对游戏服务器这种高实时性的运行环境,GC所造成的跳帧问题确实比较麻烦,前面的大神 @达达 有比较详细的论述和缓解方案,就不累述了 。随着golang的持续开发,相信应该会有非常大的改进。一是屏蔽内存操作是现代语言的大势所趋,它肯定是需要被实现的;二是GC算法已经相当的成熟,效率勉勉强强过得去;三是可以通过incremental的操作来均摊cpu消耗。
用这一点点效率损失换取一个更高的生产能力是不是值得呢?我觉得是值得的,硬件已经很便宜了,人生苦短,让自己的生活更轻松一点吧: )。
4、基于以上的论述,我认为采用go进行小范围的MMORPG开发是可行的。
服务器端框架
以下介绍服务器端的框架。 JavaScript对象注解(JSON)是一种文本格式,与XML很相似,可以用于交换数据。JSON的设计要保证两方面,一方面便于人阅读,另一方面便于机器解析,它使用了C系列语言类似的约定。与JSON相关的还有JSON-RPC,这是一个远程过程调用(RPC)协议,类似于XML-RPC,但面向的是JSON语言。作为规约,JSON-RPC在许多语言中都有实现,包括Java、Ruby、Python和Perl。
由于JSON-RPC是规约,你需要知道哪个特定实现适用于你的环境,还要充分了解特定的实现。取决于具体的实现,有些实现的文档相当完备,有些则根本没有。开发人员的参与程度也有很大不同。关于JSON-RPC规约的讨论已经有些少了。 利用Direct Web Remoting (DWR),你能从JavaScript直接调用Java方法,就好像它们是浏览器的本地方法一样。尽管后台严格限制为Java,但DWR仍然是最流行的框架之一。DWR的文档是最棒的,还有一些有用的例子可以帮助你入门。
安装并不难,不过还要编辑Web应用的部署描述文件,另外要编辑DWR特定的文件。DWR配置文件指定了可以远程创建和调用的类,而且文档中警告用户:从浏览器调用服务器确实存在一些安全问题。除了包含服务器端代码的JAR文件,另外还有两个JavaScript文件包含了一些辅助函数。DWR适用于一些常见的Web框架,如Struts和Tapestry,在Apache协议下发布。如果想从Web页面调用Java方法,DWR能助你一臂之力。 Shift Web Applications TO (SWATO)也是一个基于Java的Ajax框架解决方案。SWATO在所有Servlet 23或更高版本的容器中都能工作,类似于DWR,它也需要对配置文件做一些更新。有意思的是,SWATO充分利用了JSON来完成客户和服务器之间数据的编组,与本附录中讨论的其他一些框架相似,它也允许从浏览器调用服务器端Java。为了帮助开发人员,SWATO包括许多可复用的组件,如自动完成文本框等。
与使用其他框架相比,使用SWATO要相对复杂一些,要访问的类需要实现一个SWATO接口。不过,其文档相当完备,对于入门来讲绰绰有余。SWATO设计为使用Spring来打包服务,但是不一定非得如此。 Rails是一个令人兴奋的新Web框架,建立在Ruby语言基础上。如今,Rails已经得到了大量关注(在Google上查一下Rails,可以找到更多信息),这是因为使用Rails能够快速开发基于Web的应用。开发Basecamp时,37signals小组提出名为Rails的框架。Basecamp正是Ajax应用的主要示例,所以看到Rails对Ajax提供如此充分的支持,我们不应感到奇怪。Rails有许多内置的JavaScript库,其中包装了很多常用的特性,它还包含一个模块,其中包装了Ruby的JavaScript调用。如果你在使用Rails,就会发现Ajax非常简单。
0条评论