FitnessTrackerPlus应用程序概述.docx
- 文档编号:13594716
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:22
- 大小:404.39KB
FitnessTrackerPlus应用程序概述.docx
《FitnessTrackerPlus应用程序概述.docx》由会员分享,可在线阅读,更多相关《FitnessTrackerPlus应用程序概述.docx(22页珍藏版)》请在冰点文库上搜索。
FitnessTrackerPlus应用程序概述
FitnessTrackerPlus应用程序概述
2008年的秋天,微软发布了Silverlight的升级版Silverlight2.0,它是一种以媒体为中心的全新浏览器插件。
那些曾经在网上利用Silverlight技术观看2008年夏季奥运会的最终用户或许对这次升级并不觉得很兴奋;但对于那些利用微软Web技术进行开发的开发人员而言,则意味着一次里程碑式的巨变已经发生了。
Silverlight2.0终于能够直接在Silverlight环境中支持C#或者VB.NET编程,这个特性也是开发人员们期待已久的。
他们再也不会被迫仅使用带有基于JavaScript的API的插件来进行开发。
正因为有了C#/VB.NET的支持,才使得Silverlight在对企业级的业务应用程序开发支持方面迈出了关键的一步。
尽管Silverlight2和Silverlight1相比已经有了巨大的改进,但是Silverlight2在企业级的业务控件方面还尚有很多需要改进的地方。
幸运的是,微软已经听到了开发人员的这种响亮而清晰的呼声,并在Silverlight3中针对这种企业级的业务需求做出了若干重要的改进。
Silverlight3的发布意味着开发人员在创建富Internet应用程序时拥有了更强大的工具包。
不过Silverlight3仍旧遗漏了一些关键的特性,而这些特性正是企业级业务应用程序从桌面应用程序过渡到Web应用程序的关键所在。
然而随着最新版本Silverlight4的发布,这些特性最终包含在了Silverlight的运行时中,包括新的PrintingAPI、RichTextArea、Clipboard的API、鼠标滚轮的支持、隐式主题和对右击事件的处理等。
诸如打印、右击菜单、剪贴板支持之类的特性解决了过去Silverlight在企业级的业务应用程序中的困惑。
事实上对于开发人员而言,Silverlight4很有可能成为迄今为止最为激动人心的Silverlight版本。
本书的主要目的就是介绍Silverlight4的这些新特性,同时会展示如何将Silverlight高级开发技术应用到企业级的业务应用程序解决方案中。
本书将遵循Wrox的“提出问题——分析问题——解决问题”的原则。
因此每一章中都会包含一个详细的问题场景,紧接着是设计分析,最后则是解决问题的实现方案。
我们不会逐个讨论Silverlight的详细API信息,也不会讨论Silverlight中的各种控件;如果希望获得这些信息,可以参阅Silverlight4的帮助手册。
该文档可以在Silverlight的官方网站上下载得到。
本书将通过建立一个功能完整的Silverlight4的企业级业务应用程序来探讨几个重要的主题,例如可扩展的设计、社交网络、SEO(搜索引擎优化)、产出收益和富用户界面等。
在本章中,您将学习到如下内容:
●如何构思一个好的创意来设计一个更加良好的Web应用程序。
●在这个应用程序中,您将需要哪些页面。
●您将需要哪些Silverlight4的新特性来构建这个应用程序。
●如何通过会员机制、个性化、日志和社交网络来构建一个实际的应用程序。
同时您将学会如何测试和部署网站,以及让这个网站赢利。
●对于这个网站而言,它的基本建立步骤是什么?
以及需要下载和安装哪些软件?
对于Silverlight的开发人员而言,这是一个激动人心的时代。
因为已经有上百万台的计算机安装了Silverlight的插件,MySpace网站也刚刚宣布了对Silverlight的支持。
现在学习如何将Silverlight技术整合到自己的解决方案中,的确是最佳时机。
1.1提出问题
在过去几年全职的软件开发工作中,我常常是在电脑桌边坐上数小时,或者是在长时间编码的间隙中吃着一些垃圾食品。
我开始意识到必须要考虑一些有关如何保持健康的问题,否则无法抵消久坐的工作环境和生活方式带来的危害。
首先我参加了一个当地的健身中心,并且开始关注自己的饮食和吃饭时间,不再边编写代码边吃饭。
坚持了几个星期之后,我开始怀疑,“我得到了我所期望的结果吗?
这些饮食真的对我有益吗?
事实上,我该如何衡量在这期间花费数个小时在健身中心取得的进步呢?
作为一名程序员,可能还有一个最重要的疑惑是,“我该如何编写一个软件来跟踪我的健身效果?
”
对于大多数人而言或许会回家,然后在Internet上随意浏览,找到一些软件或者网站来帮忙做这件事情。
但是,身为程序员的我们,将是启动IDE(集成开发环境),自己开始编写这些软件。
因此,我决定新建一个基于Silverlight的Web应用程序,来帮助人们跟踪自己的饮食、锻炼和身体的各项指标。
如果这个网站能够形成一个社区,在这个社区上的用户可以通过网站上的信息发布与其他用户分享成功的经验,并且可以和Facebook和MySpace这样的社交网站进行整合,那就太完美了。
然后这个网站可能会越来越流行,因此网站就会有足够的收益来维持它自身的运营。
我也会为这个网站增加资金流的特性,比如通过点击广告收费和每月收取会员费用等。
至此,还剩下最后一件事情,就是给这个网站起个响亮的名字,当然还有网站的实现。
关于名字,我决定把它称作“FitnessTrackerPlus”。
我之所以要增加后缀“Plus”,是想让用户一眼就能看出来,他们所注册的不是过去传统的ASP.NET网站,而是一个功能更加丰富的Web2.0网站。
好吧,我承认我确实想不出类似Google或者Twitter这样的让人一眼就能记住的Web2.0网站的名字。
1.2分析问题
在本书中,您将会创建一个Silverlight4的Web应用程序,而且将运用Silverlight4的新特性提供一个比传统ASP.NET网站响应速度更快的富用户界面。
尽管主题是创建一个在线的健身跟踪系统,但是所讨论的绝大多数的特性和技术都可以运用在其他企业级业务应用程序上。
这个网站与大多数企业级的业务应用程序一样,最主要的目的是允许用户输入数据,然后查看这些数据的报表。
您也会为这个网站加入一些社交网络的特性。
最后您将利用数据输入、图表、网站结构、SEO和社交网络组件构建自己的Silverlight企业级业务应用程序。
1.2.1确定网站的需求
在FitnessTrackerPlus网站的设计阶段,第一步是需要得到一个详细的需求列表。
前面的讨论已经大致涉及了一个网站的若干高层次特性,现在是时候开始讨论这些特性的细节了。
对于任何应用程序而言,在编写任何一行代码之前,最好先尽可能地收集详细的需求,越详细越好。
因为在设计阶段,需求的变更还不足为惧,但是到了编码阶段,需求的变更就变得可怕了。
下面是FitnessTrackerPlus网站的主要需求。
1.可扩展性
一个网站越受欢迎,那么新的流量负荷就越大。
但是一个可扩展的网站是不会因为新的流量增加而给现有的用户带来问题的。
为此,网站的设计需要是一个多层次的体系结构。
这样就会允许网站随着它的流行程度而扩大规模,同时又能够在用户界面、业务逻辑和数据访问代码之间保持一个清晰的分隔。
2.富用户界面
用户登录这个网站时,将会迅速地输入日常的锻炼、饮食以及身体的各项参数。
基于Silverlight的富用户界面可以将数据输入任务的完成时间减至最少。
用户在输入数据时花费的时间越少,他们就会有越多的时间去看报告,衡量进展情况以及和其他用户交流。
确保数据输入足够简单的关键是一个页面中不要有太多的杂乱无章的数据输入表单。
对于饮食、锻炼和身体各项参数的输入一定要足够简单,这样用户就可以迅速明白他们需要做什么,以便输入信息。
另外,对于网站而言,为用户提供多个主题也是一项常见的功能。
这样用户就可以选择一个喜欢的颜色主题或者一种网站布局。
您的网站也应该提供一种类似的选择主题的特性,并且还能够记住用户所选择的主题,以便下次登录时可以恢复相应的主题。
3.仪表板
用户成功登录网站后,会出现一个仪表板来显示当天的基本健身信息。
仪表板的外观需要简洁清晰,这样用户很快就能知道其当前的身体参数,饮食和锻炼的概览信息。
同时仪表板上还提供了一个网站公告板,您可以通过它来了解如何维护网站,以及了解新的功能,包括未来即将发布的新功能。
公告板的方式避免了给用户邮箱发送批量的电子邮件。
事实上,这些批量的电子邮件最终都会被当作垃圾邮件处理。
4.饮食日志
饮食日志的主要目的是提供一个简单的方式让用户输入自己每天吃的食品,同时能够查看他们一天所吸收的营养成分的基本小结。
因此,由于这个主要目的,无论什么控件或者功能,如果不能简化这一过程,那么它们都是不能被添加的。
很多时候,您会发现一个有用的网站,它只是提供一个可以注册和找到的服务。
开发人员会赋予这个服务尽可能多的功能,同时又不会对整体用户界面带来大的影响。
因此学习使用这个网站是不需要提供操作手册的,尤其是在输入数据方面。
如果用户每天不在这个网站中输入他们所吃的食品的话,就很难显示出他们的进展情况。
那么能够让用户坚持天天输入的唯一办法就是让这个过程快速而且简单。
为了帮助用户跟踪他们所吃的食品,网站需要建立一个用户可以从中搜索的食品数据库。
但是市场上是有很多种食品的,因此建立一个包含所有食品的数据库是不现实的。
那么,取而代之的方法是网站提供一种用户可以建立和管理自己食品的机制,同时用户还可以为这些食品设定它们的营养成分。
网站还需要提供搜索的功能来帮助用户找到特定的食品,没有用户会浏览整个数据库去寻找食品的。
目前绝大多数网站在搜索框中都提供了一个自动建议的功能来引导用户正确地输入数据库中相应的内容。
您的这个网站也需要提供类似的功能,比如,输入前几个字符就能够给出食品数据库中匹配搜索条件的食品。
在绝大多数情况下,您的用户只需要输入该食品的几个字母,就能通过单击匹配项选择所需要的食品,同时还可以移动到他们所吃的下一个食品。
5.锻炼日志
锻炼日志和饮食日志在功能上十分类似。
它的主要目的是为用户提供一种简单快速的方式输入日常锻炼和考核的信息。
数据库中应该包括一些平常我们所熟悉的锻炼科目,便于用户搜索。
锻炼日志也需要在搜索框上添加像饮食日志一样的自动建议功能。
除此之外,为了让输入锻炼信息变得更简单,需要将这些锻炼科目按照不同部位肌肉的练习进行分组,这样用户就可以根据不同部位的肌肉练习来浏览这些锻炼科目。
正如您的数据库中不可能包含所有的食品一样,它也不可能包含所有的锻炼科目。
因此用户也需要能够创建和管理自定义的锻炼科目。
6.身体参数日志
这个网站最重要的一个方面,就是用户可以跟踪自己当前的身体参数。
为此,网站需要允许用户输入一些标准的身体参数,比如体重、BMI1、腰围和腿形。
正如锻炼日志和饮食日志一样,网站也需要允许用户创建自己所需要跟踪的身体参数。
跟踪这些数值参数是一种非常有效的了解自己健身情况的方法,同时也可以以可视化的方式展现这个过程。
为了满足这个需求,网站需要提供图片上传的功能。
这样,用户在输入数据的同时,也可以上传图片。
7.公开日志页面
一旦用户耗费精力去更新自己的日志,通常就会希望和自己的朋友或者家人分享。
这样当自己达到某一个健身目标时,朋友和家人的积极反馈就会带来相当大的动力。
因此网站需要允许用户能够和其他人分享这些信息。
为了做到这一点,网站会提供类似MySpace和Facebook这样的社交网站上的个人主页。
公开日志页面的URL一定要简短好记,比如“FitnessTrackerPlus/Journals/username”这样的形式。
这样当用户在浏览器中输入前面的URL后,就可以直接链接到匹配用户名的某一个用户的个人主页上。
但是有些用户可能并不想在他们的日志页面中共享所有的信息,因此需要给用户提供选项设置,以配置是全部信息共享还是部分信息共享。
当然用户也可以禁用数据共享功能或随时将他们的日志改为私有状态。
8.整合社交网络
尽管您只是在创建一个以数据输入为主的应用程序,但是也绝不能忽视近几年涌现的社交网站带来的影响。
目前,大多数基于内容的网站总是采取各种方式与MySpace、Facebook和Twitter等其他社交网站整合起来。
这种整合会进一步提高信息共享的能力,同时也可以提高对共享信息反馈的收集能力。
由于已经确立了要在FitnessTrackerPlus上建立一个新的在线社区,因此您需要利用好其他现有的主流社交网站所提供的集成优势。
使得用户除了能够在其个人主页里分享自己的健身信息,同时也可以选择在现有的社交网站(比如MySpace)中发布自己的健身信息。
现在MySpace网站已经提供了对Silverlight应用程序的官方支持,您现在可以创建一个MySpace应用程序,该应用程序允许用户在其MySpace个人页面上分享这些信息。
9.支持历史浏览
在过去几年里人们对富Internet应用程序,尤其是对基于AJAX的富Internet应用程序不太满意的一点是,其缺少基本的浏览器导航功能支持。
通常,在融合了AJAX库的Web应用程序中,用户在浏览器上单击“后退”按钮时,只能回到网站首页或者是登录页面。
因此,FitnessTrackerPlus应该能够完全支持浏览器的历史记录和导航功能,这样就不会因为用户意外的一次“后退”误操作而回到网站的登录页面或者一个和当前工作完全无关的页面中。
10.创造收益
在准备开始创建这个网站时,还有一个需要考虑的问题是,如果FitnessTrackerPlus越来越受欢迎,那么您会用到虚拟主机供应商提供的诸如SQLServer和ASP.NET的技术,当然您还需要支付与主机托管相关的费用。
在网站初期的时候,可能大多数时候只需要随机分配一个线上的共享虚拟主机供应商即可满足需求。
但随着网站规模的扩大,可能就会需要一个专用的虚拟主机托管解决方案。
无论使用哪种方案,如果都不用为此掏腰包,当然是最好的了。
因此您将需要寻求一种方式来创造收入,用于支持网站运行和维护的成本。
您可以将点击付费的广告服务放置在您的网站上。
除此之外,您还可以向登录网站的用户收取少量的月租费用。
11.具备桌面应用程序的特性
使用Silverlight开发网站的用户界面层最重要的一个原因是它能够给用户带来良好的用户体验。
最理想的情况是FitnessTrackerPlus看起来就像一个传统的桌面应用程序,完全具备桌面应用程序的特性,比如鼠标滚轮的支持,右键菜单选择,平滑的用户界面过渡等。
开发FitnessTrackerPlus时,您将会使用到现在在Silverlight中常用的用户界面控件,这样容易让用户感受到这并不是一个传统的Web站点。
1.2.2Silverlight4的新特性
作为设计的一部分,要实现一个方案也需要考虑采用哪些技术。
FitnessTrackerPlus网站决定使用新的Silverlight4运行时的技术来构建富用户界面。
这个最新版本的Silverlight提供了很多我们期待已久的特性,这些特性可以帮助我们构建一个功能丰富的数据输入网站。
举例来说,在过去版本的Silverlight中,公开日志功能的实现往往比较困难,但是新的导航框架会使这类功能的实现相对容易一些。
让我们看看最新版本的Silverlight在哪些方面作了改进,使得开发网站比以往的Silverlight版本更为容易。
1.导航框架
使用现有ASP.NET技术创建网站的一个最大的优点在于每个页面都是可以被标识和共享的。
这样,用户使用标准的Web浏览器内置的导航功能就可以从一个页面导航到另一个页面。
但是使用老版本的Silverlight技术编写的应用程序却很难具备这个导航功能。
尽管您可以使用Silverlight创建一个富用户界面,但是让该应用程序具备历史浏览、前进和后退这样的基本功能却异常困难。
对于基于XAML的代码,要实现直接链接到某一页面这一功能也是非常困难的。
新的导航框架考虑到了上述所有问题,开发人员使用XAML创建的页面都可以完全支持浏览器导航和深层链接。
因此现在共享基于XAML页面的URL变得相当容易。
此外,新的导航框架还提供了将长的和复杂的URL映射到简单的和易记的URL上的能力。
当您在一个公开日志页面上工作,并且允许网络上的其他用户用一个简单易记的URL(例如“FitnessTrackerPlus.com/username”)来访问这些页面时,这种能力就显得格外重要。
在App.xaml文件中,通过UriMapper类来设定URL映射,如下代码所示:
UriMapperx: Key="uriMapper"> UriMappingUri="/{user}" MappedUri="/Views/PublicJournal.xaml? user={username}"/> UriMapper> 上例中,URL默认是FitnessTrackerP母版页的部分行为。 使用导航框架,您将既可以为每个要实现的功能创建各自的用户控件,同时也可以在所有的页面上共享导航菜单和顶部标题等公共控件。 导航框架是Silverlight新版本中的一个重大增强。 它使得程序员向开发出集富用户界面和传统ASP.NET网站的标准Web功能于一体的Web应用程序迈进了一大步。 2.新的数据控件 伴随着最新版本Silverlight4的发布,一些崭新的重要数据控件也随之浮出水面,其中包括DataForm和DataPager控件。 过去的DataGrid控件由于缺少对数据分页的支持,因此在很大程度上限制了DataGrid的应用,尤其是在绑定大的结果集时,这个限制更是显露无遗。 DataPager提供了数据分页的能力。 任何一个数据集只要实现了IPagedViewCollection接口,那么DataPager就可以对该数据集进行分页。 由于ObjectDataSource支持该接口,因此可以将DataPager和DataGrid联合使用,从而为大结果集提供高效的分页机制。 新的DataForm控件提供了一个很强大的功能,它可以在一个标准的数据输入表单中为一个数据项显示其详细信息。 DataForm控件和ASP.NET中的DetailsView控件有着非常类似的功能,在FitnessTrackerPlus应用程序中,DataForm控件不仅为自定义的饮食、锻炼和身体参数提供了一个数据输入的界面,而且还为在DataGrid中的每个单独的饮食和锻炼日志提供了详细信息的显示。 Silverlight4中除了增加了DataForm和DataPager控件以外,对DataGrid控件本身也作了很多重要的增强,包括控件加载数据总体时间上的优化和各个列的大小设置选项。 这些选项的设置可以防止当用户调整列标题大小时水平滚动条的出现。 3.SilverlightControlToolkit 从Silverlight2发布开始,SilverlightControlToolkit就已经出现了,但是在最新发布的版本中包含了很多新的控件,而且部分控件已升级到了稳定级别。 稳定级别的控件通常被认为是大多数时候都表现得相当不错,而且经过彻底测试的控件。 这些控件都是在若干个bug修复循环中更新和修改的,通常都被认为对每次变更都是相当安全的控件。 预览级别的控件则被认为可能还会变更修改,因此在应用程序产品中使用是会有一些小小的风险。 试验级别的控件则仅仅是测试时使用。 试验级别的控件不会在应用程序产品中使用,因为在大多数情况下,它们的功能都还没有完成,它们有可能在每次发布时都有大的变更。 表1-1列出了在Toolkit中不同质量级别的控件。 表1-1ControlToolkit中可用的控件 TOOLKIT 可用的控件 稳定质量级别 DockPanel Expander HeaderedContentControl Label NumericUpDown Viewbox WrapPanel 预览质量级别 Accordion Charting DomainUpDown ImplicitStyleManager LayoutTransformer Rating TimePicker TimeUpDown Eleventhemes 试验质量级别 TransitioningContentControl GlobalCalendar TreeMap Drag&Drop BusyIndicator (续表) TOOLKIT 可用的控件 可用的主题(所有的都被认为是预览质量级别的一部分) BubbleCrème BureauBlack ExpressionDark ExpressionLight RainierPurple RainierOrange ShinyBlue ShinyRed TwilightBlue WhistlerBlue 开发人员可以在CodePlex网站上获得这些控件的源代码,URL为http: //silverlight.。 该项目是一个开源项目,因此您可以免费获得源代码,并且可以修改这些代码,并将所做的修改集成到自己的项目中。 如果您对源代码不感兴趣,也可以下载最新的原始二进制文件,将它们加载到自己的Silverlight项目中。 Toolkit提供了很多在Silverlight4运行时中不曾包含的非常优秀的控件和功能。 您将会在FitnessTrackerPlus应用程序中广泛地使用这些控件。 该应用程序将会用到Label、DockPanel、Charting、TimePicker、TimeUpDown、GlobalCalendar、BusyIndicator和所有可用的主题。 在以后的章节中,我们将详细讲述其中的每一个控件,展示它们是如何事半功倍地提供大量的用户界面功能的。 4.WCFRIA服务 这些新的服务对Silverlight非常重要,它们在ADO.NET数据服务的基础上提供了N层数据支持。 这些服务也提供在客户端的数据输入验证、分页、排序和查询数据等手段。 WCFRIA服务还能帮助Silverlight应用程序与ASP.NET身份验证和角色管理服务的集成。 WCFRIA服务的这个新特性的最大好处可能在于提供了一种对层与层之间的变化进行跟踪的方法,这对于早期版本的Silverlight中使用的ORM技术(LINQtoSQL或者EntityFramework)来说是难以做到的。 5.动态的、隐式的和BasedOn样式 在Silverlight4中支持动态样式和隐式样式两种样式,这样就可以在运行时改变当前应用的主题。 在以前版本的Silverlight中要实现该功能,开发人员必须手动将主题元素应用到控件的整个可视化树上。 动态样式也提供了多次改变主题的能力,而这在以前非常困难且易于出错,即,要应用一个新主题通常需要关闭并重新启动Silverlight应用程序。 BasedOn样式允许用户创建一个基准样式,然后从该基准样式继承一些基本的设置。 现在您可以创建一个样式,该样式包含一些基本的设置。 当仅需要对这个样式的某个方面稍作修改以用于其他控件时,就不需要重新创建一个新样式,把原来的样式复制到新样式中,只需继承原来的样式。 隐式样式也可以声明应用到指定类型的所有控件的样式。 隐式样式非常类似于CSS样式,它提供了一种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FitnessTrackerPlus 应用程序 概述