体验SubSonic

supysonic:Supysonic是Subsonic服务器API的Python实现 超音速 Supysonic是服务器API的Python实现。 当前支持的功能有: 浏览(按文件夹或标签) 流式传输各种音频文件格式 转码 用户或随机播放列表 封面艺术 已加星标的曲目/专辑和评分 扰 点唱机模式 Supysonic当前以Subsonic API的1.10.2版本为目标。 有关更多详细信息,请检查。 文献资料 完整文档可在获得。 快速开始 使用以下命令安装Supysonic,创建admin用户,定义库文件夹,对其进行扫描并开始使用服务。 $ pip install git+https://github.com/spl0k/supysonic.git $ pip insta 立即下载

来自:http://blog.youkuaiyun.com/yuzifen/article/details/6774672

  1. SubSonic简介
  2. SubSonic配置
  3. 利用sonic.exe来生成代码
  4. 通过Substage来生成代码
  5. 简单操作示例

1.SubSonic简介

   一句讲完就是:SubSonic就是一个ORM开源框架。作者是Robe Conery,用c#语言写的. SubSonic遵循了Ruby on Rails的一些准则,比如在建表时一些约定(建议每个表都加CreatedOn[Datetime],CreatedBy[nvarchar],ModifyOn[DateTime],ModifyBy[nvarchar])....,这些详细信息可以去参考Ruby on Rails.

    该ORM框架可以支持多种数据库,包括sql server,mysql,oracle,sqlite...,最新版本是v3.0, PS:我本次测试还是用v2.2

2.SubSonic配置

  我的测试环境:window 7 + sql server 2005 + vs 2010 + subsonic 2.2

  配置之前,先Download Subsonic, 官方网站 MS打不开,我这里公开另一个链接,可以去下载:https://github.com/subsonic/SubSonic-3.0,github这个网站做得很像SVN一样 :)

   先看看Download下来之后的目录:

根目录下包含了主dll,SubCommber目录下包含一个sonic.exe的可执行文件(基于命令行的),用来生成代码的,另一个SubStage目录下包含一个SubStage的UI工具,可以借助UI来生成代码。

    预先准备数据:

       1:我们在利用IDE先新建一个项目,并引用subsonic.dll

       2:建立一个测试数据库(我这里用的是sql server 2005),我只建立一个表来测试

      

  
create table Customer(ID int not null identity ( 1 , 1 ) primary key , [ Name ] nvarchar ( 30 ), [ Sex ] bit )

       3: 为生成代码做准备,第一步在项目中引入dll之后,更改web.config配置,我这里直接贴出来算了,先看第一段,这个主要就是一个section,该section由subsonic.dll的SubSonicSection来处理( PS:SubSonicSection是v2.0之后才有的,以前v1.0的时候命名为:SectionService)

       注意一点:providers中的connnectionStringName必须要与web.config中的connectionstrings中的name保持一致,这样才会根据该连接串指向的数据库来生成对象。

  
< configSections > < section name = " SubSonicService " type = " SubSonic.SubSonicSection,SubSonic " allowDefinition = " MachineToApplication " restartOnExternalChanges = " true " requirePermission = " false " /> </ configSections > < SubSonicService defaultProvider = " SqlDataProvider " > < providers > < add name = " SqlDataProvider " type = " SubSonic.SqlDataProvider,SubSonic " connectionStringName = " StevenConnectString " generatedNamespace = " Steven.DAL " ></ add > </ providers > </ SubSonicService > < connectionStrings > < add name = " StevenConnectString " connectionString = " server=steven;initial catalog=steven;user id=sa;password=123; " providerName = " System.Data.SqlClient " /> </ connectionStrings >

    再看看第二段配置,在说这个配置之前,先说下.abp , SubSonic就是根据该abp文件来生成数据库操作对象的,该abp文件中其实也就是一个基本文本的格式,我只知道它的二种用法:

       a: * 表示生成指定数据库中所有table

       b: 若不需要生成所有table,可以列出要生成的table名称(每一行一个table name)

   

  
< compilation debug = " true " targetFramework = " 4.0 " > < buildProviders > < add extension = " .abp " type = " SubSonic.BuildProvider,SubSonic " /> </ buildProviders > </ compilation >
    这个决定了编译器在build的时候,对.abp文件的一个处理方式,具体工作都扔给SubSonic.BuildProvider去做, 其实BuildProvider根据我们配置的 .abp文件来生成代码.

    讲了这么多的 .abp,先看一图

  

  这个abp文件很简单,内容就一个 ”*“ 号,用来生成所有操纵表的对象,其实我也就一个Customer表, ps:  该abp文件放到app_data下正好利用了编译机制(编译器在build时会对该文件夹进行build)这样才会生成代码.

3: 利用sonic.exe来生成代码

  有这一步的原因是因为我在做build的时候遇到一些问题,代码没有生成成功(官方给出的解释是Trust Level原因,Subsonic必须在一个full trust宿主环境中,我试着修改trust level,

包括修改web.config, 还有利用.net framework configuation工具来修改....,到现在还没弄出来,有会的朋友知会我一声 :) 

  所以我干脆用sonic.exe(上面有提到)命令来工具来生成代码, vs ide工具有一个功能就是可以把外部工具给加载到“工具”菜单中来,并可以为这些外部工具提供一些输入参数,看图:

    通过 "工具->外部工具..." 打开.

添加成功之后,可以看得,“工具”菜单下多了一个menu item,如下图:

 直接执行sonic.exe命令,

这里一个参数 generate /out 表示生成代码,有关sonic.exe命令的其它参数可以直接运行sonic.exe 来查看。

确定之后,会根据.abp文件中包含的内容来生成DTO对象,PS:注意一点就是生成之后,在vs solution中是看不到的,必须要include进来才行。

4: 通过Substage来生成代码

  这个GUI工具生成代码更强大,所以我单独拿出一节来介绍,先看看它的整体UI,

   一句话简单介绍:

      Substage根据project中的provide来生成代码,而provider又必须利用数据库连接串来找指定的数据库

    生成代码步骤:

    a: firstly, 先new project

    b: 创建一个连接串,如下图:

  

    c: 建立一个provider,并利用b中连接串,如下图:

   

   d:最后就是生成代码了,点击toolbar中的generate code来生成,如图

 

        可以看出来,除了根据表名生成实体外,还额外多了几个类,SPs.cs是处理存储过程的,Customer是操作Customer表的,该类中还帮我们生成一个CustomerCollection集合类,这个功能相对于其它的ORM框架是没有的,:),  AllStruct.cs包含全部表结构. 具体详细内容需要自己慢慢去体会。

    接下来看看这个工具最特殊的地方,接着生成代码之后,我们能过GUI工具Invoke一下我们的数据库结构,使所有表什么的...能够在这个左边列表菜单中显示出来,如下操作:

  有了表之后,该工具提供了一个叫scaffolds(支架)的功能,我们可以通过该功能可以直接对该表进行CURD操作,来见证一下:

 ps:  操作之前,需要先选择到“表”,再点击 Scaffolds tab 来看看, 它自己帮我们生成UI,我们可以直接利用UI来添加一个数据, 当然添加完成之后,还会一个展示数据的list界面,

    这个不错吧,除了这些之后,还可以用把该工具当MSDN一样使用,通过Api Reference来查看

    还有其它一些功能,就不一一介绍了,需要自己去发现。

5:简单操作示例

  所有工作进行完之后, 我写了一个非常简单的示例来验证一下它的正确性,代码很简单

  
protected void Page_Load( object sender, EventArgs e) { if ( ! Page.IsPostBack) { BindData(); } } private void BindData() { GridView1.DataSource = Customer.FetchAll(); GridView1.DataBind(); } protected void btnAdd_Click( object sender, EventArgs e) { string custName = TextBox1.Text; Customer model = new Customer(); model.Name = custName; model.Sex = chkSex.Checked; model.Save(); BindData(); }

  我通过Save()方法新加一个customer,然后FetchAll()取所有数据进行展示.非常简单,当然还一些其它方法如FetchByParameter,Delete,Select......这里不都介绍了,这篇文章主要目的是体验,:)

   总结一下:Sobsonic只是众多ORM框架中r的一个,具体应用可以根据项目需要而定,我在现在的项目中暂时还没有发现Subsonic有很大的性能问题,相于其它ORM,我更喜欢的它的简单,而且是开源的 :),有兴趣的朋友可以多交流交流!



SubSonic-3.0-master 此为开发工具,非视频软件 SubSonic就是一个ORM开源框架。作者是Robe Conery,用c#语言写的. SubSonic遵循了Ruby on Rails的一些准则,比如在建表时一些约定(建议每个表都加CreatedOn[Datetime],CreatedBy[nvarchar],ModifyOn[DateTime],ModifyBy[nvarchar])....,这些详细信息可以去参考Ruby on Rails. 立即下载

相关推荐

subplayer:与Subsonic后端兼容的音乐播放器前端

子玩家 这是一个前端应用程序,旨在作为一个简单,功能强大且外观漂亮的Web播放器,与Subsonic后端一起使用(已通过和)。 现场演示: 特征 播放和寻找音频 查看/创建/编辑播放列表 添加/删除已加星标的歌曲 搜索艺术家/专辑/歌曲 按艺术家,专辑和流派浏览音乐(仅与v1.13.0兼容) 星标/星标专辑 涂鸦 从队列添加/删除 主题化 建立自定义主题 默认情况下,唯一可用的主题是蓝色,橙色,绿色和灰色(均在亮和暗模式下)。 如果要创建自定义主题,则可以使用自己的对象编辑/themes.config.js ,以更改Rsuite的外观。 每个主题都必须以“浅”或“暗”开头,以使编译器知道要加载哪些设置。 要查看可以为自定义定义的变量列表,请访问。 注意: Rsuite提供的用于创建自定义主题的工具并非旨在与create-react-app (这是该项目的构建方式),因此此处的实现

音乐流媒体服务器Gonic

Gonic 是一款音乐流媒体服务器,兼容 subsonic server API。

wbsu2004的博客 3420

SubSharper:用于 Subsonic API 的 C# Windows Phone 8.1 包装器

次锐器 周末黑客日项目用于亚音速音乐服务的 C# Windows Phone 8.1 Wrapper。 每个对 Subsonic API 的调用都包含在一个 SubSonic Response 中。 该库按预期工作,尽管它背后的五彩纸屑代码。

【亲测免费】 探秘Subsonic: 个人音乐云服务的绝佳选择

是一个开放源代码的音乐服务器和流媒体应用,它允许你在任何地方访问、播放和管理你的个人音乐库。这个项目以其强大的功能、跨平台的兼容性和灵活的自定义性赢得了全球用户的喜爱。 ## 技术分析 ### 架构设计 Subsonic 基于Java开发,这意味着它可以轻松地在多种操作系统上运行,包括Windows, macOS, Linux等。其核心架构采用服务器-客户端模式,用户可以通过Web界面或者各...

gitblog_00012的博客 3816

SubSonic教程(.txt+.pdf)

.net开发过程用使用的工具 操纵数据库

从Xilinx FPGA到MIPI DSI LCD屏:手撸代码的实战经验分享

本文分享了使用Xilinx FPGA驱动MIPI DSI LCD屏的实战经验。作者从依赖官方IP核失败,到与底层D-PHY IP缠斗,最终通过手撸代码,直接配置GTY收发器原语并实现完整的D-PHY与DSI协议栈,成功点亮屏幕。文章详细剖析了协议细节、Vivado工具链的调试技巧与避坑指南,为FPGA工程师提供了从理论到实践的宝贵参考。

weixin_29188997的博客 399

Gonic:开源Subsonic音乐服务器API实现

Gonic 是一个免费的开源音乐服务器项目,实现了 Subsonic 服务器 API,支持多种客户端。它不仅提供了完整的音乐浏览功能,还支持实时音频转码、缓存、多用户管理以及 Last.fm 和 ListenBrainz 的 scrobbling 功能。Gonic 是用 Go 语言编写的,因此它轻量级且非常适合在 Raspberry Pi 等设备上运行。 ## 项目技术分析 Gonic 的核心...

gitblog_00674的博客 1033

Claude Code vs Codex

Claude Code 提供了一个生产就绪(production-ready)的实现,包含良好的错误处理、优雅的关闭逻辑、详细注释和文档,以及内置测试。Claude Code 输出了一个可运行的 Next.js + TypeScript 前端,但错过了一些设计里的黄色主题元素;Codex 则生成自己的版本,没有导出设计中的图片,也没严格遵照设计主题。Codex 完成同样功能,但更简洁直接,文档和注释少一些但功能达标。任务都用同样的提示,使用 TypeScript 实现,并在一天内完成。

weixin_49869937的博客 2382

用 ag-kit 仓库的 CLI 工具模板搭建健壮的 Node.js 命令行工具:Commander.js 与交互式提示的完整实践

> 本篇技术指南以 [.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md](https://link.gitcode.com/i/60439f04a7be29d8269e16792d1d61af) 为骨架,围绕其提供的 Node.js CLI 脚手架规范(技术栈、目录结构、设计原则、关键组件与最佳实践)逐条展开,并全程以本仓库 [cl

gitblog_00782的博客 898

告别重启烦恼:用WSL2让Docker和VMware在Win10上真正共存

本文详细介绍了如何在Windows 10系统上,借助WSL2实现Docker与VMware的真正共存,彻底告别以往需要反复重启切换的烦恼。通过启用Hyper-V兼容模式并进行正确配置,开发者无需重启即可同时高效运行容器和虚拟机,显著提升开发与测试工作流的连续性和效率。

salt9的博客 987

大数据分析案例-基于决策树算法构建世界杯比赛预测模型

本项目旨在分析往届世界杯比赛数据,找出规律,最后使用决策树算法构建世界杯比赛预测模型,给出两个球队即可预测胜率,可以给爱看球的小伙伴提供一个参考。本次实验我们使用了2018年及其之前的世界杯比赛数据,通过建立决策树模型,模型准确率为82%,接着我们使用该模型预测了2022年世界杯的5场半决赛及决赛,模型准确率也是接近80%的,说明模型效果还是很不错的。心得与体会:通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。

m0_64336780的博客 1万+

Gonic多客户端兼容测试:10款流行Subsonic应用深度体验

Gonic是一款功能强大的免费开源音乐流媒体服务器,完全实现了Subsonic服务器API,让你能够轻松搭建属于自己的音乐库并通过各种客户端设备访问。本文将对10款流行的Subsonic客户端应用进行深度测试,帮助你找到最适合自己的音乐播放解决方案。 ## 什么是Gonic与Subsonic API? Gonic作为Subsonic服务器API的实现,允许用户通过各种兼容Subsonic协议的

gitblog_00026的博客 825

「UG/NX」BlockUI 控件集合目录大纲

Block UI Styler 模块设计对话框是官方推荐使用的对话框制作方法,它能够与NX自身风格相统一,在实际开发中经常使用。文字内容包含:NX所有控件介绍的链接、内部控件调用的基础介绍、官方案例查看路径、控件的特殊用法篇链接、番外篇链接。

何曾参静谧的博客 2670

【推荐】 体验SubSonic

SubSonic简介SubSonic配置利用sonic.exe来生成代码通过Substage来生成代码简单操作示例1.SubSonic简介 一句讲完就是:SubSonic就是一个ORM开源框架。作者是Robe Conery,用c#语言写的. SubSonic遵循了Ruby on Rails的一些准则,比如在建表时一些约定(建议每个表都加 CreatedOn[Datet...

weixin_34273481的博客 127

【人工智能之深度学习】23. 推荐系统升级实战:LightGCN重构协同过滤全流程(Amazon-Beauty数据集+完整代码)

摘要:传统协同过滤(如矩阵分解)在电商推荐中存在三大痛点:忽略用户-物品高阶关联、交互数据稀疏导致冷启动、特征工程依赖人工设计。本文基于Amazon-Beauty数据集(含20万+用户交互),用LightGCN图神经网络重构推荐系统:1)构建用户-物品二部图,通过3层图卷积捕捉“用户→物品→用户”的多跳关联;2)采用BPR负采样损失优化嵌入学习,缓解数据稀疏;3)端到端输出用户/物品嵌入,无需人工特征。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1491

电机瞬态分析基础(2):理想电机的基本假设和正方向规定

电机瞬态分析基础之理想电机假设条件和正方向规定

weixin_45670943的博客 1144

DSub:Android平台上最佳的Subsonic客户端体验

DSub是一款专为Android设备设计的开源Subsonic客户端,它让您能够在手机上随时随地访问个人音乐库。作为Subsonic生态系统中功能最全面的移动应用,DSub提供了无缝的音乐流媒体体验和强大的离线播放功能。 ## 🎵 核心功能特性 DSub支持所有Subsonic服务器的标准功能,包括音乐流媒体播放、离线缓存、播放列表同步和智能搜索。应用采用现代化的Material Desig

gitblog_00219的博客 847

Unity如何实现3D物体拆解组装

最近有一个需求,是做一个发动机的拆卸和安装功能,其实是一个很简单的功能,但是其中有一个点我觉的非常有意思,就是拖拽组装时,物体如何精准拖到目标位置,思路有了,但是我一直找不到实现方式,早晨刷牙时无意间想到了叉乘,我才有了解决方案。就凭这一次的灵光乍现,也很有必要写篇博客来记录一下。首先,我们先来看下我们要实现的效果,就是对一个发动机(任意多组件物体,如:车)的360°预览查看,手动拖拽拆解,手动拖拽组装。360°旋转视角远近拉伸视角点击拖拽拆卸拖拽组装。

TxNet 1万+

开源音乐神器Tempo:打造极致Subsonic移动播放体验

Tempo是一款专为Subsonic打造的开源轻量级音乐客户端,采用原生Android设计与开发,为音乐爱好者提供流畅、高效的移动播放体验。无论是本地音乐管理还是远程服务器流媒体,Tempo都能轻松胜任,让你随时随地享受高品质音乐。 ## 🎵 简洁直观的用户界面 Tempo采用现代化设计理念,界面简洁大方且功能完备。主界面分为"Music"和"Radio"两大标签,底部导航栏提供"Home"

gitblog_00298的博客 465

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

3大核心技术解密:Sonixd如何重塑Subsonic/Jellyfin桌面音乐播放体验

Sonixd作为一款专业的Subsonic/Jellyfin兼容桌面音乐播放器,通过创新的HTML5音频技术、智能交叉淡入淡出和无缝播放功能,为音乐爱好者提供了前所未有的流畅聆听体验。这款开源播放器不仅解决了传统媒体客户端在**音乐库管理**、**播放流畅度**和**用户体验**方面的痛点,更通过现代化的界面设计和强大的功能集成,成为连接个人音乐服务器与桌面播放的完美桥梁。 ## 价值主张:为什

gitblog_00557的博客 409

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MusicBee SubSonic 插件:让音乐播放更便捷

MusicBee SubSonic 插件:让音乐播放更便捷 MusicBee SubSonic 是一个开源项目,旨在将流行的音乐播放软件 MusicBee 转变为一个 Subsonic/LibreSonic 音乐流媒体服务器播放器。该项目主要使用 C# 编程语言开发。 项目基础介绍 该项目允许用户通过 MusicBee 软件访问 Subsonic/LibreSonic 服务器上的音乐库。Subso...

gitblog_00728的博客 906

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Cinetry:全能音视频播放器,多源聚合打造纯本地影音体验 Jellyfin、Emby、CMS、WebDAV、IPTV、Alist、OpenList、Subsonic、Audiobookshelf

支持界面、播放设置以及数据源优先级等配置。对于影音爱好者来说,真正麻烦的往往不是播放视频,而是数据源越来越多、服务器越来越多、客户端越来越多。Jellyfin 有 Jellyfin 的客户端,Emby 有 Emby 的客户端,WebDAV 又是另一套访问方式,IPTV 还有自己的播放软件。当影音服务越来越多之后,管理成本也会逐渐增加。一个客户端,多种数据源,统一管理,聚合搜索。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 877
上一篇: C# 用 iTextSharp 将 PDF 转成文本
下一篇: .Net的 Reactive Extension (Rx)
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值