<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Friendly_Blake的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Friendly_Blake</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Friendly_Blake]]></copyright><item><title><![CDATA[开发经验]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/114032840</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/114032840</guid><author>Friendly_Blake</author><pubDate>Wed, 24 Feb 2021 18:14:45 +0800</pubDate><description><![CDATA[1、开发软件最重要的是想，思路，思路理清楚了，80%的工作就完成了。写代码只是最后一步，很机械的动作

2、修改代码的时候先要联系上下文，想清楚会对其他模块有什么影响，然后再改，要不然bug会层出不穷
...]]></description><category></category></item><item><title><![CDATA[C#表单填写 红框标识错误配合ToolTip]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113858586</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113858586</guid><author>Friendly_Blake</author><pubDate>Fri, 19 Feb 2021 10:29:35 +0800</pubDate><description><![CDATA[只能利用失去焦点和按钮点击事件判断，不能使用keyup，因为双向绑定是在失去焦点后赋值
代码量增加了一倍，前端增加了border，后端增加了提示初始化和失去焦点的错误判断或者点击的错误判断
用户体验和弹窗差不多


...]]></description><category></category></item><item><title><![CDATA[C#  表单填写常见应用场景与实现方式]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113758737</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113758737</guid><author>Friendly_Blake</author><pubDate>Mon, 08 Feb 2021 16:20:02 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[如何提高开发效率]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113758330</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113758330</guid><author>Friendly_Blake</author><pubDate>Mon, 08 Feb 2021 15:59:34 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[C#MVVM常用项目结构SqLite]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113753019</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113753019</guid><author>Friendly_Blake</author><pubDate>Mon, 08 Feb 2021 10:42:38 +0800</pubDate><description><![CDATA[DB(数据层)

Entiy（数据实体）
DAO（数据访问层）
DataBaseFolder（数据库文件）

Common（公共资源）
Resource
Style
Bin
Conf（配置文件）
Docs（需求文档，设计文档）
Controls（自定义控件）
Util(工具类)
Models（实体类）
ViewModels
Views
Publish（已发布代码）

...]]></description><category></category></item><item><title><![CDATA[《代码整洁之道》心得总结]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113483792</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113483792</guid><author>Friendly_Blake</author><pubDate>Sun, 31 Jan 2021 20:13:28 +0800</pubDate><description><![CDATA[命名规范




]]></description><category></category></item><item><title><![CDATA[EF数据不同步]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113061518</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/113061518</guid><author>Friendly_Blake</author><pubDate>Sat, 23 Jan 2021 20:23:46 +0800</pubDate><description><![CDATA[wpf在使用全局EF DBContext的静态对象访问数据库的时候，不能用对象进行前台数据的双向绑定。这会造成数据不同步。

你可以选择不用对象进行双向绑定，
或者用对象进行单向绑定，
或者不使用全局静态EF对象

因为ef的原理是将数据库的数据加载到一组对象中，如果使用静态对象， 就是只加载一次，如果数据库变化,EF不会同步。这时候必须再次实例化ef，进行数据读取

...]]></description><category></category></item><item><title><![CDATA[C#将PDF转换为图片]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/112981263</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/112981263</guid><author>Friendly_Blake</author><pubDate>Fri, 22 Jan 2021 11:47:45 +0800</pubDate><description><![CDATA[1、PDF指定页码转换为图片生成在同目录下（推荐）

https://q.cnblogs.com/q/43492/

2、https://www.cnblogs.com/lau-4/p/10717881.html

3、https://www.cnblogs.com/xibei666/p/7012807.html
]]></description><category></category></item><item><title><![CDATA[BUG记录2021年1月8日10:34:29]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/112346717</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/112346717</guid><author>Friendly_Blake</author><pubDate>Fri, 08 Jan 2021 10:36:42 +0800</pubDate><description><![CDATA[问题：当用下面这行代码的时候总是打开上次默认的文件夹，而不是当前文件夹。


//打开文件夹
var dialog = new CommonOpenFileDialog(“路径”);
dialog.ShowDialog();
                   

原因：CommonOpenFileDialog会默认打开上次的文件夹

解决方法：换一个实现方式，代码如下


OpenFileDialog ofdWenJian = new OpenFileDialog();
ofdWenJian.Initi]]></description><category></category></item><item><title><![CDATA[C#——启动某个指定的软件]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/112346649</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/112346649</guid><author>Friendly_Blake</author><pubDate>Fri, 08 Jan 2021 10:33:51 +0800</pubDate><description><![CDATA[/// &lt;summary&gt;
        /// 启动某个指定的程序
        /// &lt;/summary&gt;
        private void StartProcess(string processName)
        {
            Process myProcess = new Process();
            try
            {
                myProcess.StartInfo.UseShel.]]></description><category></category></item><item><title><![CDATA[BUG记录2020年12月23日17:28:42]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111594800</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111594800</guid><author>Friendly_Blake</author><pubDate>Wed, 23 Dec 2020 17:30:10 +0800</pubDate><description><![CDATA[项目场景：

提示：这里简述项目相关背景：ROA

问题描述：

提示：这里描述项目中遇到的问题：vs2019中git中显示所有文件都被更改，有已删除还有已更改

原因分析：

提示：这里填写问题的分析：将git克隆下来的项目代码在本地挪到了其他文件夹了

解决方案：

提示：这里填写该问题的具体解决方案：

1、千万不要提交

2、将自己新修改的代码复制下来

3、将代码重新克隆到本地
...]]></description><category></category></item><item><title><![CDATA[C#——【关键字：MVVM】WPF数据绑定-MVVM架构-Caliburn.Micro]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111151701</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111151701</guid><author>Friendly_Blake</author><pubDate>Wed, 23 Dec 2020 09:12:04 +0800</pubDate><description><![CDATA[一、MVVM架构是什么

View、ViewModel、Model。ViewModel连接Model和View层，相当于把之前View层的Cs代码独立出来了

二、优势劣势&amp;适用场景

MVVM最大的优势是编写前端逻辑非常复杂的页面，尤其是需要大量DOM操作的逻辑，利用MVVM可以极大地简化前端页面的逻辑。

但是MVVM不是万能的，它的目的是为了解决复杂的前端逻辑。但对于以展示为主的页面，例如，新闻，博客、文档等，不能使用MVVM展示数据，因为这些页面需要被搜索引擎索引，而搜索引擎无法获取使用MV]]></description><category></category></item><item><title><![CDATA[WPF 文件、文件夹操作]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111544641</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111544641</guid><author>Friendly_Blake</author><pubDate>Wed, 23 Dec 2020 08:41:21 +0800</pubDate><description><![CDATA[一、弹出文件选择窗口


//调用打开文件对话框
            OpenFileDialog dialogInput = new OpenFileDialog();
            dialogInput.ShowDialog();
if (dialogInput.FileName.Length &gt; 7)
                //将用户选中的文件显示在列表中
                LabelRipInputContent = dialogInput.FileNa]]></description><category></category></item><item><title><![CDATA[VisualStudio2019 Git+Azure DevOps 代码库工具使用]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111470695</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111470695</guid><author>Friendly_Blake</author><pubDate>Mon, 21 Dec 2020 12:31:07 +0800</pubDate><description><![CDATA[目录



一、从代码库将项目代码克隆到本地

二、提交自己的更改代码到代码库

三、拉取代码库的最新版本代码

四、注意

一、从代码库将项目代码克隆到本地

1、打开vs2019，点击“克隆存储库”

2、输入你的代码库Azure DevOps的对应项目——文件，复制URL到输入框。然后选择保存到本地的哪个文件夹



二、提交自己的更改代码到代码库

1、打开解决资源管理器，上方 双向箭头，定位已经修改的代码，git，提交或存储

2、git工具，填写备注，提交



3、推送



三、拉取代码..]]></description><category></category></item><item><title><![CDATA[Sql Server——【关键字：数据库】Sql Server2019安装教程]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111088247</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111088247</guid><author>Friendly_Blake</author><pubDate>Sat, 19 Dec 2020 23:15:01 +0800</pubDate><description><![CDATA[1、在MSDN网站下载Sql Server2019安装包

MSDN:http://www.msdn1.cn/8/74/

将下载链接复制到迅雷即可

2、解压，执行setep.exe，一路下一步，中间需要选择混合登录模式和添加当前电脑用户的管理权限，功能选择尽量全选

3、SQLserver配置管理器 启用 TCP/IP，并且将127.0.0.1启用

4、可以使用了



常见错误：

1、错误：安装不是有效文件夹

解决方法：找到setep.exe所在文件夹安装即可


...]]></description><category></category></item><item><title><![CDATA[C#——【关键字：图像处理】判别图片是否是CMYK]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111400252</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111400252</guid><author>Friendly_Blake</author><pubDate>Sat, 19 Dec 2020 09:27:27 +0800</pubDate><description><![CDATA[public void IsCMYK()
 {
 FileStream fs = new FileStream(SourceFileSelectValue, FileMode.Open, FileAccess.Read);
 BinaryReader br = new BinaryReader(fs);
 StreamWriter sw = new StreamWriter("d:\\bb.txt");
...]]></description><category></category></item><item><title><![CDATA[C# ——【关键字：并发编程】TASK常见用法]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111311858</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111311858</guid><author>Friendly_Blake</author><pubDate>Thu, 17 Dec 2020 11:33:11 +0800</pubDate><description><![CDATA[一、普通多线程代码


 Task curTask = new Task(() =&gt;
                {
                   //你的代码
                });
curTask.Start();

二、涉及UI界面的多线程代码


 Task curTask = new Task(() =&gt;
                {
                    //线程操作UI界面需要加上Application.Current.Dispa]]></description><category></category></item><item><title><![CDATA[C#——【关键字：并发编程】Thread 执行一个参数、多个参数和无参的方法]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111143981</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111143981</guid><author>Friendly_Blake</author><pubDate>Sun, 13 Dec 2020 20:04:33 +0800</pubDate><description><![CDATA[一、无参

多线程执行无参方法，只需要将方法名s传给ThreadStart对象即可


public class SignIn
    {
        private void a()
        {
                Thread t = new Thread(new ThreadStart(s));//将方法传给线程
                t.Start();//将线程变为待启动状态
        }

        private void s() { }//无参方]]></description><category></category></item><item><title><![CDATA[C# ——【关键字：异常】try-catch使用]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111086099</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111086099</guid><author>Friendly_Blake</author><pubDate>Sat, 12 Dec 2020 22:17:59 +0800</pubDate><description><![CDATA[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
using System.Windows;//引用window，方便创建弹窗

namespace IntelligenceSupermarket.Control
{
    cla.]]></description><category></category></item><item><title><![CDATA[C#——【关键字：数据库，ADO.NET】C#数据库增删改查]]></title><link>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111086051</link><guid>https://blog.youkuaiyun.com/Friendly_Blake/article/details/111086051</guid><author>Friendly_Blake</author><pubDate>Sat, 12 Dec 2020 22:13:26 +0800</pubDate><description><![CDATA[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
using System.Windows;

namespace IntelligenceSupermarket.Control
{
    /*数据库工具类
     */ 
  .]]></description><category></category></item></channel></rss>