ASP.NET 2.0移动开发之定义设备筛选器(4)

而后,我们要新建一个ASP.NET Web移动应用程序,这样就可以调用MyEvaluators.dll程序集中的各个方法,使得移动应用程序可以根据这些方法自动识别这些图片的格式以及屏幕的大小。因此我们还要执行的步骤如下:  1.选择"文件"-"新建网站"命令,在解决方案资源管理器窗口中删除默认的Default.aspx文件,通过右键菜单的"添加新项"命令为站点添加一个"移动Web窗体"和一个"移动Web配置文件"。  2.由于站点程序中需要使用MyEvaluators.dll程序集中的各个方法来识别所支持的图片的式以及屏幕的大小,为此我们依然要在解决方案资源管理器中通过右键菜单的"添加
http://www.w3dev.cn/article/20100406/2090.aspx

Asp.net移动开发指南(1)

le的客户端应用程序之外,还出现了B/S架构的基于ASP.NET的Web应用程序。.NET Compact Framework包括用于Web开发的ASP.NET。ASP.NET是统一的Web开发平台,用来提供开发人员生成企业级Web应用程序所需的服务。基于ASP.NET的Web开发既支持传统的Web客户端如IE,又支持移动客户端如移动电话和Pocket PC设备等。在这一章里,将介绍如何使用.NET Mobile Web SDK和ASP.NET开发移动Web应用程序。1.2 移动Web网站利用ASP.NET创建移动Web网站时,可以包含ASP.NET能够识别处理的特定类型的文件。此外,还可以
http://www.w3dev.cn/article/20100406/2091.aspx

Asp.net移动开发指南(2)

应用程序中可以包含多种文件类型,其中一些文件类型由ASP.NET支持和管理,而其他文件类型则由IIS服务器支持和管理。大多数ASP.NET文件类型,都可以使用Visual Studio 2005中的“添加新项”菜单项创建。 使用应用程序映射,可以将文件类型映射到应用程序。例如,当打开一个具有.txt文件扩展名的文件时,很可能会打开记事本应用程序,因为默认情况下.txt文件类型已映射到Notepad.exe。在Web应用程序中,文件类型会映射到IIS中的应用程序扩展。通过程序映射由ASP.NET管理的主要文件类型如表1-2所示。表1-2 由ASP.NET管理的主要文件类型文件类型位置说明.asa
http://www.w3dev.cn/article/20100406/2092.aspx

Asp.net移动开发指南(3)

类文件(即带有.vb、.cs等扩展名的文件)的形式编写的源代码文件。根据需要,App_Code文件夹可以包含任意数量的文件和子文件夹。1.2.5 移动Web应用程序生命周期在ASP.NET中,若要对ASP.NET应用程序进行初始化并使它处理请求,必须执行一些处理步骤。ASP.NET应用程序生命周期包括以下几个阶段:(1)用户从Web服务器请求应用程序资源。(2)ASP.NET接收客户端对应用程序的第一个请求。(3)ASP.NET为每个请求创建并初始化核心对象。如HttpContext、HttpRequest和HttpResponse。(4)将HttpApplication对象分配给请求。(5
http://www.w3dev.cn/article/20100406/2093.aspx

Asp.net移动开发指南(4)

务器控件。通过ASP.NET,能够轻松生成面向移动设备的功能强大的Web应用程序。ASP.NET移动控件建立在.NET Framework之上,它将ASP.NET Web开发模型的所有优点都引入了移动Web应用程序领域。此外,ASP.NET移动控件还提供了以下功能: · 支持各种设备。ASP.NET使开发人员能够面向各种移动设备进行编程,并智能化地为不同设备生成无线标记语言(WML)、精简HTML(cHTML)和HTML内容,这些设备包括基于WML的移动电话到基于HTML的Pocket PC。· 一次性编写适用于各种设备的Web页。ASP.NET提供了一套自适应组件,使用这些组件可以实现以下目
http://www.w3dev.cn/article/20100406/2094.aspx

Asp.net移动开发指南(5)

1.4.3 响应控件事件ASP.NET移动控件公开了一个包含属性、方法和事件的对象模型。可以使用该对象模型非常方便地修改页面和与页面交互。移动控件的对象模型不依赖于设备,因此可以通过统一方式与其进行交互,而与目标设备无关。清单1-3中的示例演示在移动Web页面中如何处理Command控件的Click事件。当代码收到此事件时,它以编程方式定位到另一窗体。新激活的窗体触发Activate事件,可以使用该事件初始化窗体。清单1-4说明了页面所对应的代码文件ControlEvents.aspx.vb中的实现代码。清单1-3 Command控件的Click事件+展开-HTML%@PageLanguag
http://www.w3dev.cn/article/20100406/2095.aspx

Asp.net移动开发指南(6)

esValidation属性为true。1.4.9 自动分页ASP.NET移动Web窗体的一个主要功能,就是能够根据目标设备的屏幕大小将内容分页。窗体分页的处理是通过结合服务器端分页,和客户端上执行的自动分页共同完成。并非所有窗体都适合自动分页。通常情况下,显示大量文本或许多列表项的窗体可以从分页中获益。前面几节包含了这类启用了分页的窗体的示例。要为窗体启用分页,必须将窗体的Paginate 属性设置为true,然后窗体会自动将其内容分页。1.4.10 设备筛选器要创建并使用设备特定的内容,必须首先为应用程序配置一组设备筛选器。ASP.NET页框架使用这些设备筛选器,为目标设备选择设备特定的内
http://www.w3dev.cn/article/20100406/2096.aspx

Asp.net移动开发指南(7)

自定义ASP.NET移动控件除了使用内置的ASP.NET移动控件集以外,开发人员还可以创建自己的控件,封装自定义功能以便在移动Web窗体页面上重复使用这些功能。创建自定义ASP.NET移动控件,可以轻松跨越ASP.NET移动Web应用程序,来划分和重复使用公共用户界面(UI)功能。通过为自定义移动控件提供对象模型支持,用户控件能提供比ASP.NET服务器控件更大的灵活性。ASP.NET允许创建两种控件:· 用户控件。在.ascx文件中,开发Web控件为应用程序创建可以重复使用的自定义控件。 · 自定义控件。创建直接从MobileControl类继承的原始ASP.NET移动控件。这种方式赋予用户
http://www.w3dev.cn/article/20100406/2097.aspx

Asp.net移动开发指南(8)

着可以从位于网站中的任意页或代码读取这些资源文件。创建本地资源文件,这些文件存储单个 ASP.NET网页(.aspx文件)的资源。将资源文件放入应用程序根目录的保留文件夹App_GlobalResources中,即可创建全局资源文件。App_GlobalResources文件夹中的任何.resx文件都具有全局范围。此外,ASP.NET 还生成了一个强类型对象,这为开发人员提供了一种以编程方式访问全局资源的简单方法。本地资源文件是仅应用于一个ASP.NET页面的文件(带有.aspx和.ascx等扩展名的ASP.NET页)。本地资源文件所放入的文件夹具有App_LocalResources保留名
http://www.w3dev.cn/article/20100406/2098.aspx

Asp.net移动开发指南(9)

orization标记使用allow和deny子标记来实现配置访问控制权限。allow标记定义可以访问资源的用户,deny标记定义不可访问资源的用户。通过web.config进行配置的访问控制只对ASP.NET本身的资源有用(比如ASPX、ASMX、ASCX文件资源),对于非ASP.NET资源(比如ASP、TXT、图像文件等)都不能提供访问控制。以上代码框内的配置代码,设置了匿名用户不能访问任何ASP.NET资源。login.aspx页面的窗体设计如图19-16所示,对应的login.aspx.vb文件代码如清单1-21所示。FormsAuth.aspx页面窗体设计如图19-17所示,对应的F
http://www.w3dev.cn/article/20100406/2099.aspx

ASP.NET移动开发之SelectionList控件(1)

lection也是类似的,只不过它返回的是与当前选中的数据项对应的MobileListItem对象,而不是索引值。  当用户在一个Selection列表中做出相应的选择后,客户端浏览器上的Form窗体将那些被选择的一个或多个数据项进行相应的编码,并将这些编码信息添加到要回发到服务器的数据中,这样ASP.NET运行时就可以利用这些被回发到服务器的数据来更新Selection的一些属性,例如SelectedIndex。但是Selection并不会因为用户选择好了数据项后就自动地将数据信息回发到服务器上,而是要借助一个Command控件产生回发操作,为此你需要将这个Selection列表控件和Co
http://www.w3dev.cn/article/20100406/2100.aspx

ASP.NET移动开发之SelectionList控件(2)

"->"ASP.NET配置"选项。  设置和注释的完整列表在machine.config.comments中,该文件通常位于\Windows\Microsoft.NET\Framework\v2.0.xxxxx\Config中--configurationappSettings/connectionStrings/system.web!--设置compilationdebug="true"将调试符号插入已编译的页面中。但由于这会影响性能,因此只在开发过程中将此值设置为true。--compilationdebug="true"/!--通过authentication>节可以配置ASP.NET
http://www.w3dev.cn/article/20100406/2101.aspx

使用ASP.NET开发移动通讯的几种方法

比用MMIT更容易。但是要开发连接式的Web应用程序,你可能依旧会首先考虑使用MMIT。   使用MMIT方法,你可以为应用程序设计一个访问它的设备,这样当新设备可以使用以后,你通过简单的增加附加的设备适配器到ASP.NET服务器中就可以使用该新设备了。你也可以通过扩展现有的MMIT控制器来创建被现有的或将来的设备适配器所支持的设备控制器。使用MMIT的另外一个关键性的好处是能利用ASP.NET的内部状态管理系统,开发者如果创建基于XSLT的移动通讯应用程序就必须开发和维护自己的状态管理方法。 http://hi.baidu.com/zhiwei%5F117/blog/item/160165f
http://www.w3dev.cn/article/20100405/2080.aspx

用VS2005实现ASP.NET2.0移动开发(1)

介绍如何使用Visual Studio 2005创建一个ASP.NET 2.0移动程序,然后介绍一些常用的移动开发控件并以适合的方式在程序中加于应用,最后将谈谈如何开发针对特定移动设备的WEB程序和管理程序中的ViewState(视图状态)和Session创建一个新的ASP.NET 移动WEB程序Visual Studio 2005提供了一组功能强大且友好的开发工具来创建移动WEB程序,如果你已经有创建传统的ASP.NET应用程序的经验,那么你就会发现创建移动WEB程序和创建传统的ASP.NET应用程序是非常类似的。你只需要创建一个ASP.NET网站项目并添加一些移动WEB窗体即可。当你添加移
http://www.w3dev.cn/article/20100405/2081.aspx

用VS2005实现ASP.NET2.0移动开发(2)

选该控件并使用"Delete"键进行删除。  注意,ASP.NET 移动WEB窗体的设计视图并不是一个"可见即可得"的编辑器,这是因为不同的移动设备其支持的呈现方式是不同的。例如,在设计视图状态下通常一行只能放置一个控件,但是在某些设备上支持在同一行放置多个控件,因此各个控件将会尽量地停靠在同一行上。正因为如此,我们还需要注意ASP.NET移动WEB窗体并不支持控件的绝对位置。  在设计器中,您可以按照希望控件显示给用户的顺序将它们添加到窗体或面板中,但是不能定义当它们呈现在移动设备的屏幕上时所处的绝对位置。为了适应多种多样的移动设备,ASP.NET 移动设计器使您能够针对特定设备自定义移动
http://www.w3dev.cn/article/20100405/2082.aspx

用VS2005实现ASP.NET2.0移动开发(3)

件都共享相同的代码隐藏文件和页面状态信息,因此各个Form 控件都可以共享相同的方法和成员。  由于ASP.NET移动WEB程序通常是在一些小屏幕的移动设备上运行的,为了适应这种特定的显示环境,你需要将一个普通的ASP.NET WEB页面分解成多个移动WEB页面。如果没有Form控件的话,这种分解过程是非常繁杂的,因为你需要在ASP.NET WEB页面和移动WEB页面间建立一个一对多的映射,这样使得程序难以维护。    最合适的方式就是在一个移动WEB页面放置多个Form 控件,这样使得ASP.NET WEB页面和移动WEB页面是一个一对一的镜像关系。在面对数据量较大的移动WEB页面时,将所
http://www.w3dev.cn/article/20100405/2083.aspx

ASP.NET 2.0移动开发入门之使用模拟器

开始介绍如何编程之前,先介绍如何使用模拟器浏览ASP.NET移动WEB页面。由于不同的移动设备针对ASP.NET移动程序的支持程度是有较大差距的,因此显示的效果也有所不同。我在此将使用两种不同的模拟器对移动页面进行显示,在实际的开发过程中也要注意ASP.NET移动WEB页面在不同的设备中的显示效果。  现在我们就上节讲述的实例直接在Visual Stduio 2005中进行编译,它将会自动使用IE进行页面的呈现,效果如下:  笔者在开发过程中常用的模拟器是Openwave V7和Visual Studio 2005自带的Pocket PC仿真设备。Openwave V7可以在http://d
http://www.w3dev.cn/article/20100404/2078.aspx

ASP.NET移动开发入门基础

友好的开发工具来创建移动WEB程序,如果你已经有创建传统的ASP.NET应用程序的经验,那么你就会发现创建移动WEB程序和创建传统的ASP.NET应用程序是非常类似的。你只需要创建一个ASP.NET网站项目并添加一些移动WEB窗体即可。当你添加移动WEB窗体后,你就会发现在工具箱中添加了如下图所示的ASP.NET移动控件。现在你可以按照如下的步骤在Visual Studio 2005创建一个新的ASP.NET移动开发的WEB程序:1. 选择"文件"-"新建"-"网站"2. 在"Visual Studio已安装的模板"列表中选择"ASP.NET 网站"3. 设置好程序的"位置"、"语言"和"路
http://www.w3dev.cn/article/20100404/2079.aspx

11.5.对指定组件应用局部Transition

组件上。11.5.2. 解决办法在过滤函数基础上为每个特效过滤目标直到返回期望的所有子组件数据。11.5.3. 讨论正如第11.4节提及的那样EffectTargetFilter 对象过滤只能应用整个sequence 或整个Parallel组合特效。要想为每个特效过滤目标,你必须编写自定义函数返回每个特效的targets 属性数组。因为特效都有自己的targets 而不依赖与Transition 的targets,过滤函数必须遍历组件内的所有子组件, 这需要付出昂贵的代码,有时候好的办法是把被应用的子组件添加到独立的数组中。这个例子中的过滤函数循环遍历所有子组件,根据传入方法的参数返回组件
http://www.w3dev.cn/article/20100329/2032.aspx

11.11.添加视图States到Flash组件

rst"y="330"/mx:Buttonclick="classInst.currentState='Third';"label="First"y="360"//mx:Canvas注意要改变FlashAssetClass 对象的state,你只要设置下currentState 属性即可,和一般的组件差不多。当state 改变时,ContainerMovieClip 类默认下调用gotoAndStop 方法,停止帧回放。如果你要设置currentState 来播放指定的动画,你可以重写currentState setter 去调用gotoAndPlay 方法,这样将不能停止帧回放,例如:+展开
http://www.w3dev.cn/article/20100329/2038.aspx

安装,并使ASP.NET MVC页面运行起来

过一系列的ASP.NET MVC教程,ASP.NET MVC在这之后历经5个preview版本终于到今天的RC版本,而且不久就要正式推出正式版本,所以值此之际,重典也重新修正这一系列的教程,使之与时俱进。现在重开正文:一、前ASP.NET MVC时代的故事ASP.NET MVC是微软推出的基于ASP.NET的MVC模式网站应用程序开发框架。在这之前Castle曾有开源的MVC框架MonoRail(http://castleproject.org/),它的最后更新是2007年9月,虽然如此,但是仍然对现存的ASP.NET MVC产生着巨大的影响。而ASP.NET MVC出现之前ASP.NET编
http://www.w3dev.cn/article/20100324/2024.aspx

8.17.启动图像上传

8.17.1. 问题我需要使用户能通过Flex 上传图像,保存在服务器中。8.17.2. 解决办法创建一个FileReference 对象,并附加一个适当的滤镜,使用户只能上传正确类型的文件。然后监听FileReference 对象的完成事件,并上传图像文件到一个服务器端脚本。8.17.3. 讨论在flex 以及Flash 中上传在图片,依赖于使用FileReference 类。FileReference 对象,完成时,使用浏览器标准的上传窗口和图形创建一个窗口,并且当用户选择了一个上传的文件是通过Flash Player 上传图片。为FileReference 对象添加一个事件监听器表示用
http://www.w3dev.cn/article/20100312/1932.aspx

9.1.用CSS定义组件样式

9.1.1.问题你希望利用CSS 对组件应用皮肤9.1.2.解决办法利用类选择器或类型选择器声明样式属性。9.1.3.讨论你可以用CSS 个性化你的用户界面。如果熟悉HTML 文档中的样式元素,你会发现Flex里的CSS 语法大致相同. 你可以用类选择器为各种组件指派样式,同样你可以为一个组件定义类型选择器,它将适用于显示列表上该组件的所有实例。类选择器经过声明后,在程序范围内可对不同组件应用任意次。类选择器的语法是一个句号(或点),后面跟着与样式有关的你所想的任何名字,驼峰样式同时以小写字母开头---举个例子, .myCustomStyle. 接下来的例子用mx:Style 标签创造了局部样
http://www.w3dev.cn/article/20100312/1935.aspx

9.8.自定义组件样式属性

题你想嵌入地创造并展现那些组件中本身没有的自定义样式属性。9.8.2.解决办法给你的自定义组件增加样式元数据并用getStyle 方法返回属性值。9.8.3.讨论Flex 框架为组件提供了可用的默认样式属性,但你能利用[Style] 元数据标记为自定义组件声明附加样式属性。在mx:Metadata标记中列出样式定义使得你在MXML 中组件声明内嵌入地指定属性值。你同样能利用CSS 和setStyle 方法为自定义组件声明样式属性值。同设定默认属性值一样,所有的这些方法强制更新显示界面。为自定义组件增添附加样式属性使得你能规定影响组件视觉构成的属性。下例中的自定义组件是mx.container
http://www.w3dev.cn/article/20100312/1942.aspx

9.15.编程实现组件应用皮肤

9.15.1.问题你想更好地控制视觉元素如何在不指定图像皮肤时显示在组件中。9.15.2.解决办法生成一个继承mx.skins.ProgrammaticSkin 类的自定义皮肤类并重载保护类型的updateDisplayList 方法。9.15.3.讨论与图像皮肤相反,编程实现皮肤需要对ActionScript 更高级的理解,但提供了组件视觉表示的更深入的控制。编程实现的皮肤类是利用一些显示对象,这些对象利用绘图API 显示皮肤元素并使你能运用在指定图像皮肤时可能会打消的一些其它样式属性值。通常来讲Flex 有两类组件:容器和控件。窗口有边框皮肤来表示显示背景,然而控件通常有一系列描述状态的皮
http://www.w3dev.cn/article/20100312/1949.aspx

5.1.创建可编辑的list组件

editedItemPosition 属性已设置且项目可编辑后调度。当事件被触发,List组件使用createItemEditor 方法并且从编辑器拷贝data 属性来创建一个itemEditor 对象itemEditBeginning:当用户准备好编辑项目(例如,在项目上释放鼠标按键)后调度,聚焦到列表或试图编辑列表itemEditEnd:当项目编辑会话因任何原因而结束时调度。List 组件为这个拷贝自条目编辑器至list 组件的数据提供者的数据提供了一个默认的事件处理方式,默认情况下,List 组件使用editorDataField 属性来决定itemEditor 的属性包括新数据和使用
http://www.w3dev.cn/article/20100311/1871.aspx

7.3.访问设置自己渲染器的组件

7.3.1. 问题item renderer 需要访问它的父组件的一些数据。7.3.2. 解决办法实现IDropInListItemRenderer,通过drop-in renderer 访问它的父组件.7.3.3. 讨论实现了IDropInListItemRenderer 的renderer 不但能访问data 等一些传入的数据,还能通过BaseListData类型的一个属性访问renderer 的父组件(如List 或DataGridColumn)。mx.controls.listClasses.BaseListData 有如下属性:columnIndex : int当前是第几列,当用户
http://www.w3dev.cn/article/20100311/1900.aspx

7.4.创建一个简单的组件作为渲染器和编辑器

立一个即可以用于item editor 又可以用于item renderer 的组件,并且item editor 会收到一个数组,我们希望这个数组能以combo box 的形式显示出来。7.4.2. 解决办法建立一个己经实现了IDropInListItemRenderer 的组件,并在它里边定义两个states即状态,一个状态用于显示editor 另一个用于显示renderer。当data 发生变化时,即在editor 状态用户做了修改操作,系统将会派发一个ITEM_EDIT_END 事件到这个组件的父组件,父组件收到这个事件后,保存修改的数据到dataProvider 里。7.4.3. 讨论
http://www.w3dev.cn/article/20100311/1901.aspx