Prever Start 网页操作系统

距离上一次在CSDN上写东西已经好久了,Prever也停止开发好久了。从去年10月开始,Prever Start就基本上没有什么变化了,后来抽空添加了一个简单的文本编辑器,但毕竟是高三,时间上不再允许我有太多的投入。

 

眼看着就要高考了,还是把Prever Start的信息发在这里。欢迎大家来我的博客坐坐:http://www.vilic.info

需要源码的朋友可以给我邮件或是留言,但源码发出后仅供自己研究。

 

示例

http://prever.vilic.info

 

截图

start

desktop

filemanager1

filemanager2

unzip

upload

imageviewer

 

简介

运行环境

服务器:

  • ASP.NET2.0

客户端:

  • Internet Explorer 7+(如果机器性能不错,推荐IE8)
  • Chrome 2+
  • Safari 4+
  • Firefox 3+

配置及安装

将“Prever Start”文件夹中的内容复制到网站根目录,并将默认页面设置为Index.htm即可。也可以根据需要在App_Code/Settings.cs文 件中修改。

引子

Prever Start是一款以“网页操作系统”为准线开发的基于JS和ASP.NET2.0的Web应用程序。如同此版本的名称Start一样,Prever Start是一次探索。截止目前,Prever Start经过了4个多月的开发,虽然没有达到预期的完成度,但它的大部分构想已经得到了实现。下面就Prever Start中一些我认为比较有价值的创意举例说明。

文件系统

在文件系统中,文件夹不再只是一个简单的目录,它们同文件一样,可以拥有扩展名。其中最常见的文件夹扩展名是psp,它的含义是Prever Script Program。同时,如果分析代码,会发现,Prever Start并没有对扩展名是psp的文件在打开时进行特殊判断,但它仍能被正确运行。因为Prever Start的注册文件中,以“#psp”的形式储存了扩展名为psp的文件夹的打开方式,并且调用了相应的程序进行来运行目标程序。也就是说,通过文件系 统打开一个程序,实际上通过了几个步骤:

  • 匹配类型及扩展名,通过注册信息获得打开方式。
  • 以包含程序目录的参数打开“‘程序加载’程序”。
  • 由“‘程序加载’程序”打开目标程序。

看起来似乎有点繁琐,但因为尽量避免特殊化,Prever Start被赋予了更多的扩展性。lnk(快捷方式)文件也使用了类似的方式打开。与psp文件夹类似的,可以通过修改注册文件定义更多类型的文件或文件 夹的打开方式和图标。另外,还可以通过修改注册信息给特定,或者非特定的文件或文件夹添加右键菜单项。比如Prever Start中的文件解压就是用了这一功能。

除此之外,Prever Start还使用了一种我称之为“虚拟目录”的目录表示方式(类似于“System:/XXX”和“Disk:/XXX”)。几乎所有的文件处理都通过了 这种表示方式,使得目录更加清晰明了。同时,这些目录可以指向非网站目录,保护了其中的文件安全。

程序-窗口

在前面的说明中,已经透露了Prever Start中的可执行文件(夹),*.psp,那么,下面就Prever Start中的程序来说一下。一开始,Prever Start中的窗口是随程序被创建时自动添加的,一次偶然看到了OOS(国外的一款WebOS)的示例程序的代码,突然意识到在以后的开发中,这种窗口创 建方式会使程序的扩展十分被动,特别是当需要多个窗口时。所以痛下决心,对Prever Start进行了一次大规模的重写,使得窗口与程序获得较为完美的融合。Prever Start目前拥有三种类型的窗口(分别是Normal、Popup和Elementary),它们都继承于同一个“基窗口”,所以,都拥有一个窗口基本 的属性、方法与事件。而窗口的最大亮点在于次序模式和定位模式。次序模式的不同使得不同次序等级的窗口之间不会出现前后顺序的交换。这样以来便可以通过简 单的设置做出悬浮窗口或是紧贴桌面的窗口(其实,桌面也是一个普通的窗口,只是它的次序模式为最底层)。另外,Prever Start还为窗口提供了9种定位模式,默认为中心。这一点可以在参见“时间与日期程序”的设置。

程序-控件

我想这是一个不错的想法,Prever Start中的控件类似于普通程序,文件夹扩展名为psc,它的含义是Prever Script Control。如果你愿意,psc可以像psp一样运行(前提是编写是考虑了这一点),因为psc的结构和psp是完全一样的。只不过从期望上,psc 需要psp作为“容器”才能运行。另外,很多时候,它们拥有更多共享属性、方法和事件来与其宿主程序保持通讯。目前我写了两个控件,一个是 Prever.FileManager.psc,另一个是Prever.FileSelector.psc,这两个控件在Prever Start中都被多次使用,减少了不少代码量,自然也就节约了不少开发时间。

注册信息

在前文中已经提到过了Prever Start中的注册信息。从广义上讲,Prever Start的注册信息分为文本方式的和文件方式的。比如,图标、打开方式、右键菜单、控件以及程序的注册都是通过文本的方式保存的(其实一直打算换成 mdb来保存,但光阴不等人啊),而启动项则是以文件的形式来保存的,类似于Window里的“启动”文件夹。在Prever Start完成基本的加载后,就会依次打开其中的文件(绝大多数时候使用lnk文件,当然,要直接使用可执行的psp或者一般的文件也是可以的)。就目 前,Prever Start的注册信息还比较简单,也还没有写操作注册信息的类库,当然主要是时间问题,相信以后会得到改进。

非原创部分

Prever Start中使用了以下一些非原创内容(如有遗漏,请见谅)。

  • ICSharpCode.SharpZipLib.dll 用于实现文件解压
  • Newtonsoft.Json.dll 用于处理JSON
  • Prever.IdentifyEncoding 类,用于文本文件编码判断
  • JSON.js 用于处理JSON
  • 部分图片(部分壁纸和“图片浏览器”图标中的风景画)

致谢

在Prever Start的开发过程中,查阅了不少资料,而这些资料,多数来自Google和Baidu,所以,首先感谢这两个搜索引擎,它们使Prever Start一次次地跨过了困难。然后,感谢QQ群里及其他方式接触到的热心的大牛和非大牛们,因为你们的帮助,我才能够高效地解决遇到的疑难问题。特别要 感谢Wait、刘春龙、Franky,是你们让我的Web技能一步步攀升。接着是聂爱明同学,感谢你在学校暑假补课期间借给我笔记本电脑,让我顺利完成 Prever Start的一次大改。另外,感谢我的老师,感谢你们对我的理解和支持,让我能够将更多的精力投入到Prever Start中来。最后,感谢我的家人,在这样一个以分数论成败的教育下,感谢你们能体谅我的选择,让我可以坚持自己的做法。

设计及开发者:Vilic Vane

2009.10.2

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值