10
7

Miguel de Icaza已成立了一个新的独立公司Xamarin,给Mono一个继续奋斗的机会。

最近的消息称Attachmate公司对Mono框架不再感兴趣,这个消息已经北证实。Mono都创始人Miguel de Icaza终于打破了长久的沉默,透露他已经成立了Xamarin公司来继续支持Mono项目。

Mono团队被Attachmate公司解雇,使Miguel de Icaza非常难过:

一年以来我们一直都想把mono从Novell分离出来,大家一直认为独立成立一个公司将给Mono能带来更光明都未来。

长话短说,分离 Mono都计划没被执行,反而在5月2日加拿大和美国都团队被遣散了,几天后欧洲、巴西和日本团队也不能幸免.这包括MonoTouch和 MonoDroid工程师以及其他主要Mono开发人员。虽然Attachmate公司解散了我们,但只要我们在Novell都一天我们会继续给我们都用 户提供技术支持。

Mono项目有良好的前景,它为Linux以及IOS和Andriod提供C#以及框架支持。然而所有的实现都不是完善的。所以对开发人员都又局限 性。你不能简单快速的把.NET程序移植到Mono,因为缺失相应都框架类以及其它实现,尤其是WPF。同样的,如果使用Mono为iOS或 Andriod写个应用需要学习很多知识,它和在Windows Phone 7建立应用程序的关系不大。
还有在Mono中使用都微软的专利和知识产权问题,微软声称将来可能由于专利和知识产权而导致使用Mono的产生一系列的问题,现在不会对Mono有动作,但将来不见得。很多使用Mono做项目的开源支持者都视之为是个不定时炸-弹。

除了Mono和Moonlight,Xamarin还计划商业产品,既定目标是:

为iOS建立一个新都商业.NET;

为Andriod建立一个新都商业.NET;

继续为Mono和Moonlight贡献和开发;

为Moonlight在移动领域以及苹果Appstore寻求机会;

这两个商业项目需要更多都开发来为潜在的用户提供服务,需要更认真的工作。而且在移动领域以及苹果Appsotre来探索Moonlight的发展 也是件非常有趣的事情。Silerlight并没有成为微软声称的伟大的跨平台的统一者,目前来看貌似微软已经对其失去了兴趣。如果Mono能成为跨平台 的浏览器插件,可能会进一步触发微软的不定时炸-弹爆炸。这当然也不会被苹果所接受,因为这无疑是另一个Flash。

当然一切都归结于资金,如果又足够的资金这个项目或许会有所成就,博客声称已经得到一些资金,而且还有在合同期的工程师们。这听起来比较危险,他们没有足够都资金,只能寄希望于一些勇敢都基金了。

目前看来,Mono的用户都非常支持Miguel de Icaza和他的新公司。在他的博客评论中很多个人表示想投资,但前提是如果自己有钱。但这并不能对这事起到真正都改善作用。关键是.NET社区的反应以及微软的回应。

如果你想帮助Mono,可用访问Xamarin的网站:Xamarin website

21
5

Js实现Cookie操作,JavaScript的Cookie操作,源代码
在JavaScript中如何实现Cookie操作呢,下面给出源代码实现:

function SetCookie(name,value,days)
{
if(days == null) days = 30;
var exp = new Date;
exp.setTime(exp.getTime() + days*24*60*60*1000);
document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString() + "; path=/";
}
function GetCookie(name)
{
var arr = document.cookie.match(new RegExp("(^ )"+name+"=([^;]*)(;$)"));
if(arr != null) return unescape(arr[2]); return null;
}
21
5

这两天要做一个JavaScript的弹出层效果,就是鼠标移动上面的时候弹出一个效果层,移开的时候就消失,网上搜索了一下,得到下面的一段实现代码:
1、JavaScript部分

function $(){return document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);}
var OverH,OverW,ChangeDesc,ChangeH=50,ChangeW=50;
function OpenDiv(_Dw,_Dh,_Desc) {
$("BigBearLoading").innerHTML="";
OverH=_Dh;OverW=_Dw;ChangeDesc=_Desc;
$("BigBearLoading").style.display='';
if(_Dw>_Dh){ChangeH=Math.ceil((_Dh-10)/((_Dw-10)/50))}else if(_Dw<_dh){changew=math.ceil((_dw-10)/((_dh-10)/50))} top="(document.documentElement.clientHeight-10)/2+" left="(document.documentElement.clientWidth-10)/2+" nw="10,Nh=">OverW-ChangeW)ChangeW=2;
if (Nh>OverH-ChangeH)ChangeH=2;
Nw=Nw+ChangeW;Nh=Nh+ChangeH;
if(OverW>NwOverH>Nh) {
if(OverW>Nw) {
$("BigBearLoading").style.width=Nw+"px";
$("BigBearLoading").style.left=(document.documentElement.clientWidth-Nw)/2+"px";
}
if(OverH>Nh) {
$("BigBearLoading").style.height=Nh+"px";
$("BigBearLoading").style.top=(document.documentElement.clientHeight-Nh)/2+"px"
}
window.setTimeout("OpenNow()",10)
}else{
Nw=10;Nh=10;ChangeH=50;ChangeW=50;
$("BigBearLoading").innerHTML=ChangeDesc;
}
}
function CloseDiv()
{
$("BigBearLoading").style.display="none";
}

2、css部分

body {margin:0px}
#BigBearLoading {position:absolute;z-index:10;left:10px;top:10px;border:1px #666666 solid;background:#eeeeee;width:10px;height:10px}

3、div部分
创建一个span,包含下面的内容:
onmouseover="javascript:OpenDiv(500,300,'有时间请经常来看看大熊工作室噢')" onmouseout="javascript:CloseDiv()" 请用鼠标移动到这里
创建一个div,设置为:
id="BigBearLoading" ondblclick="this.style.display='none'" style="DISPLAY: none"

21
5

面向对象必知:深入理解对象

0
归档:2011年5月分类:架构之路

上一节讲到了类,这次讲对象。一个类可以创建对象,对象可以操作类里面的方法,也可以操作类从父类继承的合法方法,还可以操作其他类的共用方法。
在程序设计(这里都以C#语言为准)中的对象和人类世界中的是类似的,人类世界中每一个人都是一个对象,一个人有自己的姓名、身高等属性,一个人可以做很多事情,也受到很多约束;而程序设计里的对象就是模拟了人类世界的对象,一个对象必须要创建,这个对象在创建之时就确定了它的属性,这个对象可以有很多方法,这个对象受到访问权限的约束。
人类生活在人类社会这个时间里,而对象生存在.NET中的CLR环境;人类在社会里受到法律、风俗等约束,对象在CLR里也同样有着自己的一套约定,比如类型、语法等。
对象最为重要的是:有自己的属性(有如一个人的属性)、有自己可以访问的方法(有如一个人可以做的事情)、访问权限(有如一个人做什么事情受到的权限限制)。

21
5

设置Session永不过期,Session不过期

0
归档:2011年5月分类:C#和.NET

很多时候为了需要,必须使用Session,但是Session过期问题一直困扰很多人,我也是。通过网上的搜索,发现了可以通过两种方式了设置,但是只有一个可以永不过期。
保持Session的方法:
(1)、设Session.timeout=-1,或小于0的数。这种方法肯定是不行的,session计算时间以分钟为单位,必须是大于等于1的整数。
(2)、设Session.timeout=99999。这种同样不行,Session有最大时间限制。
其实,Session最大值为24小时,也就是说你最大可以Session.timeout=1440,1441都是不可以有。
所以想通过设Session.timeout的过期时间让Session永不过期是不可能的。写到Cookies里是比较好的方法,但是Cookie非常的危险,如果在外面的电脑很容易被别人劫持,不安全!
那么有没有一种方法可以保持Session呢,可以使用一种办法,就是在要保持session的页里设隐藏iframe
这个Iframe每隔一段时间刷新一次这个Iframe页面就可以了。

21
5

在开发过程中,常常遇到这样的问题:文件,包括图片和文件上传到服务器,而Web服务器和文件服务器不是同一个,而且不在同一个域里面,那么针对于.NET应该如何处理这样的问题呢?
可能很多高手一下子就知道如何解决,但是我确实是经过了一番努力才弄明白,下面就结束如何使用.NET的Windows模拟身份验证。
1、首先引用两个名称空间

using System.Security.Principal;
using System.Runtime.InteropServices;

2、其次定义好模拟权限的调用方法

region 权限模拟

public const int LOGON32_LOGON_INTERACTIVE = 2;
public const int LOGON32_PROVIDER_DEFAULT = 0;
[DllImport("advapi32.dll", CharSet = CharSet.Auto)]
public static extern int LogonUser(String lpszUserName, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
[DllImport("advapi32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]
public static extern int DuplicateToken(IntPtr hToken, int impersonationLevel, ref IntPtr hNewToken);<summary>/// 验证用户,并生成WindowsIdentity 实例
</summary>private static WindowsIdentity GetIdentity(String userName, String domain, String password)
{
IntPtr token = IntPtr.Zero;
IntPtr tokenDuplicate = IntPtr.Zero;
if (LogonUser(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref token) == 0)
return null;
else if (DuplicateToken(token, 2, ref tokenDuplicate) == 0)
return null;
else
return new WindowsIdentity(tokenDuplicate);
}
public WindowsImpersonationContext GetContext()
{
WindowsIdentity identity = null;
WindowsImpersonationContext impersonationContext = null;
identity = string.IsNullOrEmpty(user) ? null : GetIdentity(user, null, pwd);
// 使用用户凭证进行用户模拟
impersonationContext = (identity == null) ? null : identity.Impersonate();
return impersonationContext;
}
#endregion

3、在调用身份模拟的函数中使用

WindowsImpersonationContext impersonationContext = Instance.GetContext("identityValues");
//中间是处理函数
// 取消用户模拟
if (impersonationContext != null)
{
impersonationContext.Undo();
impersonationContext = null;
}
Page1of1

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。