国外高清可商用免费图片库推荐(2019)

视觉中国的丑闻暴露,国内的图片库大环境如此,特贴几个国外的高质量可商用的免费图片库,请自行探索。

https://unsplash.com/
https://pixabay.com/
https://www.sitebuilderreport.com/stock-up
https://www.pexels.com/
https://picjumbo.com/
https://gratisography.com/
https://visualhunt.com/
https://www.foodiesfeed.com/

Windows操作系统所支持的.NET Framework版本

客户端操作系统支持的.NET版本

操作系统支持的版本随 OS 预安装可安装单独
Windows 10 2018 年 4 月更新32 位和 64 位.NET Framework 4.7.2
Windows 10 Fall Creators Update32 位和 64 位.NET Framework 4.7.1.NET Framework 4.7.2
Windows 10 创意者更新32 位和 64 位.NET Framework 4.7.NET Framework 4.7.1

.NET Framework 4.7.2
Windows 10 周年更新32 位和 64 位.NET Framework 4.6.2.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows 10 November Update32 位和 64 位.NET Framework 4.6.1.NET Framework 4.6.2
Windows 1032 位和 64 位.NET Framework 4.6.NET Framework 4.6.1 

.NET Framework 4.6.2
Windows 8.132 位、64 位和 ARM.NET Framework 4.5.1.NET Framework 4.5.2

.NET Framework 4.6

.NET Framework 4.6.1

.NET Framework 4.6.2

.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows 832 位、64 位和 ARM.NET Framework 4.5.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6

.NET Framework 4.6.1
Windows 7 SP132 位和 64 位.NET Framework 4

.NET Framework 4.5

.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6

.NET Framework 4.6.1

.NET Framework 4.6.2

.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows Vista SP232 位和 64 位.NET Framework 4

.NET Framework 4.5

.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6
Windows XP32 位和 64 位.NET Framework 4

服务器操作系统支持的.NET版本

操作系统支持的版本随 OS 预安装可安装单独
Windows Server 版本 170964 位.NET Framework 4.7.1.NET Framework 4.7.2
Windows 2016 Server64 位.NET Framework 4.6.2.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows Server 2012 R264 位.NET Framework 4.5.1.NET Framework 4.5.2

.NET Framework 4.6

.NET Framework 4.6.1

.NET Framework 4.6.2

.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows Server 2012(64 位版本)64 位.NET Framework 4.5.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6

.NET Framework 4.6.1

.NET Framework 4.6.2

.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows Server 2008 R2 SP164 位.NET Framework 4

.NET Framework 4.5

.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6

.NET Framework 4.6.1

.NET Framework 4.6.2

.NET Framework 4.7

.NET Framework 4.7.1

.NET Framework 4.7.2
Windows Server 2008 SP232 位和 64 位.NET Framework 4

.NET Framework 4.5

.NET Framework 4.5.1

.NET Framework 4.5.2

.NET Framework 4.6

参考来源《 .NET Framework 版本与系统对应关系 》

英文
原文 链接:https://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers

中文
原文 链接:https://docs.microsoft.com/zh-cn/dotnet/framework/get-started/system-requirements

Windows 2008 IIS7部署WebAPI的坑

只要用Windows 2008 32位系统,你总会遇到这个坑。先说一下解决办法吧:

1、Application Pool 应用程序池只能用经典模式,至于为什么不能用集成模式,微软是这么说的:http://www.asp.net/mvc/overview/older-versions-1/deployment/using-asp-net-mvc-with-different-versions-of-iis-cs

2、Handler Mapping添加一个映射WebApi(名字随便起):* 指向到C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,为啥呢,因为默认的StaticFile已经把*的解析接管了。

至此,WebApi作为后端业务,前端Winform、WebForm、MVC还有手机端都已经实战过了,的确很方便。

特别对于Winform的,不用担心直连数据库时,因为网络不稳定,一次客户操作多次数据库操作时的数据丢失、不完整、丢失等问题了。

启用IIS Express SSL(Https)的注意事项

2年前搞国外的信用卡支付对接,必须用SSL方式调用第三方支付公司的接口,本地调试需要启用IIS Express的SSl,最近又搞类似需要SSL的项目,忘记怎么设置的了,本以为直接将原来的http后面加个s,居然不行。费了点时间找到原因:IIS Express 的 SSL 的端口默认是从 44300 开始的。可以自己修改最后两位。

微软序列化时出现k_BackingField怎么处理

当你用微软自带的System.Runtime.Serialization序列化类时,如果出现了json字段中有k_BackingField前缀,请不要见外,因为你没有设置好DataContract和DataMember属性,如果你想继续使用[Serializable],你也可以通过设置Global.asax进行全局设置。

在Application_Start()中加入下面一行代码: GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver { IgnoreSerializableAttribute = true };

#0004:旺财云库存管理系统硬件篇

随着移动终端的普及化,信息的采集和输出变得越来越容易唾手可得。

上一篇中介绍了旺财云库存管理系统的基本功能和定价体系,时隔一个多月,忙着种子用户的一些上线支持,还有软件著作权等。这一篇来介绍一下,想要用起来、用得好软件,还需要哪些必要的硬件支持。

1、智能手机或PDA
目前有安卓端的App,可以提供资料查询、库存查询、代客下单等操作,其实用不到专业的PDA,有个比较新款的1000元以上的安卓手机即可。

2、扫描枪
正常情况下,不需要扫描二维码的,就买个一维的扫描枪足够了,有线的就行,也有WiFi的,需要注意使用距离和信号。

没什么花头,淘宝上一搜一大堆,百元之内

3、标签打印机及标签纸
这个根据行业,普通的标签用热敏打印机就行了,如果是珠宝黄金这种需要打印到银标签,需要碳带的,就必须专业的标签打印机,推荐斑马的。

小巧桌面级、不需要耗材,直接购买热敏标签纸即可

推荐热敏打印机:佳博(Gprinter)GP1324D电子面单条码标签打印机热敏 快递单打印机不干胶二维码,不到400元,京东购买链接:https://item.jd.com/10572982722.html

企业级,工业级,不仅可以打印热敏的,还能热转印

推荐专业打印机:斑马(ZEBRA) ZT210/230 工业级标签机条码打印机 二维码不干胶打印机 ZT210(203dpi无屏 标配),4000元左右,京东购买链接:https://item.jd.com/10117924614.html

各种主流尺寸直接选择,价格低廉,每张1分钱

目前系统默认的标签尺寸有:40*30mm、50*30mm、100*60mm,请购买时参考。

标签购买参考链接:

1、https://item.jd.com/16047939605.html
2、https://item.jd.com/10033808873.html

4、针式打印机及多联单据打印纸
打印机很普通的针式打印机就够了。
打印纸就是常规的多联单,尺寸都是241mm宽度。

淘宝一搜一大堆,价格从500到1800不等,都好用
可根据需要选择整张,半张或三分之一张
一般客户一联、仓库一联、财务留存一联就够了。 根据自己业务需要购买。

购买的话,京东的链接供参考:https://item.jd.com/11880739745.html

规模小的企业,只要投入1500到2000元的硬件,
软件方面,每个账户每天一块钱,每年365元,只需要极少的初期资金投入,就可以拥有一套强大的信息系统支持了。

C#访问SOAP Web Service时500报错后的返回信息获取

调试Infor ERP LN Web Service的时候,你会发现如果调用不成功,返回的Http Header是500,但用SoupUI还是能看到结果返回,是不是很诡异。

因为这个东西,曾浪费了好几天,换了多种方式调用Web Service:引用、静态、动态、HTTP Post都试了。最后用Fiddle监控本地服务,然后开SoupUI代理,获取到下图。

这就造成了当使用HttpWebRequest访问时,不成功就会出现System.Net.WebException: ‘The remote server returned an error: (500) Internal Server Error.’报错(如下图),获取不到结果了。

怎么办呢,这里只能通过获取异常,然后将异常的相应结果返回。

用下面的代码就不论500错误是否发生,都能获取到Web Service返回值的源代码。

            //500 error but get the message
            HttpWebResponse res;
            try
            {
                res = (HttpWebResponse)webRequest.GetResponse();
            }
            catch (WebException ex)
            {
                res = (HttpWebResponse)ex.Response;
            }
            StreamReader sr = new StreamReader(res.GetResponseStream() ?? throw new InvalidOperationException(), Encoding.UTF8);
            var result = sr.ReadToEnd();

H5 WebApp禁止Webform页面回发

前一阵写一个H5的WebApp,用得老技术Webform,然后找人封装一下,优化一下WebView等,主要是实现运行于安卓系统的PDA能很方便的查询库存、进行库存的收发操作。

其中有一个扫码查询,允许用户手动输入,针对input textbox做了onchange事件,但是提交就会出现一个页面自动回发的问题。

用了比较原始的方式:

1、先给页面的表单设置DefaultButton(这里设置的是btnSubmit)。作用是:回车时会以该按钮被点击来提交表单进行回发。

<form id="form1" runat="server" defaultbutton="btnSubmit">

2、为btnSubmit设置Enabled=”False”。作用是:回车后发现btnSubmit不能使用,所以这次提交也就不能成功了

3、如果不想看到这个btnSubmit,就加上样式style=” display:none”进行隐

好了看一下截图吧:

H5端软键盘把footer底部导航栏顶上去了怎么解决?

这个问题是WebApp的通病,特别是用了BootStrap的底部导航栏,又用了input选中时自动移到合适位置,避免软键盘覆盖的时候,会特别明显。

网上有不少分享,都是通过js来实现的,因为我是在安卓手机端,试了多个不管用。

比方说这个:

var oHeight = $(document).height(); //浏览器当前的高度 
$(window).resize(function(){//ios软键盘弹出不会触发resize事件
     if($(document).height() < oHeight){
     $("#footer").css("position","static"); }else{
     $("#footer").css("position","absolute"); //adsolute或fixed,看你布局
} }); 

还有这个:

$("body").find("input[type=text]").each(function() {
    $(this).bind('focus', function() {
        $('#footer').css('display', 'none');
    }).bind('blur', function() {
        $('#footer').css({
            'position': 'fixed',
            'bottom': '0'
        });
        var footer = $('#footer');
                    var display = footer.css('display');
                    if (display == 'none') {
                        footer.show();
                    } else {
                        footer.hide();
                    }
    });
});

最终,我把输入框软键盘防覆盖和底部导航软键盘防顶结合在一起,安卓端用起来还不错。

$(function () {
    $('input,textarea').on('focus', function () {
        //立即隐藏
        $('.footer').css('display', 'none');
        var target = this;
        setTimeout(function () {
            target.scrollIntoViewIfNeeded();
            //target.scrollIntoView(true);
            //console.log('scrollIntoViewIfNeeded');
        }, 200);
    });
    $('input,textarea').on('click', function () {
        var target = this;
        setTimeout(function () {
            target.scrollIntoViewIfNeeded();
            //target.scrollIntoView(true);
            //console.log('scrollIntoViewIfNeeded');
        }, 200);
    });
    $('input,textarea').on('blur', function () {
        $('.footer').css({
            'position': 'fixed',
            'bottom': '0'
        });
        var footer = $('.footer');
        var display = footer.css('display');
        if (display === 'none') {
            footer.fadeIn(2000, function () {//fade
                    footer.show();
            });

            //setTimeout(function () {
            //    footer.show();
            //}, 200);
        } else {
            footer.hide();
        }
    });
});

#0003:第一个公开演示-旺财云库存管理系统

趁着元旦放假加上本周末的一点时间,我将《0001:Done is better that perfect,比完美更好的是完成》提到的第2个积累的作品:旺财云库存的演示系统正式发布出来了。

这是一款– 针对中小型企业,特别是有一物一码(一码一物)、批次、质保期、有效期要求的金银珠宝、化妆品和汽配(电机) 等行业 ,也可以用于样品库存管理、备品备件库存管理。

看过我博客的朋友,应该记得我2014年开始为珠宝行业的黄金(素金)电商零售和批发定制过一套旺财珠宝库存管理系统(软件著作权2017SR342261),客户(邻居)用得很满意,现在年销售额都破2个亿了。在经历了旺财备品备件库存管理系统的通用性改造后,2018整年的闲暇时间都在重构,在保持简约、实用的强大库存管理的功能的基础上,针对不同行业设定配置参数,完成从珠宝行业到通用行业的升级。并在数家企业的实际业务中发挥重要作用。

软件的重要特点如下,更多功能亮点后继会逐一介绍:

  1. 支持多公司,多仓库,多库位
  2. 全追溯,序列号,批次号
  3. 双库存单位(特别针对金银贵金属)
  4. 运行于浏览器,客户端免安装
  5. 特别适用一物一码,批次管理,有效期,保质期等要求的行业
  6. 按件扫码盘点
  7. 出库、退货入库扫码操作
  8. 极易扩展为云进销存系统
  9. 可支持手机端经销商下单或手机代客开单

演示网址: http://spwmsdemo.wangcaisoft.com/
无需输入账号密码,直接点击:立即登录即可体验
注意:请勿修改测试密码,谢谢配合

当然了,你也可以在线注册演示账号,用于自己公司的数据测试。试用完毕觉得满意,就可以付费并一键迁移到正式系统。

费用吗,其实定位为中小企业的仓库库存管理系统,分2种模式:

1、按用户、按年收费、公有云:一个用户365/年( 一天一块钱 ),年数据量5万条以内
2、终生买断、私有云:不限用户,3.6万起,技术支持及升级服务费每年3600

收费模式和标准目前为2019年暂行,根据实际运营情况调整。

你要是问我是不是创业了,我说我一直在做,但没有专职创业。不过这个旺财软件是我夫人在专职搞运营,我负责提供技术的支持。