WEBAPI上传文件,读取 MIME 多节正文部分时出错。

                var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync();


//默认只能接收4096KB的文件,超过这个大小的文件时便会报以下错误。

//Error reading MIME multipart body part


解决方案:

web.config:

<system.web>
   <!--允许请求长度,设置未1GB内容-->
   <httpRuntime targetFramework="4.5.1" maxRequestLength="1073741824" />
</system.web>

了解更多

电商之订单拆单总结

拆单产生的原因:

用户在平台上下了一单。但因商品由不同商家或不同仓库分别寄给用户,产生了多张物流单和不同的到货时间。而到货时间,又与申请换货有关。整个业务逻辑耦合程度很高。为了解耦,各大电商平台便纷纷拆单。保证每张订单的商品都会一次寄送,同时到达。

各家的做法:

目前电商主要分为平台型和自营型,各自的拆单机制略有不同。

拆单带来的另一个大问题,原订单的信息要与新拆单的信息保持一致。其中一个非常头疼的问题,便是支付问题。如有用户在订单中使用了优惠卷,如何将优惠卷信息,顺利均分。

平台型以天猫举例,天猫的拆单是按照店家的纬度进行拆单。假如用户使用了天猫自身的优惠卷或者积分。那么对于天猫后台来说,天猫与店家进行结算时,优惠卷如何处理;店家与用户开具发票时,优惠卷又如何处理。这些问题很麻烦,但也是平台型不得不解决的问题。

方案1:平台与店家结算时,以现金的形式支付优惠卷金额;店家与用户结算发票时将优惠卷金额也开具给用户。这样的流程比较简单,操作起来也比较方便。

方案2:平台与店家结算时,以现金的形式支付优惠卷金额。店家与用户结算发票时,优惠卷金额不结算,店家再与平台结算一次发票金额。

方案3:平台与店家结算时,已现金的形式支付优惠卷金额;同时平台与店家结算发票。然后平台与用户进行结算和开具发票。这样将所有的业务逻辑收归到平台,对于平台的财务统计等比较方便。由此产生的退货牵扯的发票问题,解决起来也比较容易。

自营型的拆单相对来说就比较简单了。以京东为例:京东物流查询等,都是以发货仓库的维度进行的。当用户下单需要从多个仓库发货,就会自动拆单,将原订单自动拆单位两个新的订单,这三个订单对用户来说都可见,所以看起来怪怪的。

作者:xunzou 链接:http://www.jianshu.com/p/d5e1976f4144 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

了解更多

MVC 中Html.TextBoxFor 如何实现 data-options属性与值格式化

Html.TextBoxFor(model => model.AreaName, new {@class="header", @data_options = "multiline:true", @data_date_format="yyyy/mm/dd"})

关键在于把 @data-options 写成 @data_options

@Html.TextBoxFor(model => model.StartDate, new { Value = String.Format("{0:yyyy-MM-dd}", Model.StartDate)})
@Html.TextBoxFor(model => model.StartDate,"{0:yyyy-MM-dd}", new { @class = "m-wrap small", @readonly = "true" })
@Html.TextBoxFor(model => model.StartDate, new { Value = Model.StartDate.ToString("yyyy-MM-dd")})
上面三种写法均正确,这里需要注意两点:
1、强制更改控件value属性,注意这个Value不能小写;
2、注意Model是System.Web.Mvc.WebViewPage<TModel>的属性,区别于Lamda表达式中model。
Model的定义public TModel Model { get; }
WebViewPage<TModel>继承自WebViewPage;
3、ModelState.Clear();清空model中的值,ModelState.Remove("XXX");清空某一个值。

举例:
<span>操作时间:</span>
           从 @Html.TextBoxFor(model => model.Query.BeginTime, new { Value = Model.Query.BeginTime.ToString("yyyy-MM-dd"), @class = "Wdate", onClick = "WdatePicker({dateFmt:'yyyy-MM-dd'});", style = "width:100px;" })
           到 @Html.TextBoxFor(model => model.Query.EndTime, new { Value = Model.Query.EndTime.ToString("yyyy-MM-dd"), @class = "Wdate", onClick = "WdatePicker({dateFmt:'yyyy-MM-dd'});", style = "width:100px;" })

了解更多

关于微信公众号的15个小技巧

很多人现在都有自己的微信公众号了,有的是在兼职运营着,有的是在全职运营着。如果你现在还没有注册微信公众号,那么恭喜你,当你看完关于微信公众号的15个小技巧的时候,你会庆幸自己还好没有太早注册。

1.关于微信号

注册微信公众号的时候,大部分人都是按照公众号的全拼来写或者缩写来确定微信号的。实际上,用小写字面a+QQ的方式更容易让读者辨识,而且推广微信公众号的时候,还可以为你带来一些QQ好友。比如像我的微信公众号就是:南思特

2. 关于微信公众号的昵称

如果你打算做垂直领域的公众号,在昵称里面是可以加入一些关键词的,比如你想做SEO方面的公众号,你的昵称可以写成:南思特。如果你的公众号认证的话,别人搜索SEO关键词的时候,你的排名是占有一定的优势的,好处就是,可以自然的靠搜索来涨点粉。

3.关于公众号的功能介绍

做好介绍的内容是关于分享型的,而不是让别人一看到你的公众号简介,就知道你是一个营销型的公众号,是想卖东西的。假如我是一个卖化妆品的,不必在公众号上写上销售某某品牌的化妆品,写上每天分享化妆知识,会更容易让关注者接受。

4.关于微信公众号的自动回复

在别人关注你的时候,可以设置一段文字告诉关注者如何联系你,回复什么关键词可以得到什么东西。比如我的公众号你关注我以后,我会告诉你,回复好友两个字,能得到微信好友查询软件,可以查询微信好友谁把你给删除了。

5.关于文章推送时间

早上6点半到7点半之间,这是一个阅读的高峰期,晚上9点到11点。这也是一个阅读的高峰期。这个数据可以从微信公众平台后台图文统计里面,有一个小时报,可以分析出来。

所以,在选择文章推送的时候,可以选择在这个两个时间段。

6.关于文章推送的量

前期粉丝基础低的时候,一天两篇文章就足够了。等你粉丝达到一定的量的时候,可以选择4篇。你可以试想一下,一个人阅读完四篇文章需要花费多少时间呢?而且大部分的人都不止关注了一个公众号。

之所以推四篇,大家也都是选择性的阅读,有的可能只是打开标题,然后扫了两下内容,就给关闭了。所以,文章的量一天推送四篇就已经足够。

 

7.关于文章的标题

微信公众号推送的文章,因为不能被搜索引擎收录,所以,如果想让打开率提高,这就需要在标题上下功夫了,能标题党的话还是选择标题党吧,你会发现,标题党的阅读量总是那么喜人,特别是搞笑娱乐类的。

同时,一般推送的文章标题小于14个字的话,在到达关注者的手机上,是可以完全显示标题的。标题字数一旦超过,显示就是......

8.关于推送文章的字体

一般我都是用14号字体,在手机端文字字体比较小的话,看起来特别费眼睛的。如果关注的人群年龄偏老龄化的话,那么,16号字体是一个不错的选择。

9.关于文章的排版

在对文章进行排版的时候,可以在网上搜索一下关键词微信编辑器,只需要花费十几分钟的时间,一个清新自然的版面就完成了。这里推荐两个比较好用的微信编辑器,秀米和135微信编辑器。

10.关于公众号后台消息回复

在微信公众平台后台的消息一定要及时回复,就算当时不能及时回复,也要给对方发个消息留个QQ号或者微信什么的。要知道48个小时以后,对方的消息你就不能再回复了。

有的时候,你想再次和对方沟通,却发现,后台已经无法互动发送消息了,更可气的是,你还不知道对方的联系方式。

11.关于微信公众号的阅读原文

微信公众号里面唯一可以加外部链接的就是阅读原文了。所以,如果你想把用户引导到其他页面,那么阅读原文是必须要利用起来。而且最好在文章底部用文字引导一下,比如,点击左下角的阅读原文,你就可以看到什么或者得到什么。

12.关于多图文推送的缩略图

其实,在推送多图文的时候,比如放四篇文章,多图文的缩略图是可以用四个字做一个广告的。比如你可以推一个某产品品牌。四篇文章的四张缩略图,一张缩略图可以写一个字。像中国移动,四个字拆分变成缩略图。

是不是感觉比较有创意?

13.关于微信公众号的二维码

从微信公众平台里面的数据分析可以看出,通过扫描微信二维码关注的,要远远大于其他途径。所以,在你文章的底部,记得放一个你的二维码的图片。

特别是现在,微信可以长按图片就能识别图片中的二维码了。这样关注二维码就显得方便多了。

同时,如果你的微信公众号没有开通原创功能但是你想让别人打赏怎么办呢?

把微信升级到最新版本,点击右上角的+号,有一个收钱的功能。你可以设置一个小额收钱。把生成的二维码放在你文章的底部就可以接受别人的"赞赏"了。

14.拥有微信公众号的同时,你还得拥有一个私人号

在你运营微信公众号的时候,记得同时申请一个私人号,因为微信公众号的文章阅读量,大部分都是从朋友圈里面获取的。同时,在微信私人号里面沟通,要远远比在微信公众号后台沟通方便的多。

15. 关于微信公众平台的互动

像很多做微信公众号的,都已经开通了评论功能了。如果你写的文章是比较严肃类型的。像我这种科技类的,一般文风都比较严肃。那么如何和别人粉丝互动呢?

可以利用微信公众平台里面的投票功能,把你想要粉丝回答的问题做成投票的形式,然后可以邀请粉丝投票,同时也可以参与评论互动。

或者可以在每篇文章后面加一个互动话题,这样,关注你的粉丝就不会显得无话可说了。

结尾:

今天就先给大家分享这15个微信公众号的小技巧,如果您在运营微信公众号的时候,有一些小技巧以及经验要分享的话,可以在文章下面进行评论。

了解更多

提高Alexa排名的20种方法小结

Alexa.com是Amazon.com的一个子公司,是一个提供网站流量水平信息的网站。Alexa的排名是通过Alexa的工具条来衡量访问网站的用户数量的。

这篇文章将研究Alexa的排名的重要性,涉及到网站的货币化,同时简要地讨论一下,将Alexa排名作为任何网站的流量测量所存在的一些弱点。

最后,文章还列出了20种方法和策略,让您能够不管是在短期还是长期之内显著提高Alexa排名。

一、什么是Alexa排名

简而言之,Alexa的排名就是一个排名系统,其排名的模式是以每个网站的流量水平为基础的,这些网站安装了Alexa的工具条,用来统计访问网站的人数。

Alexa的流量排名定义:流量排名是以三个月内数百万个安装了Alexa工具栏的用户的流量数据汇总为基础的,也是页面浏览次数和用户数的综合测量方式。所以,一个网站的排名既反映了访问网站的用户数量,也反映出了这些用户浏览网站的页面数。

二、为什么要提高Alexa排名呢?

网站管理员、广告商和广告网络都是将你的博客Alexa排名作为一个度尺,用来衡量你的网站上的链接的价值。如果你将销售链接或网站作为一种货币化形式的话,那你肯定要提高你的Alexa排名,因为当涉及到广告定价时,它会增加你的议价能力。

ReviewMe、Text Link Ads和Sponsored Reviews这三个网络就是根据你的Alexa排名来确定你的广告销售能力的。

三、Alexa排名存在的一些问题

Alexa排名是主要偏向那些拥有大量的网站管理员或高科技观众的网站。这是因为网站管理员或精明的网站观众更可能安装Alexa工具条,不像有些访客根本就不知道什么是Alexa。

因此,许多人表示,将Alexa作为衡量一个网站的到达率、流量和潜力的标准是不准确的,这也是有一定的道理的。但仍然有大量的网站管理员和广告网络使用Alexa来测量网站的广告价值。

Alexa的排名系统确实存在一些缺陷,但Alexa排名已经成为网站的货币化策略的核心要素。

四、如何开展Alexa?

有两种简单的方法可以让你开始使用Alexa:如果你使用的是Internet Explorer,那就登陆Alexa的官方网,下载Alexa的工具栏;如果你使用的是Firefox的话,那就下载SearchStatus控件,它能显示出Alexa排名、Google页面等级和其他一些有用的特性。

这里我们建议使用Firefox和SearchStatus,因为它们更灵活更有用。

我们能真正地操纵Alexa排名吗?

相信能有一些方法让你轻松地将数百万的Alexa排名升到100,000以内的水平,然而,想要升到10,000或1000的话,就需要一个相当艰难的过程了,因为网站之间的竞争是很激烈的。

下面将会介绍一些小技巧,想要知道它们是否有用,最好的办法就是尝试一下它们,然后监控尝试结果。

 五、提高Alexa排名的20种方法

这里有一系列方法可以用来提高你的Alexa的排名。它们大多是源于一些网站管理员提升Alexa的排名的亲身经验,有一些是总结了别人的文章的观点。

这些技巧会有用么?有些是确实能起到一定作用的,但大多数是需要积极的实践的,只要你不断地投入一些实际性的行动,总会起到作用的。

想要提高你的Alexa排名的话,我们建议将重点放在开发高质量的内容,用来吸引并维持大量的观众,而不要单纯地仅仅是提高Alexa排名就行了。

大量有价值的链接内容将会让你的网站访问量自然增长,这也是增加你的Alexa的排名的一个好方法。

还要强调的一点是,你应该将你的大多数精力投入在增加网站观众上,同时综合一下下面提到的方法。

1、为Firefox的SearchStatus安装Alexa工具栏,并将你的博客设置为你的主页。这是最基本的一个步骤。

2、在网站上贴出Alexa的排名控件。只要短短几天,就能收到相当数量的点击次数。即使访客不使用工具栏,也能将每次点击都记录下来。

3、鼓励其他人也使用Alexa工具栏。这些人包括朋友、网站管理员同行、网站访客和博客读者。一定要设置链接,链接到Alexa的工具栏的详解和追踪系统页面,这样你的读者就会知道为什么需要安装工具栏或插件了。

4、不管是在办公室工作还是拥有自己的公司,在所有的计算机上安装Alexa工具条或SS Firefox插件,并将你的网站设置为所有的浏览器主页。需要注意的是,这可能只有在使用动态的或不同的IP时才会有作用。

5、让朋友们对你的Alexa网站写评论并评级。虽然可能并不会对你的排名产生太大的影响,但多多少少都是有帮助的。

6、撰写关于Alexa的文章或博文。网站管理员和博主喜欢听到能提升他们Alexa排名的方法,他们会链接到你,并给你带去一定流量的(比如安装了工具栏的访客)。这个方法会逐渐地对你的Alexa排名产生作用的。

7、在网站管理论坛里宣扬你的网址。网站管理员通常都安装工具栏的,这样你就能让管理员访问你的网站,然后你就提供有用的反馈。如果你有一些有用的文章想要和大家分享的话,这也是回馈社会的一个很好的方式。

8、撰写和网站管理相关的内容。这可以分为域名和SEO两块,多数网站管理员在这两个领域上安装Alexa工具条。在社交网站和网站管理论坛上宣传你的内容。

9、利用Alexa重定向你的网址。http://redirect.alexa.com/redirect? www.nanjingb2c.com举个例子,将nanjingb2c.com换成你的网址,在博客评论和论坛签名里都附上这个重新定向的网址。这种重定向每天对单独的IP地址只记录一次, 所以点击再多次都是没用的。目前还没有证据可以证明重定向对你的Alexa排名有很大的作用,所以要谨慎使用。

10、在亚洲社交网站或论坛上发帖。一些网站管理员称,根据Alexa排名前500的几个亚洲网站来判断,东亚网络用户大多都是Alexa工具条粉丝。我们建议,如果你有时间或能力的话,你可以尝试这样做。

 11、在网站上创建一个网站管理工具版块。这对网站管理员来说就是一块磁铁,他们会经常回访你的网站以获得的工具的使用权的。亚伦华尔街(Aaron Wall)网页上的SEO工具就是一个很好的例子。

12、发布热门信息。这往往会带来大量的访客人去访问你的网站,将会对你的Alexa排名产生积极的影响。当然,你需要开发有价值的材料的链接。

13、使用点击付费广告。在搜索引擎上(如Google 或Exact Seek)购买广告将有助于获得流量。若你的广告和网站管理员高度相关联的话,将会产生双重的作用的。

14、在你的博客上创建一个Alexa类别,将所有关于Alexa的文章和新闻都放进去。这对网站管理员和偶然的搜索用户来说是容易利用的资源,有助于提高你在搜索引擎上的排名。

15、优化你的热门文章。获得一篇能不断获得来自搜索引擎的流量的热门文章。在文章底部包含一个插件或图表,链接到你的Alexa文章或在内部的网址上使用Alexa重定向。

16、从网站管理论坛和网站上购买横幅广告和链接,用来增加流量。一个突出显示的广告将驱使大量的网站管理员访问你的网站,可以显著地提高你的排名。

17、租用论坛海报。你可以很容易地在Digital Point或其他的管理论坛上找到可租用的海报的。

18、付费让网吧业主安装Alexa工具条,并将你的网站设置为他们电脑的主页。这可能很难安排,也不是一个可行的解决办法。在这里推荐它是因为有些人认为它是有作用的。

19、使用MySpace。这里我们并不是很推荐这种方法的,除非你真的对人为地抬高你的Alexa排名感兴趣。使用具有视觉吸引力的图片或横幅广告,并将其链接到重定向的Alexa网址。如果你的网站内容和MySpace群众确实相关联的话,那这个方法就会最有效的。

20、尝试使用Alexa的自动冲浪。它们会有作用么?或许对一些新品牌的网站有作用的。我们认为它们主要适合于有着很低Alexa排名的新网站。请注意,如果你使用自动冲浪的同时还是用像Adsense那样的情景广告的话,就会出现一些问题的。它们不是提高你的Alexa排名的一个长期的解决方案,所以要慎重使用。

了解更多

C# 用QQ企业邮箱发邮件

问题System.Net.Mail下的SmtpClient来发送邮件,而System.Net.Mail only仅支持Explicit SSL

不要465端口,用25,不用EnableSsl = true;

 

    {
        static void Main(string[] args)
        {
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.exmail.qq.com";
            client.Port = 25;
           // client.Port = 465;
          //  client.EnableSsl = true;
            client.Timeout = 10000;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential("test@ms.com", "1234567890");
            MailMessage mm = new MailMessage("test@ms.com", "user1@ms.com", "test", "test");
            mm.BodyEncoding = UTF8Encoding.UTF8;
            mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
            client.Send(mm);
        }
    }

 

最后在配置TFS邮件通知设置的时候端口改用25,不选择SSL,顺利解决问题。

SmtpClient发送邮件超时的异常参考:

http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

了解更多

SEO须知:<meta>系列用法。

有时候会有一些站点内容,不希望被ROBOTS抓取而公开。为了解决这个问题,ROBOTS开发界提供了两个办法:一个是robots.txt,另一个是The Robots META标签。
1,<meta name="Robots" contect="all|none|index|noindex|follow|nofollow">  默认是all
其中的属性说明如下: 
设定为all:文件将被检索,且页面上的链接可以被查询; 
设定为none:文件将不被检索,且页面上的链接不可以被查询; 
设定为index:文件将被检索; 
设定为follow:页面上的链接可以被查询; 
设定为noindex:文件将不被检索,但页面上的链接可以被查询; 
设定为nofollow:文件将不被检索,页面上的链接可以被查询。 
2,revisit-after (重访) 
<META name="revisit-after" CONTENT="7 days" >
通知搜索引擎多少天访问一次
其他的:
<META NAME="GENERATOR" CONTENT="Macromedia Dreamweaver MX"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<Meta http-equiv="Content-Language" Content="zh-CN"> 
<Meta http-equiv="Refresh" Content="5; Url=http://hi.baidu.com/pihi"> 
<Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT"> 
<meta http-equiv="cache-control" content="no-cache"> 
<META name="keywords" content="关键字"> 
<meta name="description" content="描述"> 
<meta name="author" content="作者"> 
<meta name="build" content="日期"> 
<meta name="coprright" content="版权"> 
<meta name="reply-to" content="email"> 
<meta name="robots" content="all"> 
<meta http-equiv="Page-Enter" content="RevealTrans (Duration=3, Transition=23)"> 
<meta http-equiv="Page-Exit" content="RevealTrans (Duration=3, Transition=23)"> 
<link rel="shortcut icon" href="favicon.ico"> 
------------------------------------------------------------------------------------------------------------ 
meta标签分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME)。 
1、Content-Type和Content-Language (显示字符集的设定) 
说明:设定页面使用的字符集,用以说明主页制作所使用的文字已经语言,浏览器会根据此来调用相应的字符集显示page内容。 
注意: 该meta标签定义了HTML页面所使用的字符集为GB2132,就是国标汉字码。如果将其中的“charset=GB2312”替换成“BIG5”,则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点时,IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTML页面Meta标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集,则IE就提示下载。其他的语言也对应不同的charset,比如日文的字符集是“iso-2022-jp ”,韩文的是“ks_c_5601”。 
Charset选项:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2等字符集;Content-Language的Content还可以是:EN、FR等语言代码。 
2、Refresh (刷新) 
3、Expires (期限) 
说明:指定网页在缓存中的过期时间,一旦网页过期,必须到服务器上重新调阅。 
注意:必须使用GMT的时间格式,或直接设为0(数字表示多少时间后过期)。 
4、Pragma (cach模式) 
说明:禁止浏览器从本地机的缓存中调阅页面内容。 
注意:网页不保存在缓存中,每次访问都刷新页面。这样设定,访问者将无法脱机浏览。 
5、Set-Cookie (cookie设定) 
说明:浏览器访问某个页面时会将它存在缓存中,下次再次访问时就可从缓存中读取,以提高速度。当你希望访问者每次都刷新你广告的图标,或每次都刷新你的计数器,就要禁用缓存了。通常HTML文件没有必要禁用缓存,对于ASP等页面,就可以使用禁用缓存,因为每次看到的页面都是在服务器动态生成的,缓存就失去意义。如果网页过期,那么存盘的cookie将被删除。 
用法:<Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday, 21-Oct-98 16:14:21 GMT; path=/"> 
注意:必须使用GMT的时间格式。 
6、Window-target (显示窗口的设定) 
说明:强制页面在当前窗口以独立页面显示。 
用法:<Meta http-equiv="Widow-target" Content="_top"> 
注意:这个属性是用来防止别人在框架里调用你的页面。Content选项:_blank、_top、_self、_parent。 
7、Pics-label (网页RSAC等级评定) 
说明:在IE的Internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级 
别就是通过该参数来设置的。 
用法:<META http-equiv="Pics-label" Contect= 
"(PICS-1.1'http://www.rsac.org/ratingsv01.html' 
I gen comment 'RSACi North America Sever' by 'inet@microsoft.com' 
for 'http://www.microsoft.com' on '1997.06.30T14:21-0500' r(n0 s0 v0 l0))"> 
注意:不要将级别设置的太高。RSAC的评估系统提供了一种用来评价Web站点内容的标准。用户可以设置Microsoft Internet Explorer(IE3.0以上)来排除包含有色情和暴力内容的站点。上面这个例子中的HTML取自Microsoft的主页。代码中的(n 0 s 0 v 0 l 0)表示该站点不包含不健康内容。级别的评定是由RSAC,即美国娱乐委员会的评级机构评定的,如果你想进一步了解RSAC评估系统的等级内容,或者你需要评价自己的网站,可以访问RSAC的站点:http://www.rsac.org/。 
8、Page-Enter、Page-Exit (进入与退出) 
说明:这个是页面被载入和调出时的一些特效。 
用法:<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)"> 
<Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)"> 
注意:blendTrans是动态滤镜的一种,产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果: 
<Meta http-equiv="Page-Enter" Content="revealTrans(duration=x, transition=y)"> 
<Meta http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)"> 
Duration 表示滤镜特效的持续时间(单位:秒) 
Transition 滤镜类型。表示使用哪种特效,取值为0-23。 
0 矩形缩小 
1 矩形扩大 
2 圆形缩小 
3 圆形扩大 
4 下到上刷新 
5 上到下刷新 
6 左到右刷新 
7 右到左刷新 
8 竖百叶窗 
9 横百叶窗 
10 错位横百叶窗 
11 错位竖百叶窗 
12 点扩散 
13 左右到中间刷新 
14 中间到左右刷新 
15 中间到上下 
16 上下到中间 
17 右下到左上 
18 右上到左下 
19 左上到右下 
20 左下到右上 
21 横条 
22 竖条 
23 以上22种随机选择一种 
9、MSThemeCompatible (XP主题) 
说明:是否在IE中关闭 xp 的主题 
用法:<Meta http-equiv="MSThemeCompatible" Content="Yes"> 
注意:关闭 xp 的蓝色立体按钮系统显示样式,从而和win2k 很象。 
10、IE6 (页面生成器) 
说明:页面生成器generator,是ie6 
用法:<Meta http-equiv="IE6" Content="Generator"> 
注意:用什么东西做的,类似商品出厂厂商。 
11、Content-Script-Type (脚本相关) 
说明:这是近来W3C的规范,指明页面中脚本的类型。 
用法:<Meta http-equiv="Content-Script-Type" Content="text/javascript"> 
★NAME变量 
name是描述网页的,对应于Content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。 
name的value值(name="")指定所提供信息的类型。有些值是已经定义好的。例如description(说明)、keyword(关键字)、refresh(刷新)等。还可以指定其他任意值,如:creationdate(创建日期) 、 
document ID(文档编号)和level(等级)等。 
name的content指定实际内容。如:如果指定level(等级)为value(值),则Content可能是beginner(初级)、intermediate(中级)、advanced(高级)。
1、Keywords (关键字) 
说明:为搜索引擎提供的关键字列表 
用法:<Meta name="Keywords" Content="关键词1,关键词2,关键词3,关键词4,……"> 
注意:各关键词间用英文逗号“,”隔开。META的通常用处是指定搜索引擎用来提高搜索质量的关键词。当数个META元素提供文档语言从属信息时,搜索引擎会使用lang特性来过滤并通过用户的语言优先参照来显示搜索结果。例如: 
<Meta name="Kyewords" Lang="EN" Content="vacation,greece,sunshine"> 
<Meta name="Kyewords" Lang="FR" Content="vacances,grè:ce,soleil"> 
列举出几个重要关键词即可,也不可过分堆砌。
2、Description (简介) 
说明:Description用来告诉搜索引擎你的网站主要内容。 
用法:<Meta name="Description" Content="你网页的简述"> 
注意: 把网页内容高度概括到这里,长度要合理,不可过分堆砌关键词,每个页面description要有所不同
3、Robots (机器人向导) 
说明:Robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。Content的参数有all、none、index、noindex、follow、nofollow。默认是all。 
用法:<Meta name="Robots" Content="All|None|Index|Noindex|Follow|Nofollow"> 
注意:许多搜索引擎都通过放出robot/spider搜索来登录网站,这些robot/spider就要用到meta元素的一些特性来决定怎样登录。 
all:文件将被检索,且页面上的链接可以被查询; 
none:文件将不被检索,且页面上的链接不可以被查询;(和 "noindex, no follow" 起相同作用) 
index:文件将被检索;(让robot/spider登录) 
follow:页面上的链接可以被查询; 
noindex:文件将不被检索,但页面上的链接可以被查询;(不让robot/spider登录) 
nofollow:文件将不被检索,页面上的链接可以被查询。(不让robot/spider顺着此页的连接往下探找) 
4、Author (作者) 
说明:标注网页的作者或制作组 
用法:<Meta name="Author" Content="张三,abc@sina.com"> 
注意:Content可以是:你或你的制作组的名字,或Email 
5、Copyright (版权) 
说明:标注版权 
用法:<Meta name="Copyright" Content="本页版权归Zerospace所有。All Rights Reserved"> 
注意: 
6、Generator (编辑器) 
说明:编辑器的说明 
用法:<Meta name="Generator" Content="PCDATA|FrontPage|"> 
注意:Content="你所用编辑器" 
7、revisit-after (重访) 
说明: 
用法:<META name="revisit-after" CONTENT="7 days" > 

了解更多

软件定制开发工作安排规范

想做好定制软件开发工作,必须对定制软件开发流程管理必须做科学,每一步定位清晰,目标明确,下面对定制软件开发工作流进行拆解分析:
需求分析
 资深软件系统分析师对企业所面临的管理问题进行分析
需求初步确认
 软件系统分析师初步确认企业需求,作为合同确认的依据
系统调研
软件系统分析师对企业的初步需求进行详细调研,确定系统界面的设计和运行的流程
需求说明书
 将软件系统分析师对企业详细调研文稿化,经双方讨论确认后,开始系统界面设计
界面设计
专业软件开发工程师及美工设计师完成系统界面设计,经用户确认,开始软件开发
开发及测试
 专业软件开发工程师和测试工程师完成系统软件开发和测试,强大测试力量和一对一软件测试体系,确保系统软件质量
使用培训
 专业培训讲师对企业进行软件基础知识和系统软件运作流程全面培训
初始化试运行
 专业软件工程师辅导用户使用系统,协助用户进行初始化工作;系统初始化完毕,进行试运行阶段,测试系统功能的完善性和全面性
正式切换 双方共同测评系统,确保系统能全面符合用户需求说明书定义的所有功能,正式切换系统
从项目推动过程来讲,可以分为:
1、 项目启动阶段
这一阶段主要是为实施做好准备,由项目指导委员会召开项目动员大会,确定项目组成员,确定项目的计划和目标,建立实施所必须的系统环境。
2、调研分析阶段
项目实施小组在开始系统实施前,先对公司现有的应用系统进行详细调研和分析,根据企业的具体情况和信息化管理的特点确定目标业务流程。对各级用户进行需求调研。最终以双方确认的目标作为下一步具体实施的业务蓝图,并结合软件产品和技术开发实际情况,规划设计详细的解决方案,并进行确认,作为设计开发的基础。
3、 系统开发阶段
根据调研分析的结果,进行系统设计、编码、测试,完成软件的开发。
4、 项目实施阶段
在系统开发完成之后,软件实施进入实质性阶段。项目实施小组要在项目指导委员会的全力支持和相关部门、人员的协作配合下完成大量的具体工作,比如数据分析与导入、系统设置、人员培训、规章制度建立、实施文件归档、客户化修改等。软件的使用者尤其是关键用户必须在这段时间内掌握相关功能模块的操作和应用,以便在系统正式运行后能够独立地使用软件。
5、 试运行阶段
在经过项目实施阶段后,各个模块及整个系统需要试运行一段时间,以确信软件能够在企业中运行良好,并达到预期效果。同时,根据试运行阶段中发现的问题进行系统调整。
6、 系统切换/正式运行
在试运行阶段后,确信软件可以正式开始运行后,需要进行系统切换,企业正式切换到新的业务流程,并在软件上进行企业日常业务处理。至此,软件的实施已经全部完成,进入后期维护阶段。
架构设计
设计的中心思想

1、 以业务逻辑建模,而不是以数据库为中心建立系统模型
对信息系统的设计,应紧紧专注于将企业生产的系统抽象转化为信息系统的模型,能够准确、完整、清晰地了解业务逻辑和业务流程,并且对业务的变化作预先考虑,是项目成功的关键。开发人员容易出现的问题是以关系数据库设计或数据控件的设计代替系统建模,造成的问题是以数据为中心,其结果是系统与数据紧密耦合,难以实现业务逻辑的变化和扩展。
2、 定制软件开发是否满足了用户的期望
为了实现这个目标,完善准确的需求收集和需求分析,是项目成功设计的前提。否则无论这个软件再先进,从用户角度看,也是失败的软件。因此,在设计前期,对需求分析所必须的资源和时间投入,必须有足够的重视和充分的计划。
3、 必须要考虑非软件的因素
任何一个项目都是为了用户实现其业务目的,软件工程也不例外。同时,企业用户作为一个实体,其决策收到其行业特点、用户、市场、上级主管部门、决策人员的个性、企业的定位、企业的现状、长远发展规划、历史因素等综合情况的影响,因此,在架构设计上,应综合考虑这些因素。
设计原则
4、 在可能的情况下,按照“统一规划、统一架构、统一标准”的原则。
5、 以良好的设计模式来保证系统的先进性、合理性和应用扩展性。
6、 系统的模块之间应用和交互,尽可能采用松耦合,以实现系统的灵活性和实用性,延长系统的生命周期,保护用户的投资。
7、 采用以SOA作为体系架构的核心,以保证系统级别和部件级别重复使用和业务重组,便于用户长远的。
8、 系统的开放性要求能软件实现三个无关性:通讯组件的网络及协议无关性,数据来源无关性和用户对流程无关性。
9、 采用有效的需求分析手段,力图实现准确到位的需求分析,
为良好的人机界面设计提供坚实的基础。高度重视用户界面的设计,作到符合不同用户的实际经验和使用习惯,减少对信息系统的畏惧感,提高用户使用信息系统的信心,真正使系统成为提高生产管理效率的有效工具。
10、尽可能采用经过实际运行检验的成熟模块,

从而节省开发资源和缩短开发周期,确保项目按时交付使用。


定制软件开发项目管理
南思特的项目管理是在传统RUP 和XP 之间寻找一个平衡点的项目管理。我们称为“实用最好”的项目管理思想的贯彻。因为我们认识到,没有一种方法可以完全适用于不同的项目类型和客户。只有把握住管理过程中的一些核心不变因素,在简洁、有效、实用的前提下才是现实可行的。为此,我们在项目管理过程中坚持如下的一些基本原则:
1、 确定最适合的团队

包括选择称职的项目经理、合格的成员。特别是项目经理必须要了解成员,合理安排人员和工作。
2、 风险的预估和备用方案

充分估计项目的风险,是项目管理的核心。其风险包括人员风险、技术风险、需求膨胀、进度压力、质量风险等。必须要设定备用方案。
3、 分解原则

大的项目必须要进行分解。
4、 持续构建和尽早发布

在可能的情况保证每日构建的成功。在可能的情况尽早发布给产品经理或用户试用。
5、 测试驱动

测试的编写应该在代码的实施之前。
6、 全局规划,分步实施,步步见效

小步成功可以极大的减轻压力,避免质量风险
7、 合理的使用文档和工具

文档和管理工具的使用在必要时必不可少,但是过度使用带来的问题更多。
8 简单有效

项目的技术和构架的、产品的选用都应该坚持这个原则。
9 平衡原则

更多倾向RUP 还是XP,完全依据项目的特征和用户的情况而定,做好必要的平衡。

了解更多

后台功能设计的起点:权限方案设计分享

权限是一个公司信息系统的起点。我从入职以来就一直想要对公司后台的权限系统进行一个梳理(其实是老板要求的),苦于对后台和公司业务还不够了解,所以想法一直没能成型。终于,经过几个月断断续续的琢磨,我趁最近需求数量不多的时候,把权限的调整方案梳理了出来。

这次梳理公司后台的系统,我在原有权限系统的基础上引入了 公司组织架构,形成了 动态权限管理模式,使得公司的权限管理更加合理化。目前已经把方案提交给开发进行审核,希望可以最终落实。这里就先向大家汇报一下这几个月以来梳理权限的成果,给同样有权限体系设计问题的朋友们一点参考。

要设计权限,首先要对权限 已有的成熟方案有一定认识,其次要 对业务有深入的分析,才可以在业务的基础上有针对性的设计权限模型。

关于权限成熟方案,我查了很多资料,主要了解了一些关于 RBAC(Role-Based Access Control)权限模型的知识。加上在前司对SharePoint的权限分配方案有一定的了解,权限的知识基本就已经足够了(不够也没有更多了,找到一篇从产品的角度解释RBAC的文章,值得一读:请点击查看)

关于业务需求分析方面,我对公司后台的权限系统做了梳理。

因为公司对数据的保密要求很高,所以后台有大量查看项目、查看投资人的细致权限设置,但是 缺乏一致的管理方法,导致经常出现有需求无权限,或调动后权限没有及时清除的问题。公司后台主要是按照RBAC设置了权限体系,另外还根据项目服务小组的机制为每个项目单独设置了权限。后台RBAC的权限角色中,有部门角色、功能角色、临时团队角色等等,相对比较混乱。

现在这套系统面对一些问题:

权限角色太多,分类混乱。有大量临时建立弃而不用的分组;如果员工调换部门,需要逐个删除他已有的权限,再逐个赋予新部门的权限;如果部门领导更换,需要对部门内员工的所有成员的审批对象都进行调整。

为了解决上述问题,我尝试将公司的 组织结构信息引入权限管理的系统。

尽量以部门为单位分配权限,权限角色过多混乱的情况;出现员工部门调动或领导更换,会根据其部门更改自动重新分配权限;对无法按照部门分配的功能采取原有的权限分配模式,通过给不同的员工分配不同的角色实现,保证灵活性。

从上述的思路出发,我定义了新的权限管理需求。新的权限管理分为 部门权限制度和 非部门权限制度两种:

1、部门权限制度

部门权限分组默认按照组织结构图。

按照小组设置部门,部门分管理者权限和默认权限两种,默认权限为部门管理权限的子集。

若组织架构中的小组设置了管理者,则管理者默认拥有管理者权限。除管理者外,所有人加入小组后默认拥有默认权限。

(2)管理者权限包括

部门权限维护类:新建子权限组、默认权限维护、打破权限集成等权限(可以分配给部门领导使用,也可以掌握在超管手中统一分配) 审批类:所有报销、请假和购票的申请(若小组没有设置管理者,则小组成员所有审批事宜由上级层级中的管理者负责 ) 职能类:单个部门的全部权限

(2)权限维护类权限详细介绍

子权限组:部门内可以根据员工设置子权限组,根据子权限组,分配部门权限;默认权限维护:增删进入部门所默认拥有的权限;打破权限继承:使某位员工失去默认拥有的权限,为其单独分配权限。

2、非部门权限制度

组织方法参照原有RBAC权限管理;

超管可以为单个员工或小组开启非部门权限。

可以为非部门权限设置有效时间段;若员工调转部门,则所有非部门权限默认失效,需要超管审批以后方可重新生效。

这套规则可以基本解决原来的权限与部门没有关联的问题,以及权限分配混乱难以管理的问题。这仅仅只是产品从业务角度梳理出来的需求,具体实现还需要和开发商量以后解决。而且要真正能够落实实现还需要很漫长的过程。

这次设计方案给我最大的体会就是,设计复杂的功能最有效的手段还是 从具体是使用场景出发,使用场景决定业务逻辑,业务逻辑决定功能逻辑。我在最初设计的时候执着于寻找成熟的权限管理模式套用,后来发现这样生搬硬套不能提升后台权限分配的效率。在过后的几个月工作中,我接触到了不少分配权限的实际问题,比如不知道分权限给谁,或者分配出去的问题没有办法管理的问题。这些问题直接启发我引入了公司组织架构的概念,也便有了这套方案。

所以, 产品的设计与实现都服务于使用场景,才是真正好的产品,这一点对业务为导向的后台产品至关重要。与大家分享,也请大家多提意见。

了解更多

一直在说软件开发,软件开发分哪些方向?

有很多方向,下面给你列几个常见的:

1. 桌面程序:Java、C++、C#、VB、C均可。
2. 网站服务器端开发:JSP(Java语法)、PHP、ASP(C#语法)、Web App框架等
3. 网站客户端:HTML、CSS、Javascript、Flash等等,小程序用的便是以javascript为基础的应用架构
4. 智能手机程序:安卓使用Java,iPhone使用Objective-C
5. 底层、工具开发:C、C++,如:操作系统开发使用c,android系统底层是用c++。Linux系统等。
6. 多功能脚本程序:Python、Perl、Ruby等等
7. 人工智能:Prolog、PDDL
8. 工业控制:C、PLC、汇编
9. 通用应用数据交换处理技术:标记语言XML/XPATH/XSLT、JSON、YAML等等
10. 数据库: SQL/PLSQL
11. 嵌入式开发:java,OBJECTS-C,C、C++
12. 游戏开发:网页游戏可以用脚本语言javascript,python,后台可用Java,C#。 但PC上的大型游戏一般需要c++或C了。 特别的是,如果你会涉及IOS平台,用的是object-c。
13. 企业级应用开发:Java企业级标准。桌面的用VB ,VC ,C++, C#

社会在不断进步,开发语言也不断变化中。要跟上变化,就必须不断地学习。

了解更多