2014年7月1日 星期二

如何設定在同一台主機上的 SQL Server 2014 和 SQL Server 2012

當 SQL Server 2014 和 SQL Server 2012 被安裝在同一台 Windows Server 2012 伺服器上時,其中一個資料庫實體可能會發生無法從遠端連線的狀況,其實 SQL Server 2014 的連線方式和之前的版本並無不同,都要啟用 TCP/IP 的通訊協定,由於預設是不啟用的,這便是造成多數遠端 Client 無法連線的主因。然而,當在同一台主機上安裝了多種版本的資料庫之後,情況又會變得更複雜,我們必須啟動 SQL Browser 服務,讓 SQL Browser 能幫助 Client 連線到正確的資料庫,此時防火牆可能又跑出來攪局,讓人更加摸不著頭緒,不知無法遠端連線的問題究竟出在哪裡?

以下的說明,希望能有助於類似問題的解決。

1. 開啟 TCP/IP 通訊協定
下圖上方是 SQL Server 2014 的組態管理畫面,下方是  SQL Server 2012 的組態管理畫面,我們可以發現 SQL Server 2014 的組態管理竟然少了 SQL Server 2012 的網路組態設定,必須啟用二者的 TCP/IP 通訊協定,才能讓 Client 遠端連線這二種資料庫,所以如果只是使用 SQL Server 2014 的組態管理,將會被誤導而忘記啟用 SQL Server 2012 的 TCP/IP 通訊協定。


2. 確認 TCP/IP 通訊協定內容
下圖上方是 SQL Server 2014 的 TCP/IP 的 IP 位址設定,IP1 ~ IP9 皆可不啟用(預設),我們只要記住 IPALL 的 TCP 動態通訊埠的值即可(可自設),此例為:49204,下圖下方是 SQL Server 2012 的 TCP/IP 的 IP 位址設定,同樣保留 IP1 ~ IP9 不啟用(預設),記住 IPALL 的 TCP 動態通訊埠的值,此例為:49205,這二個 Port 值之後必須在防火牆中開啟。

 SQL Server 2014 的 TCP/IP 的 IP 位址設定


 SQL Server 2012 的 TCP/IP 的 IP 位址設定

3. 確認 SQL Server Browser 正在執行
由組態管理員的 SQL Server 服務確認 SQL Server Browser 是否正在執行,若無法在組態管理員中啟動,請自行至 Windows 服務中啟動。


4. 確認 SQL Server Browser 可通過防火牆
1. 確認防火牆輸入規則已啟用 SQL Browser Service EXE 的 TCP 及 UDP

2. 確認防火牆已允許 SQL Browser Service EXE 通過

5. 新增輸入規則,以開啟資料庫連接埠



經由以上設定,遠端 Client 便可正確連線到這台 Windows Server 2012 上的任何一個 SQL Server 了。






2014年6月18日 星期三

製作可自動切換語言的 Windows Form 應用程式

在開發一個跨國性產品時,將遇到動態切換使用者介面(UI)文字語言的需求,.Net 的 Windows Form 應用程式早已具備當地語系化的架構,只要依循己設計妥當的開發方式,十分容易就能完成一個能表示多國語言的應用程式,並且能隨時動態切換顯示文字。

我們須具備一個觀念:應用程式的文字都是一種資源,切換顯示文字只不過是在切換資源。所以,在多語言應用程式的開發上,要注意的是以下幾點:

  1. 不同的語言內容,定義在各自的資源檔中。
  2. 程式中使用索引鍵 (Key) 取用文字。
  3. 設定系統作用中的語系,讓系統自動取得正確的文字語言。

以下文章已詳細說明基本的使用過程:

MSDN: 逐步解說:將 Windows Form 當地語系化
http://msdn.microsoft.com/zh-tw/library/y99d1cd3(v=vs.110).aspx

不過文中所說明的方法,只能在程式啟動時,決定一種要顯示的語言,如果我們必須在執行時期即時切換語言的話,要怎麼作呢?

範例:按下按鈕,即時變更顯示語言。



程式碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void BtnChinese_Click(object sender, EventArgs e)
        {
            ChangeLanguage("zh-TW");
        }

        private void BtnEnglish_Click(object sender, EventArgs e)
        {
            ChangeLanguage("en-US");
        }


        private void ChangeLanguage(string lang)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
            ComponentResourceManager res = new ComponentResourceManager(typeof(Form1));
            ChangeLanguage(this, res);
        }

        private void ChangeLanguage(Control ctrl, ComponentResourceManager res)
        {
            res.ApplyResources(ctrl, ctrl.Name, Thread.CurrentThread.CurrentUICulture);
            foreach (Control c in ctrl.Controls)
            {
                ChangeLanguage(c, res);
            }
        }
    }
}

2012年8月8日 星期三

HTML 使用 Javascript 執行 PostBack 並傳遞參數回 Server 的做法


<!-- Client -->
    <div>
        <ul>
            <li style="cursor:pointer" onclick="javascript: __doPostBack('','SortSNDesc');" >User SN Desc</li>
            <li style="cursor:pointer" onclick="javascript: __doPostBack('','SortName');">User Name</li>
        </ul>
    </div>


' Server Code Behind
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            Select Case Request("__EVENTARGUMENT")
                Case "SortSNDesc"
                    ListView1.Sort("UserSN", SortDirection.Descending)
                Case "SortName"
                    ListView1.Sort("FullName", SortDirection.Ascending)
            End Select
        End If
    End Sub

2012年1月19日 星期四

JavaScript 跳脫字元表



\0        Null (\u0000)
\b        退後鍵 (\u0008)
\t        水平 Tab (\u0009)
\n        換行 (\u000A)
\v        垂直 Tab (\u000B)
\f        換頁 (\u000C)
\r        游標返回 (\u000D)
\"        雙引號 (\u0022)
\'        單引號 (\u0027)
\\        斜線 (\u005C)
\x XX     Latin-1 字元
\u XXXX   Unicode 字元

2011年9月21日 星期三

電子書熱血工程師招募

其達科技正研發全新概念之電子書建置與銷售系統, 期許能造成數位閱讀市場之革命性突破, 目前正在招幕對於電子書領域有理想, 有熱血之軟體開發好手, 共同努力, 創造未來.

工作將協助開發 EPUB3+HTML5 電子書系統,包括電子書閱讀器、電子書編輯器、電子書銷售等,歡迎對於電子書產業有興趣,有想法的軟體工程師加入。

開發環境:
.Net Framework 4.0, Visual Studio 2010, SQL Server 2008

開發技術:
EPUB 3, HTML5, Ajax , jQuery, T-SQL, ASP.Net, Enterprise Library 4.0

  • 有行動裝置軟體 (iOS, Android) 開發經驗者佳
  • 有 MCTS 相關證照者佳
  • 有 EPUB、HTML5相關系統建置經驗者尤佳



詳情請見:
http://www.518.com.tw/job-detail-516152.html

2011年7月25日 星期一

Enterprise Library 5.0, A dependency on System.Data.OracleClient

警告 1 無法解析所參考的組件 "D:\G-Factor\Maktub\Ruby\RubyEpub3\bin\Debug\RubyEpub3.dll",因為它在 "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 上有相依性,而後者不在目前的目標 Framework ".NETFramework,Version=v4.0,Profile=Client" 中。請移除不在目標 Framework 中的組件參考,或考慮重新設定專案的目標。 TestConsole

2011年7月19日 星期二

EPUB 3 Overview / 4 Accessibility / 4.6 Scripting
EPUB 3 概述 / 4 內容可訪問性 / 4.6 腳本

EPUB 3 採用漸進增加的方法使腳本對內容產生作用,即腳本不會影響文件的完整性(也就是當腳本失效時,訊息也不會流失)。因此,儘管當文件的腳本因回退機制 [ContentDocs30] 而失去作用時,文件也依舊能被讀取。

以下幾個 EPUB 的
機制可以進一步減少和限制使用腳本於出版物中,卻依舊能增進存取性:
  • 使用加在 EPUB HTML 5 的 trigger 元素 [ContentDocs30],能夠使圖像或文字作為操作聲音和影片的按鈕(例如,啟動,停止和暫停播放)。該元素使相關的操作不需重覆撰寫相似的腳本功能。
  • mediaType 元素 [Publications30] 提供了以腳本為基礎的封裝,以支援自定 XML 詞彙或其他自定內容類型的意義表達,以及保證未來出版物的內容型能被未來的閱讀系統所支援。
  • type 屬性能提供語義變化的能力 [ContentDocs30] 使作者能為閱讀系統提供內容屬性的指引。一個用例是:定義元素如圖像或影片具有可縮放的屬性值,在這種情況下閱讀系統可為讀者提供了一種打破既有格式的擴展方法以呈現內容。這種變化效果通常是由腳本在網頁中實現,但腳本並不能保證在各式各樣的閱讀系統中的執行效果皆為一致。
  • switch 元素 [ContentDocs30] 提供作者裁切內容的一種方式,而不必依靠腳本。
最佳 Web 文件訪問腳本的做法,像是 [WAI - ARIA] 中所提供的(譯註:WAI-ARIA 的中文說明可參考:WAI-ARIA 介紹),應經常進行檢討,而腳本應只使用在最有助於讀者閱讀之處。

2011年7月16日 星期六

東京國際電子出版 EXPO 參展公司整理 (3)

公司

イワタ株式會社

網站

http://www.iwatafont.co.jp

地址

〒101-0032 東京都千代田区岩本町3-2-9

產品說明

專業字型製作、iOS & Android 電子書製作

公司

KDDI CORPORATION

網站

http://www.kddi.com/lismo/

地址

東京都千代田区飯田橋3丁目10番10号

產品說明

電子書銷售、整合電子書閱讀之行動裝置銷售(au)、電子書閱讀器銷售

心得

電子書銷售網站:LISMO Book Store

請來ARASHI 嵐代言au機(Android手機),該機除了是智慧型手機,也強調整合自家電子書系統,提供良好閱讀功能,電子書內容部份和booklista合作產生。公司資本額高達一千四億日幣。

公司

booklista Co.,Ltd (株式会社ブックリスタ)

網站

http://www.booklista.co.jp

地址

東京都港区赤坂2-5-27 SKIビル4F

產品說明

電子書製作

心得

和多家電子書銷售公司合作,專注成為電子書供應商。


2011年7月12日 星期二

東京國際電子出版 EXPO 參展公司整理 (2)

公司

野崎印刷株式会社

網站

http://www.realitybook.jp/

地址

新潟県新潟市江南区曙町3丁目15番23号

產品說明

產品名稱:RealityBook

功能:個人出版平台,從編輯à銷售à閱讀的完整解決方案,結合SymBook、SymStore、AeroBrowser等多家產品的合作網。

心得

如果去年的電子書元年,重要成果是硬體閱讀設備的開發,今年,電子書二年,則應該是數位出版平台的建置了。

公司

Clealink Tech. (株式会社 クレアリンクテクノロジー)

網站

http://aerobrowser.net/index.html

地址

〒619-0237 京都府相楽郡精華町光台1-7
けいはんなプラザラボ棟7階

產品說明

Android、iOS與PC Flash軟體閱讀器的製作,和RealityBook合作,負責電子書閱讀方面的解決方案。

公司

InCube Tech.

網站

http://www.incube.co.kr

地址

韓國

產品說明

Quark代理商,在此展場中主打Quark to ePub的功能

心得

Quark是出版系統開發公司,其產品:QuarkEXpress是數位出版軟體,目前努力與EPUB整合中,強調內容直排與影音內嵌。

會場中還請來歌手助陣,也有現場系統使用教學。

2011年7月10日 星期日

東京國際電子出版 EXPO 參展公司整理 (1)


公司

BookLive

網站

http://booklive.jp

地址

東京都台東区台東1-5-1 MAP

產品說明

數位共同書庫、電子書閱讀器、線上電子書販售

公司

Print Osaka

網站

http://www.printosaka.com

地址

大阪府八尾市美園町4-83-1

產品說明

印刷、iPad 出版

公司

forkN

網站

http://forkn.jp

地址

東京都台東区台東1-5-1 MAP

產品說明

個人出版平台、個人出版輔助、電子書販售

心得

老出版公司,但數位個人出版平台為今年5/23全新創立,主打個人出版,也開發了一個簡易的線上出版平台,試用結果還算陽春,內容輸入功能只是基本的HTML 編輯器,不過可加入圖片、影片 (MP4) 和聲音 (MP3)。

公司

東京文久堂

網站

http://www.tbunqdo.co.jp/report/

地址

東京都千代田区神田神保町2-4-7

產品說明

PDF結合服務:

PDF共同編輯平台,多人可同時上傳文檔,平台自動合併為一個PDF檔案輸出

公司

FIT株式會社

網站

http://www.symbook.jp

地址

大阪府大東市赤井1丁目2番10号 ポップタウン本館

產品說明

產品名稱:SymBook

功能:個人出版平台,從上稿到完成電子書或實體書的完整流程

心得

位置在入口處,讓人很難不注意到,桌上擺滿了由SymBook平台所建立的實體書,除了俳句、散文,還有不少是寫真集,現場後來竟也來了二位おいしい的寫真女郎,令人一時忘了在身在何處…。

從會場介紹看來,整個出版流程是完整的,定價策略也很完善,可以嚐試看看其實用性。