zoukankan      html  css  js  c++  java
  • za

    控制反转 依赖注入,为了减少耦合隐藏。将特定的

     

    model 加上remote特性,如何实现注册时候有效,但是登录时候不需要有效。绑定特定view,过滤掉特定view的的验证。

    * vs调试网站数据库成功访问,但是iis中访问数据库提示

    用户 'IIS APPPOOLDefaultAppPool' 登录失败。

    因为msslq安装时候验证权限选择的是localsystem,而此时访问的是 iis网络账户。

    iis-》右击项目 设置-》进程孤立-》内置账户

    image

    *abstract  override 重写基类的虚拟方法 (abstract 和override配套使用,子类override重写抽象父类的抽象方法)

    new public xx 隐藏基类方法,子类使用自己的(基类的方法必须已经定义了)

    属性为abstract,类必须生命为abstract抽象类,抽象函数无实体例: public abstract  void getfield();子类如果不是抽象类则必须重写父类的抽象方法

    virual,override配套使用

    *using System.Text.RegularExpressions;

    替换多个空格为一个空格,中间一个参数为正则

    Code Snippet
    1. Regex.Replace("abc  sfd  sdf df esdf  sdf", " +", " ");

    替换手机号为*

    Regex.Replace(“13455555555”,@”^(d{3}d{4}d{4})$”,”$1****$3”); 替换后为  134****5555

    *单例模式

    属性staitc private,构造函数private,一个getobject 用static声明并返回该类的类型

    *virtual 虚拟,虚方法

    用于子类重写override

    *设置国家环境,对货币进行格式化using System.Globalization;

    Code Snippet
    1. CultureInfo english=new CultureInfo("en-US");
    2.           decimal d = 99999999999999999m;
    3.           string s = string.Format(english, "my amout is {0:c}", d);

    *页面6秒关闭,左击页面显示左,右击页面显示右边

    Code Snippet
    1. <script type="text/javascript" >
    2.  
    3.     setTimeout('window.close()',  6*1000);
    4.     function show() {
    5.  
    6.         if (window.event.button == 1) {
    7.  
    8.             alert("");
    9.         }
    10.         else {
    11.  
    12.             alert("");
    13.  
    14.         }
    15.  
    16.  
    17.     }
    18.  
    19.     show();
    20. </script>

    *hashtable ,hashmap   key都不能相同

    map的key可以为空,没实现线程安全

    *sql 根据登录表统计在线时间   datediff(ss,起始时间,结束时间),floor()四舍五入,cast(xx as nvrchar)

     sql:统计用户在线时间。
    
         有online 表,  username,operate,time
    
    假设表中有数据:
    
    lizi,login,2013/1/1 12:00:33
    
    mike,login,2013/1/1 14:33:45
    
    lizi,exit,2013/1/1 19:33:55
    
    mike,exit,2012/1/1  23:33:44
    
     
    
    要得到如下信息:  lizi,4:33:12(在线时间4小时,33分钟,12秒)
    
     
    
     
    
    代码:
    
     
    
    select a.[username],a.time as login_time,b.time as exit_time
    
    ,cast((floor(datediff(ss,a.time,b.time)/3600 ))as nvarchar)                  //获取小时数,     datediff(hh/mi/ss,starttime,endtime)
    
    +':'+cast((floor(datediff(ss,a.time,b.time) )%3600/60)as nvarchar)    //减去整数小时后,获取分钟数
    
    +':'+cast(floor( datediff(ss,a.time,b.time))%3600%60 as nvarchar)
    
    as totaltime from
    
    online as a , online as b where a.[username]=b.[username] and a.operate='login' and b.operate='exit'

    * 数组大小排列, 通过list<int>  li=new list<int>();  li.sort();默认是从小到大排列

    从大到小排序 li.sort(FromMaxToMin)(自定义函数);

    class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                List<int> list = new List<int>();
    
                Random r = new Random();
    
                int[] array = new int[100];
    
                int temp = 0;
    
                while (list.Count < 100)
    
                {
    
                    temp = r.Next(1, 10001);
    
                    if (!list.Contains(temp))
    
                    {
    
                        list.Add(temp);
    
                    }
    
                }
    
                //list.Sort(); //默认
    
          //   Console.WriteLine(   Comparer<int>.Default.ToString());
    
                //System.Collections.Generic.GenericComparer`1[System.Int32]  
    
                list.Sort(FromMaxToMin);
    
                
    
                array = list.ToArray();
    
                foreach (int i in array)
    
                {
    
                    Console.WriteLine(i.ToString());
    
                }
    
                Console.Read();
    
            }
    
            //从大到小排列
    
            public static int FromMaxToMin(int a,int b)
    
            {
    
                if (a > b) return -1;
    
                else if (a == b) return 0;
    
                else return 1;
    
            }
    
        }

    *强命名程序集: 加密签名放到全集程序集缓存中.

    标识唯一程序集,缓存中有了就方便下次直接使用

    *net 读写数据库的类       ?????具体样本代码

    DataSet  数据的集合        DataReader 数据只读器

    DataAdapter 用于填充dataset 和 更新数据库一组指令和一个数据库连接。

    DataCommand 执行sql命令

    Code Snippet
    1. SqlConnection con = new SqlConnection(connectionString);
    2.             con.Open();
    3.  
    4.             SqlDataAdapter adapter = new SqlDataAdapter(sql, con);
    5.             DataSet ds = new DataSet();
    6.             adapter.Fill(ds);
    7.  
    8.  
    9.             return ds;

    Code Snippet
    1. string queryString =
    2.         "SELECT OrderID, CustomerID FROM dbo.Orders;";
    3.  
    4.     using (SqlConnection connection =
    5.                new SqlConnection(connectionString))
    6.     {
    7.         SqlCommand command =
    8.             new SqlCommand(queryString, connection);
    9.         connection.Open();
    10.  
    11.         SqlDataReader reader = command.ExecuteReader();
    12.  
    13.         // Call Read before accessing data.
    14.         while (reader.Read())
    15.         {
    16.             Console.WriteLine(String.Format("{0}, {1}",
    17.                 reader[0], reader[1]));
    18.         }
    19.  
    20.         // Call Close when done reading.
    21.         reader.Close();

    *ASP.NET身份验证

    windows机制  ,原理:iis

    form :账户

    passport:密钥

    非对称md5(无公钥),对称(由私钥能推出共钥)

    *调用webservice的方法。 1. wsdl.exe命令行工具  2. add web reference 菜单选项

    *net remoting

    看作一种分布式处理方式,dcom的升级,改善了很多性能

    提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。

    *class  struct区别

    class:引用类型,可以作为基类型,可以实现接口继承基类,分配内存的堆上

    struct:值类型,能实现接口不能继承基类,存储空间在内存的栈上。

    *net remoting和webservice 应用中区别

    webservice  利用http协议,穿透防火墙

    remoting  除了http还可以用tcp/ip,二进制传送提高效率

    *final,finally,finalize()

    *异常捕捉  try 里有个return语句,finally里的语句在return之前执行

    *iis 进程回收机制 会让session丢失(状态维护)

    session_start   超时session_end

    web.config 中的sessionstate 4个属性 off,inproc,stateserver,sqlserver

    默认inproc,存在asp.net进程中,速度快,但是进程崩溃(重启或者失败)就会造成session丢失

    stateserver 要指定ip端口,是一种windows服务,不依赖asp.net进程。存在stateserver的进程中。

    sqlserver不依赖iis,方便集群

    *xml 区分大小写,必须有结束或者加上个/字符(<over/>)

    属性必有有引号,属性必须带有值

    *const 常量区,常数不能改

    static 静态存储区,变量

    *托管

    Console.WriteLine("反射-获取System.IO.BinaryReader 中的公共成员,不包括父类的成员");
    
                Assembly a = Assembly.LoadFile(@"C:UsersipodDocumentsVisual Studio 2010Projects反射反射反射inDebugcommon.dll"); //system就不用这个了
    
                
    
                Type MyType = a.GetType("common.helper");
    
                
    
                MemberInfo[] Memberinfoarray = MyType.GetMembers(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
    
                Console.WriteLine("反射-获取System.IO.BinaryReader公共成员数量:{0}",Memberinfoarray.Length);
    
                Console.WriteLine("反射程序集name",MyType.FullName);
    
                for (int i = 0; i < Memberinfoarray.Length; i++)
    
                {
    
                    Console.WriteLine("member[{0}]:{1}",i+1, Memberinfoarray[i].Name+",");
    
                
    
                
    
                
    
                }
    
                Console.ReadLine();

    *datagridview使用

    获取0行0列的值   datagridview.row[0].cell[0].value

    *create funciton  name(@name nvarchar)

    returns int

    as

    begin

    ..

    end

    触发器  inserted i ,deleted  i   .after insert实现业务规则。 create  trigger  tri_name  as…   raiserror(‘error info’,’1’,’16’)  rollback transaction ,commit

     

    asp.net sessionid 该标识符是随机生成的、由 24 个字符编码组成的编号,这些字符包括小写字符 a 到 z 和数字 0 到 5

    asp.net 会话状态,如果设置为 inproc的话,session中的变量类型必须为基元net类型或者可序列化的类型,因为存储在外部数据存储区中

    默认session存在cookie中,但是可以放到url中,只要将web.config中的sessionstate的属性 cookieless=true ,这要的坏处是如果重写url路由就不好识别。

    (http://www.xx.com/(此处是sessionid)/sdfsf.com)

    1.配置web.config  sessionstate 有4种,默认inproc,off,stateserver,sqlserver,自定义

    inproc:存在进程中,进程关闭则session丢失

    • stateserver:本地asp.net服务 

    设置为stateserver 默认为10秒开启成100秒,

    <sessionState mode="StateServer" cookieName="mike-uid"   stateConnectionString="tcpip=127.0.0.1:42424"     stateNetworkTimeout="100" ></sessionState> 配置好后,必须手动开启本地服务中的ASP.NET状态服务;

    • sqlserver:数据库asp.net

    存在名字ASPSTATE 数据库中,<sessionState mode="SQLServer" sqlCommandTimeout="30"  sqlConnectionString="Server=MIKPLE-PCSQLEXPRESS;Integrated Security=true"></sessionState>

    第一次需要生成此数据库,sql脚本文件位于 默认情况下,InstallSqlState.sql 位于 %windir%Microsoft.NETFrameworkversion 中。

     

     

     

    自定义session的value

     

    1)自定义sessionid类继承自SessionIDManager。 重写2个方法:CreateSessionID  和Validate

    2)  使用自定义的session value。

    配置web.config中的system.web节点下的 sessionstate  的sessionIDManagerType="MvcApplication1.session.sessionid"

     

    效果图如下(将sessionid 自定义成guid了)

    image

    using System;
    
    using System.Collections.Generic;
    
    using System.Linq;
    
    using System.Web;
    
    using System.Web.SessionState;
    
    namespace MvcApplication1.session
    
    {
    
        public class sessionid: SessionIDManager
    
        {
    
            public override string CreateSessionID(HttpContext context)
    
            {
    
                return Guid.NewGuid().ToString();
    
            }
    
            public override bool Validate(string id)
    
            {
    
                Guid g = new Guid(id);
    
                if (id == g.ToString())
    
                {
    
                    return true;
    
                }
    
               
    
                return false;
    
            }
    
        }
    
    }

     

    ???第一次访问url时候应该有个返回个sessionid,但是不设置mvc情况下就会不返回。像窝窝头第一次访问就返回55tuan-id

     

    msdn 帮助太重要了

  • 相关阅读:
    Delphi 连接 Paradox
    编译MangosZero
    关于StartCoroutine的简单线程使用
    cocos2dc-x解决中文乱码
    C++类构造函数初始化列表
    dynamic_cast
    cocos2d-x for android:SimpleGame分析
    C++宏定义详解
    四 AndEngine 画线
    三 最简单的 AndEngine 程序框架
  • 原文地址:https://www.cnblogs.com/StudyLife/p/3634772.html
Copyright © 2011-2022 走看看