silverlight与CSLA的快速应用09-来个silverlight项目先试试
服务器端逻辑 客户端逻辑 都准备好了
现在在解决方案中添加个silverlight项目来试试调用
在解决方案"akini"中新建一个"silverlight 应用程序"项目 名称叫"akini.sl"
在刚才添加的项目"akini.sl"中添加一个名为"ServiceReferences.ClientConfig"的xml文件,其中代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version= "1.0" ?> <configuration> <system.serviceModel> <bindings> <basicHttpBinding> <binding name= "basicHttpBindingConfig" maxBufferSize= "2147483647" maxReceivedMessageSize= "2147483647" > </binding> </basicHttpBinding> </bindings> <client> <endpoint address= "http://localhost:1660/WcfPortal.svc" binding= "basicHttpBinding" contract= "WcfPortal.IWcfPortal" bindingConfiguration= "basicHttpBindingConfig" name= "basicHttpBindingIWcfPortal" /> </client> </system.serviceModel> </configuration> |
其中http://localhost:1660的端口号 按照项目"akini.WcfService"来设置
查看项目"akini.WcfService"的属性 点击"web"页 选择"特定端口" 并输入端口号
再在项目"akini.WcfService"中添加名为"WcfPortal.svc"的svc文件,其代码如下:
1 | <% @ServiceHost Service= "Csla.Server.Hosts.Silverlight.WcfPortal" %> |
再在添加名为"clientaccesspolicy.xml"的xml文件,其代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version= "1.0" encoding= "utf-8" ?> <access-policy> <cross-domain-access> <policy> <allow- from http-request-headers= "*" > <domain uri= "http://*" /> <domain uri= "https://*" /> </allow- from > <grant-to> <resource path= "/" include-subpaths= "true" /> </grant-to> </policy> </cross-domain-access> </access-policy> |
再打开"Web.config"文件 添加如下代码 其中数据库连接 请修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?xml version= "1.0" ?> <configuration> <system.web> <compilation debug= "true" targetFramework= "4.0" /> </system.web> <connectionStrings> <add name= "akiniEntities_SSO" connectionString= "metadata=res://*/SSO.SSO.csdl|res://*/SSO.SSO.ssdl|res://*/SSO.SSO.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\sqlexpress;Initial Catalog=" D:\DOCUMENTS AND SETTINGS\XUL\MY DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\AKINI\AKINI.DATA\AKINI.MDF ";Integrated Security=True;MultipleActiveResultSets=True'" providerName= "System.Data.EntityClient" /> <add name= "akiniEntities_HR" connectionString= "metadata=res://*/HR.HR.csdl|res://*/HR.HR.ssdl|res://*/HR.HR.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\sqlexpress;Initial Catalog=" D:\DOCUMENTS AND SETTINGS\XUL\MY DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\AKINI\AKINI.DATA\AKINI.MDF ";Integrated Security=True;MultipleActiveResultSets=True'" providerName= "System.Data.EntityClient" /> </connectionStrings> <system.serviceModel> <bindings> <basicHttpBinding> <binding name= "BinaryBinding_IWcfPortal" maxBufferSize= "2147483647" maxReceivedMessageSize= "2147483647" > </binding> </basicHttpBinding> </bindings> <services> <service name= "Csla.Server.Hosts.Silverlight.WcfPortal" behaviorConfiguration= "WcfPortalBehavior" > <endpoint address= "" binding= "basicHttpBinding" contract= "Csla.Server.Hosts.Silverlight.IWcfPortal" bindingConfiguration= "BinaryBinding_IWcfPortal" > <identity> <dns value= "localhost" /> </identity> </endpoint> <endpoint address= "mex" binding= "mexHttpBinding" contract= "IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name= "WcfPortalBehavior" > <serviceMetadata httpGetEnabled= "true" /> <serviceDebug includeExceptionDetailInFaults= "true" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration> |
现在我们在UI上添加些控件来展示数据:
打开项目"akini.sl"的"MainPage.xaml"文件,添加几个简单的空间 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <UserControl x:Class= "akini.sl.MainPage" xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d= "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc= "http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable= "d" d:DesignHeight= "300" d:DesignWidth= "400" > <Grid x:Name= "LayoutRoot" Background= "White" > <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <ListBox Height= "300" HorizontalAlignment= "Right" Name= "lstbPst" VerticalAlignment= "Center" Width= "150" Grid.Column= "0" /> <Button Content= "取Pst数据" Grid.Column= "1" Height= "23" HorizontalAlignment= "Left" Name= "btnGetData" VerticalAlignment= "Center" Width= "75" Click= "btnGetData_Click" /> </Grid> </UserControl> |
另外在cs代码中添加"btnGetData_Click"事件代码,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | private void btnGetData_Click( object sender, RoutedEventArgs e) { try { lstbPst.Items.Clear(); sso_pstlist pstlist; sso_pstlist.GetAll((o, ex) => { if (ex.Error != null ) MessageBox.Show(ex.Error.ToString(), "Data error" , MessageBoxButton.OK); else { pstlist = ex.Object; foreach (sso_pst item in pstlist) { lstbPst.Items.Add(item.pst); } } }); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } |
在解决方案改成多启动 "akini.sl"和"akini.WcfService"为启动 OK 开始运行
在调试之前 先向sso_pst表中添加2条数据来测试
本题系列如下:
silverlight与CSLA的快速应用01-序
silverlight与CSLA的快速应用02-新建解决方案
silverlight与CSLA的快速应用03-各项目间的关系
silverlight与CSLA的快速应用04-数据库设计
silverlight与CSLA的快速应用05-安装CslaExtension
silverlight与CSLA的快速应用06-创建实体模型
silverlight与CSLA的快速应用07-利用CslaExtension自动生成CSLA代码
silverlight与CSLA的快速应用08-客户端的CSLA代码
silverlight与CSLA的快速应用09-来个silverlight项目先试试
已发布此系列讲座的演示源码 有兴趣的TX 请下载
已修改成为使用mssql 方便大家调试
如有疑问或者提问 请留言 或者加入QQ群:73585592
本文作者:Ak.Ini
本文链接:https://www.cnblogs.com/akini/archive/2011/01/17/1935304.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步