那么,Sofire.v1.0包含什么内容?
1、数据库访问(Sofire.Data)
2、快速动态反射(Sofire.Dynamic)
3、高效简短的二进制序列化(Sofire.Serialization.BinarySuite)
4、远程对象模式(Sofire.DataComm.Remote)
5、安全高效Socket(Sofire.DataComm.Net)
6、面向切面(Sofire.AOP)
7、等。由于Sofire v1.0 第一期移植,故而功能暂时尚未全部移植完成。
整个示例非常简单,但却包含了主要四大模块:Socket、Remoting、动态反射和序列化。
namespace RemotingInterfaces
{
public interface ITest
{
double Add(double x, double y);
}
}
using RemotingInterfaces;
namespace SofireDemo1.Test
{
public class Tester : ITest
{
#region ITest 成员
public double Add(double x, double y)
{
return x + y;
}
#endregion
}
}
<?xml version="1.0" encoding="utf-8" ?>
<Application Name="服务端"
ReturnsError="True">
<!-- tcp://localhost:8001/One/HelloService.v -->
<Host Name="One"
ReturnsError="True"
Port="8081">
<Service Name="HelloService"
ReturnsError="True"
InstanceMode="Default"
Contract="RemotingInterfaces.ITest, RemotingInterfaces"
Type="SofireDemo1.Test.Tester, SofireDemo1"/>
</Host>
<!-- tcp://localhost:8001/Tow/HelloService.v -->
<Host Name="Tow"
ReturnsError="True"
Port="8082">
<Service Name="HelloService"
ReturnsError="True"
InstanceMode="Default"
Contract="RemotingInterfaces.ITest, RemotingInterfaces"
Type="SofireDemo1.Test.Tester, SofireDemo1"/>
</Host>
</Application>
public static Result Start()
{
RemotingApplication.Initialization("DefaultSetting.xml");
RemotingApplication.ApplicationStateChanged += new CommunicationStateEventHandler(RemotingApplication_ApplicationStateChanged);
RemotingApplication.ServerStateChanged += new CommunicationStateEventHandler(RemotingApplication_ServerStateChanged);
RemotingApplication.ClientJoined += new EventHandler(RemotingApplication_ClientJoined);
RemotingApplication.ClientQuitted += new EventHandler(RemotingApplication_ClientQuitted);
RemotingApplication.ClientInvoking += new EventHandler(RemotingApplication_ClientInvoking);
RemotingApplication.ClientInvoked += new ClientInvokedEventHandler(RemotingApplication_ClientInvoked);
RemotingApplication.ClientFailed += new ClientFailedEventHandler(RemotingApplication_ClientFailed);
return RemotingApplication.Open();
}
public MainPage()
{
InitializeComponent();
ProxyFactory.Register("Test", "tcp://localhost:8081/One/HelloService.v", "testSL", "123456");
}
private void button1_Click(object sender, RoutedEventArgs e)
{
var i = ProxyFactory.Create();
MessageBox.Show(i.Add(double.Parse(textBox1.Text), double.Parse(textBox2.Text)).ToString());
ProxyFactory.Destroy(i);
}
可以看得出来,这个示例十分简单易用。它实用任何 .NET 的开发方式,无论是你 WinForm 还是 WebForm 开发,Sofire 将会最大程度的减少你的开发周期!
如果博友支持力度足够,考虑将其发布到开源网站进行分享(点击以下图片进行下载源码)。
闭锁式开发是一种十分令人头痛的方式。从个人长远的利益来说,想要这一套组件更加优秀,就需要无数的朋友共同努力。任何一套开发套件,没有经历洗礼和应用,是无法体现其深在的价值,更无法令其更进一层。
开源,不是为了别人,是为了自己。如果您支持这套组件,请不要吝啬您的推荐。
旧版的效率(参考http://www.cnblogs.com/sofire/archive/2011/04/06/2000277.html)
这是新版的效率: