山塞一个PetShop(Task000)——架构

源代码:13033480群共享

PetShop4.0,是微软公司为了展示他的Visual Studio的功能,而提供的一个示例源代码,程序虽小,却包含了ASP.NET的很多技术,非常适合初学者拿来学习、研究。

这个PetShop虽然是宠物商店,但由于他的代码规范、结构经典,可以很容易地改写成其它的网上购物系统,很想照葫芦画瓢,做一个NetShop,就叫做山塞版的PetShop吧。 

1、“文件”→“新建项目”,打开“新建项目”对话框,在“项目类型”中选择“Visual Studio解决方案”,在“模板”中选择“空白解决方案”
2、“文件”→“添加”→“新建网站”
3、“文件”→“添加”→“新建项目”,打开“新建项目”对话框,新建类库BLL
4、同样步骤,添加项目DALFactory、DBUtility、IDAL、Model和SQLServerDAL


5、修改6个类库属性中的“程序集名称”和“默认命名空间”

求教:类库项目的属性中可以更改“程序集名称”和“默认命名空间”,以后理添加类文件时,命名空间会自动生成。

Web项目中却不能,有没有类似的方法,让设置Web中的文件的命名空间更方便一点呢??


6、 复制DBUtility中的SQLHelper.cs
    复制Model中的所有*Info.cs文件,AssemblyInfo.cs除外。
    复制IDAL中的ICategory.cs
    复制SQLServerDAL中的Category.cs
    复制BLL中的Category.cs
    复制DALFactory中的DataAccess.cs,修改其中的内容如下:
   
    using System.Reflection;
    using System.Configuration;

    namespace NetShop.DALFactory
    {

        /// <summary>
        /// This class is implemented following the Abstract Factory pattern to create the DAL implementation
        /// specified from the configuration file
        /// </summary>
        public sealed class DataAccess
        {

            // Look up the DAL implementation we should be using
            private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
            private static readonly string orderPath = ConfigurationManager.AppSettings["OrdersDAL"];
       
            private DataAccess() { }

            public static NetShop.IDAL.ICategory CreateCategory()
            {
                string className = path + ".Category";
                return (NetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
            }

        }
    }
7、添加相应的引用,并替换文件中的PetShop为NetShop

8、右击Web项目→“新建文件夹”,新建文件夹Controls
   右击Controls→“添加新项”, 添加用户控件NavigationControl.ascx
   NavigationControl.ascx中代码如下:
   <body>
    <asp:Repeater ID="repCategories" runat="server">
        <HeaderTemplate>
            <table cellspacing="0" border="0" style="border-collapse: collapse;">
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td>
                    <asp:HyperLink runat="server" ID="lnkCategory"><%# DataBinder.Eval(Container.DataItem,"Name") %></asp:HyperLink>
                </td>
            </tr>
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:Repeater>
   </body>
  
   NavigationControl.ascx.cs中代码如下:
   namespace NetShop.Web
{
    public partial class NavigationControl : System.Web.UI.UserControl
    {
              
        protected void Page_Load(object sender, EventArgs e)
        {
            BindCategories();
        }

        // Bind categories
        private void BindCategories() {
            Category category = new Category();
            repCategories.DataSource = category.GetCategories();
            repCategories.DataBind();           
        }
    }
}

9、在Default.aspx中,拖入用户控件NavigationControl.ascx
      
   

10、复制连接字符串

    <connectionStrings>
      <add name="SQLProfileConnString" connectionString="server=(local)\sqlexpress;database=MSPetShop4Profile;integrated security=SSPI;min pool size=4;max pool size=4;" providerName="System.Data.SqlClient" />
      <add name="SQLMembershipConnString" connectionString="server=(local)\sqlexpress;database=MSPetShop4Services;integrated security=SSPI;min pool size=4;max pool size=4;" providerName="System.Data.SqlClient" />
      <add name="SQLConnString1" connectionString="server=(local)\sqlexpress;database=MSPetShop4;integrated security=SSPI;min pool size=4;max pool size=4;" providerName="System.Data.SqlClient" />
      <add name="SQLConnString2" connectionString="server=(local)\sqlexpress;database=MSPetShop4;integrated security=SSPI;max pool size=4;min pool size=4;" providerName="System.Data.SqlClient" />
      <add name="SQLConnString3" connectionString="server=(local)\sqlexpress;database=MSPetShop4Orders;integrated security=SSPI;min pool size=4;max pool size=4;" providerName="System.Data.SqlClient" />
    </connectionStrings>


 
11、复制

    <appSettings>
      <!-- Pet Shop DAL configuration settings. Possible values: PetShop.SQLServerDAL for SqlServer, PetShop.OracleServerDALfor Oracle. -->
      <add key="WebDAL" value="NetShop.SQLServerDAL"/>
      <add key="OrdersDAL" value="NetShop.SQLServerDAL"/>
    </appSettings>


 

12、右击“Default.aspx“→“在浏览器中查看”

【技术要点】

1、一个解决方案可以有N个项目,这个项目可以是网站,可以是类库,也可以是控制台应用程序、Windows应用程序。

2、程序集名,是编译后生成的动态链接库的文件名;

3、命名空间相当于文件夹,可以组织存放类;类库项目的命名空间只影响添加类时的默认命名空间名,实际操作时,可以修改;

4、类库中添加的类名,只影响默认的类名,实际操作时也可以修改。

食品城:http://www.tbtble.com/oklist-c-50016422.html

http://www.4008823823.com.cn/kfcios/index.jsp

原文地址:https://www.cnblogs.com/WestGarden/p/3138388.html