[转载]Memcached 命令简介

mikel阅读(1009)

[转载]Memcached 命令简介 – 田志良 – 博客园.

一、存储命令

存储命令的格式:

<command name> <key> <flags> <exptime> <bytes><br><data block>

参数说明如下:

1、add:仅当存储空间中不存在键相同的数据时才保存。

2、replace:仅当存储空间中存在键相同的数据时才保存。

3、set:无论何时都保存,即set命令不但可以添加数据,如果key已经存在,该命令还可以更新key对应的数据。

4、delete:删除指定键值数据。

二、读取命令

1、get:获取一个或多个键的值,键之间以空格隔开。

2、gets:gets命令比普通的get命令多返回了一个数字,该数字可以检查数据是否发生改变,当key对应的数据改变时,该数字也会改变

3、cas:checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。

三、其他命令

1、append:在现有的key后添加数据,如果key不存在,服务器响应为“NOT_STORED”。

2、prepend:与append相反,在现有的key前添加数据。

3、flush_all:使已经存在的键值数据立即失效(缺省),或在指定的时间后失效,此后执行Get命 令,将不会有任何内容返回,除非重新存储同样的键值数据。 flush_all 实际上没有立即释放键值数据所占用的内存,而是在随后陆续有新的项目被储存时重用该内存空间,这是由memcached的懒惰检测和删除机制决定的。

参考文章:

http://www.cnblogs.com/jeffwongishandsome/archive/2011/11/06/2238265.html

http://www.cnblogs.com/tianzhiliang/articles/2513101.html

[转载]C# 快速入门(Aisha Ikram著,野比 译)

mikel阅读(1091)

[转载]C# 快速入门(Aisha Ikram著,野比 译) – 野比 – 博客园.

这篇是几年前翻译的。原文约1.5万字,现在网上广泛流传的完全翻译版就是我这个,不过多数转载都已经看不到我的名字了,有的连Ikram的名字也没了。

在这里存个档。

© 版权所有 野比 2008

电子版(PDF)下载

C# 快速入门

[英]Aisha Ikram 著   野比 译

来源:www.codeproject.com(Quick C#

译注:原文极长(约 1.5 万字),但浅显易懂,讲解生动活泼,请耐心阅读

© 版权所有 野比 2008

[转载]多域名登录方案思考

mikel阅读(901)

[转载]多域名登录方案思考 – yupeng – 博客园.

场景:

现有3个域,aa.com,bb.com,cc.com,aa.com 是用户中心,login.aa.com 是用户中心的登陆入口,现要求在任何一个域内登录,其他域不用重复登录了。

方案:

我们知道,如果要保证3个域内都同时登陆了,就必须共享登陆的信息,登陆的信息,可以存储在客户端,也可以存储在服务器端,要共享这些信息,就必须要解决多域名下如果同步这些信息的问题,以客户端为例,我觉得有2种办法:

1)对其他的两个域都设置一个login.xx.com 的这么一个子域(设置这个是为了方便管理),在任何一个网站访问,点击登陆的时候,都跳转到用户中心的登陆入口login.aa.com 去登陆,登陆成功后设置登陆状态和验证信息,

将这些信息写到这个域的cookie里面,domain=login.aa.com,所有的aa.com域以及子域都能获取到这个cookie的值,同时向其他的两个域内写这个cookie值,

例如:

<script src=”http://login.bb.com/?type=setcookies&s=xxxxxxxxxxxxxxxxxxx”>

<script src=”http://login.cc.com/?type=setcookies&s=xxxxxxxxxxxxxxxxxxx”>

可以通过jsonp的形式,将加密后的登陆信息直接放到其他的域中,

这样其他的两个域以及子域都可以获得这个用户的登陆以及验证信息了,在这两个域名下就不用再继续登陆了。

优点:

在登陆处统一设置登陆相关的cookie,便于统一管理cookie的值以及验证规则,一次登陆,其他的域名下不用再重新登陆了。登出的时候将各个域里面的包含用户信息的cookie值清除掉即可。

缺点

不可预知性,不能预知还是否有其他的域要添加,如果再增加一个域名,我们需要往这个域内写cookie值,域名比较多的情况下,登陆的时间会有一些长,5个域名之内还好点,总的来说,没有封闭性。同理,

登出也类似需要处理其他的多个域名

2)方案二:访问任何一个网站的时候,也是到login.aa.com 这个登陆入口去登陆,登陆成功后设置登陆用户的信息和验证信息,将这些信息写到cookie中,domain这是为login.aa.com,aa的子域都能获取到cookie的

值,登陆成功后,然后执行跳转 http://login.bb.com/login.php?type=setcookie&value=xxxxxxxxxxxxxx&u=http://bb.com/test.html u为跳转的目的地址  login.bb.com 分析到这个cookie 的值进行存储,然后跳转到http://bb.com/test.html面,此事这个页面已经是登陆状态了,这就完成了一个登陆过程,如果在cc.com 的页面访问的时候,例如访问 http://cc.com/test.html 的时候,首先会检查时候存在这个cookie的值,如果这个

值不存在,则发一个跳转请求到http://login.aa.com/login.php?domain=cc.com&u=http://cc.com/test.html,由于这个时候aa.com这个域已经是登陆状态,会取得这个域的cookie值,将这个值组装成一个新的请求,

执行跳转  http://login.cc.com/login.php?type=setcookie&value=xxxxxxxxxxxxxx&u=http://cc.com/test.html , login.cc.com 分析到这个cookie 的值进行存储,然后跳转到http://cc.com/test.html 页面,

这个时候这个页面已经是登陆状态了。这样也完成了cc域的登陆和信息共享

优点

可控,登陆的时候缩短,不影响登陆,新增加一个域,操作方便

缺点

登出时要清楚所有域下的cookie的值

欢迎大家拍砖,如果有更好的方案,欢迎探讨。

[转载]ASP.NET MVC推模式用SignalR實現

mikel阅读(1123)

[转载]asp.net 推模式 用SignalR實現 – 無限遐想 – 博客园.

顯示介面

打開3個這樣的介面,再一個中輸入發送信息,在其他介面中會同時得到數據。

1.下載 SignalR JQuery.signalR.js,並且引用。

2.建立MVC工程。

3.在Global.asax中加入註冊項目,註冊連接項目

       protected void Application_Start()
        {
            RouteTable.Routes.MapConnection<myconnection>("echo", "echo/{*operation}");
        }

4.建立myconnection類,繼承PersistentConnection

重寫

protected override Task OnReceivedAsync(string clientId, string data)
{
// Broadcast data to all clients

//在這裡進行數據處理
data = string.Format("數據是:{0} 時間是:{1}", data, DateTime.Now.ToString());
return Connection.Broadcast(data);
}

代碼如下:

View Code

   public  class myconnection : PersistentConnection

    {
        protected override Task OnReceivedAsync(string clientId, string data)
        {
            // Broadcast data to all clients
            data = string.Format("數據是:{0} 時間是:{1}", data, DateTime.Now.ToString());
            return Connection.Broadcast(data);
        }

    }

5.在Index.cshtml頁面中進行調用

View Code

<script type="text/javascript">
    $(function () {
        var connection = $.connection('echo');

        connection.received(function (data) {
            $('#messages').append('<li>' + data + '</li>');
        });

        connection.start();

        $("#broadcast").click(function () {
            connection.send($('#msg').val());
        });
    });

</script>

介面代碼如下:

View Code

@{
    ViewBag.Title = "Home Page";
}
<script type="text/javascript">
    $(function () {
        var connection = $.connection('echo');

        connection.received(function (data) {
            $('#messages').append('<li>' + data + '</li>');
        });

        connection.start();

        $("#broadcast").click(function () {
            connection.send($('#msg').val());
        });
        $("#btnStop").click(function () {
            connection.stop();
        });
    });

</script>
<h2>@ViewBag.Message</h2>
<input type="text" id="msg" />
<input type="button" id="broadcast" value="發送" />
<input type="button" id="btnStop" value="停止" />
<ul id="messages">
</ul>

可以開始,停止。

var connection = $.connection(‘echo’); 取得連接

囘調函數:

connection.received(function (data) {
$(‘#messages’).append(‘<li>’ + data + ‘</li>’);
});
開始連接 : connection.start();

停止連接: connection.stop();

[转载]Kinect for Windows SDK 1.5 的改进及新特性

mikel阅读(1154)

[转载]Kinect for Windows SDK 1.5 的改进及新特性 – yangecnu – 博客园.

昨天晚些时候,微软发布了Kinect for Windows SDK 1.5版本,新版本SDK对1.0版本的进行了较大的改动和更新。本文根据Microsoft Kinect for Windows SDK and Toolkit – v1.5 Release NotesKinect for Windows: SDK and Runtime version 1.5 Released 这两篇文章,并结合自己的安装和体验整理而成。

 

1. SDK 1.5 的下载和安装

 

新版本SDK和1.0版本的SDK完全兼容,如果您之前安装过1.0的,可以直接安装1.5的SDK,如果您之前的开发版本是Beta版的,则需要卸载之 后再安装SDK 1.5版本。在Kinect for Windows SDK 1.0版本中,SDK和示例文件是打包一起安装的。而在SDK1.5中,为了可以分别升级,微软把这两者分开独立为Kinect for Windows SDK和Kinect for Windows Developer Toolkit这两部分,所以需要分别下载安装, Kinect for Windows SDK 1.5及开发工具包Kinect for Windows Developer Toolkit的下载地址为:http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx

安装过程很简单,需要注意的是:

  • 安装前,需要将Kinect从电脑的USB上拔下。
  • 安装前,需要关闭杀毒软件,如360,我之前没有关这个就产生了安装没有权限的错误。

对于安装还有其他问题,您可以参考我之前的一篇文章

 

2. SDK 1.5增加的新功能

 

新版本SDK添加了很多新的功能,方便了开发者开发Kienct应用,这些新功能包括:

 

新增了Kinect Studio工具

Kinect Studio能够帮助开发者记录和播放Kinect数据,这极大地缩短和简化了Kinect应用程序的开发周期。Kinect应用程序开发的调试是比较麻 烦的,因为数据是实时读取的。现在开发者能够记录应用程序获取的Kinect数据,并能够重复播放这些数据,来进行应用程序的测试和改进。

下图中,左上角是Kinect Studio的主界面,使用Kinect Studio时必须附加一个正在运行或者调试的Kinect应用程序,左下角是我运行示例中的面部识别程序。附加好之后,右边有三幅图,就可以显示当前应 用程序接收到的Kinect数据了,右边中间那幅图是彩色影像数据,右上角那幅图是深度影像值数据,右下图是Kinect的视场角。在Kinect Studio主界面中,可以对彩色影像数据或者深度影像数据进行录制和回放。

 

toolsw

 

Human Interface Guidelines

SDK1.5 Developer ToolKit中增加了近70多页的 Human Interface Guidelines(HIG,人机交互界面设计指南),能够帮助开发者为Kinect应用程序的人机交互界面设计提供一些指导。

 

docw

guidew

 

面部识别SDK(face traking SDK)

面部识别SDK提供了实时的3D网格化的面部特征-能够追踪带眉毛的位置,嘴的形状等。在之前的SDK中要较好的实现面部识别必须借助第三方类库如Emgu等,这在SDK入门开发进阶中有所介绍。 在本人机器上实验感觉到SDK 1.5中面部识别很流畅,在SDK 1.0中使用Emgu实现面部识别 比较卡,而且没有提供诸如网格等这么多的细节信息。

 

develop_learn

facedetectw

 

从上图可以看出,在嘴,鼻子和眼睛部分网格很密集,应该是可以判断嘴的大概形状以及眼睛的位置。在Developer Toolkit中,可以看出面部SDK 1.5添加的一些功能是封装在一些dll中的,面部识别SDK封装在 Microsoft.Kinect.Toolkit.FaceTracking.dll中。

 

componetw

 

更多的示例代码及对之前代码的改进

有很多新的例子加入到示例代码库中来,有些例子是对1.0版本的代码进行了改进。这些例子提供了C#,C++和Visual Basic三种版本。

 

samplew

 

图中实例图片右上角标有new的表示SDK 1.5中新增加的示例,Update表示对SDK 1.0中的示例进行了改写。

 

SDK文档的改进

SDK文档中增加了1.5版本中新的函数功能及特性,同时整合到了MSDN中并实时更新。

 

3. SDK 1.5骨骼追踪功能的改进

 

新增了坐姿骨骼追踪(Seated Skeletal Tracking

坐姿模式追踪头部/肩膀/手臂10个关节点的骨骼信息,忽略腿部和髋关节信息。坐姿模式并不限定只有在坐立姿势下才能使用。在用户站立的时候,也能追踪到 头部/肩膀/手臂信息。这使得我们能够创建一些针对用户处于坐立姿势下的应用进行优化的场景,比如用户在办公司工作,或者和3D数据进行交互。或者是在一 些站立姿势下,身体的下半部分可能超出了Kinect传感器的视野,例如在和室外的广告亭进行交互或者是手术室中医生浏览核磁共振图像这样的场景。

近景模式中支持骨骼追踪

近景模式中支持骨骼追踪,包括默认的20点模式和10点坐姿模式。这使得开发者可以开发一些近距离进行骨骼追踪的项目,比如用户坐在坐姿前面,或者一些需要近距离进行显示交互的应用。

 

4. SDK 1.5性能和数据质量的改进

 

SDK1.5对1.0中性能和数据质量进行了增强,提高了使用RGB彩色影像和将深度影像和彩色影像进行叠加显示的性能(这使得“绿屏抠像”技术很容易实现,在SDK 1.0下实现绿屏抠像技术在Kinect开发入门五 这篇文章中最后部分有所介绍)。SDK1.5 对性能和数据质量的相关改进如下:

  • 将深度影像数据帧中的点数据投影到彩色影像数据帧中对应点的位 置,KinectSensor.MapDepthFrameToColorFrame,这一函数功能的性能显著提升,较之前版本提升了5倍。 MapDepthFrameToColorFrame函数是将追踪到的关节点数据转换到用户界面上必须用到和频繁使用的函数。
  • 深度影像帧数据和彩色影像帧数据能够彼此之间保持同步。Kinect for Windows 运行时会持续监控深度和彩色影像帧数据,来纠正两者之间的偏差来使其保持同步。
  • RGB 图像质量在RGB 640×480 @30fps 和 YUV 640×480 @15fps video 这两种模式下有所提升,图像质量更加锐利,在高光和低光条件下图像质量精度提高。

在之前的文章中 实现的“绿屏抠像”中,为了将人物抠出来,必须查找景深数据中没有游戏者索引位的数据,并逐点调用MapDepthToColorImagePoint函 数将这些数据点映射到彩色影像中,并需要手动进行景深数据和彩色影像数据的的同步。因为SDK 1.5对这两点进行了重要改进,所以和之前的相比运行非常流畅。下图是运行Kinect Developer ToolKit中GreenScreen-WPF示例的截图,笔记本运行起来很流畅。

 

greenScreenw

 

5. SDK 1.5 对人物角色在运动场景下提供的新功能

 

新的功能使得在开发基于Kienct的应用程序来控制3D角色时更加方便,如Kinect运动大会(Kinect Sports)游戏,新添加的功能有:

  • Kinect for Windows 运行时在追踪到的骨骼信息中增加了了关节点朝向(Joint Orientation)信息。
  • 关节点朝向信息以两种形式提供:基于某一个在骨骼追踪关节点中定义的骨骼关系的层级旋转方式( A Hierarchical Rotation based on a bone relationship defined on the Skeletal Tracking joint structure),以及基于Kinect摄像头坐标系统中的绝对偏转角度信息( Absolute Orientation in Kinect camera coordinates)。

4682.Hand%20gestures_May2012

 

6. 增加了4种语音识别支持的语言

 

语音识别支持种类增加了四种语言,他们是法语,西班牙语,意大利语和日语。另外还提供了新的语言包以支持不同区域语言的识别,他们是 English/Great Britain, English/Ireland, English/Australia, English/New Zealand, English/Canada, French/France, French/Canada, Italian/Italy, Japanese/Japan, Spanish/Spain, and Spanish/Mexico.

可惜的是,仍不支持汉语的识别。

 

7. 结语

 

本文简要介绍了Kinect for Windows SDK 1.5版本的新功能及特性,这些新功能和特性使得我们开发出更好的Kienct应用程序变得更加容易。希望以上文章对您了解新版本的SDK有所帮助!

作者: yangecnuyangecnu’s Blog on 博客园
出处:http://www.cnblogs.com/yangecnu/
作品yangecnu 创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请 给我留言

[转载]eclipse中安装ADT插件的最简单的方法

mikel阅读(940)

[转载]eclipse中安装ADT插件的最简单的方法 – Mavs – 博客园.

大家在eclipse上安装开发手机应用的插件ADT, 都选择的是help-> install new software 来进行安装,但是这种方法,需要联网跟新,在没有网络的情况下或者是网络很慢的情况下,都会安装失败。这里给大家介绍一种简单的安装方法,不需要联网。

1,首先在eclipse的安装目录中,建一个links文件夹,如图1所示:

2, 然后在硬盘上建一个文件夹,名称可以随意,然后在该文件夹中,建立一个以eclipse命名的文件夹,然后将下载好的ADT解压缩,将里面的 features和plugins文件夹拷贝到前面建立的eclipse文件夹中。如图所示:在D盘根目录下建立ADT_plug文件夹,在 ADT_plug文件夹下建立了eclipse文件夹

3,然后再links文件夹下建立个后缀名为.link的文件,使用工具打开,在其中加上刚才建立的ADT_plug的路径,如path=D:\\ADT_Plug

[转载]Android客户端与PC服务器实现Socket通信(wifi)

mikel阅读(1051)

[转载]Android客户端与PC服务器实现Socket通信(wifi) – 精神邋遢的民工 – 博客园.

本文介绍Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使 用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI 连接和PC处于同一局域网。

1. PC服务器启用ServerSocket

两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。

使用ServerSocket对象监听来自客户端的Socket连接

//创建ServerSocket对象
ServerSocket ss = new ServerSocket(30000);
//监听来自客户端的请求
while(true){
Socket s = ss.accept();
…
}

如果没有连接,则将一直处于等待状态。

当接收到连接请求后,获取消息到输入流,并保存到文件。

//接收客户端消息
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String str;

BufferedWriter bw = new BufferedWriter(new FileWriter("D:/ApInfo"+ (i++) +".txt"));
while ((str = in.readLine()) != null) {
System.out.println(str);
bw.write(str);
bw.newLine();
}

2. Android终端使用Socket通信

客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。

Socket s = new Socket(“192.168.1.100”, 30000);

这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。

详细步骤

采用Handler和TimerTask来定时扫描AP信息并发送给服务器端。

TimerTask规定了到达指定的时间所要进行的任务。

TimerTask task = new TimerTask(){

public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}

};

handler传递message内容:

Handler handler = new Handler(){

public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
// 执行定时器时间到了之后由handler传递的任务
break;
}
super.handleMessage(msg);
}

};

因为需要持续执行扫描任务,所以启用新线程执行定时任务

//启动单独线程定时向服务器发送AP信息
new Thread(){

@Override
public void run() {
// TODO Auto-generated method stub
timer.schedule(task, 2000,10000); //在2秒后每10秒执行一次定时器中的方法
}

}.start();

由WifiManager说明可知,它可以用于处理已配置的网络,当前连接的网络及AP信息的扫描等情况。

This class provides the primary API for managing all aspects of Wi-Fi connectivity. Get an instance of this class by calling Context.getSystemService(Context.WIFI_SERVICE). It deals with several categories of items:

  • The list of configured networks. The list can be viewed and updated, and attributes of individual entries can be modified.
  • The currently active Wi-Fi network, if any. Connectivity can be established or torn down, and dynamic information about the state of the network can be queried.
  • Results of access point scans, containing enough information to make decisions about what access point to connect to.
  • It defines the names of various Intent actions that are broadcast upon any sort of change in Wi-Fi state.

向服务器发送消息:

socket = new Socket("192.168.1.211",30000);
//向服务器端发送消息
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);        
out.println(message);

其中message为获取的AP信息

测试收到的信息格式为:

SSID: ICIS_LAB, BSSID: 1c:af:f7:9a:65:e4, capabilities: [WPA-PSK-TKIP+CCMP], level: -80, frequency: 2437

[转载]快速入门:github发布windows版

mikel阅读(1194)

[转载]快速入门:github发布windows版 – 掷鸡蛋者 – 博客园.

现在最流行的源码托管网站应该是github,github带SNS功能,大概已经超越了老牌的sourceforge, google托管等。

但是在使用过程中,github的一堆配置,有些麻烦,比如:http://www.wojilu.com/Forum1/Topic/2266 有相关配置的教程。
昨天,github发布了 windows 下的管理工具,我试用了一下,非常简单、直观、易操作。效果也很炫(完全的 metro UI 风格)。推荐大家体验一下。
官方就这个工具发布的说明:https://github.com/blog/1127-github-for-windows
下载之后,安装:

安装之后,桌面的快捷方式

程序菜单中的快捷方式

用你在github上的帐号登录

然后将源码库clone到本地

可以通过下面的 open in explorer打开源码所在文件夹。

也可以通过 open a shell here 打开git的命令行窗口(默认只支持命令行,当然你可以安装可视化工具,比如git extensiton之类的)

下面是命令行操作窗口

【创建源码库】你也可以在本地创建一个源码库

【代码提交】接下来,在源码文件夹试着写一些代码,或者直接提交:

【同步到github】

提交之后,点击下图的“sync”就可以同步到github上。也可以不马上同步,多个提交之后再publish。
(这个工具将git本身的pull/push简化为一个同步命令,更加易用)

【分支管理】点击下图 master左侧的分支图标,出现分支管理界面,可以创建分支等。

【恢复到某个旧版本】

先定位到某个提交,然后点击下图的 “rall back to this commit” 即可恢复到此版本

【删除某个提交的内容】

如上图,点击 “revert commit” 即可将此提交内容删除掉(通过创建一个新的提交来删除内容) 

总之,这个工具极大的简化了 github 本身的操作,比如clone,创建,帐号管理等等。
同时,也极大的简化了git的操作,完美支持中文(中文文件必须用utf8保存)和中文目录。
 
【动手,测试一个开源项目】
你可以在github上fork “我记录网站综合系统”来测试,这个源码集成了“SNS/门户CMS/论坛/博客/相册/微博/wiki”等应用程序,在github上的源码网址是:https://github.com/wojilu/wojilu ,然后点击项目右上角的“Fork”命令

这个命令会在你的账号下创建一个 wojilu 项目的复制品,一个wojilu的派生库,并且显示它是“forked from wojilu/wojilu”

——————————————————-
 
另外,其他类型的git可视化操作工具,最近都有更新,比如 msysGit 也发布了 1.7.10 ,msysGit 正式支持 unicode,同时 TortoiseGit 也发布了1.7.9,完全支持UTF8,也就是支持中文。
 
 
可以说,在 windows 平台下,无论是 git工具,还是 github工具,都已经很完善了。

[转载]开源网络文件管理工具SmarkNetDisk

mikel阅读(824)

[转载]开源网络文件管理工具SmarkNetDisk – smark – 博客园.

    Smark.NetDisk是一款基于Silverlight 和.net实再的网络文件管理工具,其主要目的是通过浏览器管理不同服务器的文件信息。Smark.NetDisk由两部分应用程序组成,服务端用.net实现主要功能是用户管理和用户空间分配并提供相关tcp服务;而客户端则通过Silverlight实现通过用户名登陆到不同的服务端进行文件管理。

服务端功能

服务端主要功能是根据需要创建用户,并指定用户具备的权限和分配对应的磁盘空间。

项目代码结构:

客户端功能

客户端则提供比较丰富的功能:

    支持目录创建

    文件复制,删除,剪切和粘贴

    支持在线解压和压缩文件

    支持同时上专和下载文件,在不关闭浏览器的情况下支持继传

项目代码结构:

演示地址:http://disk.henryfan.net/

下载完整项目代码:http://beetlesl.codeplex.com/

专注于可靠、高性能的Socket TCP通讯组件

[转载]ASP.NET MVC+LINQToSQL的Repository模式系列

mikel阅读(916)

[转载]MVC+LINQToSQL的Repository模式系列~目录 – Lose.zhang – 博客园.

本系列将带您一步一步开发一个.net MVC,底层用linq to SQL作为ORM的WEB应用程序,主要讲的不是开发细节,而是整体的架构方案,事实上,大部分项目架构的方式都是类似的,主要都是为业务层提供一个稳定 的,可扩展的数据层,本系列主要是讲如何去设计一个基于数据仓库的Repository数据操作模型.

第一回 MVC+LINQToSQL的Repository模式之(一)数据工厂

第二回 MVC+LINQToSQL的Repository模式之(二)数据基类

第三回 MVC+LINQToSQL的Repository模式之(三)Repository模式实现统一CURD操作,实现EF中的Find主键查找

第四回 MVC+LINQToSQL的Repository模式之(四)数据统一更新的附加类

第五回 MVC+LINQToSQL的Repository模式之(五)BLL层实现IOC