.Net Framework

程序员真的是靠技术赚钱的吗?——我看未必!

瘦欲@ 提交于 2020-08-18 06:35:29
上篇讲了 做程序员赚钱吗? ,至于赚钱还是不赚钱只有当事人自己心里最清楚。 这样,我们不妨看看其他人是怎么想的? 多图预警... 看出来了吗?似乎 很多人选择程序员这一行是因为穷,是因为自己想赚钱 。 好,那我们反推一下?做了程序员之后,还穷吗?赚到钱了吗? 还是那句话,只有当事人自己最清楚。 既然文章标题叫做 程序员真的是靠技术赚钱的吗?——我看未必 ,那我就谈谈自己的看法。 程序员是靠技术赚钱的吗?以前的自己,或者现在正在这篇文章的你也许会回答: 这TM不是废话吗~ 程序员不靠技术挣钱,靠什么挣钱。 但,这只是问题的表象。 事实的真相是—— 程序员靠出卖时间挣钱,甚至可以这么说,绝大部分打工者都是靠出卖时间挣钱 。 那我为什么说程序员不是靠技术挣钱,而是靠时间挣钱呢? 很简单——因为,现如今程序员的技术被可替代性太强,而你的时间其他人却无可替代。因为你的时间就是 你的。 程序员开发功能,最终产品要的是你功能实现的结果,至于你的代码怎么写的,规不规范,他的关心吗? 他不关心,他只关心东西做出来了吗,没有质量问题吧,什么时候上线。他不关心你代码怎么写的。 (什么代码规范,格式,执行效率这些是后话,咱不讨论) 既然是这样,那每个人实现同一个功能,可能就会有不同的解决问题的思路。最终的目的是,问题解决出 来了就好。 打个比方,软件开发有时很像解数学题。解数学题只有一种方法吗?未必吧。

让.NetCore程序跑在任何有docker的地方

天涯浪子 提交于 2020-08-18 06:33:52
一.分别在Windows/Mac/Centos上安装Docker Windows上下载地址: https://docs.docker.com/docker-for-windows/install/ (window上安装的常见问题和解决方案请参考下方步骤六) Mac上下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-mac Centos上安装Docker请参考我上篇文章链接: https://www.cnblogs.com/peyshine/p/12915317.html 二.打开vs 新建一个Web程序 这里选择启动docker支持,主要是为了能够自动生成dockerfile文件,如果忘记勾选了也没关系,也可以右键解决方案,点击‘添加’,选择‘docker支持’,vs也会自动为我们生成dockerfile,大概长这个样子 对dockerfile文件解释说明: 1.FROM 通过FROM指令来设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上进行拉取 2.WORKDIR 通过workdir指令用于设置Dockerfile中的RUN、CMD和ENTRYPOINT指令执行命令的工作目录(默认为/目录)

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

被刻印的时光 ゝ 提交于 2020-08-18 06:26:00
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

VS2010插件之NuGet

时光怂恿深爱的人放手 提交于 2020-08-18 05:24:08
Visual Studio(简写VS)是.net程序员开发必不可少的开发工具,随着VS的版本不断的升级和使用用户的扩大,现在针对VS开发了许多的开源免费的插件,大大的方便了程序员的开发,提高了开发效率。今天,我将介绍一下VS2010下面一个免费开源的插件NuGet ,英文全名应该是New Get。它是一个专门管理这些插件的插件,通过NuGet你可以下载安装好多功能强大的插件。 NuGet的安装可以通过VS2010 工具里面的扩展管理器(下图),联机搜索到,直接安装。 或者通过如下的链接地址从MSDN网站进行下载,点击直接安装。 http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c 安装成功后,在VS2010 工具里面的扩展管理器里面就能发现它了,如下图: 安装完了 NuGet后,怎样使用呢?其实使用起来非常的方便,只需在项目的引用处右键,弹出一个对话框,点击管理NuGet程序包,就可以下载和使用各种插件了,是不是非常的方便。 双击管理NuGet程序包,将弹出NuGet的管理界面,里面有最新的各种.net插件,同时也证明,免费的软件,有时候也是非常好用得。 来源: oschina 链接: https://my.oschina.net/u/4330033/blog

美团外卖Flutter动态化实践

怎甘沉沦 提交于 2020-08-18 05:14:47
一、前言 Flutter 跨端技术一经推出便在业内赢得了不错的口碑,它在“多端一致”和“渲染性能”上的优势让其他跨端方案很难比拟。虽然 Flutter 的成长曲线和未来前景看起来都很好,但不可否认的是,目前 Flutter 仍处在发展阶段,很多大型互联网企业都无法毫无顾虑地让全线 App 接入,而其中最主要的顾虑是包大小与动态化。 动态化代表着更短的需求上线路径,代表着大大压缩了原始包的大小,从而获得更高的用户下载意向,也代表着更健全的线上质量维护体系。当明白这些意义后,我们也就不难理解,在 Flutter 的应用与适配趋近完善时,动态化自然就成为了一个无法避开的话题。RN 和 Weex 等成熟技术甚至让大家认为动态化是跨端技术的标配。 美团外卖 MTFlutter 团队从 2019 年 9 月开始对动态化进行研究,目前已在多个业务模块上线,内部项目代号 “Flap” 。。 二、Flap 的特点与优势 Flap 研发的初心是为了提供一个完整解决方案,而不是一个过渡方案。项目组思考了当下最痛的点并逐一列出,然后再根据目标来做具体选型。在前期,只有需求考虑得越周全,后续的架构和研发才会越明确。在研发过程中,团队应该坚守底线,坚守初心,不断攻克困难,完成昔日定下的目标。 2.1 核心目标 通用性,保持 Flutter 多平台支持的能力且方案无平台差异。 低成本,动态化对齐 Flutter

windows10环境下mysql8的安装与配置

一个人想着一个人 提交于 2020-08-18 04:30:15
1.下载mysql8 下载地址: https://dev.mysql.com/downloads/mysql/8.0.html 2.解压及配置 将下载的zip文件解压到想要安装的目录下 编辑my.ini文件如下: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D://softwareByDevelop/mysql-8.0.19 # 设置mysql数据库的数据的存放目录 datadir=D://softwareByDevelop/mysql-8.0.19/data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 忽略密码 # skip-grant-tables 3.初始化及启动 管理员身份打开cmd,并进入 D:\softwareByDevelop\mysql-8.0.19\bin 目录

VARCHART XGantt如何在日历上表示工作日

六月ゝ 毕业季﹏ 提交于 2020-08-18 04:06:06
甘特图(Xgantt) 从1998年的第一个商用版本开始就致力于计划编制和项目管理方面控件的研究和开发,经过20多年的积累和沉淀,目前可为软件开发商和最终用户提供最顶级的计划编制和项目管理的控件产品,帮助用户快速的整合项目管理软件所需的甘特图,网络图,资源柱状图,日程日历,资源调度等功能模块,并提供全方位的支持和服务。 VARCHART XGantt 是一款功能强大的甘特图控件,其模块化的设计让您可以创建满足需要的应用程序。XGantt可用于.NET,ActiveX 和ASP.NET应用程序,可以快速、简单地集成到您的应用程序中,帮助您识别性能瓶颈、避免延迟以及高效利用资源,使复杂数据变得更加容易理解。 在上次讨论.NET Gantt控件中图层和过滤器的用法之后,我们现在将重点放在另一个领域,这将使您的Gantt从“外观”到“感觉”(即用户与数据的互动)的观点。因此,让我们首先看一下日历以及如何标记活动中的无工作时间。 使用日历 默认情况下,XGantt使用的日历定义了5天一个星期,工作时间为星期一至星期五0-24小时。该日历可用于通过颜色(例如,灰色)突出显示甘特图背景中的空闲时间。 单击可以在“ 指定日历”对话框中 编辑默认日历 Button_Edit2 。此外,该button_new 按钮允许您创建新的日历。这样,您可以为不同的班次分别定义不同的日历..

[转].Net Core Web应用发布至IIS后报“An error occurred while starting the application”错误

爷,独闯天下 提交于 2020-08-18 03:07:01
本文转自: http://www.cnblogs.com/TomGui/p/6438686.html An error occurred while starting the application. .NET Core X64 v4.1.1.0 | Microsoft.AspNetCore.Hosting version 1.1.0-rtm-22752 | Microsoft Windows 6.3.9600 报这个错,一脸懵逼,环境都按官方文档配置正确了,怎么办? 1.修改web.config文件,stdoutLogEnabled改为true,如下: < aspNetCore processPath ="dotnet" arguments =".\Dialysis.WebApi.dll" stdoutLogEnabled ="true" stdoutLogFile =".\logs\stdout" /> 补充一点,这个文件是在发布之后的文件里,如果没有单独配置发布文件。 就在\bin\Debug\netcoreapp1.1 里面,在根目录下有web.config文件。 注: 不在源文件的根目录下面。 另外,需 要手动建 这个 logs 文件夹 ,因为iis不会给你自动创建。 我出这个问题的原因也是因为项目在startup的时候没有读到 nlog.config这个文件导致的错误。

.net core容器添加时区和libgdi+和下载加速

六眼飞鱼酱① 提交于 2020-08-17 23:55:53
国内.net core镜像下载加速 比如对于mcr.microsoft.com/dotnet/core/aspnet:3.1,下载是走的azure全球cdn,国内访问很慢。 国内访问可以把mcr.microsoft.com改为mcr.azk8s.cn 如docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1改为docker pull mcr.azk8s.cn/dotnet/core/aspnet:3.1速度就会快上很多 修改时区和安装libgdi+ 根据基础镜像不同添加的命令也不同 对于alpine,比如mcr.azk8s.cn/dotnet/core/aspnet:3.1-alpine是以alpine为基础镜像的,alpine是最小系统镜像,所以用这个做基础镜像能将镜像整体大小控制的得很小。 alpine的包管理器是apk,安装软件命令是apk add RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" repositories \ && apk --no-cache add tzdata zeromq \ && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

编写高质量代码的50条黄金守则-Day 03(首选is或as而不是强制类型转换)

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-17 23:28:10
本文由 比特飞 原创发布,欢迎大家踊跃转载。 转载请注明本文地址: https://www.byteflying.com/archives/6710 。 编写高质量代码的50条黄金守则-Day 03(首选is或as而不是强制类型转换),本文由比特飞原创发布,转载务必在文章开头附带链接: https://www.byteflying.com/archives/6710 该系列文章由比特飞原创发布,计划用半年时间写完全50篇文章,为大家提供编写高质量代码的一般准则。 1、概述 在 .net 中包含三种基本的类型转换,is 操作符转换,as 操作符转换,强制类型转换,这三种类型转换各有不同却又各有联系。使用不当,可能引发 NullPointerException 异常或 InvalidCastException 异常。本文将通过一些演示案例为大家一探究竟。 2、通过反编译查看IL,探究类型转换的本质 接下来,我们先来准备环境: namespace EffectiveCoding03 { public class Program { public class TypeBase { } public class TypeSub : TypeBase { } public class TypeThree { } public static void Main(string[] args) {