Kategoriler


SON YORUMLAR
Can
bende yazı yazıyorum ama gec okunuyor acaba neden kaynaklanıyor. http://www.seslidunyasohbet.com
yazilimci
Java, C/C++, python, perl vs ve bilgisayar müh. derslerinizin ödevleri garantili yapılır, geçen sene olduğu gibi yazilimcialper@gmail.com , yazilimcialper@gmail.com
ihsan bulut
ANDROİD - JAVA - PYTHON - C - C++ GİBİ YAZILIM ALANLARINDA RASPBERRY Pİ - ARDİUNO GİB DONANIM ALANLARINDA HER TÜRLÜ ÖDEV VE PROJE HAZIRLANIR. İLETİŞİM :latifihsanbulut95@gmail.com MAİLLERE EN KISA ZAMANDA DÖNÜŞ YAPILIR.
Ezgi
merhaba, bilgisayar mühendisliği ile ilgilenen insanların zaman aşımına uğramış bilgilerle yanıltılmaması için yazının güncellenmesini öneriyorum. Günümüzde bilgisayar mühendisliği mezunu sayısını oldukça fazla ve popülerliği devam eden, yeni başlayan,çoktan tarihe karışmış teknolojiler var o günden bu güne.
Semih Bey
O kadar ağır bi aşağılık kompleksine kapılmışsın ki, yok "en iyi üniversite öğrencileri nerede,niye başvurmamış" yok "başka okullardaki öğrencileri küçümsersiniz ya" . Ya Allah aşkına Boğaziçi.den mezun olan İtü.den mezun olan adamların senin gibi böyle basit internet sitelerinde ilan vermesini mi bekliyon? Adamlar girip amazon.da, microsoft.ta projede çalışıyorlar, sen gelmiş böyle ucuz bi sitede aklınca onlara laf atmaya çalışıyon. İyi bi üniversite kazanamamışsan bu senin sorunun olum..Kurtul şu kompleksinden.
ömer
bende bilgisayar mühendisi olacam.
Kaan
Saü bilgisayar mühendisliğinde okuyorum birkaç dersten mezuna kaldım. Java, Android, C++, Web programlama ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaan8792 adresinden inceleyebilirsiniz.Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141
Murat Gelen
Hedefim B.M eyw Abi
Hayalim B.M olmak
Abi gerçekten çok teşekkür ederim senin sayende bilgisayar mührndisliğinin ne olduğunu biliyordum ama bilmiyormuşum bunu okuduktan sonra daha iyi anladım yani şey şuan 7 ye gidiyorum zaten ama yinede hayalim B.M olmak ben kızım ama yinede baska bir ülkeye de gitsem B.M olucam taktım kafaya gerçekten sana çok teşekkür ederim abi birde bir gün şey yaparmısın acaba lisede bilgisayar mühendisliği için neler lazım? Lisede B.M mühendisi olmak için neler yapıcaz? Yazılım mi yazcaz ? Tamir mi etcez?
esra
Broşur , Afiş , Dergi, Tek Baskılar Yada Toplu Baskılar Ödevler Yapılır. Baskıya Ve Tasarıma Dair Herşey Öğrenciye Uygun %50 Bedava Bana Ulaşabilirsiniz. esraozdemir.91@gmail.com
alper
Java, C/C++, python, perl vs ve bilgisayar müh. derslerinizin ödevleri garantili yapılır, geçen sene olduğu gibi yazilimcialper@gmail.com , yazilimcialper@gmail.com
alper
Java, C/C++, python, perl vs ve bilgisayar müh. derslerinizin ödevleri garantili yapılır, geçen sene olduğu gibi yazilimcialper@gmail.com , yazilimcialper@gmail.com
paripapxe
Selamlar, R programında istatistik dersi için ödev yapabilen arkadaşlar varsa ücret karşılığı bana ulaşabilir mi?
Komodor
Hahaha

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
ViewState Compression
Evinizde ADSL Üzerinden Web Hosting Hizmeti Nasıl Verilir
Bir bilgisayar mühendisinin bilmesi gereken en temel teknolojiler
Bilgisayar Mühendisliği Hakkındaki 10 Büyük Yalan!
Kurumsal Yazılım Geliştirmede C# ve Java Savaşı, IDE’lerin Önemi
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Türkiye'de Bilgisayar Mühendisliğinin Durumu? Bilg. Mühendisliğinin bugünü ve geleceği
DAYINIZ YOK MU?
Staj Yeri Nasıl Bulunur? Staja hazırlık olarak neler yapmalıyım?
Türkiye'de Bilgisayar Mühendisliğinin Durumu? Bilg. Mühendisliğinin bugünü ve geleceği
En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler
Microsoft API Savaşını Nasıl Kaybetti - Joel Spolsky
Para ile ödev yapmak üzerine
Kulak asmayın.
Bilgisayar Mühendisliği Hakkındaki 10 Büyük Yalan!
Türkiye'de Bilgisayar Mühendisliğinin Durumu? Bilg. Mühendisliğinin bugünü ve geleceği
Staj Yeri Nasıl Bulunur? Staja hazırlık olarak neler yapmalıyım?
SUBNETWORKING
Ekstrem Programlama [eXtreme Programming] - XP
Güncellenmiş XP [Ekstrem Programlama v.2.0]

Bilgisayar Mühendisleri Portalı

ViewState Compression

Compressing and Decompressing Data in Memory

First of all, we need a way to compress and decompress an array of bytes in memory. I put together this simple static class that exposes two methods: Compress and Decompress. The two available classes, GZipStream and DeflateStream, according to MSDN, use the same algorithm, so it's irrelevant which one you choose.

The code below is really simple, and doesn't need further explanation:

Collapse
using System.IO;
using System.IO.Compression;

public static class Compressor {

  public static byte[] Compress(byte[] data) {
    MemoryStream output = new MemoryStream();
    GZipStream gzip = new GZipStream(output, 
                      CompressionMode.Compress, true);
    gzip.Write(data, 0, data.Length);
    gzip.Close();
    return output.ToArray();
  }

  public static byte[] Decompress(byte[] data) {
    MemoryStream input = new MemoryStream();
    input.Write(data, 0, data.Length);
    input.Position = 0;
    GZipStream gzip = new GZipStream(input, 
                      CompressionMode.Decompress, true);
    MemoryStream output = new MemoryStream();
    byte[] buff = new byte[64];
    int read = -1;
    read = gzip.Read(buff, 0, buff.Length);
    while(read > 0) {
      output.Write(buff, 0, read);
      read = gzip.Read(buff, 0, buff.Length);
    }
    gzip.Close();
    return output.ToArray();
  }
}

You need to save this class in a .cs file and put it in the App_Code directory of your ASP.NET application, making sure it's contained in the proper custom namespace (if you don't specify any namespace, the class will be available in the built-in ASP namespace).

Compressing the ViewState

Now, we can actually compress the ViewState of the page. To do that, we have to override the two methods LoadPageStateFromPersistenceMedium and SavePageStateToPersistenceMedium. The code simply uses an additional hidden field, __VSTATE, to store the compressed ViewState. As you can see, by viewing the HTML of the page, the __VIEWSTATE field is empty, while our __VSTATE field contains the compressed ViewState, encoded in Base64. Let's see the code.

Collapse
public partial class MyPage : System.Web.UI.Page {

  protected override object LoadPageStateFromPersistenceMedium() {
    string viewState = Request.Form["__VSTATE"];
    byte[] bytes = Convert.FromBase64String(viewState);
    bytes = Compressor.Decompress(bytes);
    LosFormatter formatter = new LosFormatter();
    return formatter.Deserialize(Convert.ToBase64String(bytes));
  }

  protected override void SavePageStateToPersistenceMedium(object viewState) {
    LosFormatter formatter = new LosFormatter();
    StringWriter writer = new StringWriter();
    formatter.Serialize(writer, viewState);
    string viewStateString = writer.ToString();
    byte[] bytes = Convert.FromBase64String(viewStateString);
    bytes = Compressor.Compress(bytes);
    ClientScript.RegisterHiddenField("__VSTATE", Convert.ToBase64String(bytes));
  }

  // The rest of your code here...
}

In the first method, we just decode from Base64, decompress and deserialize the content of the __VSTATE, and return it to the runtime. In the second method, we perform the opposite operation: serialize, compress, and encode in Base64. The Base64 string is then saved into the __VSTATE hidden field. The LosFormatter object performs the serialization and deserialization tasks.

You may also want to create a new class, for example, CompressedPage, inheriting from System.Web.UI.Page, in which you override the two methods and then inherit your page from that class, for example MyPage : CompressedPage. Just remember that .NET has only single inheritance, and by following this way, you "spend" your only inheritance chance to use the ViewState compression. On the other hand, overriding the two methods in every class is a waste of time, so you have to choose the way that best fits your needs.

Performances and Conclusions

After a few tests, I noticed that the ViewState has been reduced from 38 KB to 17 KB, saving 44%. Supposing you have an average of 1 postback per minute per user, you could save more than 885 MB of bandwidth per month on every single user. That's an excellent result: you save bandwidth (and therefore money), and the user notices a shorter server response time.

I wanted to point out that this solution has a performance hit on the server's hardware. Compressing, decompressing, encoding, and decoding data is quite a heavy work for the server, so you have to balance the number of users with your CPU power and RAM.

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın




Copyright© 2001-2019. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.