一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

NuGet学习笔记(1)——初识NuGet及快速安装使用

关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录。 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package Manager,右键项目文件多了一项Manage Nuget Packages…,这是个神马玩意儿,当时是一头雾水,后台查了些资料才知到NuGet是 Visual Studio的一个扩展,引用dudu的话来说就是管理程序的包包,可以参考msdn上这篇文章使用 NuGet 管理项目库以及咱们博客园站长dudu写的程序员,用NuGet管理好你的类库,有些类似java中常用的maven 为什么要使用NuGet 简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上下载这些库,然后依次拷贝到各个项目中,当有的类库有更新时又不得不再重复一遍很是繁琐 ,这时就可以考虑使用NuGet来帮我们管理和更新这些类库,而且更新类库时会自动添加类库的相关引用,方便至极。当然网上一些我们常用的类库更新频率不是很高而且即便出了新版本我们也没必要总是保持最新,故这点对我们的帮助比较有限,个人认为NuGet最大的好处在于可以搭建自己的类库服务器,想想一下吧,在一些较大些的公司里面有很多的项目,然后其中有一些是整个组,甚至整个公司通用的类库,当这些类库有更新后我们需要依次拷贝到我们的项目,甚至于有时候我们自己都搞不清楚各个项目里的版本是否一致,有时偶尔一两个项目忘了复制更新出现莫名其妙的错误,为此头疼不已,现在有了NuGet,世界从此而不同。 安装NuGet扩展 要使用NuGet首先需要安装它(在安装了MVC3的系统上已自动安装了NuGet) 1. 点击 工具-->扩展管理器(R)…-->右上角搜索框输入NuGet 2. 点击 NuGetPackage Manager 项上面的下载按钮开始下载NuGet 3. 下载完成后出现安装页面,点安装开始安装 4. 很快安装完成,然后点击关闭完成整个安装 5. 安装完后NuGet暂时不能用,需要重新启动下VS才行,重启后完毕后打开 扩展管理器(R)… 在已安装的扩展里可以看到NuGet Package Manager已经安装好了 使用NuGet下载需要的类库 1. 打开NuGet管理界面 2. 出现如下界面,可以在里面找自己想要的类库也可以在右上角搜索里面输入关键字查找自己想要的类库,找到合适自己的类库后点install进行安装 3. 这里我们选择安装Json.Net,点击安装好出现组件下载界面 4. 下载完成后会出现提示将类库安装到什么项目,这里我们选择安装到TestConsole项目 5. 安装完成后可以看到已经安装的Josn.Net显示一个已安装的小对勾 6. 打开项目引用可以看到我们刚选择的类库Newtonsoft.Json已经自动添加到项目引用中 使用命令行管理你的类库 1. NuGet提供了命令行安装方法,在菜单中选择Package Manager Console,打开命令行控制台 2. 出现NuGet控制台界面,默认类库源(Package source)为官方站点,也可以指向自己搭建的本地或内网站点,Default project表示默认将下载的类库添加到那个项目的引用中 3. NuGet控制台有几个常用命令 Get-Package 获取当前项目已经安装的类库 Install-Package 安装指定类库,命令格式如下:Install-Package 类库ID,如Install-Package Newtonsoft.Json 这里需要注意的是类库的ID是唯一的,指向命令后会自动搜索指定类库源里指定ID类库,若找到则自动下载并添加引用,找不到则会出现找不到类库的提示 Uninstall-Package 卸载指定类库,命令格式如下:Uninstall-Package 类库ID,如Uninstall-Package Newtonsoft.Json Update-Package 更新指定类库,命令格式如下:Update-Package 类库ID,如Update-Package Newtonsoft.Json ps:刚开始不熟悉时可以使用界面方式下载和更新类库,有一定经验后还是建议使用控制台添加、更新类库这样很方便,由于使用控制台需要知道类库的准确ID,可以到http://www.nuget.org/packages这里去查找,把自己常用的ID记录下方便以后使用。   from:http://kb.cnblogs.com/page/143190/

龙生   15 Apr 2015
View Details

若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet

请将 JsonRequestBehavior 设置为 AllowGet MVC 默认 Request 方式为 Post。 action 1 public JsonResult GetPersonInfo() { 2 var person = new { 3 Name = "张三", 4 Age = 22, 5 Sex = "男" 6 }; 7 return Json(person); 8 } 或者 01 public JsonResult GetPersonInfo() { 02 return Json (new{Name = "张三",Age = 22,Sex = "男"}); 03 } 04 view 05 $.ajax({ 06 url: "/FriendLink/GetPersonInfo", 07 type: "POST", 08 dataType: "json", 09 data: { }, 10 success: function(data) { 11 $("#friendContent").html(data.Name); 12 } 13 }) POST 请求没问题,GET 方式请求出错: […]

龙生   13 Apr 2015
View Details

推荐 11 款 React Native 开源移动 UI 组件

本文推荐 11 个非常棒的 React Native 开源组件,希望能给移动应用开发者提供帮助。 React Native 是近期 Facebook 基于 MIT 协议开源的原生移动应用开发框架,已经用于 Facebook 的生产环境。React Native 可以使用最近非常流行的 React.js 库来开发 iOS 和 Android 原生 APP。 1. iOS 表单处理控件 tcomb-form-native tcomb-form-native 是 React Native 强大的表单处理控件,支持 JSON 模式,可插拔的外观和感觉。在线演示:http://react.rocks/example/tcomb-form-native。 2. 摄像机视图 react-native-camera react-native-camera 是 React Native 的摄像头 viewport。这个模块应用于开发的早期阶段,它支持摄像头的转换和基本图片捕捉。 使用示例: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 var React = require('react-native'); var {   AppRegistry,   StyleSheet,   Text,   View, } = React; var Camera = require('react-native-camera'); var cameraApp = React.createClass({   render: function() { […]

龙生   04 Apr 2015
View Details

C# 重启计算机的问题

  C# 程序重启计算机的方法很多,网上也有不少这方面的文章,不过很多网上提供的方法在某些情况下无法获取重启计算机的权限导致重启失败。本文对这些方法做一些简单的讨论。 作者:eaglet   网上介绍最多的两种方法分别是:

  这两种方法在通常情况下工作是没有问题的,但在某些特殊情况下,比如桌面被其它用户锁定时就无法重启计算机。本人在实际工作中遇到过当当前屏幕被远程控制软件锁定后,我做的后台守护进程试图重启计算机,结果用上述两种方法都无法成功。分析原因,应该是远程控制软件用另外的帐号锁定了屏幕(通常应该是windows service 或者 network service),这时守护进程用当前帐号重启计算机就因为没有权限而失败。 要解决这个问题,我们必须要给进程赋予足够的权限才行,于是我在调用 ExitWindowsEx 前运行了如下代码来赋予当前进程关闭计算机权限  

 

 

 

 

上面代码为当前进程赋予了关闭计算机的权限。这里需要注意的是上述代码要执行成功同样需要足够的权限,通常当前进程需要以拥有至少是系统管理员权限的账户运行。如果没有足够权限,需要用程序模拟系统管理员权限,模拟其它帐号权限的问题不在本文讨论范围内。 加上如上代码后,在其他用户锁定机器后,重启计算机成功。 下面给出完整代码

 

 

 

 

 

 

[…]

龙生   01 Apr 2015
View Details

解决wordpress中文标签tag翻页404错误问题

前面有一篇文章已经介绍过中文标签打开404错误的解决方法《解决中文标签打不开404错误问题》,这个只能解决中文标签的问题,当同一个标签中文章较多的时候,就存在标签页面分页的问题了,发现如果仅按照上文的方法修改,标签页面分也无法正常打开,同样会有404错误的问题,下面提供几种方法解决标签tag页面中文分页404错误问题。

注意:别用windows自带的记事本修改(推荐UltraEdit,Dreamweaver,notepad++等)。


 

1、如果你已经修改过wp-includes目录中的classes.php,可以正常访问中文标签。

代码的140行左右,将

  1. $pathinfo = $_SERVER[‘PATH_INFO’];

替换为:

  1. $pathinfo = mb_convert_encoding($_SERVER[‘PATH_INFO’], “UTF-8″, “GBK”);

  1. $req_uri = $_SERVER[‘REQUEST_URI’];

替换为:

  1. $req_uri = mb_convert_encoding($_SERVER[‘REQUEST_URI’], “UTF-8″, “GBK”);

那么下面你只需要修改wp-includes目录中的link-template.php文件的(1425行左右)

  1. $result = $base . $request . $query_string;

替换为

  1. $result = $base . mb_convert_encoding($request, ‘UTF-8‘, ‘GBK’) . $query_string;

这种方式替换后的tag翻页里面含有中文,不符合url标准,不太利于搜索引擎收录,建议采用下面方法解决。


 

2、如果你什么都未修改,现在还无法访问中文标签tag。

可以通过安装插件iis-chinese-tag-permalink解决这个问题。

iis-chinese-tag-permalink下载地址:http://wordpress.org/extend/plugins/iis-chinese-tag-permalink/

这个插件函数很少只有几个替换函数而已,不会占用太多资源,如果你不想用插件,可以下载后把插件里面的几个函数拷贝到主题目录的functions.php中,本博就是采用这种方式。

 

from:http://www.52qingyin.cn/chinese-tag-page-problem.html

处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

今天安装了windows7 开发web项目需要安装IIS,当安装完以后,web程序已经映射到了本地IIS上,运行出现如下错误提示 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 原因: vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了. 如何用aspnet_regiis注册4.0框架 : 方法如下,启动cmd (win键+R 启动cmd)  ,找到 4.0所在的目录,本人机器目录是 ; 注意:要以管理员的身份运行DOS窗口。 复制上面的目录  C:\Windows\Microsoft.NET\Framework\v4.0.30319 启动CMD进入上面的目录,如下图 回车后 如下图 已经进入 C:\Windows\Microsoft.NET\Framework\v4.0.30319 此目录 然后运行  aspnet_regiis.exe -i  如下图 稍等一会,  aspnet_regiis 注册后如下图 ok,这时的IIS就可以运行 .net 4.0 部署的网站了. from:http://blog.163.com/wger_163_dh/blog/static/142646155201151394642791/

龙生   28 Mar 2015
View Details

php环境无法上传文件的解决方法

一、 检查网站目录的权限。 上传目录是否有写入权限。 二、 php.ini配置文件 php.ini中影响上传的有以下几处: file_uploads 是否开启 on 必须开启 是否允许HTTP文件上传 post_max_size = 8M PHP接受的POST数据最大长度。此设定也影响到文件上传。 要上传大文件,该值必须大于"upload_max_filesize" 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。 一般说来,"memory_limit"应该比"post_max_size"要大。 upload_max_filesize = 2M 允许上传的文件的最大尺寸 upload_tmp_dir = C:\windows\temp 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值 default_socket_timeout = 60 socket超时,单位是秒 max_execution_time = 30 每个脚本最大允许执行时间, 按秒计。默认为30秒。 这个参数有助于阻止劣质脚本无休止的占用服务器资源。 注: "max_execution_time"仅影响脚本本身的运行时间。 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等都不包括在内。 在安全模式下,你不能用ini_set()在运行时改变这个设置 max_input_time = 60 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计 memory_limit = 128M 设定一个脚本所能够申请到的最大内存字节数。 这有助于防止劣质脚本消耗完服务器上的所有内存。 要使用此指令必须在编译的时候激活。 因此 configure 一行中应该包括:--enable-memory-limit 如果不需要任何内存上的限制,必须将其设为 -1 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用 三、upload_tmp_dir目录权限 如果php配置没问题,那问题有可能出在upload_tmp_dir设定的目录权限问题。加入IIS_WPG除完全控制外的权限,users的读写权限,NETWORK SERVER除完全控制外的权限。 四、如果起用了ZEND,看Temp文件夹中是否有ZendOptimizer.MemoryBase@SYSTEM和ZendOptimizer.MemoryBase@NETWORKSERVICE,如果没有,就建立它。 五、如果以上都不行,那问题很有可能出在这里了,检查windows目录是否禁用guests来宾组,要给windows目录users组 读取和执行权限。 from:http://www.jb51.net/article/49557.htm

龙生   27 Mar 2015
View Details

VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

  VS2012已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用模块了,使用VS2012开发,都要装NuGet插件(官网:http://nuget.org),进官网点安装就进入了微软的下载页面,选择vs2012版本的NuGet.Tools.vsix文件,双击安装就可以了。 from:http://www.cxyclub.cn/n/20504/

龙生   27 Mar 2015
View Details

C# Winform对文件夹的权限判断及处理

WindowsIdentity类可以获取当前执行者的身份信息         /// <summary> /// 递归搜索文件方法 /// </summary> /// <param name="path">搜索的目录</param> /// <param name="name">搜索的文件名</param> public void GetDir(string path,string name) { DirectoryInfo di = new DirectoryInfo(path); DirectorySecurity s = new DirectorySecurity(path, AccessControlSections.Access); //判断目录是否 可以访问 if (!s.AreAccessRulesProtected) { foreach (DirectoryInfo d in di.GetDirectories()) { foreach (FileInfo fi in di.GetFiles()) { if (fi.Name.Contains(name)) { txtInfo.AppendText("文件名:"+fi.Name + " 路径:" + fi.FullName + " \n"); } } GetDir(d.FullName, name); } } } }   对执行的程序设定执行身份权限 如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常   Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 […]

龙生   20 Mar 2015
View Details

C# WinForm判断Win7下程序是否以管理员身份运行

如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常。   Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 以 as administrator 方式运行,那么我们怎么来实现这样的功能呢?   我们在 win7 下运行一些安装程序时,会发现首先弹出一个对话框,让用户确认是否同意允许这个程序改变你的计算机配置,但我们编写的应用程序默认是不会弹出这个提示的,也无法以管理员权限运行。本文介绍了 C# 程序如何设置来提示用户以管理员权限运行。 首先在项目中增加一个 Application Manifest File app.manifest 默认的配置如下:   <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <!-- UAC Manifest Options If you want to change the Windows User Account Control level replace the requestedExecutionLevel node with one of the following.<requestedExecutionLevel level="asInvoker" uiAccess="false" /> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> If you want to […]

龙生   20 Mar 2015
View Details
1 135 136 137 177