# رؤية حالة التضخيم باستخدام BZip2...أول نماذج نموذجي...

<datetime class="hidden">2004-02-29T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, Performance -->
فقط لمحة أولية على هذا , يستخدم بعض الفصول التي استخدمتها في مشروع آخر (I' سأقوم بتسمية شفرة التضخيم لاحقاً МSK3 أعتقد أنني حصلت عليها من [Sharpziplib](http://www.icsharpcode.net/OpenSource/SharpZipLib/) الاشياء - مع بعض التعديلات - أنا' سأقوم بوضع مخطوطات التعليقات في الخلف للتوافق مع اشياء الرخصة لاحقاً ♫- الآن اعتبرها مثالاً فقط ♫ ) الشيفرة الفعلية لتضخيم المشاهدات هي بسيطة جداً |

```
using System;
using System.Web.UI;
using System.IO;
namespace ViewStateCompression
{
    /// 
    /// Summary description for CompressedVSBasePage.
    /// 
    public class CompressedVSBasePage :System.Web.UI.Page
    {
        private LosFormatter  _formatter = new LosFormatter();
        protected override void SavePageStateToPersistenceMedium(object viewState)
        {
            StringWriter sw = new StringWriter();
            _formatter.Serialize(sw, viewState);
            ComDePress cmp = new ComDePress();
            string outStr = cmp.Compress(sw.ToString());
            Page.RegisterHiddenField("__COMPRESSEDVIEWSTATE",outStr);
        }
        protected override object LoadPageStateFromPersistenceMedium()
        {
            string vsString = Request.Form["__COMPRESSEDVIEWSTATE"];
            string outStr = new ComDePress().DeCompress(vsString);
            return _formatter.Deserialize(outStr);
        }
    }
}
```

لإستخدامه, فقط توارث من هذه الصفحة بدلاً من النظام العادي.ويبM SK2UI .PageMSC4 من الواضح أنكم تفقدون بعض وظائف الحالة البصرية العادية مثل التشفير ♫- لكن هذه يجب أن تكون سهلة لإعادة وضعها في ــ... أنا أرى حاليا توفيراً كبيراً في حجم الحالة الظاهرة من استخدام هذا ♫ - باستخدام BZip | 2 | التضخيم |- | كما هو ــ ' | قطعة من الشفرة التي كنت أكذب عليها | ..., | رجاءً حاولوا جربها |

لقد قمت بعمل [مشروع اختبار للعب مع هذا](/uploads/ViewStateCompression.zip) ,itM SK1s VS.NET 2003,it has everything required (including the compression stuff

تحديث: كنت أقوم ببعض الاختبارات مع هذا ... كمثال , باستخدام قاعدة بيانات مكتظة من "إختيار \* من الطلبات" لـ Northwind DB المرتبطة بـ DataGrid تلقائيًا ( اخترت هذا ليكون أكثر رقاقة ممكنًاM SK3 أذهب من 659984 بكتات في نظريإنزل إلى |52080 بكتيات |... توفير حوالي | 92% | - والذي أعتقد أنه مدهش جدًا♫ ! أنا أعتقد أن هناك بعض العوائق لهذا ♪ ( ♪ بالإضافة إلى القليل من الدورات الإضافية اللازمة للتضخيم ♪) \- ♪ لكن هل هناك أي سبب فعلي لماذا لا يعطي MS خيار للتضخين لـ ViewState خارجًا؟ ♪

تحديث : حسناً , لمن criticised the code' this is a PROTOTYPE - just to test the ideaM SK5 I plan to play around with this a bit more at some point and will be looking at including some funky features like [دينيس باور's ViewState viewer](http://www.denisbauer.com/ASPNETControls.aspx) تم بناؤه -in, نظم تضغط مختلفة , التشفير مختلف | - بما في ذلك الكفاءة المذهلة [الأسماك الاثنان](http://www.codeproject.com/csharp/twofish_csharp.asp)- باختصار سوف يكون لعبة لي لأنظر إليها وتوسيع تطبيق ViewState الحالي