Roslyn+T4+EnvDTE项目完全自动化 (一)】的更多相关文章

C++语法复杂,写一个示例通过T4可生成c++代码 需求:数据库,生成c++增,删,改,查代码 数据生成c++类,包含所有字段 自动识别数据的主键Key 查询生成赋值类字段,类型转换 通过类自动生成sql的where条件 类改变一些字段值,自动生成update sql 生成所有字段打印代码 class Actor_Entry; //数据库实体类 class Actor_UpdateEntry;//更新实体类 class Actor //实体增,删,改,查类 { public: bool Sele…
前言 以前做一个金融软件项目,软件要英文.繁体版本,开始甲方弄了好几个月,手动一条一条替换,发现很容易出错,因为有金融专业术语,字符串在不同语义要特殊处理,第三方工具没法使用.最后我用Roslyn写了一个工具,只需10分钟就能翻译整个软件,100%准确 做完上个项目发现Roslyn还可以深度开发,写了一个工具:代码助手,可解决项目所有琐碎重复性操作,代码完全自动化 原理 Roslyn是啥? XmlDocument,XDocument可以解析xml,同样 Roslyn 可解析项目中C#代码.c#常…
当项目越来越庞大,部署环境越来越多以后,就会越来越依赖于自动化.比如本人公司的项目,目前有6个web和4个windows service,同时本地有两套环境:开发自测试环境和QA测试环境.每次版本发布,需要先部署开发自测试环境:开发人员自测试通过以后,将部署的版本部署到QA测试环境:QA测试通过以后,将本次版本打包作为发布版本,交给运维人员部署生产环境. 在以往,每次本地部署的流程是:开发人员获取最新代码-编译发布-远程连接部署机-上传版本文件-备份项目-实施部署(文件覆盖).每次操作千篇一律,…
travis-ci对dotnet的项目做自动化集成不太友好,尤其是使用mono的编译和不能使用MSTest进行自动化测试,所以转到appveyor进行. appveyor的配置非常简单,有两种方式: 一.全部使用appveyor的后台进行,不需要配置一个yml文件,之后自动下载yml文件上传到项目,或者省略这部,手动点击build. 二.手动编写yml文件,然后结合后台进行,自由度比较高. 主要做法: 1.关联github账号 2.添加github上的项目 3.编写yml项目,只需要置顶.sln…
修改代码,打包,上传,重启... 大把的时间花费在这些重复无味的工作上.笔者与当前主流的价值观保持一致:我们应该把时间花费在更有意义的事情上.我们可以尝试借助一些工具,让这些重复机械的工作交给计算机去完成,这也是我们做软件开发的核心思想. 借用 Jenkins 持续集成重复工作是一个很不错的选择. 研究 Jenkins 的最终目的是解决公司中 Java Web 项目的自动化部署,公司项目本身是由几个服务,一个 API 项目以及不同客户端组,希望部署到不同服务器.初次使用 Jenkins 应用于现…
Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够分析我们的项目文件. 作为 Roslyn 入门篇文章,你将可以通过本文学习如何开始编写一个 Roslyn 扩展项目,如何开始分析一个解决方案(.sln)中项目(.csproj)的代码文件(.cs). 本文是 Roslyn 入门系列之一: Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 Roslyn 入门:使用…
简介 不知道大家一开始是怎么使用 git 进行开发的,反正我个人是先将代码提交到 github 仓库,然后用 SSH 登录到服务器,然后进行克隆或者版本更新.听起来就很麻烦,当然实际操作中也很麻烦,那么有什么可以 “一劳永逸 “ 的办法呢?请往下看! 简单使用 Git 钩子 什么是 git 钩子呢?官方解释有些长,简单来说就是一个在特定环境下触发的脚本.这个解释可能不太准确,但是我认为这样更容易理解一些,想了解更多的,可以去 Git 官网查看,下面我们就用钩子实现自动化部署. 第一步:创建 gi…
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这篇文章中,我们通过创建一个 Node.js + MongoDB 项目,来教大家如何使用 flow.ci 8 步完成自动化持续集成的搭建. 了解 flow.ci flow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码.编译.测试之外,还可以集成常用的工具.灵活自定义流程.1 分钟即可完成开发测试环境搭建,开启第…
最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 上面是我从百科上down下来的,老实说没看懂,这是个什么玩意啊?其实以我现在的理解和应用,最多的便是部署了,其他功能待研究╮(╯_╰)╭ 撸主目前在上海一个不知名国企打工,我们现在项目的发布流…
关键词提取自动摘要相关开源项目 GitHub - hankcs/HanLP: 自然语言处理 中文分词 词性标注 命名实体识别 依存句法分析 关键词提取 自动摘要 短语提取 拼音 简繁转换https://github.com/hankcs/HanLP 文章或博客的自动摘要(自动简介) - 开源中国社区http://www.oschina.net/code/snippet_1180874_23950 Python实现提取文章摘要的方法_python_脚本之家http://www.jb51.net/a…
以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_build_automation.html: 注意:由于时间问题,原文的方法已经无法使用,在此我更新了最新的方法去实现.同时也是官方原版的方法:https://www.tutorialspoint.com/maven/maven_build_automation.htm. 一.场景 设想一个团队正在开发一个项目bus-core-api, 并且有其他两…
在Nuget中,添加Microsoft.CodeDom.Providers.DotNetCompilerPlatform. 在添加这个dll的时候,会自动在web.config中添加以下内容 <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNet…
开发十年,就只剩下这套Java开发体系了 >>>   最近,又临近博主所负责的一个大型项目的发版了.之前有提到过,该项目涉及到30-40台服务器的发版.且项目客户规定发版需在晚上10-11点左右开始进行,这里博主不得不说每次发布最后都是眼花缭乱. 博主最近想了下,还是决定做些自动化发版的脚本:首先,在批量关闭服务器.批量重启服务器.批量延迟重启服务器.以及批量nginx重启.kill.reload方面都可以做成自动化脚本.当然,还有资源备份.代码备份等等. 自动化脚本来发版后,将一键关闭…
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79726664 一.场景设想一个团队正在开发一个项目 bus-core-api,并且有其他两个项目 app-web-ui 和 app-desktop-ui 依赖于这个项目. bus-core-api 项目为 1.0 快照版本. app-web-ui 项目使用的是 bus-core-api 项目的 1.0 快照. app-desktop-ui 项目使用的是 bus-core-api…
1. 前言 2. Net Core项目本身的准备 2.1 dockerfile 2.2 创建kubernetes用于helm的chart包 2.2.1 说明 2.2.2 chart文件目录和文件组成 3. Azure Devops创建仓库的pipeline 3.1 前言 3.2 使用azure devops准备操作 3.3 创建service connections 3.4 新建pipeline流水线 3.5 创建部署shell脚本 4. 触发pipeline部署流水线 5. 关于均衡负载 1.…
说明:部署springboot项目的jar 前提(参考:https://www.cnblogs.com/myitnews/p/11493779.html): 全局安全配置(前面配置过) 全局工具配置(前面配置过) 管理插件(根据需要安装插件,前面配置过) 已将项目代码提交到SVN仓库. 1. 创建任务 2. 配置项目 (1) General 勾选丢弃旧的构建,选择是否备份被替换的旧包.我这里选择备份最近的10个. (2) 源码管理 (3) 构建环境 代码构建的过程中会将日志打印出来. (3) B…
自动化生成swagger文档 使用hapi插件hapi-swagger,简单配置下插件,先修改下plugin_config.js文件: //plugin_config.js const SwaggerOptions = { info: { 'title': 'hapi API Documentation', 'version': '1.0.0' } }; //module.exports = [ //{ // plugin: require('inert'), // options: { //…
gitlab构建CI/CD 准备 docker部署gitlab 使用二进制部署gitlab-runner gitlab-runner注册 配置Variables 简单先来个测试 开始构建 遇到的报错 gitlab构建CI/CD 准备 docker部署gitlab 通过docker-compose启动gitlab version: '3' services: gitlab: image: 'gitlab/gitlab-ce:latest' restart: always hostname: '1.…
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这是一篇关于 Ruby 项目持续集成的快速指导教程,教大家如何使用 flow.ci 在 3 分钟内简单快速完成持续集成搭建,希望对你有用. 了解 flow.ci flow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码.编译.测试之外,还可以集成常用的工具.灵活自定义流程.1 分钟即可完成开发测试环境搭建,开启第…
在很多场合都会听到前端工和 node 程师推荐 Grunt 来实现项目的自动化,自动化可以自动完成 javascript/coffee/sass/less 等文件的的测试.检查.合并.压缩.格式化.部署文件生成,并监听文件在改动后重复指定的这些步骤. 得益于 Grunt 基于任务的设计模式,这些步骤可以很好的归类执行,让开发效率得到了一次提升,但杀敌 1000,得自损 800 啊,学习曲线有点高,Gruntfile配置任务很难理解,经常容易忘记. Grunt.js 太复杂了,复杂到比使用和配置…
前面的话 一般地,我们使用构建工具来完成项目的自动化操作.本文主要介绍如何使用nodeJS来实现简单的项目结构构建和文件合并 项目构建 假设,最终实现的项目名称为'test',结构如下图所示 那么,首先需要先设置一个JSON对象来保存要创建的目录结构 var projectData = { 'name' : 'test', 'fileData' : [ { 'name' : 'css', 'type' : 'dir' }, { 'name' : 'js', 'type' : 'dir' }, {…
前言 什么是持续集成呢?Continuous integration(CI).持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. 如果没有持续集成会有哪一些问题呢?模块项目接口部署不及时,接口不通.每次需要手动打包最新的代码进行部署.发布代码.线上部署都是纯手工.…
原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 项目完整源码下载 https://github.com/bz51/SpringBoot-Dubbo-Docker-Jenkins 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个…
本文主要以部署前端Vue项目为例,讲述了如何基于云原生DevOps服务自动化部署前端项目~从开发完成到线上环境,我们只需提交代码即可~ 一.引言 作为一名开发人员,日常工作中我们除了需要负责代码的开发外,通常还需要负责代码的部署,运维等工作.而在传统的手工部署方法中,在每次版本迭代或需求变更完成后,除了将代码提交到代码仓库外,如果需要更新线上环境,我们还需要重复本地构建打包.连接远程服务器.上传代码到服务器指定目录等步骤.这些步骤虽然简单,但是通常耗时耗力,若同时存在多个环境时,也容易引起部署错…
在 WinRT 中,对控件.甚至图片资源的本地化都是极其方便的,之前我在博客中也介绍过如何本地化应用名称:http://www.cnblogs.com/h82258652/p/4292157.html 关于 WinRT 中的本地化,CodeProject 上有一篇十分值得大家一看的文章:http://www.codeproject.com/Articles/862152/Localization-in-Windows-Universal-Apps 大家可以去仔细学习一下. 以前的本地化: 说回重…
Microsoft Roslyn是微软.NET“编译器即服务(Compiler as a Service)”的主要产品,它提供了开放的编译器API,并为源代码产生.分析和重构提供了新一代的语言对象模型.Anders Hejlsberg在BUILD 2013大会上提到,C# 6.0的编译器将使用Roslyn实现,这一实现会包含在Visual Studio 2013之后的产品中.根据Anders的描述,C# 6.0的编译器将采用C#开发,从而告别现有的本机代码(native code)的实现方式,“…
自动化构建.测试.部署.代码检测越来越重要.主要有一下几点原因 1.  企业做大,项目变多,多端支持(web,h5,小程序等) 2.  微服务提倡高内聚低耦合,项目因拆分变多 3.  DevOps自动化运维流行 4.  集群化,高可用部署方案 5.  避免人工操作出现的错误 6.  集成管理系统,实现提交发布.发布审批.发布等UI可视化操作 等等原因,学习使用jenkins实现自动化作业非常有必要.这是我学习过程中整理的资料,分享给大家. 欢迎向我推荐更好的资料和讨论关于jenkins的问题.…
Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够编译并执行我们的代码. 作为 Roslyn 入门篇文章之一,你将可以通过本文学习如何开始编写一个 Roslyn 扩展项目 —— 编译一个类,然后执行其中的一段代码. 本文是 Roslyn 入门系列之一: Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 Roslyn 入门:使用 .NET Core 版本的 Ro…
将一些公用的东西弄到一个类库DM.T4里面,哪个项目需要用到t4生成的话,将DM.T4的生成事件中将dll和ModelAuto.ttinclude复制到需要使用T4的项目的生成目录下,如果这样 copy $(TargetPath) $(SolutionDir)DM.Domain\$(OutDir) copy $(TargetDir)ModelAuto.ttinclude $(SolutionDir)DM.Domain\$(OutDir) 然后在需要就可以添加T4文件了,T4文件头部引入即可,例如…
原本我是使用批处理调用 MSBuild 完成解决方案编译的,新版的 MSBuild 在 Visual Studio 2015 会自带安装. 当然在Visual Studio 2015 中,MSBuild 是一个独立的安装包,可以单独安装,而无须安装 Visual Studio 2015. 刚开始,我在 Windows Server 2008 R2 上使用 MSBuild 编译使用 .NET Framework 4.5.2 版本 开发的项目,也不是那么顺利的. 期间,遇到并且解决了很多问题,依次顺…