ASP.NET开发实战——(二)为什么使用ASP.NET

  本文主要内容是通过分析《博客系统》需求,确定使用Web应用的形式来开发,然后介绍了HTML、HTTP的概念,并使用IIS搭建了一个静态的HTML“页面”,从而引出“动态”的ASP.NET。

  本文从以下几个方面来介绍为什么使用ASP.NET:

  ●ASP.NET是什么?
  ●为什么使用ASP.NET?
  ●博客的需求及实现
  ●什么是Web、HTML、Web服务器

ASP.NET是什么?

  ASP.NET是一个使用HTML、CSS、Javascript来构建动态网站或者网站应用程序的Web框架,并且也可以使用它来构建web API和实时通信技术如web soket。
  ASP.NET提供了三种框架来创建网页应用,它们分别是Web Forms,ASP.NET MVC以及ASP.NET Web Pages,它们都是基于.Net Framework并且共享.Net和ASP.NET核心功能。如基于Identity的安全验证、相同的请求管理设施、session处理以及ASP.NET的一部分核心功能。
最重要的是这三个框架并不是独立的,它们可以混合出现在同一个Web应用中。

  • Web Forms为开发者提供了丰富的使用HTML标签封装的组件。开发者可以使用这些控件像开发Win Forms应用那样拖拽式控件并通过事件来驱动(点击按钮事件、打开页面事件等)。
  • ASP.NET MVC提供了一种责任分离的开发模式,它将HTML代码和服务代码进行了分离,是一种TDD友好的开发方式,可以用于复杂应用程序的开发。
  • ASP.NET Web Pages和Razor语法提供了一种快速、简单、轻量级的方法,它将服务代码和HTML混合在一起来创建动态Web内容。

Web APIs:
  ASP.NET Web API是一个用来构建基于HTTP服务的框架,可以为浏览器、移动设备等客户端提供服务。
实时技术:
  ASP.NET SignalR是ASP.NET的一个类库用来开发实时的Web功能,SignalR支持客户端和服务器之前的双向通信,SignalR支持Web Socket,如果浏览器不支持那么会自动切换其它方法来兼容浏览器,如轮询请求等。

为什么使用ASP.NET

  需求,需求,需求!!!
  相对于需求来说,ASP.NET等开发框架仅仅是用来实现需求的工具。在做一件事情之前必须明确自己想要的是什么。比如我们想分享自己写的文章,这样即可以分享自己的知识,也可以吸引同行业的人进行讨论进而找到自己存在的问题,而且在写文章的过程中也巩固了自己的知识。
  要如何实现这样一个需求有什么方法呢?现在是信息时代,发送、分享消息的成本是非常低的,比如现在的QQ空间、朋友圈、微博、博客等等,都可以轻松的注册账号发布信息,但是对于文章来说只有博客适合,并且现在像cnblog的博客都是面向程序员的,能更容易吸引程序员的关注和对文章的讨论。但作为一个程序员是否都想拥有自己的博客呢?
  本系列文章将使用构建博客这个例子来讲诉如何使用ASP.NET开发应用程序。

博客的需求分析

  对于博客来说,两个重要的对象分别是“读者”和“作者”,对于一个读者来说就是需要一个目录,然后通过目录标题可以快速理解目录所指向文章内容,并且包含标题所指向的文章地址。这不就是一本书吗?(*^_^*)。

  当然我们的确可以把文章做成一本书供读者查看,甚至更为方便的电子书,但是对于文章的作者来说,作者写的仅仅只是文章,并且分类众多,且文章之间不一定存在联系无法合成一本书,或者需要合并为多本书,更重要的是作者无法等到所有文章完成之后再发布,如果每写一篇文章都要更新一本书,那么对于读者来说每次都要重新购买、下载最新的书简直就是灾难。
  所以对于作者来说,需要一个便于发布、修改文章的平台,甚至当文章完成一个系列的时候还可以做成一本书供读者下载。对于读者来说,需要提供一个便捷的入口,让其可以查看文章目录,并通过目录查看文章内容。更多的可能还需要对一些热门文章进行突出显示,让更多的人参与评论。

  根据上面的分析得出以下用例图:

  

  

  http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html(用例图参考)

需求的实现

  我们要如何实现这些功能呢?
  ● 出版书籍
  ● 互联网发布
    ○ 命令行程序(无法提供便捷操作,也不利于文章查看)
    ○ Windows Form程序(可以提供便捷的查看和发布功能,但是读者和作者都需要下载安装客户端,对于读者来说太麻烦)
    ○ Web(读者和作者均只需要浏览器就可以连接系统,通过浏览器就可以实现查看和管理功能)
    ○ 移动应用(为IOS、Android、Windows等移动系统提供应用可以为读者提供最便捷的阅读体验,但是不方便作者编辑文章,而且需要耗费大量经历来开发不同操作系统的应用。更重要的是智能移动设备上也有浏览器,它也可以打开Web应用,特别是针对移动设备处理过的响应式页面布局,能够为不同屏幕大小的设备提供更好的阅读体验。)

  所以根据以上的分析我们很容易的选出使用“Web”来实现我们的博客。那什么是Web呢?它和ASP.NET又存在什么关系?

什么是Web?

  Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。(来自百度百科)
  根据以上的解释可以看到Web是基于超文本和HTTP的。然后提供了很多功能,这里我们来关注什么是超文本,什么是HTTP。
  超文本:是一种用户接口范式,用以显示文本及与文本相关的内容。现时超文本普遍以电子文档的方式存在,其中的文字包含有可以链接到其他字段或者文档的超文本链接,允许从当前阅读位置直接切换到超文本链接所指向的文字。
  超文本的格式有很多,目前最常使用的是超文本标记语言(Hyper Text Markup Language,HTML)及富文本格式 (Rich Text Format,RTF)。我们日常浏览的网页上的链结都属于超文本。(来自百度百科)

  简单的理解超文本就是拿来显示的,是可以通过超链接跳转的,并且常用的超文本格式是超文本标记语言,浏览器可以打开、查看HTML文件。

使用HTML创建一个“博客”

  根据上面对Web的描述可以得出:浏览器可以打开HTML文件,HTML文件包含了文本信息和跳转指定HTML的连接,这样我们就可以解决读者的问题了。

  那么就开始动手解决:
  1. 创建一个文件目录HTML文件(超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。--百度百科):

  

  2. 创建4个文章HTML文件:

  

  3. 在列表页面把4个文章页链接起来:

  

  “作者”的基本功能“文章管理”就“实现”了,对于作者来说只需要维护文章目录的list.html文件,然后把文章做成新的post html文件就可以了,然后把这些页面进行美化就完成了“作者”的文章管理功能。

  但是“读者”要如何看到这些文章?之前提到过Web是基于超文本和HTTP的,HTML是超文本的一种用来显示内容,而现在需要把这个内容发送给“读者”查看就需要使用的HTTP。

什么是HTTP

  HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
  HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。---百度百科

  HTML使用HTTP协议在客户端浏览器和Web服务器之间传输。这个就是以上文字给出的信息。现在HTML和浏览器都已经有了,还缺一个Web服务器。

什么是Web服务器?

  Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,[1] 也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、Nginx、IIS。-- 百度百科

  在windows上常用的Web服务器就是IIS。(如何安装IIS:https://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html)

使用IIS发布“博客”

  这里选用Windows上的IIS来部署上面写好的HTML文件:

  1. 打开IIS,添加一个网站:

  

  2. 给新的网站指定物理文件的路径(即刚刚创建的html文件路径),绑定端口保存并启动改网站:

  

  在浏览器中可以通过本机的回环地址127.0.0.1或者localhost以及局域网IP(可能需要在防火墙中设置绑定端口的访问权限:控制面板->系统和安全->Windows 防火墙->高级设置->入站规则->新建规则->端口->TCP、特定本地端口、12345->完成)来访问该网站:

  

  

  以下是在同一局域网手机上的显示: 

  

  

为什么使用ASP.NET?

  从上面的结果看起来好像博客的只剩下页面优化了,那还需要ASP.NET干什么?接下来细数一下上面做法的缺点:
  1. 作者每次发布文章都需要制作HTML文件,修改内容也需要修改HTML文件,文件越多管理越难。并且作者还需要懂得HTML相关知识。
  2. 如果要修改页面的样式100个文件修改100次。
  3. 无法统计文章访问的次数(当然可以通过分析IIS 日志获得)。
  4. 也无法为用户提供评论功能。
  5. 功能无法拓展更多的功能,等等。

  文章的开始说了:ASP.NET是一个使用HTML、CSS、Javascript来构建动态网站或者网站应用程序的Web框架。

  使用ASP.NET可以轻松的构建一个“动态”网站,所有数据都存在数据库中,通过一个列表模板页面从数据库中加载文章列表、通过一个文章模板页面去数据库加载相应的文章显示、添加一个管理页面为作者提供文章管理功能、最后通过身份验证机制限制只能由作者进入管理页面,那么以上的问题将引刃而解。更重要的是还可以通过ASP.NET提供的一些机制完成对博客的功能拓展如阅读数据记录、排序、评论等等。所以使用ASP.NET作为开发博客程序的开发框架。

  (注:除了ASP.NET也可以使用PHP、JSP、NodeJS等开发框架完成以上功能,而且作为一个demo不需要考虑很多复杂的问题,所以选择ASP.NET的真实原因是“我喜欢,我任性!”。)  

参考:

  https://docs.microsoft.com/zh-cn/aspnet/overview

  http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html(用例图参考)

欢迎添加个人微信号:Like若所思。

欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

原文地址:https://www.cnblogs.com/cool2feel/p/11544443.html

时间: 2024-11-05 19:43:13

ASP.NET开发实战——(二)为什么使用ASP.NET的相关文章

ASP.NET开发实战——(八)ASP.NET MVC 与数据库之MySQL

之前介绍了My Blog如何使用ADO.NET来访问SQL Server获取数据.本章将介绍如何使用My SQL来完成数据管理. 在使用My SQL之前需确保开发环境中安装了My SQL数据库和Connector/Net,后者是一个用C#编写的ADO.NET数据提供器,换句话说无论使用SQL Server还是My SQL,ASP.NET都是通过ADO.NET来访问.操作数据库的,它们唯一的区别是数据提供器,所以连接My SQL仍然需要使用System.Data.dll中的类型,以下是之前文章所介

ASP.NET开发实战——(七)ASP.NET与数据库

在之前的文章中介绍了使用ASP.NET MVC来开发一个博客系统,并且已将初具雏形,可以查看文章列表页面,也可以点击文章列表的其中一篇文章查看详情,这已经完成了最开始需求分析的读者的查看列表和查看文章两个需求,但是现在最大的问题是文章数据仍然是“静态”的. 所有数据被保存在内存中,系统在初始化时会自动添加被硬编码在代码文件中的数据,服务器每次重新启动都只会保留这些数据,并且没有提供“作者”的管理接口,“作者”没法来管理这些数据,哪怕是可以进行管理也没用,因为服务器重启后数据就不存在了,这才是最糟

ASP.NET开发实战——(六)ASP.NET MVC & 分层 代码篇

上一篇文章对如何规范使用ASP.NET进行了介绍,本章内容将根据上一篇得出的结论来修改博客应用的代码. 代码分层 综合考虑将博客应用代码分为以下几个层次: ○ 模型:代表应用程序中的数据模型,与数据库表结构对应.同时也作为MVC与逻辑层之间的数据交换对象(后续会使用DTO代替). ○ 仓储:用于管理数据增.删.查.改. ○ 逻辑:用于处理业务逻辑,一般来说是根据应用层提供的数据来驱动业务执行,业务逻辑会使用仓储来对数据持久化. ○ 应用:也就是MVC应用,它为用户提供操作界面(UI),然后调用逻

ASP.NET开发实战——(四)ASP.NET MVC是如何运行的?它的生命周期是什么?

前面的文章我们使用ASP.NET MVC创建了个博客应用,那么它是如何工作的呢?我们都知道ASP.NET的程序需要部署到IIS上才能够通过浏览器来访问,那么IIS与ASP.NET MVC程序之间又是如何工作的呢? 本章将从以下几个方面对ASP.NET的运行周期进行介绍: ●IIS及其管道配置 ●HttpApplication Events ●使用Global.asax注册事件 IIS及其管道配置 IIS(Internet Information Services)是微软在Windows操作系统上

《微软Azure云计算开发实战(2):Azure部署ASP.NET MVC 网站

今天我们继续学习Azure的实战开发,<微软Azure云计算开发实战(2):Azure部署ASP.NET MVC 网站. 在你注册完Azure的使用账户以后,下面就可以登陆Azure管理界面了.因为我们后续的开发工作都要用到Azure的资源. Azure作为公有云平台,提供了几乎所有的平台支持,操作系统包括Linux Mac OS Windows,数据库主流的都支持,网站空间,数据库,虚拟主机操作系统 几乎都有.还有流媒体服务,Hadoop集成,Bigtable等. 我们先来学习一下如何部署一个

Asp.Net 开发实战技术

1.什么是WMI技术 WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程:设定一个在特定日期和时间运行的进程:远程启动计算机:获得本地或远程计算机的已安装程序列表:查询本地或远程计算机的Windows事件日志等等.WMI(Windows管理规范)作为一项Windows管理技术,方便用户对计算机进行远程管理.但是它的易用性也导致了系统的安全性大幅下降. ManagementP

Gin + Vue全栈开发实战(二)

尝试地写了第一篇自己学习Go Web框架的感受和入门的文章,发现反响还不错,大家也提出了很多的问题来一起交流.近期也渐渐地出现了很多有关go语言开发的相关文章,包括有在蚂蚁金服的大牛的分享,我也一直有在看博客园和学习,这里越来越多人的去学习和使用Go,感觉也是非常好的趋势.希望和大家一起来继续学习. Gin路由 本章概要 路由(Router)介绍 Handler(处理器)介绍 2.1 路由(Router)介绍 路由是一个非常重要的概念,所有的接口都要有路由来进行管理.虽然传统的J2EE(通过Sp

Flash 游戏开发实战(二)

我们必需修改一个在教程一中的代码,就是让阳光只是简简单单地出现在某一区块中,并且在一段时间内,若没有被捡起,它就消失了.我们得让阳光平滑的落下. 修改newSun函数 细心的读者可能会发现,教程一里的newSun函数有一个错误使得新生的阳光无法出现在游戏区域内的任意一个区块.这个错误可以通过修改x属性的值来修复: sun.x=52+sunCol*65;(教程一里写成了sun.x=52+sunRow*65) 既然我们将要加入使得阳光平滑落下的代码,整个newSun函数可以改成这样: private

ASP.NET开发学习视频教程大全(共800集)

ASP.NET是微软.NET平台的支柱之一,被广泛应用在WEB等互联网开发领域,因此它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上.这里整理了最全的ASP.NET开发学习视频教程,总共八百集,一次看个够! 资料名称 下载地址 <ASP.NET4.0从入门到精通>随书教学视频  http://down.51cto.com/zt/2879 亮剑ASP.NET项目开发案例导航视频(含源码与PPT)  http://down.51cto.com/zt/2573 ASP.NET