ASP.NET MVC - HTML Editor | HTML編輯器 與 DatePicker | 日期選擇器

HTML Editor and DatePicker 總結

在開發網頁的過程式,除了前端 UI 之外,與使用者的互動,不外乎是「表單( Form )」(註1),一個好的表單設計,能讓你的網站加分。前面所談的使用者,包含一般前端網頁瀏覽使用者,與後台管理者,但對於表單的需求,他們兩者可都是一樣,希望更簡單、更方便、更好用。

註1:現在網頁外掛程式很多,可以直接在網頁上與使用者互動,已經不一定是透過表單,但就比例上而言,還是以表單為主,其他方式為輔。

以上六篇,討論在 ASP.NET MVC 中兩個關於表單的重點,HTML Editor ( HTML編輯器) 與 DatePicker (日期選擇器),這兩個算是在表單中很重要,也很常使用的功能。

HTML Editor(HTML編輯器) 介紹:

DatePicker(日期選擇器) 介紹:
每一套都有自己的優點,經過介紹之後,你可以選擇一套合適你自己的來使用。

例如說,我希望HTML Editor可以"簡單"、"小"、"快",那我會推薦使用 CLEditor。希望功能強大,TinyMCE 與 CKEditor 都不錯。希望免費又強大,那就是 TinyMCE 了。DatePicker 也是一樣的道理。

另外偷偷跟你說,實作部分,除非像 TinyMCE 直接跟你說 for MVC,不然,同理可證,你也可以拿去在 ASP.NET 上使用,也就是說,後面的六篇文章,有五篇可以在 ASP.NET 上使用,減一篇 ASP.NET + CKEditor + CKFinder 很早以前就介紹過了,所以有四篇新內容是與 ASP.NET 通用,爽吧!

HTML Editor and DatePicker 實作環境

  • Visual Studio 2010
  • ASP.NET MVC 3
以上是我的實作環境。基本上,就算使用 Visual Studio 11 + ASP.NET MVC 4,或比較舊的 Visual Studio 2008 + ASP.NET MVC 2 也沒關係,因為不管是 HTML Editor(HTML編輯器) 或 DatePicker(日期選擇器) 都與 Script 關係比較大,我是建議最少還是 Visual Studio 2010 + ASP.NET MVC 3會比較好,因為有些必須使用到 NuGet,在 Visual Studio 2008 下就有些問題了。

ASP.NET MVC HTML Editor and DatePicker 範例程式專案




檔案大小 5,218 KB (7z),解壓縮密碼:KKBruce。

HiCloud CaaS 雲端服務與管理介紹

前言

有時,理論是比較簡單,實作反而是困難。HiCloud CaaS這個服務我是一開始推出就使用,我個人是很支持國貨的,雖然有人會拿HiCloud CaaS與國外相似服務比較,但我覺得沒有意義!從國家、文化、市場規模、成本、技術能力、基礎建設…沒有一樣可以是「等號」,不是等號的東西怎麼比,拿 iPhone vs HTC vs ... 沒意義,了不起比比規格,因為規格可以用「大於、小於、等於」來比。

回理論與實作問題上。在HiCloud CaaS剛推出時,它們在Run!PC刊一篇文章,注意日期是2010/6/8日,我馬上寫信去問,什麼時間可以用,他們心虛的回答:應該是年底!過了一年,什麼東西都還沒看到,雖然等了很久,在2011/9月底,通知會員可以登入使用。

HiCloud CaaS 雲端服務與管理介紹

這一個「HiCloud CaaS 雲端服務與管理」是一個線上平台,你能透過它去申請異動查詢整個HiCloud Caas服務

圖一:HiCloud CaaS User Portal 首頁(點擊看大圖)
主畫面主要有功能列、新申請服務,查詢現有申裝情況、操作手冊等,我們按「虛擬主機申請」,

圖二:虛擬主機申請(一) 契約條款
圖三:虛擬主機申請(二) 選擇產品
目前除了日租,還有小時租,以小時為單位,每日最高收取日租費用,一般是超過4小時。臨時、短時間的要測試主機,還真是不錯選擇。申請過後,約15分鐘內就會開好虛擬機,可以使用。

圖四:虛擬主機相關訊息與開關機
這讓我很清楚目前整個虛擬主機的情況,還可以線上直接關機、重開機,很方便。

圖五、防火牆申請與設定
之前,我們要設定防火牆,必須打電話給機房端,由機房端設定,我們在測試是否正確,不過。現在,可以直接線上設定,實在方便許多,而且就算設錯了,趕快登入 User Portal 修改規則即可,不用電話來電話去。

圖六:負載平衡申請與設定
如果你提供的服務流量很大,除了選擇申請更高階虛擬主機外,負載平衡服務也是可以考慮,例如,租用二台以上基礎型雲端伺服器,加上一個負載平衡服務,也是個很不錯的選擇。尤其是HiCloud CaaS的租用方案都不合你胃口時。另一個考慮點,外面一台負載平衡伺服器都幾十萬上下,以日租金來看,成本效益算不錯。

圖七:儲存空間申請與設定
剛開始,反正什麼服務都要寫申請書,不然就是要打電話,現在真的方便很多。而且選擇也多了些,我們之前只能外掛100GB HDD,而且只能一顆,現在可以外掛2顆HDD,而且最大為 100GB * 20 = 2000 GB = 2 TB * 2顆 = 4 TB。一般而言,這樣的空間應該很夠用了。

圖八:HiCloud CaaS 加值服務申請
Cloud監控服務,應該就是Run!PC那篇文章所指的CPU、RAM的即時狀況,可參考http://hicloud.hinet.net/userportal.html網頁。

上網包xxxGB,我看不懂,寫信去問,沒人理我!@_@

HiCloud CaaS使用心得

從一開始的申請使用,到目前已經超過一年的時間,我喜歡HiCloud Caas的彈性,彈性是指,反正租你用,你只要不犯法,他們都不管你。但它們的CPU和RAM分配上,一直是固定方案,然後從一開始3個方案選擇,到現在有8個方案選擇,但未能像其他功能,可以讓我們隨選增減CPU或RAM,我反應過數次,可能是技術上有難處,但希望理論與實作都能看到,這樣就更進於完美。

Tool - Microsoft Exchange Server Best Practices Analyzer 工具

Microsoft Exchange Server Best Practices Analyzer 工具

Exchange Server Best Practices Analyzer 會以程式設計的方式,來從像是 Active Directory、登錄、Metabase 及效能監視器等資料儲存機制收集設定及數值。一旦收集完成,則會將一組全面的「最佳作法」規則套用至拓撲上。 執行此工具的系統管理員將會收到詳細資料報告,其中列出可對環境作出的建議,以達到更高效能、延展性及存留時間。
如果你有在管理 Exchange Server,那一定要使用這一套工具。他會去Scan你的Exchange Server,然找後出有問題的地方,還會直接給"建議"及"參考資料"。讓我們在管理、維護、效能…有很大的幫助。

記錄一下下載位置。

ASP.NET MVC - DatePicker 日期選擇器 | (3) JSCal2

JSCal2 簡介

這一套 JSCal 已經出道很久了,我第一次在 ASP 程式的 Calendar 就是使用 JSCal 版,還不是 JSCal2,不過後來轉為付費版本且免費資源越來越多的情況下,就換其他選擇了。但今天我們還是選擇介紹它,因為我想透過 JSCal2 介紹一個 ASP.NET MVC 裡的功能,這個功能常讓人家誤解。

先把 Model、Controller \ Action、View 建立起來。

Model:BlogPostJSCal2.vb

Imports System.ComponentModel.DataAnnotations

''' <summary>
''' Blog 發佈文章類別
''' </summary>
Public Class BlogPostJSCal2
    ' 標題
    Public Property Title() As String
    ' 發佈日期
    <DataType(DataType.Date)>
    Public Property PostedOn() As DateTime
    ' 標籤
    Public Property Tags() As String
    ' 內容
    Public Property Content() As String
End Class

Controller \ Action:BlogPostJSCal2Controller.vb

Namespace Mvc3HTMLEditorAndDatePicker
    Public Class BlogPostJSCal2Controller
        Inherits System.Web.Mvc.Controller

        '
        ' GET: /BlogPostJSCal2/Create

        Function Create() As ActionResult
            Return View()
        End Function

        <HttpPost(), ActionName("Create")>
        Function Create_Post(model As BlogPostMy97) As ActionResult
            ViewBag.HtmlContent = model.Content
            Return View(model)
        End Function

    End Class
End Namespace

View:Create.aspx

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of Mvc3HTMLEditorAndDatePicker.BlogPostJSCal2)" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    KKBruce : DatePicker (使用 JSCal2) 日期選擇器測試
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>DatePicker (使用 JSCal2) 日期選擇器測試</h2>

<%-- The following line works around an ASP.NET compiler warning --%>
<%: "" %>

<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>

<% Using Html.BeginForm() %>
    <%: Html.ValidationSummary(True) %>
    <fieldset>
        <legend>JSCal2 DatePicker</legend>

        <div class="editor-label">
            <%: Html.LabelFor(Function(model) model.Title) %>
        </div>
        <div class="editor-field">
            <%: Html.EditorFor(Function(model) model.Title) %>
            <%: Html.ValidationMessageFor(Function(model) model.Title) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(Function(model) model.PostedOn) %>
        </div>
        <div class="editor-field">
            <%: Html.EditorFor(Function(model) model.PostedOn) %>
            <%: Html.ValidationMessageFor(Function(model) model.PostedOn) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(Function(model) model.Tags) %>
        </div>
        <div class="editor-field">
            <%: Html.EditorFor(Function(model) model.Tags) %>
            <%: Html.ValidationMessageFor(Function(model) model.Tags) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(Function(model) model.Content) %>
        </div>
        <div class="editor-field">
            <%: Html.EditorFor(Function(model) model.Content) %>
            <%: Html.ValidationMessageFor(Function(model) model.Content) %>
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
<% End Using %>

<div>
    <%: Html.ActionLink("Back to List", "Index") %>
</div>

</asp:Content>

讓我們來使用 JSCal2 吧。

Windows - Windows Server 2008 R2修改DNS記錄更新時間

發現Windows Server 2008 R2裡DNS服務中,預設更新時間設定不是很符合RFC規定,例如:

Windows Server 2008 R2 DNS服務相關預設時間
圖一:Windows Server 2008 R2 DNS服務相關預設時間
原DNS預設時間

Refresh:15 min
Retry:10 min
Expire:1 day
Default TTL:1 hr

以上預設值,可能是以"Intranet"的DNS為目標,我沒有深入查詢。因為我是要放在"Internet"上,所以我修改建議值為:

Refresh:12 hr
Retry:2 hr
Expire:28 days
Default TTL:1 day

換算單位為秒:

Refresh:43200
Retry:7200
Expire:2419200
Default TTL:86400

以上只是個記筆。