# Tnelab **Repository Path**: esrin/tnelab ## Basic Information - **Project Name**: Tnelab - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2021-06-23 - **Last Updated**: 2022-05-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tnelab #### 作者:宝宝抱抱(QQ:esrin@qq.com) #### 介绍 个人代码仓库,主要组成:基于T4的代码生成器VS插件,miniblink的简单封装,miniblink的离线安装器,WPF华丽UI,基于Html5为UI的WebApp框架(Edge和miniblink随意切换) miniblink: https://miniblink.net/ #### 开箱即用 * 本项目需求VS2022 * 1.切换为debug模式,可进行调试 * 2.设置启动项目: Setup\SetupByMiniBlinkDemo(MB离线安装程序DEMO) UI\Tnelab.WpfDemo(华丽UI) WebApp\Tnelab.WebAppEdgeTest(Edge为核心的WebApp) WebApp\Tnelab.WebAppMiniblinkTest(MB为核心的WebApp) * 3.编译解决方案并运行 #### miniblink封装特性 * 1.TS(JS)<=>C#无缝集成,写一份c#可在TS(JS)代码中无缝调用; * 2.提供VS2022相关插件用于代码生成,让您只专注代码的书写; * 3.js本机交互采用websocket U8intArray,非字符串模式 * 4.调用样例: c#: public class TestService : ITestService public byte[] ActionTest(Func func,byte[] theBytes) { var msg = func("你好"); return theBytes; } js: let testService = new Tnelab.MBWpfDemo.Service.TestService(); let r = await testService.ActionTest((msg) => msg, bytes); #### 代码生成器的使用 * 1.代码生成器,可以从已有的.cs文件,生成.cs,.ts和.js文件,还可以从.cshtml生成.html文件 * 2.确保已经安装TnelabAutoCode.vsix ##### 从.cs生成 * 1.在.cs文件文件头输入(每行一个模板,知道间断): * //tne://exec_t4(../../Tnelab.SharedProject/to_ts.tt)--表示调用to_ts.tt模板 * //tne://exec_t4(../../Tnelab.SharedProject/to_interface.tt)--表示调用to_interface.tt模板 * 2.疯狂按ctrl+s(自动执行每行的t4模板) * 1)目前已有模板(参看Tnelab.SharedProject) * to_interface.tt---自动接口化[.cs]里面的顶层类 * to_ts.tt---自动TypeScript化[.cs]里面的顶层类 * //tne://exec_t4(../../Tnelab.SharedProject/to_ts.tt?参数名=参数),可向tt模板传递参数,见SetupByMiniBlinkDemo ##### 从.cshtml生成.html文件(注意不要把布局文件拿去生成,最好的做法是,主内容文件拿去生成) * 请修改Tnelab.SharedProject\T4\HtmlBuilder.tt的程序集引用部分,修改为正确的路径 * 1.文件第一行输入:@*tne://exec_t4(../../Tnelab.SharedProject/to_html.tt)*@(请确保路径正确) * 2.疯狂按ctrl+s #### 为项目提供TypeScript编译服务 * 1.为项目添加nuget包:Microsoft.TypeScript.MSBuild * 2.设置好项目属性中的TypeScript标签页面后 * 3.双击打开项目文件,添加一份缺失的typescript的debug版本或者Release版本配置 * 4.并把项目目标设置为x86