2014年10月1日星期三

使用ASP.NET MVC 實作購物網站 (一)





下載Visual Studio 2013 Express版本 [http://www.asp.net/vwd]
下載 SQL Server 2014 Express with Management tools[http://msdn.microsoft.com/zh-tw/evalcenter/dn434042.aspx]
[http://www.microsoft.com/zh-tw/download/details.aspx?id=42299]


預計三十天分享如何從無到有使用ASP MVC建構一個入門的基礎購物網站,我希望自己每天以花一小時內的時間來撰寫,也可以盡量讓文章閱讀者可以輕鬆上手,增加學習的成就感。

「工欲善其事,必先利其器」,我們第一步驟是下載並安裝下列兩樣東西:
1. Visual Studio 2013 Express for Web 版本 [http://www.asp.net/vwd]
2. SQL Server 2014 Express with Management tools [http://www.microsoft.com/zh-tw/download/details.aspx?id=42299]
-基本上都是下一步安裝法,伺服器組態選擇混合模式記下sa密碼(建議sa123),以後會較有彈性。如果只在同一台機器上開發測試,使用Window驗證模式也是可以的。

SQL Server 執行
SQL Server Express 成功安裝後,開啟[開始->Microsoft SQL Server 2014->SQL Server 2014 Management Studio]可以看到以下畫面:

使用Windows驗證登入後,可以任意選取系統資料表,如果成功SELECT則恭喜可以正常使用SQL Server了:



Visual Studio 2013 Express 安裝成功並執行[開始->VS Express 2013 for Web],選擇不要連接賬戶&不要登入Azure可以看到以下畫面

點選[新增專案]:


恭喜可以準備開發Web囉


















2014年7月3日星期四

Mac 常用快速鍵

Option + Command + Esc = 關閉程序
Shift + Command + 3 = Snap
Shift + Command + 4 = Snap Area


- Finder
Command + Shift + A =  Application
Command + Shift + U = Utility
Command + Shift + G = Go


-Sublime
Command + Shift + P = Package
Ctrl + ~ = command line


thanks to Gary, Alan


2014年2月6日星期四

[JavaScript] JavaScript考題

請問以下代碼運行結果為何?

function foo(){
foo.abc = function(){alert('def')}
this.abc = function(){alert('xyz')}
abc = function(){alert('@@@@@')};
var abc = function(){alert('$$$$$$')}
}
foo.prototype.abc = function(){alert('456');}
foo.abc = function(){alert('123');}
var f = new foo();
f.abc();
foo.abc();
abc();


 輸出為:
alert('xyz')
alert('def')


解釋:
var f = new foo(); 
//新建了一個foo對象,注意這時個上下文環境到了foo()中

f.abc();
//查找這個對象的abc()方法,輸出xyz,注意如果找不到就會去f.prototype裡找,到那時才會輸出456

foo.abc();
//在foo()中找到abc()方法,輸出def, 如果找不到會跳出foo() 到外面找到abc,輸出123

abc();
//在window中找到abc()方法,ie拋錯


 [Reference]
  http://jsfiddle.net/eMHY3/
  http://www.iteye.com/topic/268801

----------------------------------------------------
var b = function(b){ alert(b); }( function(){ alert(2); return '3'; }() );

結果為 ->2 ->3


2014年1月9日星期四

[Visual C#] 如何透過SMTP伺服器寄送郵件




public static bool Send(string To, string Subject, string Message, string From = "")

{

                using (System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage())

                {

                    if (String.IsNullOrEmpty(From))

                    {

                        message.From = new System.Net.Mail.MailAddress(Models.GlobalSettings.ServiceMail, Models.GlobalSettings.ServiceName);

                    }

                    else

                    {

                        message.From = new System.Net.Mail.MailAddress(From, From);

                    }

                    message.To.Add(To);

                    message.Subject = Subject;                  

                    message.Body = Message;

                    message.IsBodyHtml = true;

                    message.Priority = System.Net.Mail.MailPriority.Normal;



                    using (System.Net.Mail.SmtpClient mySmtp = new System.Net.Mail.SmtpClient(""mail.abc.com""))

                    {

                        System.Net.CredentialCache mycache = new System.Net.CredentialCache();

                        System.Net.NetworkCredential netcare = new System.Net.NetworkCredential(GlobalSettings.SMTPAuthUsername, GlobalSettings.SMTPAuthPassword,"mail.abc.com"); //設定帳號 密碼 與SMTP主機位置



                        mySmtp.Port = 25;

                        mySmtp.UseDefaultCredentials = false;

                        mySmtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

                        mySmtp.Credentials = netcare;

                        mySmtp.EnableSsl = false;

                        mySmtp.Send(message);

                        return true;

                    }

                }

   }







Reference :

http://www.codeproject.com/Tips/301836/Simple-SMTP-E-Mail-Sender-in-Csharp-Console-applic

2013年12月1日星期日

[Visual C#] 在啟動寫入之後無法設定此屬性 WebRequest

今天使用.NET的HttpWebRequest玩API串接,結果出現錯誤訊息:

在啟動寫入之後無法設定此屬性

原因是使用HttpWebRequest物件時,設定ContentLength一定要比寫入RequestStream還要早。


            var data = "data";
            myHttpWebRequest.ContentLength = data.Length;
            using (Stream stream = myHttpWebRequest.GetRequestStream())
            {                        
                stream.Write(Encoding.UTF8.GetBytes(data) , 0, data.Length);            
            }











HTTP request with post

HOW TO:使用 WebRequest 類別,傳送資料



2013年11月24日星期日

[Visual C#] 讓WebBroswer控制項使用IE9模式運行

WebBroswer控制項預設會使用IE7模式運行,如果想要使用其他模式則需要改變登錄檔(執行Regedit.exe),程式碼如下:

        private void Form1_Load(object sender, EventArgs e)
        {
            var appName = Process.GetCurrentProcess().MainModule.ModuleName;
            Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", appName, 9999, RegistryValueKind.DWord);
        }

其中9999代表IE9,

9999 (0x270F)
Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive.

9000 (0x2328)
Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.

8888 (0x22B8)
Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.

8000 (0x1F40)
Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.

7000 (0x1B58)
Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.








[C#]設定WebBrowser Control運行的User Agent版本

Web Browser Control – Specifying the IE Version





























2013年11月21日星期四

[Visual C#] 執行出現 每個組態檔只允許一個 項目 的錯誤

System.Configuration.ConfigurationErrorsException

每個組態檔只允許一個 <configSections> 項目

---

起因是因為在App.config (or Web.config)中 ,   <configSections> 區段一定要是在<configuration>區段中的第一個,如下:

<configuration>
  <configSections>
    ...
  </configSections>
  <applicationSettings>
    ...
  </applicationSettings>
  <connectionStrings>
   ...
  </connectionStrings>
</configuration>

否則會出現錯誤。




app.config 小插曲