开始使用Serene
在 Visual Studio 中使用 Serene 模板创建项目之后,你会看到类似如下图中的解决方案。
解决方案中包含两个项目,Serene1.Script 和 Serene1.Web。(Serenity程序的常见解决方案结构)
Serene1.Web包含我们程序的服务端代码,Serene1.Script包含脚本代码。
脚本项目看了起来像一个普通的 .NET 项目,但是实际上它会使用“Saltarelle Compiler”生成 JavaScript 脚本。(更新:Serenity的开发者貌似对Saltarelle有些疑虑,已经在2.0时转向 TypeScript了,相信这个转换会对我们的开发有所影响。)
Web项目就是一个 ASP.NET MVC 程序。
所有项目都引用了 Serenity 的 NuGet 包,你可以随时通过包管理控制台更新这些包。
Serene第一次运行时会在SQL local db上创建数据库,所以只要按下 F5 一切都准备好了。(使用 Visual Studio 2015 以上版本可能需要注意一下 localdb 的连接字符串是否符合,实例名有所改变,只需要在 web.config 里面修改一下实例名就可以了)
程序启动以后输入 admin 和 serenity 登录。以后你可以通过“Administrator / User Management”页面自己修改密码或者创建新的用户。
这个实例程序包含一个有些历史的著名的 Northwind 数据库,并提供服务和用户界面编辑数据,这些都是通过 Serenity 代码生成器生成的。
添加项目引用
Serene1.Script的生成结果(Serene1.Script.Site.js)会在编译后拷贝到 Serene1.Web/Scripts/site。
当你按下 F5 时在默认情况下,Visual Studio 仅仅编译 Serene1.Web 。
有个Visual Studio的选项控制这个行为, Visual Studio Options -> Projects and Solutions -> Build And Run -> 这里不建议修改。
为了确保在 Web 项目启动时也编译 Script 项目,在 Solution Explorer 中右键点击 Serene1.Web 项目,点击 Build Dependencies -> Project Dependencies and check Serene1.Script 。
数据库连接问题排查
如果你第一次运行 Serene 时遇到类似如下的连接错误:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist. )
这个错误可能是因为你没有安装 SQL Server Local DB 2012 。安装 Visual Studio 2012 和 2013 的时候会同时安装 Loca DB 2012 。
在 Serene1.Web/web.config 中有 “Default” 和 “Northwind” 两个连接字符串:
<connectionStrings>
<add name="Default" connectionString="Data Source=(LocalDb)\v11.0;
Initial Catalog=Serene_Default_v1; Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
(localdb)\v11.0
指向默认的 SQL Server 2012 LocalDB 实例。
如果你没有安装 SQL LocalDB 2012,你可以从这里下载安装:
http://www.microsoft.com/en-us/download/details.aspx?id=29062
与 Visual Studio 2015 一起发布的是 SQL Server 2015 LocalDB。其默认实例名称改成了 MsSqlLocalDB。因此,如果你使用 VS2015,尝试将连接字符串从(localdb)\v11.0
改成 (localdb)\MsSqlLocalDB
。
<add name="Default" connectionString="Data Source=(LocalDb)\MsSqlLocalDB;
Initial Catalog=Serene_Default_v1; Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
如果错误仍然没有排除,以管理员身份打开命令提示符并输入:
> sqllocaldb info
此命令列出 localdb 的实例:
MSSqlLocalDB
test
如果列表中没有 MsSqlLocalDB ,你可以通过命令创建:
> sqllocaldb create MsSqlLocalDB
如果你有另外一个 SQL Server 实例,例如 SQL Express,修改连接字符串:
<add name="Default" connectionString="Data Source=.\SqlExpress;
Initial Catalog=Serene_Default_v1; Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
当然你也可以使用其他版本的 SQL Server,只要在连接字符串中修改一下就可以了。
这些步骤 Default 和 Northwind 两个数据库都要进行修改。Serene 1.6.4.3以上的版本会创建两个数据库。