Song.WebSite
起始项目,系统的所有前端页面都在这里,一切从这里开始执行;
第一次打开解决方案时,也许它不是起始项目,需要手工设置一下;在该项目名称上点鼠标右键,选择“设置为启动项目”
Song.ViewData
前端接口,前端页面需要的数据,都是从这里获取;基于RESTFUL API接口规范
Song.Entities
数据实体,系统采用了ORM框架,实体对应数据库表结构;
这里的代码全部由代码生成器生成,非常不建议手工更改;代码生成器(WeiSha.Data.Generete.exe)可以在"/Sourcecode/Lib"文件夹获取到。
Song.ServiceInterfaces
业务层接口,系统由之前的三层架构升级而来,采用spring.net的IOC模块实现表现层与业务层的低耦合;
调用接口的方法示例:Business.Do().AccountsSingle(id); 其中IAccounts中接口名称,AccountsSingle为方法名;
在调用接口前,需要在web.config中的“configuration/spring/objects”节点配置 <object id="IAccounts" type="Song.ServiceImpls.AccountsCom,Song.ServiceImpls" />
Song.ServiceImpls
业务层接口的实现
在Song.WebSite项目中的db.config填写,connectionString属性为数据库链接,可根据文档内提示填写;providerName属性为适配器名称,当前采用的是SqlServer的适配器;
其它适配器
Sqlserver:WeiSha.Data.SqlServer9.SqlServer9Provider
Mysql:WeiSha.Data.MySql.MySqlProvider
Oracle:WeiSha.Data.Oracle.OracleProvider
PostgreSQ:WeiSha.Data.PostgreSQL.PostgreSQLProvider, WeiSha.Data.PostgreSQL
所有前端所需接口都来自Song.ViewData项目的Methods命名空间下的对象;通过~/help/api/页面查询和调试;
接口的说明信息来自于Song.ViewData项目代码中的类和方法的注释;
双击右侧上方的接口方法名称,可以复制接口到粘贴板;
出于安全考虑,~/help/api/页面只能在本机查询,供开发时使用
通过~/help/datas/页面查询数据库表结构和字段的信息,包括表的说明与注释,字段的类型、长度、关联表、说明与注释
双击表名或字段即可复制到粘贴板,方便开发时使用;双击备注和说明可以进行编辑(必须在超级管理登录状态);
出于安全考虑,~/help/datas/页面只能在本机查询,供开发时使用
由于系统是自主开发,从早期1.0版本的三层架构、WebForm视图方式升级而来,为了尽可能复用原有代码,架构层面的优化也自主编写了,在开发方式上区别于其它的通用框架。例如我们虽然用了MVC,却摘除了Razor模板引擎;前端大量采用js,也用了Vue.js,却没有用npm的方式,仍然用页面引用的方式。
在Song.ViewData项目的Methods命名空间下的创建类,且继承IViewAPI接口,该接口没有任何方法,仅作为标识;也可以选择继承抽象类ViewMethod,该类用于接收客户端传递的数据。示例:
public class Account : ViewMethod, IViewAPI
接口名称需采用不同字符 。在C#中是大小写敏感的,例如 TestApi和TestAPI是两个不同的名称,但是在前端调用接口时,url路径是大小写不敏感的,会导致系统无法区分是哪个接口,所以在编写接口时,不同接口请采用不同的单词,而不是仅靠大小写区分。
同名接口的形参名称要不同 。例如在C#代码中 func(int a) 和func(DateTime a) 是两个方法,但由于js的类型没有C#丰富,且在传递过程中Json是以字符串形式传送到服务器,然后再解析为C#所需的值和类型,上述两个方法是无法区分的,所以要通过不同的形参名称区分,例如 func(int a) 和func(DateTime d) ,前者形参名称是a,后者形参名称为d,就可以区分了。简单来说,接口方法名称可以相同,但相同名称下形参名称不可以相同。
视图文件为*.html,全部在Song.WebSite项目的Templates文件夹。该文件夹下第一级文件夹为视图的路径,例如web、mobi等,第二级文件夹为视图的模板库名称,机构管理员可以在“界面风格”的管理菜单中选择不同的模板库作为当前界面风格;其中_Public为公共模板库,放置一些多个模板库公用的内容。一般Default是默认模板库,Default文件夹下即是视图文件,可以在这里新建html页。
例如,地址栏路径/web/course/detail.132,视图文件在/Templates/Web/Default/文件夹下的course/detail.html文件;点后面的是参数(一般是id),和视图无关。在js文件中取值时,$api.dot(),可以获取到上例中的132
例如,在/Templates/Web/Default/文件夹下创建test.html文件,则通过/web/test访问;只要有视图文件,即可通过路由访问。
更多说明信息请进入 Song.WebSite 项目源码路径下查看 readme.rd 相应信息。
在数据库新增或修改表和字段后,需要用代码生成器(WeiSha.Data.Generete.exe)重新生成 Song.Entities 项目的实体类。
代码生成器(WeiSha.Data.Generete.exe)可以在"/Sourcecode/Lib"文件夹获取到。
生成步骤:1、链接数据库;2、选择要生成的表;3、生成接口、4、生成实体;5、生成文件(路径选择Song.Entities 项目的文件夹)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。