随笔-48  评论-218  文章-0  trackbacks-8
  2008年6月28日
轻松搭建免费论坛BBS-开源ASP.NET论坛EntLib.com的安装配置
 
 
开源ASP.NET论坛EntLib.com /YAF Forum 是基于.NET Framework 2.0/3.0/3.5和SQL Server 构建的免费开源论坛。EntLib.com 开源论坛小组(http://forum.entlib.com )在 YAF 英文开源论坛的基础上,进行了汉化、更新、增加了部分新的功能。
 
下面详细演示如何轻松搭建免费论坛:
 
1. 首先下载EntLib.com 开源论坛源代码。
发布EntLib.com / YAF 开源论坛 V3.0 (ASP.NET/C#) -- 提供代码下载!
http://forum.entlib.com/Default.aspx?g=posts&t=126
目前提供的最新版本为v3.0,包含新功能的新版本会不断推出,欢迎反馈你的建议。
 
2. 下载EntLib.com 开源论坛数据库。
EntLib.com Forum /YAF 开源ASP.NET/C#论坛--数据库下载!
http://forum.entlib.com/Default.aspx?g=posts&t=61
提供的数据库下载文件 – 为SQL SERVER 2005 的MDF和日志文件,只需要在SQL SERVER 2005上附加(attach)下载的数据库即可。
管理员帐号:admin / entlib.com
 
3. 修改EntLib.com 开源论坛源代码中web.config 配置文件。
EntLib.com开源论坛v3.0 源代码项目为Visual Studio 2005 Web application,您可以通过Visual Studio 2005 打开源项目,进行编辑与编译。(http://forum.entlib.com 开源论坛小组注: EntLib.com 开源论坛的后续版本升级到.Net Framework 3.5 平台,并且源项目为Visual Studio 2008 Web Application。)
<connstr>user id=USERID;pwd=PASSWORD;data source=(local);initial catalog=EntLib_BBS;timeout=90</connstr>
 
OK. 现在您可以编译EntLib.com 论坛项目了。
如下是论坛项目的演示界面:


 
如果您对EntLib.com 开源论坛有任何疑问,欢迎到http://forum.entlib.com 进行咨询,有很多爱好者会给予帮助。
 
在此感谢YAF开源论坛开发人员提供的优秀的、开源论坛系统。
 

posted @ 2008-08-18 21:07 EntLib 阅读(471) | 评论 (0)编辑
轻松搭建博客平台-开源ASP.NET 博客Subtext 的安装
 
 
开源ASP.NET博客Subtext 目前发布了最新版2.0,是基于.Net Framework 2.0/3.0的开源ASP.NET 博客系统。本文简要演示如何轻松搭建自己的博客平台(http://forum.EntLib.com 开源小组编写)。
 
1.首先下载Subtext 开源代码v2.0。
下载地址:
http://sourceforge.net/project/showfiles.php?group_id=137896/&abmode=1
Subtext v2.0 发布时间 2008-08-09。
 
2.展开zip压缩文件。
 
3.假定你已经在本地安装了MS SQL SERVER 2005数据库系统。这里只需要加载(attach)Subtext.Web项目中App_data目录下的SubtextData数据库文件。
 
4.打开Subtext 项目文件,修改Subtext.Web项目中web.config 配置文件:<connectionStrings>配置节,正确设置数据库连接。
 
现在,你可以编译Subtext 整个solution 开源代码了。
 
5.访问Install目录,本示例URL为:http://localhost:2732/install/,其中端口2732根据实际情况会有所不同。安装配置界面如下:




在本页面配置 Host Administrator 信息,Host Administrator 负责维护Subtext 的安装。Host Administrator 不是任何特定Blog 的管理员,但是可以增加、编辑和删除Blog和用户。Host Administrator 不能删除。
 
下一步,进入如下配置界面:


如果你仅仅配置一个Blog,也就是说将该Subtext 配置为支持仅一个Blog,你可以点击上述Create按钮,并输入相关信息即可。

 
6.配置Blog的相关信息。

配置示例界面如下:




 
点击Save按钮,保存该Blog配置信息。然后访问Blog,博客界面如下:
 


 
 
到此,你已经完成了Subtext 博客系统的整个安装配置过程。访问http://forum.entlib.com/ 开源ASP.NET 论坛,可以获取更多的信息。

原文链接:
http://forum.entlib.com/Default.aspx?g=posts&t=170

感谢Subtext 开发人员提供优秀的开源的Blog系统!!!

 

posted @ 2008-08-17 16:45 EntLib 阅读(236) | 评论 (2)编辑
开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1
 
 
目前,开源ASP.NET论坛EntLib.com/YAF 已经升级到.Net Framework 3.5 平台和Visual Studio 2008。我们将根据各方用户的反馈意见,对论坛进行升级,增加更多的功能,更好地满足用户的实际需求。本开源论坛可以免费使用,同时提供项目源代码下载。
 
下面针对具体的功能,演示如何进行定制化开发。开发完成后的效果如下:



 
增加论坛帖子的设置精华(精华贴分为1、2、3个等级,采用不同的标识)、设置推荐功能:
 
1. 首先修改数据表yaf_topic 结构
增加字段 DigestLevel ApproveStatus ,字段类型为 INT ,默认值0,运行为NULL
 
2. 修改存储过程[dbo].[yaf_topic_list]
省略前面的script ......
c.PollID,
ForumFlags = d.Flags,
c.DigestLevel, // 增加DigestLevel 输出
c.ApproveStatus // 增加ApproveStatus 输出
FROM     yaf_Topic c
JOIN yaf_User b
ON b.UserID = c.UserID
省略后面的script ......
 
3. 修改TopicLine.cs 控件,增加显示-精华/推荐的标识。
 
            ////////////////////////////////////////////////////////////////////////////////////
            // updated by http://www.entlib.com/
            // updated date: 2008-08-12
            // 显示精华贴的标识
            ////////////////////////////////////////////////////////////////////////////////////
            if ( m_row["DigestLevel"] != System.DBNull.Value && Convert.ToInt32(m_row["DigestLevel"]) > 0)
            {
                html.AppendFormat("&nbsp;<img src='images/topics/digest_{0}.gif' alt='精华{0}' align='absbottom' />", m_row["DigestLevel"].ToString().Trim());
            }
 
            if (m_row["ApproveStatus"] != System.DBNull.Value && Convert.ToInt32(m_row["ApproveStatus"]) > 0)
            {
                html.Append("&nbsp;<img src='images/topics/agree.gif' alt='推荐' align='absbottom' />");
            }
            ////////////////////////////////////////////////////////////////////////////////////
 
4. 修改后台版主的管理界面 – moderate.ascx 用户控件,增加设置精华、设置推荐等等功能,只有版主才可以进行操作。
 
<asp:repeater id=topiclist runat=server>
<itemtemplate>
     <yaf:TopicLine runat="server" DataRow=<%# Container.DataItem %>>
         <td class="postheader" align="left" nowrap>
              <asp:linkbutton runat=server onload="Delete_Load" commandargument='<%# DataBinder.Eval(Container.DataItem, "TopicID") %>' commandname='delete'>删除话题</asp:linkbutton>
              | <asp:linkbutton ID="btnSetDigest" runat=server commandargument='<%# DataBinder.Eval(Container.DataItem, "TopicID")%>' CommandName='digest'>设置精华</asp:linkbutton><asp:TextBox ID="txtDigestLevel" runat="server" Width="20" Text='<%# DataBinder.Eval(Container.DataItem, "DigestLevel") %>'></asp:TextBox>&nbsp;
            | <asp:linkbutton ID="btnRecommend" runat=server commandargument='<%# DataBinder.Eval(Container.DataItem, "TopicID")%>' CommandName='recommend' Text='<%# GetRecommendOpt(Eval("ApproveStatus")) %>'></asp:linkbutton>
         </td>
     </yaf:TopicLine>
</itemtemplate>
</asp:repeater>

具体的后台实现代码可以在EntLib.com 开源ASP.NET项目中获得,新项目版本为v3.5,运行在.Net Framework 3.5平台之上,开发环境为 Visual Studio 2008。版主后台维护界面如下:



 原文链接:
http://forum.entlib.com/Default.aspx?g=posts&t=165
 
论坛演示地址:http://forum.EntLib.com 包括论坛技术问题、安装使用等等交流。
 
 
 
posted @ 2008-08-16 08:42 EntLib 阅读(948) | 评论 (2)编辑
轻松玩转MSMQ, WCF IIS 7.0
MSMQ, WCF and IIS: Getting them to play nice
by Tom Hollander
 
Tom Hollander 先生Blog (http://blogs.msdn.com/tomholl/default.aspx )上的文章《MSMQ, WCF and IIS: Getting them to play nice》。http://www.EntLib.com 全力推荐 – WCF/MSMQ/IIS 7.0 构建企业级可靠的、异步的、消息应用方案。
 
方案的设计目标是在Client/Server端建立可靠的、异步的通信。系统采用MSMQ作为传输机制,因为MSMQ支持可靠的队列通信。MSMQ部署在三方Server上(一般集群部署,避免单点故障)。Client端应用程序使用WCF的NetMsmqBingding 来发送消息到MSMQ Server的私有队列。Service 服务程序将部署在IIS 7.0,并采用Windows Activation Services(WAS)来监听消息队列上的新消息。通过SMSvnHost.exe – Windows 服务程序来实现监听,当有消息到达时,它负责在IIS Worker process激活service服务,然后service服务将处理消息。整体的架构如下所示:
 
 
  • Part 1部分,演示创建一个Client程序和部署在IIS 7.0 的Service服务,接着Client/Server 采用WCF的NetMsmqBinding绑定,通过MSMQ进行通信。
http://blogs.msdn.com/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx
  • Part 2部分,将Part 1中相同的应用程序进行跨多Server进行部署,同时启动MSMQ的传输安全特性。
http://blogs.msdn.com/tomholl/archive/2008/07/13/msmq-wcf-and-iis-getting-them-to-play-nice-part-2.aspx
  • Part 3部分,进一步开启事务性队列,确保消息不会丢失。
http://blogs.msdn.com/tomholl/archive/2008/07/14/msmq-wcf-and-iis-getting-them-to-play-nice-part-3.aspx

 

 

 

 

posted @ 2008-08-12 19:55 EntLib 阅读(1819) | 评论 (12)编辑
在BizTalk Server 2006 R2 中调用 WCF Services – Part 3


前一部分文章:
在BizTalk Server 2006 R2 中调用 WCF Services – Part 1
在BizTalk Server 2006 R2 中调用 WCF Services – Part 2


3. 部署BizTalk 项目
在确保BizTalk 编译通过后,设置必要的BizTalk 项目属性,然后发布项目。如下是BizTalk Administration窗口:



 
下面导入前面WCF Consume Service 向导产出的端口绑定文件,如下图所示。分别选择第一个、第二个绑定文件,逐步导入。



 
其中一个端口采用WCF-WSHttp 作为传输类型,另一个端口采用WCF-Custom 作为传输类型。如下图所示:







 
现在,整个BizTalk 项目已经全部完成。下面采用如下的Message 作为测试:
<ns0:Rootxmlns:ns0="http://BizTalkDemo.msgAccount">
 <ID>ID_0</ID>
 <Name>EntLib.com</Name>
 <Age>28</Age>
</ns0:Root>
 
Orchestration 流程同时调用AddAccount方法和GetAccounts方法。在开始测试之前,需要先启动 WCF Services,然后启动BizTalk项目,并传入测试消息。如下是测试结果:



 
《在BizTalk Server 2006 R2 中调用 WCF Services》 系列文章已经全部完成 – EntLib.com BizTalk 小组。
 
欢迎到http://forum.entlib.com BizTalk 论坛交流分享。
 
 
****
本演示项目源码下载:
WCF 简单示例程序(源码下载) 
BizTalk 示例程序(源码下载)
 
 
 
 
 
posted @ 2008-08-07 21:05 EntLib 阅读(1010) | 评论 (1)编辑
在BizTalk Server 2006 R2 中调用 WCF Services – Part 2


前一部分文章:
在BizTalk Server 2006 R2 中调用 WCF Services – Part 1


2. 构建BizTalk Orchestration 流程
在BizTalk Orchestration 流程中,我们定义如下的流程,演示如何通过WCF Adapter调用 WCF Services中的方法。


 
这里,演示了调用WCF Services 的 AddAccount方法和GetAccounts方法。
 
在调用WCF Services 的AddAccount 方法之前,需要准备好要传入的参数,示例中采用BizTalk Map 进行消息的转换。



 
在调用WCF Services 的GetAccounts 方法之前,也需要准备好要传入的参数,示例中采用Message Assignment / Biztalk 表达式编辑器进行消息的构造。示例代码如下:
 
System.Diagnostics.EventLog.WriteEntry(" === start to build msgGetAccounts === ", "start");
 
xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml("<ns0:GetAccounts xmlns:ns1=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" xmlns:ns0=\"http://Microsoft.ServiceModel.Samples\"> </ns0:GetAccounts>");
msgGetAccounts.parameters = xmlDoc;
 
System.Diagnostics.EventLog.WriteEntry(" === end === ", "end");
 
在上述BizTalk Orchestartion 流程图右边的Port 端口,是WCF Services 的逻辑端口,在导入WCF Services 元数据的过程中产生的。




 
下一步将演示如何部署BizTalk 项目,配置WCF Adapter,并演示对 WCF Services 的调用。
 
欢迎到 http://forum.entlib.com BizTalk 论坛交流分享。
 

posted @ 2008-08-04 23:41 EntLib 阅读(1028) | 评论 (2)编辑
在BizTalk Server 2006 R2 中调用 WCF Services – Part 1
 
 
本篇文章演示如何在BizTalk Server 2006 R2 项目中通过新增的WCF Adapter调用WCF Services。(This post shows you how to consume WCF Services via new WCF Adapter in BizTalk Server 2006 R2)
 
示例应用方案:假定你已经设计、实现并部署了WCF Services。现在你想在BizTalk Orchestration 流程中发送/接收消息给WCF Services。BizTalk 通过WCF Adapter 与 WCF 应用程序通信,这些可以通过在BizTalk 中配置发送和接收端口。这篇文章主要演示如何通过BizTalk consume WCF 向导来简化端口的创建,尤其是建立WCF 方法和SOAP Actions之间的映射,或者是端口配置文件。
 
原文链接:在BizTalk Server 2006 R2 中调用 WCF Services – Part 1
 
首先,建立假设你已经建立、并部署好了WCF Services。这里,使用如下的WCF service(提供WCF 演示项目源代码下载!)



 
下面是通过C# Application 调用上述WCF Service 的运行情况:
 

 
1. 使用WCF Services Consume 向导调用WCF Services
通过这一向导,你可以基于WCF Services描述文件,创建Schema 文件和 Port binding configuration 文件,这些文件是BizTalk 项目所必须的。
在BizTalk 项目项目中,选择增加“Add Generated Items”,弹出如下窗口:
 


 
选择从正在运行的WCF Service 产生Metadata(http://forum.entlib.com BizTalk 小组注:需要启动WCF Services),窗口如下所示:



 
点击 Next 按钮,在接下来的窗口中,输入WCF Metadata Address,用来生成Metadata数据:
 


 
点击 Next 按钮,在接下来的窗口中,输入Namespace:



最后,点击Import 按钮,导入Schema 相应的端口绑定文件到BizTalk 项目中。Schema 文件是基于调用的WCF Services 元数据生成的,可以作为后续request/response servicesmultipart messages。下面是BizTalk 项目中生成的BizTalk Schema 文件:





 
现在,我们已经完成了在BizTalk 项目中导入WCF Services 相关的Schema 和WCF 端口绑定文件。
 
接下来的文章中,我们将演示如何构建BizTalk Orchestration,以及如何在Orchestration 流程中使用Schema 消息,如何与WCF Adapter 交互等等。
 
欢迎到http://forum.entlib.com BizTalk 论坛交流分享。

 

 

 

posted @ 2008-08-03 10:36 EntLib 阅读(703) | 评论 (1)编辑

WCF 简单示例程序(源码下载)


本示例程序演示如何编写一个简单的WCF 示例程序。

示例WCF 项目源码下载

如何使用WCF 示例代码:
Server 端:Console 程序,WCF Service 承载在Console 程序中。

    [ServiceContract(Namespace = "http://microsoft.servicemodel.samples/")]
    public interface IBankService
    {
        [OperationContract]
        int AddAccount(string clientName, int clientAge);
        [OperationContract]
        bool RemoveAccount(int accountNumber);
        [OperationContract]
        List<String> GetAccounts();
    }

    class BankService: IBankService
    {
        private List<Account> _accounts = new List<Account>();
        private int _idGenerator = 0;

        public int AddAccount(string clientName, int clientAge)
        {
            Console.WriteLine(OperationContext.Current.SessionId);

            _idGenerator++;
            Account acc = new Account(_idGenerator, clientName, clientAge);
            _accounts.Add(acc);
            Console.WriteLine("ADD - " + acc.ToString());
            return _idGenerator;
        }
......

Client 端: 也是一个Console 程序,负责调用/测试 WCF Services。
            using (ChannelFactory<IBankService> bankFactory =
               new ChannelFactory<IBankService>("MyClient"))
            {
                IBankService bankProxy = bankFactory.CreateChannel();

                Console.WriteLine("Adding John , 20 years");
                bankProxy.AddAccount("John", 20);
                Console.WriteLine("Adding Peter , 21 years");
                bankProxy.AddAccount("Peter", 21);
                Console.WriteLine("Adding Andrew , 25 years");
                bankProxy.AddAccount("Andrew", 25);

                DisplayAccounts(bankProxy.GetAccounts());

                Console.WriteLine("Removing John");
                bankProxy.RemoveAccount(1);

                DisplayAccounts(bankProxy.GetAccounts());


                Console.WriteLine();
                Console.WriteLine("Press <Enter> to close");
                Console.ReadLine();
            }

运行WCF 示例项目:

启动WCF Server 端 Console 程序,运行界面如下:



下面是通过C# Application 调用上述WCF Service 的运行情况:




恭喜!你现在已经完成了一个WCF Service 程序!

posted @ 2008-08-03 08:16 EntLib 阅读(202) | 评论 (0)编辑
ASP.NET 3.5 新特性开发向导实践(附项目源码下载)- Part 2


上一部分内容:
ASP.NET 3.5 新特性开发向导实践(附项目源码下载)- Part 1

5. 设置LinqDataSource 控件的EnableInsert 属性 - EnableInsert=”True”
然后增加ListView 的Insert Item Template (注:InsertItemTemplate 有可能在前面的过程中自动生成)。
        <InsertItemTemplate>
            <span style="">CustomerID:
                <asp:TextBox ID="CustomerIDTextBox" runat="server" Text='<%# Bind("CustomerID") %>' />
                <br />
                CompanyName:
                <asp:TextBox ID="CompanyNameTextBox" runat="server" Text='<%# Bind("CompanyName") %>' />
                <br />
                ContactName:
                <asp:TextBox ID="ContactNameTextBox" runat="server" Text='<%# Bind("ContactName") %>' />
                <br />
                ContactTitle:
                <asp:TextBox ID="ContactTitleTextBox" runat="server" Text='<%# Bind("ContactTitle") %>' />
                <br />
                Address:
                <asp:TextBox ID="AddressTextBox" runat="server" Text='<%# Bind("Address") %>' />
                <br />
                City:
                <asp:TextBox ID="CityTextBox" runat="server" Text='<%# Bind("City") %>' />
                <br />
                Region:
                <asp:TextBox ID="RegionTextBox" runat="server" Text='<%# Bind("Region") %>' />
                <br />
                PostalCode:
                <asp:TextBox ID="PostalCodeTextBox" runat="server" Text='<%# Bind("PostalCode") %>' />
                <br />
                Country:
                <asp:TextBox ID="CountryTextBox" runat="server" Text='<%# Bind("Country") %>' />
                <br />
                Phone:
                <asp:TextBox ID="PhoneTextBox" runat="server" Text='<%# Bind("Phone") %>' />
                <br />
                Fax:
                <asp:TextBox ID="FaxTextBox" runat="server" Text='<%# Bind("Fax") %>' />
                <br />
                <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
                <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" />
                <br />
                <br />
            </span>
        </InsertItemTemplate>
同时设置ListView 控件的InsertItemPosition 属性为:FirstItem




 
6. 分页
设置ListView 的分页属性,脚本如下:
<asp:DataPager ID="DataPager1" runat="server" PageSize="5">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" />
</Fields>
</asp:DataPager>
上述脚本设置PageSize=5
 
 
7. ASP.NET AJAX 的使用
最后,我们增加AJAX功能,实现在增加记录时,局部更新页面,而不是重新load整个页面。
Visual Studio 2008 已经内置了ASP.NET AJAX Library 类库,因此我们只需要展开AJAX Extensions,拖拉 ScriptManager 和 UpdatePanel 控件到页面。ScriptManager 控件负责装载ASP.NET AJAX 所需要的JavaScript 类库。UpdatePanel 则包含整个ListView 脚本。示例代码如下:
<asp:UpdatePanel runat="server">
    <ContentTemplate>
        这里是ListView 控件的脚本
    </ContentTemplate>
</asp:UpdatePanel>
 
OK. 现在我们完成了整个示例程序,几乎没有手动编写代码。上述只是演示了ASP.NET 3.5 部分新功能和新特性。欢迎交流、分享 http://forum.EntLib.com 论坛。
 
本示例开发软件:Visual Studio 2008 和 SQL SERVER,使用Northwind 示例数据库的Customers表。

 

下载演示项目源代码

 

 

 

posted @ 2008-07-31 22:26 EntLib 阅读(1219) | 评论 (1)编辑
     摘要: ASP.NET 3.5 新特性开发向导实践(附项目源码下载)- Part 1本篇文章将演示ASP.NET 3.5 部分新功能、新特性,包括LINQ、ListView控件、LinqDataSource、DataPager 分页控件、ASP.NET AJAX等等。下载演示项目源码!1. 创建Web Application – EntLib.com.NewFeatureDemo2. 增加新的... 阅读全文
posted @ 2008-07-30 20:43 EntLib 阅读(1242) | 评论 (5)编辑

EntLib.com / YAF 开源论坛 V3.0 (ASP.NET/C#) -- 提供代码下载!

 

基于ASP.NET 、C#、SQL SERVER 2000/2005 平台,汉化/更新的 YAF 开源论坛系统,安装、部署非常简便。

 

欢迎学习、交流!!!

 

论坛下载地址:

http://forum.entlib.com/default.aspx?g=posts&t=126

 

 

其他下载地址:

1. 华军软件园
http://86516.onlinedown.net/soft/69845.htm

2. 源码网
http://www.codepub.com/software/EntLibForum-12638.html

3. CSDN 下载频道
http://download.csdn.net/source/558436

4. 中国站长
http://down.cnzz.cn/Info/41156.aspx

 

 

 

posted @ 2008-07-28 22:26 EntLib 阅读(166) | 评论 (0)编辑

将企业应用程序与托管 BizTalk Services 联系起来

 

Jon Flanders 和 Aaron Skonnard

本文将介绍以下内容:

  • 作为 ESB 服务的 BizTalk Services
  • 基于 BizTalk Services 的 WCF 应用程序
  • 中继连接性选项
  • 标识服务和令牌提供程序

本文使用以下技术:
BizTalk Services、 .NET Framework 3.0

目录

  • 软件即服务
  • Internet 服务总线
  • BizTalk Services
  • BizTalk Services SDK
  • 典型的 WCF 应用程序
  • 中继连接性选项
  • 通过 RelayedHttp 穿过防火墙
  • 配置标识服务
  • 自定义令牌提供程序
  • 入门方法

原文链接:
中文 - 将企业应用程序与托管 BizTalk Services 联系起来
http://msdn.microsoft.com/zh-cn/magazine/cc546613.aspx

英文 - Connect Enterprise Apps With Hosted BizTalk Services
http://msdn.microsoft.com/en-us/magazine/cc546613.aspx

 

 

posted @ 2008-07-27 16:23 EntLib 阅读(75) | 评论 (0)编辑

发布EntLib.com / YAF 开源论坛 V3.0 (ASP.NET/C#) -- 提供代码下载!

 


Readme Version 3.0
======================
访问EntLib.com 论坛 http://forum.entlib.com/ 查看论坛的运行效果及界面:
可以到EntLib.com 论坛 http://forum.entlib.com/ 下载该论坛的全部源代码(ASP.NET/C#)。

本次发布更新的内容:
1.修改Theme设置,是UI更加符合国人的审美眼光。
2.修改ActiveUser的统计运算方法。
3.POINTS 汉化为发帖积分。
4.删除TOPIC扣减20个积分(原来为150个积分),删除POST扣减10个积分(原来为100个积分)。
5.更正一些不准确的汉化翻译。
6.修正与Firefox 2.0/3.0的页面兼容性问题。
7.修正后台管理页面Who is online中IP 地址错误。

 

下载版本V3.0!

 

2008-07-26
http://www.entlib.com/
EntLib.com/YAF 开源ASP.NET/C#论坛小组

上一个版本V2.5
===================
发布EntLib.com / YAF 开源论坛 V2.5 (ASP.NET/C#) -- 提供代码下载!
http://forum.entlib.com/Default.aspx?g=topics&f=9


对Yet Another Forum 英文原版感兴趣的,可以直接到 http://www.yetanotherforum.net/ 下载。


 

 

posted @ 2008-07-26 09:30 EntLib 阅读(884) | 评论 (6)编辑

 

Microsoft ESB Guidance Overview (Microsoft 企业消息总线指导概述)
 
 
简介Overview
Microsoft ESB指导提供了架构指引、模式、实践、一系列BizTalk Server和.NET 组件来简化在Microsoft平台上ESB(企业消息总线)的开发,并允许用户扩展自己的消息和集成解决方案。



 
Microsoft ESB指导使用Microsoft BizTalk Server 2006 R2 支持松耦合的消息架构。BizTalk Server包含了一个强大的发布/订阅机制,消息应用程序可以创建和供给订阅,提供了一个高效和可扩展的SOA(Service-Oriented Architecture)平台。
 
Microsoft ESB指导扩展了BizTalk Server的功能,提供了一系列新的功能,用来创建强壮的、互连的、面向服务的应用程序,包括itinerary-based service invocation for lightweight service composition, dynamic resolution of endpoints and maps, Web service and WS-* integration, fault management and reporting, and integration with third-party SOA governance solutions。
 
资源Resources
1.       ESB Guidance Community, http://www.codeplex.com/esb
2.       ESB Documentation, http://www.codeplex.com/esb/Release/ProjectReleases.aspx?ReleaseId=8362
3.       Microsoft ESB Guidance for BizTalk Server 2006 R2, http://www.microsoft.com/downloads/details.aspx?familyid=e3957253-24ce-45aa-ac32-60abffe15bac&displaylang=en
4.       BizTalk Server 中文论坛, http://forum.entlib.com/Default.aspx?g=topics&f=13
 
 
posted @ 2008-07-24 21:27 EntLib 阅读(85) | 评论 (0)编辑
BizTalk 2006 简单入门示例程序 Version 2.0(附源项目文件下载)
 
为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括Receive Port、Send Port、Orchestration、Message、Pipeline等等。



运行环境:
Visual Studio 2005 + BizTalk Server 2006
 
说明:
1. 上述示例程序,简单将XML Message 从Receive Location。
然后检查 Subject 是否为空,如果不为空,则通过Send Port 输出。
如果Subject 为空,则通过Construct Shape 和 Map 构造新的消息类型BTDemoFlatFileSchema,最后输出为文本文件或者通过SMTP Adapter 发送Email。
2. BizTalk 项目通过Visual Studio 2005 编译为.NET assembly,并且这些assembly 需要有strong name。
3. Send Port / Receive Port 的pipeline 均设置为 Pass Thru Transmit,因为本示例程序不需要处理传入、传出文档。XMLTransmit pipeline 则用来传输XML消息,并基于Schema负责解析消息为合适的XML 结构。
4. 通过BizTalk Server Administration Console 来配置、启动上述示例程序。
 
 欢迎交流!
 
下载Demo 项目文件
 
 
posted @ 2008-07-21 21:27 EntLib 阅读(147) | 评论 (0)编辑
BizTalk 2006 简单入门示例程序(附源项目文件下载)
 
为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port、Send Port、Orchestration、Message等等。
 

运行环境:
Visual Studio 2005 + BizTalk Server 2006

下载示例BizTalk项目!

 
说明:
1. 上述示例程序,简单将XML Message 从Receive Location 转移到Send Location,并重新命名。
2. BizTalk 项目通过Visual Studio 2005 编译为.NET assembly,并且这些assembly 需要有strong name。
3. Send Port / Receive Port 的pipeline 均设置为 Pass Thru Transmit,因为本示例程序不需要处理传入、传出文档。XMLTransmit pipeline 则用来传输XML消息,并基于Schema负责解析消息为合适的XML 结构。
4. 通过BizTalk Server Administration Console 来配置、启动上述示例程序。
 
 欢迎交流!

posted @ 2008-07-14 20:31 EntLib 阅读(103) | 评论 (0)编辑
BizTalk Server – 基本知识学习笔记(1
 
Because BizTalk uses the namespace and the root node to uniquely identify messages. And, because processing within BizTalk is dependent on a unique message identity, some messages could be processed incorrectly if uniqueness isn’t preserved.
因为BizTalk 使用命名空间和根节点来唯一识别消息,并且BizTalk处理消息依赖于唯一的消息识别,因此如果不能保持消息的唯一性,这些消息不能正确处理。
 
Data that has been distinguished can only be used within an orchestration, whereas data that has been promoted can be used in orchestrations, pipelines, ports, and so forth. However, promoted data is limited to 255 characters, whereas distinguished data has no such character limit.
在BizTalk中有两种类型的Promote机制:属性字段(Property Fields)和可分辨字段(Distinguished Fields)。
Distinguished Field 仅仅可以在Orchestration 中使用,而Property Field 不仅可以在Orchestration 中使用,而且可以在pipeline、port等等中使用。然后,Property Field限制在255字符之内,而Distinguished Field 没有字符长度的限制。
 
Right-click the subject node (one of a schema node). Notice that the Promote ➤ Quick Promotion menu option has been disabled. This is because the Content Type property of the subject node is not Simple Content.
右键点击schema文档中的一个XML节点,发现Promote->Quick Promotion 菜单项为灰色(禁用),这是因为该节点的Content Type属性不是Simple Content,而是Complex Content。
 
EntLib 架构设计小组(http://www.EntLib.com )。

 
posted @ 2008-07-14 00:03 EntLib 阅读(108) | 评论 (0)编辑
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)

 
该主题的Part1- Part5系列文章已经陆续发表。为了感兴趣的朋友阅读方便,这里提供了PDF文档下载,同时也提供了整个示例项目的源代码
 
.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)
.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 3)
.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 4)
.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 5)
 
 欢迎各位交流、探讨LINQ相关技术。
 
下载完整的PDF文档和示例项目的源代码。

 示例项目源代码:
  

posted @ 2008-07-09 21:15 EntLib 阅读(1691) | 评论 (8)编辑
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 5)


设计开发表现层
表现层负责应用程序的用户界面,图4.1是表现层的详细视图,包括Web Forms, Web User Control, Code-Behind 和共享的用户界面代码。表现层负责推送信息给终端用户和应用程序。在基于.NET的WEB应用程序中,这一层有.aspx / .ascx / .cs / .vb / web.config / .xml / .js / .resx / .css 等等。所有的这些文件集成在一起组成了表现层,提供给用户友好的界面。

4.1:表现层详细视图
 
ASP.NET 为web页面的开发提供了丰富的控件,通过这些控件,我们可以开发出可视化的界面和功能。在本示例程序中,表现层包括一个WebForm和一个Web User Control,使用GridView / DetailsView 控件给用户提供友好的界面,实现基本的功能,如查询、插入、更新和删除等等操作。下面展示部分HTML脚本和code-behind代码,这些脚本用来在GridView中显示数据。可以了解如何通过LINQ访问Table对象:
 
代码片段1.3:用户界面-HTML
            <asp:GridView ID="gvCustomer" runat="server" Width="100%" AutoGenerateColumns="False"
                AllowPaging="True" DataKeyNames="CustomerID"
                onpageindexchanging="gvCustomer_PageIndexChanging"
                onrowediting="gvCustomer_RowEditing" >
                <FooterStyle CssClass="GridFooter"></FooterStyle>
                <RowStyle CssClass="GridItem"></RowStyle>
                <AlternatingRowStyle CssClass="GridAltItem"></AlternatingRowStyle>
                <HeaderStyle CssClass="GridHeader" HorizontalAlign="Left"></HeaderStyle>
                <Columns>
                    <asp:BoundField DataField="CustomerID" HeaderText="客户ID" />
                    <asp:BoundField DataField="CompanyName" HeaderText="公司名称" />
                    <asp:BoundField DataField="ContactName" HeaderText="联系人" />
                    <asp:BoundField DataField="ContactTitle" HeaderText="联系人头衔" />
                    <asp:BoundField DataField="Address" HeaderText="地址" />
                    <asp:CommandField ButtonType="Link" HeaderText="选择" ShowEditButton="true" EditText="选择"
                        CausesValidation="false" />
                </Columns>
            </asp:GridView>
 
代码片段1.4:code-behind
        private void BindGridView()
        {
            Table<Customer> localDataTable;
            localDataTable = objCustomer.SelectRecordAll();
 
            gvCustomer.DataSource = (from tbl in localDataTable
                                     select new
                                     {
                                         tbl.CustomerID,
                                         tbl.CompanyName,
                                         tbl.ContactName,
                                         tbl.ContactTitle,
                                         tbl.Address
                                     });
            gvCustomer.DataBind();
 
            if(localDataTable.Count() == 0)
            {
                lblMessage.Text = "没有找到记录!";
            }
        }
 
上面的代码是Web页面后台代码,该代码调用业务外观层的SelectRecordAll()方法,该方法返回Table集合记录。然后查询Table集合,绑定返回结果到GridView。
注:表现层没有实现任何业务逻辑或数据访问逻辑,因此它仅仅包含用户界面代码。在表现层和业务外观层编写代码时,确保不要创建DataContext类的实例,仅仅创建业务实体类的示例。
 
当完成这些后,现在你可以看看你做了哪些工作。下面是Customer 的Web界面:

图4.2:Customer用户界面
 

总结
希望你已经了解了如何使用LINQ创建Web应用程序。这篇文章是作者使用LINQ进行N-Tire架构设计的分析和经验。使用LINQ to SQL可以减少大量的数据库操作代码,同时减少应用程序的开发时间,减少编码错误和是应用程序的维护更加容易。
 
最后,LINQ to SQL 对传统ADO.NET编程说“不”!
 
EntLib.com 开源小组注:本文翻译《Building Multi-Tier Web Application in .NET 3.5 Framework Using LINQ to SQL》。现已全部翻译发布。文章中对于LINQ 在多层/三层Web应用程序的应用作了详细的介绍,但EntLib.com开源小组 针对LINQ 的使用有自己的见解和想法。随后,EntLib.com 开源小组会单独发表文章进行阐述。
 
上几篇文章:
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 3)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 4)

欢迎各位发表意见和一起探讨!谢谢!

***********
即将提供LinqWebApp - 《在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统》项目源代码下载!
 


posted @ 2008-07-08 23:07 EntLib 阅读(1250) | 评论 (3)编辑
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 4)


构建业务外观层(Business Facade Layer
所有业务逻辑将在这一层实现。一般而言,这一层负责处理数据和在表现层与数据访问层之间传递数据。这一层从物理上提供上层接口隔离表现层代码和数据访问层代码,ASP.NET页面不能直接与数据访问层交互。相反,页面应该调用业务外观层的方法。图3.1 展示了业务外观层的详细视图。

图3.1:业务外观层-详细视图
 
在我们的示例程序中,业务外观层仅仅包含一个组件-BFLCustomer。示例代码如下:
代码片段1.2:业务外观层
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataAccess;
using System.Data.Linq;
using DataLinq;
 
namespace BusinessFacade
{
    public class BFLCustomer
    {
        private DALCustomer objDataAccess = new DALCustomer();
 
        public Table<Customer> SelectRecordAll()
        {
            return objDataAccess.SelectRecordAll();
        }
 
        public Customer SelectRecordByID(string customerID)
        {
            return objDataAccess.SelectRecordByID(customerID);
        }
 
        public List<Customer> SelectRecordByIDListable(string customerID)
        {
            return objDataAccess.SelectRecordByIDListable(customerID);
        }
 
        public string InsertRecord(Customer localTable)
        {
            return objDataAccess.InsertRecord(localTable);
        }
 
        public void UpdateRecord(Customer localTable)
        {
            objDataAccess.UpdateRecord(localTable);
        }
 
        public void DeleteRecord(string customerID)
        {
            objDataAccess.DeleteRecord(customerID);
        }
 
        public Table<Order> SelectAllOrder()
        {
            return objDataAccess.SelectAllOrder();
        }
 
        public Table<Order_Detail> SelectAllOrderDetail()
        {
            return objDataAccess.SelectAllOrderDetail();
        }
    }
}
 
BFLCustomer 组件包括下面类图所示的公共方法列表,这些方法用来与数据访问层交换。
注:业务外观层没有创建DataContext类的实例,因此它不能够实现任何数据访问逻辑。
BFLCustomer 组件的类图如下:


图3.2:业务外观层 – 类图

EntLib.com 开源小组注:本文翻译《Building Multi-Tier Web Application in .NET 3.5 Framework Using LINQ to SQL》。后面内容待续。欢迎交流LINQ相关技术。

上几篇文章:
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 3)




posted @ 2008-07-07 19:57 EntLib 阅读(1591) | 评论 (7)编辑
     摘要: 上几篇文章:在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 3)使用LINQ实现数据访问层数据访问层包含与Data Linq交互的代码,它使用集成语言查询来访... 阅读全文
posted @ 2008-07-06 23:23 EntLib 阅读(1503) | 评论 (9)编辑

在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)


上一篇文章:在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)

LINQ to S