Welcome to MSDN Blogs Sign in | Join | Help

Windows 7 不再綁 Internet Explorer

對微軟來說, 這真是一個重要的轉折, Windows 已經不再藉由其桌面的優勢, 強迫使用者非得安裝 IE 不可, 使用者可以選擇性的"不安裝", 或是在安裝之後移除它。

從 Windows 7 RC 開始, 使用者可選擇移除程式有下列 9 種:

  • Windows Media Player
  • Windows Media Center
  • Windows DVD Maker
  • Internet Explorer 8
  • Windows Search
  • Handwriting Recognition (through the Tablet PC Components option)
  • Windows Gadget Platform
  • Fax and Scan
  • XPS Viewer and Services (including the Virtual Print Driver)

 

消息來源:

http://blogs.msdn.com/e7/archive/2009/03/06/beta-to-rc-changes-turning-windows-features-on-or-off.aspx

Posted by 周旺暾 | 0 Comments

Moonlight 1.0 已發表

Unix 版的 Silveright – Moonlight 已經 Release 1.0 版, 支援以 X11 為顯示介面的 Unix 系統上的 Firefox 2 或 3, 目前還是 1.0 版, 相容於 Silverlight 1.0。

http://www.go-mono.com/moonlight/

clip_image002

參考 blogs:

http://weblogs.asp.net/scottgu/archive/2009/02/11/moonlight-1-0-release.aspx

http://tirania.org/blog/archive/2009/Feb-11.html

Posted by 周旺暾 | 1 Comments
Filed under: ,

如何在 Internet Explorer 中將網頁輸出成 .xps 檔

Vista用戶

  1. 開啟Internet Explorer
  2. 連上欲輸出的網址
  3. 於Internet Explorer中按下列印鍵(圖一)

clip_image002

(圖一)

  1. 選擇”Microsoft XPS Document Writer”,按下列印,選擇儲存位址即可。(圖二)

clip_image004

(圖二)

XP用戶

  1. 下載”Microsoft office add-in”(圖三),參考網址為: http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&displaylang=enclip_image002[5](圖三)
  2. 執行SaveAsPDFand XPS.exe
  3. 完成安裝後,打開Internet Explorer
  4. 連上欲輸出的網址
  5. 於Internet Explorer中按下列印鍵(圖四)

clip_image004[5]

(圖四)

  1. 選擇”Microsoft XPS Document Writer”,按下列印,選擇儲存位址即可。(圖五)

clip_image006

(圖五)

Posted by 周旺暾 | 3 Comments

有關 Silverlight 3 的消息

本來以為 Silverlight 2 發表之後, 下一版的 Silverlight 要等好一陣子, 最近 Scott Guthrie 在他的部落格透露了有關 Silverlight 3 的消息:

http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx

  • 預計明年 (2009 年) 推出
  • 支援 H.264
  • 提供 3D 物件並支援 GPU 卡加速
  • 其他程式開發加強 (資料繫結, 新控制項)
Posted by 周旺暾 | 1 Comments
Filed under:

用 Silverlight 開發的 Office Web 版

PDC 第二天發表在下一版的 Office 會同步推出全功能的 Web 版, 這個版本是使用 Silverlight 開發的, 功能跟 PC 版幾乎一樣, 但由於是 Web 版, 所以只能存取 Office Live Workspace 上的檔案。

Posted by 周旺暾 | 1 Comments
Filed under:

明年還會有 PDC

PDC 不是每年都會有的 (上一次的 PDC 是在三年前), 通常是微軟在開發技術上有重大革新時, 才會舉辦 PDC。而今天突然宣布明年 11/17~11/20 會舉辦 PDC 2009, 似乎是因為 Windows Azure 還有更多的隱藏計劃準備要在明年宣布。

看了今年 PDC 的方向, 原本還很擔心 MIX 09 (3/18~20) 會講些什麼, MIX 是微軟的 Web 技術大會, 連續幾年都把焦點放在 Silverlight 與 live.com。今年的 PDC 重新定義了微軟 Cloud 的大方向, 以目前 MIX 09 公布的內容 http://2009.visitmix.com/Agenda/Sessions.aspx, MIX 09 似乎會走向設計領域。

看起來 2009 會是 Cloud Computing 非常精彩的一年, 不只是微軟, 各大廠商應會更多有趣的作法被提出來。

Posted by 周旺暾 | 0 Comments
Filed under:

Silverlight Toolkit 發表

PDC 第 2 天展示了很多還要一年才有的技術, 包含 Windows 7, .NET 4.0, Visual Studio 2010, Live Services, Office 14...等等, 只有一個是立刻用得上的: Silverlight Toolkit。

Silverlight Toolkit (不是 Silverlight Tools for Visual Studio 2008 SP1) 是一堆免費的控制項, 如同 ASP.NET AJAX Control Toolkit, 將所有的程式碼開放在 Codeplex 網站, http://www.codeplex.com/Silverlight

ControlsPPC

Posted by 周旺暾 | 1 Comments
Filed under:

微軟發表雲端作業系統 Windows Azure

WindowsAzure

之前傳說中的 Windows Cloud 作業系統, 在 PDC 第一天正名為 Windows Azure, 從架構圖來看, Windows Azure Platform 分為兩部份: 底層是原先稱為 Global Foundation Service 或是 'red dog' 計劃的 Windows Azure; 上層則是以 Windows Azure 為基礎的 的各種 Services。

原先 live.com 上的各稱服務, 都整合成 Live Services, 而 Biztalk Service 則簡化後變成 .NET Services, SQL Services 目前包含 Data Services 及 Report Services。

更多資料請參考  http://azure.com/

servicesPlatform

Posted by 周旺暾 | 0 Comments
Filed under: ,

Silverlight 2 正式版推出

今天(10/14) Silverlight 2 正式推出, 使用者已經可以從 http://www.microsoft.com/silverlight 網站下, 預計到 10/20 會提供從 Windows Update 下載更新, 而原先安裝 Silverlight 2 beta 2 的則會到 10/24 以後自動更新到正式版, 換句話說, 目前若還是 Silverlight 2 beta 2 的網站, 10/24 之前必須完成正式版的更新工作。

開發相關工具也一併發表, 請到 http://silverlight.net/GetStarted/ 下載, 但有幾點注意事項:

1. 目前 Silverlight Tools for Visual Studio 2008 SP1, 正式版只有英文版, 繁體中文還是 RC1, 預計 11 月中, 還會更新一次繁體中文到正式版。

2. 原 beta 期間所用的 Blend 2.5 CTP 版次已取消, 改為 Blend 2 SP1, 安裝之前請先安裝 Blend 2, 才能再安裝 Blend 2 SP1。同樣的, 目前也先出英文版, 其他語言的版本要等到 11 月之後。

3. Deep Zoom Composer 也要更新到最新版, 目前也只有英文版。

Posted by 周旺暾 | 0 Comments
Filed under:

Silverlight Tools Beta 2 for Visual Studio 2008 繁體中文版

Silverlight Tools Beta2 for Visual Studio 2008 必須安裝相對應語言版本的 Visual Studio 2008, 如果你的 Visual Studio 2008 是中文版, 請到 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=50a9ec01-267b-4521-b7d7-c0dba8866434 下載中文版本。

Posted by 周旺暾 | 1 Comments
Filed under:

海外網站刷卡驗證的有趣經驗

網路刷信用卡對消費者來說, 一直存在著一定的風險, 因為只要卡號+有效期限就可以完成交易, 而信用卡號會永久儲存在網站的資料庫中, 萬一有一天網站被駭客入侵, 或是遇到不肖的網站工程師, 這些資料就會被不法人士利用在網路上刷卡消費。發卡銀行為了收入, 當然不希望承認網路交易是不安全的, 一旦遇上交易糾紛, 一定會先保護消費者(當然, 銀行自身的利益才真正的放第一, 消費者擺第二), 最後倒楣的就網路店家了, 因為在網路店家與銀行簽定的信用卡使用合約是沿用實體店面的合約, 合約上要求店家必須"看著"客人在簽單上簽名, 並核對簽單上的簽名與信用上背面的簽名必須一致, 店家才算完成務。這根本是一個不平等條約, 沒有一個網站可以做到合約上的條件 (即使是用傳真簽單也沒有用, 根本無法核對信用卡背後的簽名), 於是銀行就利用這個條款拒約支付款項。我還曾經遇過一筆交易, 在金額入帳近一年後, 被銀行片面通知為盜刷, 硬把公司帳戶中的金額扣走 (銀行的行為幾乎跟強盜沒有兩樣)。

這時網路店家就變成詐欺的受害者, 可以向盜刷信卡的人要求賠償, 問題是我們去哪裡找盜刷的人? 通常我都是接到刑事局的公文, 才知道我又變成受害者了, 還得跑一躺刑事局去作筆錄(這輩子安份守己, 幾次進出刑事局筆錄, 都是因為公司又變成網路詐欺的受害者)。如果盜刷的人與發卡銀行都在國內, 刑事局至才還會受理, 但是如果盜刷者在海外, 或者盜刷的是海外銀行發的信用卡, 以台灣目前的外交地位, 大概找不到什麼人可以幫你。於是, 很多網站是不受理海外刷卡的, 也不接受海外遞送的, 免得商品一但送出國, 就不知要去哪裡追回來。

可是我卻是很喜歡在國外網站買東西的, 當然也常遇到不提供海外遞送的網路, 雖然感到小小的失望, 但也完全體會網站經營者的困難。當然, 也遇到很多網站的刁難 , 這些刁難通常是網站為了確保自身利益, 施展各種不同的驗證措施, 以確認消費者真的持卡者本人。

1. 不接受帳單地址與遞送地址不同的海外交易

通常我的信用卡帳單地址是家裡, 但是遞送地址會寫公司, 以方便公司有人可以收件。某個網站為避免海外詐欺, 所以拒絕帳單地址與遞送地址不同的海外交易, 不過這個網站卻沒有事先告知此事, 不但讓我完成線上交易與信用卡授權, 過兩天才寫信來因為公司政策, 交易被取消。天啊! 它已經免費騙走我的信用卡號, 而且我如果把帳單地址也填公司, 它沒有任何辦法向我的銀行查詢地址的真偽, 這個驗證辦法根本是效的, 給一分。

2. 要求傳真信用卡帳單

有一個網站是在我完成送出交易隔天, 寄信來說: 對於第一次消費的海外客戶, 要驗證其持卡身份, 請我將任何一期的信用卡對帳單, 傳真到指定的電話, 上頭要有我的相同的信用卡號與持卡人姓名。它給的電話當然是國外的長途電話, 公司的傳真就算讓我傳到國外, 其費用也不小。於是我把帳單掃描成影像檔回寄給它, 它也接受認證。事後想想, 如果我真的要騙它, 不管是傳真或是掃描, 都很容易造假, 不過比起前一個方法尊重消費者, 給二分。

3. 要求發卡銀行提供正式證明文件

由於商家根本不可能向銀行查詢消費的個人資料, 某個海外網站要求我提供銀行出具的帳單地址證明, 意思就是要我的銀行特別出一份正式的證明, 以證明我的帳單地址無誤。這是什麼奇怪的要求, 一般銀行怎麼可能給這種無法無聊的證明, 只是為了賺台幣不到 200 元的手續費? 而且還要是英文版的證明文件。如果要用 Photoshop 製作一份假的銀行證明, 網站應該也無從查證。為了不願作假, 跟該網站用 e-mail 多次溝通無效, 只好放棄訂單, 給零分。

4. 要求提供該筆交易信用卡授權碼

在線上完成交易後, 銀行會給商家一個4位數的授權碼, 通常消費者不會看到交易授權碼。某個網站在結帳後寄一封信來, 為了首次確認持卡人身份, 請我向銀行查詢該筆交易的授權碼。一開始我還有點狐疑, 打了電話給銀行的客服中心, 電話中確認個人身份後, 果然問得該筆交易的授權碼。這種身份查核方式果然高明, 只用交易授權碼, 就可以讓發卡銀行客服中心代為確認持卡的身份, 給五分。該網站是:http://www.moosejaw.com/, 值得獎勵。

5. PayPal 確認法

這不是說用 PayPal 來確認交易, 而是當我們在 PayPal 申請帳號時, PayPal 先要求我們在網站上刷 1 美元, 神奇的是, PayPal 會在信用卡帳單中的店家名稱夾帶一個驗證碼 (一般的商家根本不可能有能力夾帶這種驗證碼), 再回到 PayPal 的網站上輸入驗證碼以完成身份驗證。這種方法, 雖然無法造假, 一般商家根本無法使用, 而且驗證碼必須等到一個月後收到帳單才能得知, 給三分。

Posted by 周旺暾 | 1 Comments

Silverlight 2 如何接收滑鼠滾輪訊息

註: 這裡的範例程式碼是針對 Silverlight 2 Beta1, 在 beta2 中, MultiScaleImage 的 Source 的型態有些改變。

在 Deep Zoom 的應用中, 常常會用滑鼠滾輪來作 Zoom In/ Zoom Out 的動作, 但是 Silverlight 2 Beta1 的 .NET 事件裡並沒有滑鼠滑輪的事件, 必需藉用瀏覽器事件來呼叫滾輪訊息。此外, 要特別注意的是, 滑鼠滾輪雖然方便, 但是並不是所有的作業系統都支援滑鼠滾輪, 也要可能有的使用者的滑鼠根本缺少滾輪, 所以我們在設計滾輪應用的同時, 務必要設計無法使用滾輪時的替代方案。(請參考清明上河圖的設計http://learnet.npm.gov.tw/silverlight/)

範例程式如下, 由於 IE, firefox, Safari 的事件模型不同, 所以要特別注意跨瀏覽器支援的部份, 範例程式碼測試過此三種瀏覽器:

Page.xaml

<UserControl x:Class="SilverlightApplication3.Page"
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    >

    <Grid x:Name="LayoutRoot" Background="White">
        <MultiScaleImage x:Name="dz"
            Source="deepzoomtest1/info.bin" UseSprings="False"
                         MouseLeftButtonDown="MultiScaleImage_MouseLeftButtonDown"
                         MouseMove="MultiScaleImage_MouseMove"
                         MouseLeftButtonUp="MultiScaleImage_MouseLeftButtonUp"
                         />
    </Grid>
</UserControl>

Page.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Browser;

namespace SilverlightApplication3
{
    [ScriptableType]
    public partial class Page : UserControl
    {
        public Page() {
            InitializeComponent();
            HtmlPage.RegisterScriptableObject("MySilverlightObject", this);
        }

        bool dragging = false;
        Point dragOffset;
        Point currentPosition;

        private void MultiScaleImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
            dragging = true;
            dragOffset = e.GetPosition(this);
            currentPosition = dz.ViewportOrigin;
        }

        private void MultiScaleImage_MouseMove(object sender, MouseEventArgs e) {
            if (dragging) {
                Point newOrigin = new Point();
                newOrigin.X = currentPosition.X -
                    (((e.GetPosition(dz).X - dragOffset.X)
                    / dz.ActualWidth) * dz.ViewportWidth);
                newOrigin.Y = currentPosition.Y -
                    (((e.GetPosition(dz).Y - dragOffset.Y)
                    / dz.ActualHeight) * dz.ViewportWidth);
                dz.ViewportOrigin = newOrigin;
            }
        }

        private void MultiScaleImage_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) {
            dragging = false;
        }

        [ScriptableMember]
        public void dz_MouseWheel(double x, double y, int delta) {
            double dZoomFactor = 1.25;
            if (delta < 0)
                dZoomFactor = 1 / 1.25;
            Point pz = dz.ElementToLogicalPoint(new Point(x, y));
            dz.ZoomAboutLogicalPoint(dZoomFactor, pz.X, pz.Y);
        }

    }
}

TestPage.html

<body onload="handleLoad()">
    <div id='errorLocation' style="font-size: small;color: Gray;"></div>
    <div id="silverlightControlHost">
        <object id="slHost" data="data:application/x-silverlight," type="application/x-silverlight-2-b1" width="100%" height="100%">
            <param name="source" value="ClientBin/SilverlightApplication3.xap"/>
            <param name="onerror" value="onSilverlightError" />
            <param name="background" value="white" />
            <a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration: none;">
                 <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
            </a>
        </object>
        <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
    </div>
    <script type="text/javascript" language="javascript">

    function handleLoad()
    {
        window.onmousewheel = document.onmousewheel = onMouseWheel;
        if (window.addEventListener)  // for firefox
            window.addEventListener('DOMMouseScroll', onMouseWheel, false);
    }

    function onMouseWheel(event)
    {
        if(event === undefined)  // for IE
            event = window.event;

        var delta = 0;
        var x = (event.clientX);
        var y = (event.clientY);
        var slPlugin = document.getElementById("slHost");   
        if (event.wheelDelta !== undefined) {
            delta = event.wheelDelta;
            slPlugin.content.MySilverlightObject.dz_MouseWheel(x, y ,delta);
        } else if (event.detail) {  // for firefox
            delta = -event.detail;
            x /= 15;
            y /= 15;
            slPlugin.content.MySilverlightObject.dz_MouseWheel(x, y ,delta);
        }
    }

    </script>
</body>




Posted by 周旺暾 | 2 Comments

如何在 Silverlight 2 MultiScaleImage 物件拖放

註: 這裡的範例程式碼是針對 Silverlight 2 Beta1, 在 beta2 中, MultiScaleImage 的 Source 的型態有些改變。

Silverlight 2 的一些範例如: Hardrock (http://memorial.hardrock.com/), 故宮清明上河圖 (http://learnet.npm.gov.tw/silverlight/) 都使用到滑鼠拖放圖片, 這是一個常用的功能, 因為常被問到, 所以把相關程式碼提供出來讓大家參考:

Page.xaml

<UserControl x:Class="SilverlightApplication3.Page"
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    >

    <Grid x:Name="LayoutRoot" Background="White">
        <MultiScaleImage x:Name="dz"
            Source="deepzoomtest1/info.bin" UseSprings="False"
                         MouseLeftButtonDown="MultiScaleImage_MouseLeftButtonDown"
                         MouseMove="MultiScaleImage_MouseMove"
                         MouseLeftButtonUp="MultiScaleImage_MouseLeftButtonUp"
                         />
    </Grid>
</UserControl>

 

Page.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SilverlightApplication3
{
    public partial class Page : UserControl
    {
        public Page() {
            InitializeComponent();
        }

    public partial class Page : UserControl
    {

        bool dragging = false;
        Point dragOffset;
        Point currentPosition;

        private void MultiScaleImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
            dragging = true;
            dragOffset = e.GetPosition(this);
            currentPosition = dz.ViewportOrigin;
        }

        private void MultiScaleImage_MouseMove(object sender, MouseEventArgs e) {
            if (dragging) {
                Point newOrigin = new Point();
                Point pMouse = e.GetPosition(this); 
                double ratio = dz.ViewportWidth / dz.ActualWidth;
                newOrigin.X = currentPosition.X - (pMouse.X - dragOffset.X) * ratio;
                newOrigin.Y = currentPosition.Y - (pMouse .Y - dragOffset.Y) * ratio;
                dz.ViewportOrigin = newOrigin;
            }
        }

        private void MultiScaleImage_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) {
            dragging = false;
        }

    }

}
Posted by 周旺暾 | 5 Comments

Silverlight 2 支援 Socket

Silverlight 2 Beta1 首次提供 Socket 的 API, 好讓 Silverlight 的程式可以用 SocketClient 連回伺服器, 使用其他或自定的通訊協定, 範例程式請參考: http://weblogs.asp.net/mschwarz/archive/2008/03/07/silverlight-2-and-sockets.aspx

Posted by 周旺暾 | 2 Comments
Filed under:

Moonlight 的進展

Moonlight 是由 Novell 主導的 Silverlight on UNIX 相容計劃, 微軟主要提供三項支援:

1. Media Pack for Moonlight

2. Silverlight 關發團隊所建立的測試個案

3. 提供完整的 Silverlight 設計規格

 

Moonlight 目前的版本編號是 0.3, 是針對 Silverlight 1.0 與 Silverlight 1.1 Alpha 相容規格開發, 預計今年 6 月會推出 1.0 版, 接下來的時程會緊跟著 Silverlight 2 的時程。

 

Moonlight 由於採用 GPL 授權, 而微軟的 Meida Pack 並非使用 GPL, 所以 Moonlight 自行開發了符合 GPL 的媒體播放功能模組, 微軟的 Media Pack 則分開下載安裝, 避免 GPL 授權的爭議。

Posted by 周旺暾 | 0 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker