当前位置:编程学习 > C#/ASP.NET >>

哈哈。四个月开发完一个门户,基于自定义控件的原理,表现了.NET的精华

www.2010cz.com 大家也可以看下`。给点意见 --------------------编程问答-------------------- 是自己独立开发的吗,不错啊 --------------------编程问答-------------------- 不错。不错,感觉排版需要改进 --------------------编程问答-------------------- 就我1个人呢``呵呵`。。。。。累死,1天当两天用, --------------------编程问答--------------------

厉害. --------------------编程问答-------------------- 拿程序改的?还是原创程序?

要是原创你真高产! --------------------编程问答-------------------- 支持下
不过打开速度太慢了 --------------------编程问答-------------------- 厉害 --------------------编程问答-------------------- 最原始的开发模式 --------------------编程问答-------------------- 原创?是的话,4个月效率很高了 --------------------编程问答--------------------
引用 8 楼 fuxuncu 的回复:
最原始的开发模式

这话怎么说`?? --------------------编程问答-------------------- 精华在哪? --------------------编程问答-------------------- 不错噢 ..... --------------------编程问答-------------------- 怎么那么多垃圾代码。。带有垃圾代码的网站都是菜鸟写的。。
你没看那些大网站吗?
包括csdn,都没有 --------------------编程问答-------------------- lz结帖率:9.00%
总发帖:100
正常结贴:9
未结贴:91

......................... --------------------编程问答--------------------  太卡了,不过有钱途 --------------------编程问答--------------------
引用 11 楼 zhoukang0916 的回复:
精华在哪?

在这里:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/+/oi4/+gUTL0NvbXBhbnlCYXNlLzUuYXNweGRkAgYPZBYCAgEPDxYEHwIFDOaUtui0ueagh+WHhh8GBRMvQ29tcGFueUJhc2UvNi5hc3B4ZGQCRw9kFgJmD2QWAgIBDxYCHwQCAxYGZg9kFgICAQ8WAh8CBbABPGEgaHJlZj0iaHR0cDovL3dwYS5xcS5jb20vbXNncmQ/Vj0xJlVpbj04MzgzNTMxNzImU2l0ZT3nmb7luqbnn6XpgZMmTWVudT15ZXMiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cDovL3dwYS5xcS5jb20vcGE/cD0xOjgzODM1MzE3Mjo0IiBib3JkZXI9IjAiIGFsdD0iUVEiIC8+5LyN5YukPC9hPiBkAgEPZBYCAgEPFgIfAgWyATxhIGhyZWY9Imh0dHA6Ly93cGEucXEuY29tL21zZ3JkP1Y9MSZVaW49MTMzMjIxMzM1NiZTaXRlPeeZvuW6puefpemBkyZNZW51PXllcyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwOi8vd3BhLnFxLmNvbS9wYT9wPTE6MTMzMjIxMzM1Njo0IiBib3JkZXI9IjAiIGFsdD0iUVEiIC8+5a6i5pyNPC9hPiBkAgIPZBYCAgEPFgIfAgW8ATxhIGhyZWY9Imh0dHA6Ly93cGEucXEuY29tL21zZ3JkP1Y9MSZVaW49ODM4NTY4MDE4JlNpdGU955m+5bqm55+l6YGTJk1lbnU9eWVzIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly93cGEucXEuY29tL3BhP3A9MTo4Mzg1NjgwMTg6NCIgYm9yZGVyPSIwIiBhbHQ9IlFRIiAvPumVv+aymei/kOiQpeS4reW/gzwvYT4gZGRdlJMB799dzECDJ6unhV/f7IFzeg==" />
--------------------编程问答-------------------- 点一下刷新一下  用户操作不爽 --------------------编程问答-------------------- 界面上一般情况。。。呵呵。。 --------------------编程问答--------------------
引用 17 楼 niuzai520 的回复:
点一下刷新一下  用户操作不爽


这个说法似乎有点思路,就看楼主有没有注意到了,重点在于组合,旅游网站... --------------------编程问答-------------------- 还不错 支持下! --------------------编程问答--------------------
引用 13 楼 jfy724 的回复:
怎么那么多垃圾代码。。带有垃圾代码的网站都是菜鸟写的。。
你没看那些大网站吗?
包括csdn,都没有

精华在于全部是自定义控件,,,,,并没有用。NET自带的控件,,全部是自定义的。
我认为.NET的精华就在于控件 --------------------编程问答--------------------
引用 17 楼 niuzai520 的回复:
点一下刷新一下 用户操作不爽

无刷新技术不能很追捧,网站内的商户会员都做了,但前台没有做,也不可能做 --------------------编程问答--------------------
引用 13 楼 jfy724 的回复:
怎么那么多垃圾代码。。带有垃圾代码的网站都是菜鸟写的。。
你没看那些大网站吗?
包括csdn,都没有

www.hishop.com.cn 你能说他们公司的团队是菜鸟吗,有本事拿着他们的源码,看看!!!这说明,你不懂自定义控件。 --------------------编程问答-------------------- http://www.2010cz.com/BoxOrder.html
========================
看看你这一堆的viewstate,还有你的145k页面尺寸,不知道访问量大时,效果会怎么样?不过做成这样很不错了! --------------------编程问答--------------------
using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Web.UI;

public class VPage : Page
{
    static private DirectoryInfo _Dir;

    private static DirectoryInfo Dir
    {
        get
        {
            if (_Dir == null)
            {
                _Dir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data"));
                if (!_Dir.Exists)
                    _Dir.Create();
                _Dir = new DirectoryInfo(Path.Combine(_Dir.FullName, "ViewState"));
                if (!_Dir.Exists)
                    _Dir.Create();
            }
            return _Dir;
        }
    }

    protected override object LoadPageStateFromPersistenceMedium()
    {
        PageStatePersister ps = this.PageStatePersister;
        ps.Load();
        if (ps.ControlState != null)
            ps.ControlState = 反序列化对象((string)ps.ControlState);
        if (ps.ViewState != null)
            ps.ViewState = 反序列化对象((string)ps.ViewState);
        return new Pair(ps.ControlState, ps.ViewState);
    }

    protected override void SavePageStateToPersistenceMedium(object state)
    {
        PageStatePersister ps = this.PageStatePersister;
        if (state is Pair)
        {
            ps.ControlState = ((Pair)state).First;
            ps.ViewState = ((Pair)state).Second;
        }
        else
            ps.ViewState = state;
        if (ps.ControlState != null)
            ps.ControlState = 序列化对象(ps.ControlState);
        if (ps.ViewState != null)
            ps.ViewState = 序列化对象(ps.ViewState);
        ps.Save();
    }

    private object 反序列化对象(string stateID)
    {
        if (stateID == null)
            return null;

        object state = Cache[stateID];
        string fname = Path.Combine(Dir.FullName, stateID);
        if (state == null)
            using (var stream = File.OpenRead(fname))
                state = new BinaryFormatter().Deserialize(stream);
        this.Page.SaveStateComplete += (s, e) =>    //当发生异常时,此方法不会执行,因此可以保证不会误删ViewState文件
        {
            Cache.Remove(stateID);
            File.Delete(fname);     //这个方法恰好可以禁止浏览器端的“刷新”。
        };
        return state;
    }

    static long seed1 = DateTime.Now.Ticks;
    static ulong seed2 = 0;
    static object lockflag = new object();

    private string 序列化对象(object obj)
    {
        lock (lockflag)
        {
            string stateID = seed1.ToString() + "_" + (seed2++).ToString();
            Cache.Insert(stateID, obj, null, DateTime.Now.AddMinutes(5), TimeSpan.Zero);
            var stream = new MemoryStream();
            new BinaryFormatter().Serialize(stream, obj);
            File.WriteAllBytes(Path.Combine(Dir.FullName, stateID), stream.ToArray());
            return stateID;
        }
    }

    static VPage()
    {
        var et = DateTime.Now.AddMinutes(-30);
        Dir.GetFiles()
            .Where(f => f.LastAccessTime < et)
            .ToList()
            .ForEach(f =>
            {
                try
                {
                    f.Delete();
                }
                catch { }
            });
    }
}
--------------------编程问答-------------------- sp的代码是什么意思?没看大懂。。。呵呵 --------------------编程问答-------------------- 你哪站长公告刷得也太快了吧...败笔啊!! --------------------编程问答-------------------- 每天回帖即可获得10分可用分! --------------------编程问答--------------------
引用 6 楼 bclz_vs 的回复:
支持下
不过打开速度太慢了

--------------------编程问答-------------------- 个人认为,服务器控件能不用尽量别用~ --------------------编程问答-------------------- 不过打开速度太慢了
--------------------编程问答-------------------- 界面还挺好看的,也是楼主原创的吗 --------------------编程问答-------------------- 控件是.net精华…………
不愧是精华,速度好快
--------------------编程问答--------------------     本来想用DZ的多线程,但发现没有必要,这是基于.NET的控件开发原理.... --------------------编程问答-------------------- http://demo.92hi.com/ 这个网站怎么样呢。原理是一样的 --------------------编程问答-------------------- 四个月的时间能做成这样不错了,很佩服。
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,