2017年6月24日 星期六

2017年6月22日 星期四

判斷網頁設計的好壞,10個重點整理

判斷網頁設計的好壞,10個重點整理
網站是否有成效,一般來說必須以「內容是否優質」與「行銷策略是否正確」相互搭配執行,來提升產品在網路上的競爭,網際網路發展初期時,製作網站的公司較少,同質產品競爭對手也較少,如今網路行銷在台灣已經是非常普及,更多人意識到網路平台的行銷優勢與巨大商機,然而網頁設計技術與行銷方式不斷推陳出新,更多良莠不齊的網頁設計公司紛紛成立,所以挑選技術成熟的網頁設計公司也是十分重要。
根據最近調查表示,大多數的用戶,瀏覽網站時,網頁設計的好壞會影響他們對該公司的品牌信任感,訪客第一次使用網站的經驗,是非常重要的,給他的訊息必須是最及時與正確的,才可以馬上建立與訪客的信賴感。
好的網頁必須在10秒的時間內,引導訪客有興趣往下瀏覽,由於網路平台競爭激烈,如同肉搏戰一般,給予訪客正確與最新的資訊是最重要的,以下是針對網頁內容的優質性進行討論。
一、第一眼必須留住客戶【瀏覽者】
當訪客點開網頁時,只有短短的數秒時間來決定要不要繼續瀏覽,此時顯示的內容,無法達到訪客的需求時,將會馬上關閉,如果大部分的訪客都如此,這也表示這些資訊不是訪客需要的,就算網頁行銷策略是好的,也只是無效的瀏覽量,所以建置一個網站時,掌握市場上最適合的網頁設計風格與行銷策略,是必須要長期累積市場經驗公司才有辦法執行。
二、網頁動線必須單純明瞭
網頁設計必須盡量遵守一個大原則,點擊三下即可找到訪客所想要的資訊,當訪客很容易找到他想要的資訊或產品後,會對該網站產生信任感,進而繼續瀏覽其他資訊,如何能讓訪客更簡便的使用,是網頁設計最重要的一部份。
三、主導覽列
網頁"主導覽列"設計的好壞對網站的使用品質會有顯著的影響,如果雜亂編排的網頁,會讓訪客不知道如何開始使用,造成使用困難後不願意在繼續使用,如果編排方式是簡潔易懂的則會有相反結果,"主導覽列"建議使用簡潔明顯的方式設計,大多數的情況下,直接了當的表現方式,會有更好的使用者體驗。
四、建立良好的網站品牌形象
訪客所認知的品牌,是當下瀏覽網站而非企業本身,所以小企業與大企業皆可以平等的塑造良好企業品牌,而品牌的的塑造有如企業的門面一般,用網頁設計突顯您的企業特色,讓使用者印相深刻。
五、網站與品牌的一致性
如果公司有LOGO與品牌標識、營業資料、宣傳手冊等等..,這些產品識別需要適當的呈現在網頁中,這就是建立公司品牌與網站一致性,也是增加信任感一個重要部分,新的與舊有的客戶可以很容易的辨識公司品牌,並且與網站產生認同感。
六、內容與段落分明強調商品優勢
建置網站的目的無非是想讓您的商品與服務讓更多人接受與購買,如果內容充實豐富,但是缺乏脈絡與導覽性,會如同抽象畫一般,讓人無法充分理解內容,好的網頁設計方式會將內容資訊區分級數,最重要的的資訊會讓網頁使用者優先看到,依次類推下去,讓訪客先接收到重要訊息,較不會讓人感到無所適從而離開。
網站包含許多文字與圖片,文字與圖片應該相互補強,清楚的傳達的品牌價值與內容資訊,最主要的目的是要讓訪客記住網頁內容與商品資訊,所以編排時應該要簡潔扼要,這樣不僅讓網頁內容簡潔易懂,更重要的是訪客可以更容易的了解網頁內容。 編排太凌亂的網頁內容,會讓訪客感到視覺疲勞與不耐煩,使用簡單扼要的文字與圖片的網頁設計方式,反而可以讓網站加分。
七、充實完整與獨創性的網頁內容
完整且內容豐富的網頁,是大多數瀏覽者喜愛的,如果可以在一個網站內找到自己所需要的資訊或商品,何須造訪多個網站浪費時間,而且網頁內容的分享是非常方便的,如果訪客喜愛這個網頁內容,也有機會推薦給朋友,進而達到網路分享的行銷效果,如果內容是具有獨創性文章,將更容易被搜尋引擎提高加分,達到排名提高的功效。
八、整體信任感
如何最簡單的與網頁產生信任感呢? 一個有信任感的網站涵蓋專業視覺設計與豐富相關的文章,並且需要與時並進的加入更多相關的訊息與更新內容,一個過時的網頁內容,會讓訪客認為網頁的服務也是過時的,此外粗糙、缺乏內容、資訊繁雜、與過度設計都可能會讓訪客懷疑並且不信任,應該要與有經驗的網頁設計公司討論,公司商品性質與消費者需求,並依照討論內容與您的訪客建立信任關係。
九、網頁管理方便性與人性化
如今網站大都為動態網頁,這裡指的動態並非動畫功能,而是互動的管理功能,例如最新消息、留言板、產品上架...等等,可以讓管理人員藉由後台管理程式登入管理介面來更新編輯,這是非常重要的,後台的便利性與實用性,往往可以幫商家節省許多管理網站的時間。
十、搜尋引擎優化與使用者體驗
使用者體驗是搜尋引擎優化SEO的一部分,是涵蓋整體的網頁設計,簡單的說,如果一個很重要的資訊,像服務資訊或是優惠訊息,是被放於網頁中不容易看到的角落,訪客可能因為找不到想到的資訊,很快的離開,這樣會增加跳出率,並且搜尋引擎會認為網站並沒有相關的的服務資訊,而降低優化分數。

最後,一個好的網站,是可以獲得好的銷售業績與營收,但是請不要忘記了,內容的豐富性才最容易吸引的消費者停留的方式,所以需要不斷更新網站並提供最好最新的資訊。

DevExpress安裝教學

如果偵錯時出現bug時,把這檔案給刪除就好了

以 SharpPcap 實作可收聽封包的 C# 程式(winform)


上一篇文章是介紹如何撰寫簡單的console程式,這篇將分享我實作 SharpPcap  winform 程式的心得和遇到的問題。

winform表單設計
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcSUwUZLdYMGw23ZSVF7l0lYvW1FjuHsLHvBO3xfQlQf7tI824sPSrojs6Zvbt-x_7nlW876n2j0smXRhEjd0xCUTu3GODWloXZZQGhYVSexde7e3avcnfnp1m7QvJvRm6-1k3M8vqaYxY/s400/sharpcapwinform1.png
一個TextBox,作用是輸入過濾封包的filter到TextBox。
一個ListBox,作用是選擇ListBox中的網卡設備。
兩個Button。作用是開始時按下開始監聽按鈕,結束時按下停止監聽。

form.cs程式碼
設定完介面之後,我在 form.cs 引用 SharpPcap 的元件,並在Form class中先宣告網卡設備清單。然後在 Form 的初始函式中獲取網卡清單並在入到 Listbox 中。

using SharpPcap;
using SharpPcap.LibPcap;
using PacketDotNet;

namespace webcam_alarm_for_skype
{
    public partial class Form1 : Form
    {
        LibPcapLiveDeviceList devicelist = LibPcapLiveDeviceList.Instance;
        public Form1()
        {
            InitializeComponent();
            for (int i = 0; i < devicelist.Count; i++)
            {
                ListBox.Items.Add(devicelist[i].Description);
            }
        }
    }
}




觸發事件的程式碼
我有三個事件要寫,一個是開始監聽某網卡封包的按鈕事件、一個是停止監聽的按鈕事件、一個是封包被抓取時的觸發事件。第一個按鈕事件有兩個條件要先檢查,是否選擇了監聽的網卡,是否輸入封包過條件。條件都滿足之後再啟動網卡設備。


/*開始監聽的按鈕事件*/
private void button_Click(object sender, EventArgs e)
{
        if (ListBox.SelectedIndex < 1)
        {
                MessageBox.Show("沒選網卡!!", "提示", MessageBoxButtons.OK);             
        }
        else if (TextBox.Text == "")
        {
                MessageBox.Show("沒有封包過濾的條件!!", "提示", MessageBoxButtons.OK);
        }
        else
        {
                LibPcapLiveDevice lpldevice = devicelist[ListBox.SelectedIndex - 1];             
                try
                {                 
                        /* 選擇其中一個網卡,不一定要開啟混亂模式 */               
                        lpldevice.Open(DeviceMode.Promiscuous, 1000);
                        /* 使用符合 tcpdump 格式的語法即可過濾封包,基本上 http 的封包可用 tcp and ip 過濾*/
                        lpldevice.Filter = TextBox.Text;
                        /* 當條件的封包被被截取時,執行 device_OnPacketArrival */
                        lpldevice.OnPacketArrival += new PacketArrivalEventHandler(device_OnPacketArrival);
                        /* 開始 */
                        lpldevice.StartCapture();           
                }
                catch (Exception ex)
                {
                        MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK);
                }
        }
}

/*停止監聽的按鈕事件*/
private void button2_Click(object sender, EventArgs e)
{
        /* 選擇其中一個網卡 */
        LibPcapLiveDevice lpldevice = devicelist[lst_intefaces.SelectedIndex - 1];
        lpldevice.StopCapture();
}


第二個封包觸發事件,我希望當觸發時能在UI上提示一些訊息。但因為UI的執行緒和觸發事件發生時的不同,我並不能直接在事件中修改UI,除錯時系統會跳出跨執行緒的警告,並終止程式。因此我要先確認該控制項的 InvokeRequired 屬性,若為真表示跨執行緒調用,必須透過控制項的 BeginInvoke 方法才能調用。若不為真我才能直接調用。

/*封包觸發事件*/
private void device_OnPacketArrival(object sender, CaptureEventArgs e)
{
        Packet dotnetpacket = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);
        TcpPacket tcpPacket = TcpPacket.GetEncapsulated(dotnetpacket);
        IpPacket ippacket = (IpPacket)tcpPacket.ParentPacket;
        string payload = Encoding.ASCII.GetString(tcpPacket.PayloadData);
        if (payload.Contains("封包格式"))
        {
                if (Button.InvokeRequired)
                {
                        Button.BeginInvoke(new MethodInvoker(
                                () => Button.value = "過濾到了!!"));
                }
                else
                {
                        Button.value = "過濾到了!!";
                }
        }
}