天天看點

【牛腩新聞釋出系統】牛腩小結

       經過了這段時間的學習,終于完成了整個牛腩系統的操作。在這個過程中,感覺自己對三層的了解更加深入了,還有就是對于Web網頁的設計、HTML和css的應用有了不同的體會。雖然整個新聞釋出系統并不大,但是裡面包含的東西很多,做完之後還是很厲害的。下面是我對牛腩新聞釋出系統學習的小結:

1、HTML和CSS:對于盒子模型和錯誤調試的了解。

2、JavaScript:錯誤頁倒計時的應用。

3、.Net截取指定長度漢字超出部分以“…”代替:

///   <summary> 
    ///   将指定字元串按指定長度進行剪切, 
    ///   </summary> 
    ///   <param   name= "oldStr "> 需要截斷的字元串 </param> 
    ///   <param   name= "maxLength "> 字元串的最大長度 </param> 
    ///   <param   name= "endWith "> 超過長度的字尾 </param> 
    ///   <returns> 如果超過長度,傳回截斷後的新字元串加上字尾,否則,傳回原字元串 </returns> 
    public static string StringTruncat(string oldStr, int maxLength, string endWith)
    {
        if (string.IsNullOrEmpty(oldStr))
            //   throw   new   NullReferenceException( "原字元串不能為空 "); 
            return oldStr + endWith;
        if (maxLength < 1)
            throw new Exception("傳回的字元串長度必須大于[0] ");
        if (oldStr.Length > maxLength)
        {
            string strTmp = oldStr.Substring(0, maxLength);
            if (string.IsNullOrEmpty(endWith))
                return strTmp;
            else
                return strTmp + endWith;
        }
        return oldStr;
    } 
           

4、.NET使用一般處理程式生成驗證碼:

① HTML的代碼: 

<!--   
    Document   : ASP.NET用一般處理程式生成驗證碼  
    Created on : 2008-10-13 17:04  
    Author     : 牛腩  
-->  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>  
    <title></title>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <script type="text/javascript">  
        function change() {  
            var imgNode = document.getElementById("vimg");  
            imgNode.src = "WaterMark.ashx?t=" + (new Date()).valueOf();  // 這裡加個時間的參數是為了防止浏覽器緩存的問題  
        }  
    </script>  
  </head>  
  <body>  
    <img src="WaterMark.ashx" id="vimg" alt="" /><input type="button" value="換一張圖檔" onclick="change()" />  
  </body>  
</html>  
           

② 一般處理程式WaterMark.ashx的代碼: 

<%@ WebHandler Language="C#" Class="WaterMark" %>  

using System;  
using System.Web;  
using System.Drawing;  
using System.Drawing.Drawing2D;  
using System.Web.SessionState;    
  
public class WaterMark : IHttpHandler, IRequiresSessionState  // 要使用session必須實作該接口,記得要導入System.Web.SessionState命名空間  
{  
  
    public void ProcessRequest(HttpContext context)  
    {  
        string checkCode = GenCode(5);  // 産生5位随機字元  
        context.Session["Code"] = checkCode; //将字元串儲存到Session中,以便需要時進行驗證  
        System.Drawing.Bitmap image = new System.Drawing.Bitmap(70, 22);  
        Graphics g = Graphics.FromImage(image);  
        try  
        {  
            //生成随機生成器  
            Random random = new Random();  
  
            //清空圖檔背景色  
            g.Clear(Color.White);  
  
            // 畫圖檔的背景噪音線  
            int i;  
            for (i = 0; i < 25; i++)  
            {  
                int x1 = random.Next(image.Width);  
                int x2 = random.Next(image.Width);  
                int y1 = random.Next(image.Height);  
                int y2 = random.Next(image.Height);  
                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);  
            }  
  
            Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));  
            System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, true);  
            g.DrawString(checkCode, font, brush, 2, 2);  
  
            //畫圖檔的前景噪音點  
            g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);  
            System.IO.MemoryStream ms = new System.IO.MemoryStream();  
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);  
            context.Response.ClearContent();  
            context.Response.ContentType = "image/Gif";  
            context.Response.BinaryWrite(ms.ToArray());  
        }  
        finally  
        {  
            g.Dispose();  
            image.Dispose();  
        }  
    }  
  
    /// <summary>  
    /// 産生随機字元串  
    /// </summary>  
    /// <param name="num">随機出幾個字元</param>  
    /// <returns>随機出的字元串</returns>  
    private string GenCode(int num)  
    {  
        string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//"的一是在不了有和人這中大為上個國我以要他時來用們生到作地于出就分對成會可主發年動同工也能下過子說産種面而方後多定行學法所民得經十三之進着等部度家電力裡如水化高自二理起小物現實加量都兩體制機當使點從業本去把性好應開它合還因由其些然前外天政四日那社義事平形相全表間樣與關各重新線内數正心反你明看原又麼利比或但質氣第向道命此變條隻沒結解問意建月公無系軍很情者最立代想已通并提直題黨程展五果料象員革位入常文總次品式活設及管特件長求老頭基資邊流路級少圖山統接知較将組見計别她手角期根論運農指幾九區強放決西被幹做必戰先回則任取據處隊南給色光門即保治北造百規熱領七海口東導器壓志世金增争濟階油思術極交受聯什認六共權收證改清己美再采轉更單風切打白教速花帶安場身車例真務具萬每目至達走積示議聲報鬥完類八離華名确才科張信馬節話米整空元況今集溫傳土許步群廣石記需段研界拉林律叫且究觀越織裝影算低持音衆書布複容兒須際商非驗連斷深難近礦千周委素技備半辦青省列習響約支般史感勞便團往酸曆市克何除消構府稱太準精值号率族維劃選标寫存候毛親快效斯院查江型眼王按格養易置派層片始卻專狀育廠京識适屬圓包火住調滿縣局照參紅細引聽該鐵價嚴";  
        char[] chastr = str.ToCharArray();  
        // string[] source ={ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", "$", "%", "&", "@" };  
        string code = "";  
        Random rd = new Random();  
        int i;  
        for (i = 0; i < num; i++)  
        {  
            //code += source[rd.Next(0, source.Length)];  
            code += str.Substring(rd.Next(0, str.Length), 1);  
        }  
        return code;  
    }  
  
    public bool IsReusable  
    {  
        get  
        {  
            return false;  
        }  
    }  
} 
           

5、.NET中擷取字元串的MD5碼:

① 導入命名空間: 

using System.Web.Security;
           

② 擷取MD5碼:

string Password = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text.ToString(), "MD5");  
           

6、IIS的安裝與新聞系統的釋出:

參考部落格:

網站釋出—圖解Win7旗艦版中的IIS配置asp.net運作環境(一)

【牛腩新聞釋出系統】網頁釋出一般步驟

7、對于各種概念的了解:

參考部落格:【牛腩新聞釋出系統】--總結

Asp.net:

       它是基于.net framework的web開發平台,具有開發網站應用的一切解決方案,在代碼撰寫方面特色是将頁面邏輯和業務邏輯分開。 

HTML: 

       是一種用于建立網頁的标準标記語言,是建構網站的基石。HTML允許嵌入圖像與對象,并且可以用于建立互動式表單,它被用來結構化資訊–例如标題、段落和清單等等。 

XML: 

      是一種标記語言,與HTML的不同就是HTML是國際通用的标記語言,而XML是由相關人士自由決定的标記語言。 

CSS: 

     (層疊樣式表)是一種樣式表語言,用來描述HTML或者XML文檔的呈現。CSS描述了在螢幕、紙質、音頻等其他媒體上的元素應該被如何渲染的問題。 

DIV+CSS: 

       在web前端開發,div就是給整個網頁布局,css就是負責控制div樣式,想讓div在哪裡顯示,都可以通過css來實作,簡單的說網頁布局就像蓋房子,div負責把這棟房子蓋起來,而css負責告訴你怎麼改。 

JavaScript(js): 

       是一種基于原型、多範式的動态腳本語言,并且支援面型對象、指令式和聲明式風格。在牛腩新聞釋出系統中體會到的一點就是:js是用于互動的。 

jQuery: 

       是JavaScript函數庫,是目前最流行的js架構。 

AJAX: 

       是異步的JavaScript與XML技術,指的是一套綜合了多想技術的浏覽器端網頁開發技術。傳統的web應用允許使用者端填寫表單,當送出表單時就向網頁伺服器發送一個請求。伺服器接收并且處理傳來的表單,然後送回一個新的網頁,但這個做法浪費了許多帶寬,因為在前後兩個頁面中的大部門HTML碼往往是相同的。由于每次應用的溝通都需要想伺服器發送請求,應用的回應時間依賴于伺服器的回應時間,這導緻了使用者界面的回應比本機應用慢的多。與此不同,ajax應用可以僅向伺服器發送并取回必須的資料,并且在用戶端采用JavaScript處理來自伺服器的回應。因為在伺服器和浏覽器之間交換的資料大量減少,伺服器回應更快了,同時,很多的處理工作可以再送出請求的用戶端機器上完成,是以web伺服器和負荷也減少了。