zoukankan      html  css  js  c++  java
  • PetShop项目学习笔记(一)

    PetShop项目学习

    数据库结构

    工厂方法模式

    页面缓存

    缓存了页面中的一些变量

    文件缓存依赖

    消息队列

    ORM了解

    ————2012-3-12-16:40:51————

    今天才真正看了PetShop的代码,感觉好复杂啊!微软用ADO.net实现了类似于ORM的机制。

    首先PetShop在Oracle中的数据表如下,包括4个解决方案:

    程序集描述:

    Model定义用到的对象类

    DBUnitility数据库操作,看了OracleHelper abstract类,主要包括五个静态的连接字符串:

    View Code
     public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["OraConnString1"].ConnectionString;
    public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["OraConnString2"].ConnectionString;
    public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["OraConnString3"].ConnectionString;
    public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["OraProfileConnString"].ConnectionString;
    public static readonly string ConnectionStringMembership = ConfigurationManager.ConnectionStrings["OraMembershipConnString"].ConnectionString;

    不过奇怪的是在Web.config文件中连接字符标签都没有,可以看到的只有下面的东西!RSAProtectedConfigurationProvider是什么啊?

    一查,原来是提供使用 RSA 加密对配置数据进行加密和解密的,提供了一种方法以加密存储在配置文件中的敏感信息,这有助于防止对这些信息进行未经授权的访问。(参考:http://msdn.microsoft.com/zh-cn/library/system.configuration.rsaprotectedconfigurationprovider(VS.80).aspx

    View Code
    <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <KeyName>Rsa Key</KeyName>
    </KeyInfo>
    <CipherData>
    <CipherValue>xV/ayWV3paJMvcGPXixX8ylWquj9ercwS2+2ZyfT4QbxqefHI5e8k7z/7W7cp+Fi9LjrEkdDulLq2tTDyQQlmquj65ue2DwiGCAG4qVgm8wZheJu08YAYEj8aq1oJNU/iebj7MJX0WDSr5NLW6+U1uofmuW5XurZdL/btGU+I+8=</CipherValue>
    </CipherData>
    </EncryptedKey>
    </KeyInfo>
    <CipherData>
    <CipherValue>/Ymdh2iAQa/l5KBu50IErP2JZ3faeGfZT7V4ZARKmVf9lFEoQEHEeAiZWoxkSSvrmlQY9MZLdL0ow5QY3msl+DEqV2hWn+S4iPEXnlgUkqKMlEEhJ2lGUo/lFdMoUSQZoRQnOOYXId40b7Sq2Ypb1pQ+16EvJJV1YtmCcfb1cd+B3OBIxTTzfQQ+220sPaAxDlx9zfWeZ5mWf+jLqOHEMDxEmCfA5VapTEuXpxtefHyqhl8r449Fgcf8Uvynwtlq9ndCCSJfNCwKvHoORcikdxwh0OSlEVFAIQKMiou8NwPOKttUrkjQOwPuAfER8FySdVrmZKqdokGtoSio1DhG4qGS06kvad/aOJDTlof94U47LYIe1OapERcGq7n09LcJ91BhDOf6EcMbPAVpw8bjhf5lQCiqWasL5WpLEifx22YDE5y21zVMc34OH7vvXNvzkds6TUBb3ZPggphndd5fD38b/3vs7AYczltUxBGBCmYIWPlx/69ImpUz5jidgaflgQuv1ESB0VD+8yIqqex1H9bsLgBsrg9WhLMkOvK5M5fdOoIYc7UCGNPx5U8EJ1B6ZYKynIMw8O/Z+v+Z4hArNbiE4+5txfmtolJ0vcPfOS46kRZNRO7zCFr2BkabAh8m1mcOTn86QUt+8cEJHYPPNCxZCgD0P+pcJ313+Nph+azkGa3W1+xuV2ZnnMYgGRO1MJycezc9Mpk0rPzGnadyxZNmqDvMHwmNaoBFyl8jpFhECn7NgkB+KQ3HocbAhinQafpX6TnSV/uqPWD/QrSAcvJ6gz2QyubO0CH7qVZsUdGWe1LnjOL5WV9RY239wdIMqY7kuPVkEg/z5SMhF2L7Zw+fOy0uyB1rRyTsdG+n2uyfbt7vBMdxBtdakdu6uOceO50VQklPRow2e7tymHa5jvwJNjzUbsRpGgxSPRlfk7YE9fymvd4fFDqV2PZXfF5OlJkwTzly3RUp4NnxjkXImim+iZ6/vIrMe+el3gSMbVmQXgR1PWaPlgMsF6xt2Y3M11miejsrgLlaWVlMzZ9UOZP8Roenf3FDkgKJ1bwV3cJDAOblGfTqAJDujqhKWfgNbaMSC27TGHAqOG12KV3JKV6AzVCq9iMJcNgUS34TPehlO75vBovuPwl8lOJ0AV9tTeq+NXolta47ni8iKv1czJ33PsTI5fmqAeeEJ52XrmlvNteL3ReA+TbgjWOygwvtPAdbzSFD1WfgHx0C75xYVPu6ixNLLSrH8JOwq5fr/MBPCc+jLTITIoSHWHIt+AphaasbHKk5FKtfYXDGI6LIBgzwSE0VkOIffgeK55B5wVxG1FKTRwv6UqJHO7X65wIJ7vCjjFDZ9iww5z9Nkd4h/G/Sk8JEcfvTs505FFTkRP73icdSju1PyD/1LoWnFnfrAvCfPaNB1q8qdvNsxKoM6MpN42eCjmuMJgMcRY0aN7B8ir0CZb+6KsrzY3evxwPZug7Nnq9elMa2J0L/PaVeM9OnHO0sTk+aR5zlEW8NxVwFYJseXjWwgj5rct8yreT43bMFzLae4l9aSHgcGki69qbx8tdY9u9f8WMtoLyWnRCb4TShAK+Mcf1EIYVF5Rx0GI5izNYO6rgAeIsw11POscbPrBx55WsBvgUPLSZVYT8GhdMK1Lh5qeIrsMOKpKw45p4hWlZcdD0v8f1WCzaUZPqPMwwcAzNCA8cJ3FqTf93Oz1O13H60QeCUPxubDHUJzIolqxEW7mbzSIggBblbGUhgWDdpTkRbltekYUgIccHQXG5a4n2VR11qQU7qaUXaebw3OQtz03RyRtj4MaUIK5yeluLBlPRtsoGpyREMWYa65LGJVvNRr+ePkV1n+OK8F5T0ibu7F48iQiUx2DZ4XmCwvBoaNB7Px617OJTtcoW1BPRMYynhEyiBH8XgSBD6vWzeJsK7xw4XLabjwHxT5sqkhiEKnMjyVWrxvbQDyGL7wspYUBHyoA==</CipherValue>
    </CipherData>
    </EncryptedData>
    </connectionStrings>

    从程序的入口Default.aspx进入,分析代码,先看NavigationControl代码,

    View Code
     private void BindCategories() {
    Category category = new Category();
    repCategories.DataSource = category.GetCategories();
    repCategories.DataBind();
    }

    沿着这一条路走下来,可以理解一些东西了!


    文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。 欢迎大家留言交流,转载请注明出处。
  • 相关阅读:
    iOS11自定义tabBar重影问题
    iOS打包时遇到的has one iOS Distribution certificate but its private key is not installed的问题
    MAC本地生成SSH KEY的方法
    Mac版Sourcetree的安装使用
    Xcode报错:could not attach to pid:"1764"
    解决Xcode10 Library not loaded: /usr/lib/libstdc++.6造成的crash及报错
    socket调试工具(Mac版)
    iOS-基于TCP连接<Scoket-服务端>
    iOS自定义TabBar使用popToRootViewControllerAnimated返回后tabbar重叠
    [UIApplication sharedApplication].keyWindow.rootViewController
  • 原文地址:https://www.cnblogs.com/yhlx125/p/2360905.html
Copyright © 2011-2022 走看看