WCF、WebAPI、WCFREST、WebService之間的區別

原文網址:https://read01.com/6GdOdP.html

 

在.net平台下,有大量的技術讓你創建一個HTTP服務,像Web Service,WCF,現在又出了Web API。在.net平台下,你有很多的選擇來構建一個HTTP Services。我分享一下我對Web Service、WCF以及Web API的看法。

Web Service

1、它是基於SOAP協議的,數據格式是XML

2、只支持HTTP協議

3、它不是開源的,但可以被任意一個了解XML的人使用

4、它只能部署在IIS上

WCF

1、這個也是基於SOAP的,數據格式是XML

2、這個是Web Service(ASMX)的進化版,可以支持各種各樣的協議,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

3、WCF的主要問題是,它配置起來特別的繁瑣

4、它不是開源的,但可以被任意一個了解XML的人使用

5、它可以部署應用程式中或者IIS上或者Windows服務中

WCF Rest

1、想使用WCF Rest service,你必須在WCF中使用webHttpBindings

2、它分別用[WebGet]和[WebInvoke]屬性,實現了HTTP的GET和POST動詞

3、要想使用其他的HTTP動詞,你需要在IIS中做一些配置,使.svc文件可以接受這些動詞的請求

4、使用WebGet通過參數傳輸數據,也需要配置。而且必須指定UriTemplate

5、它支持XML、JSON以及ATOM這些數據格式

Web API

1、這是一個簡單的構建HTTP服務的新框架

2、在.net平台上Web API 是一個開源的、理想的、構建REST-ful 服務的技術

3、不像WCF REST Service.它可以使用HTTP的全部特點(比如URIs、request/response頭,緩存,版本控制,多種內容格式)

4、它也支持MVC的特徵,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。這些可以使程序更簡單、更健壯

5、它可以部署在應用程式和IIS上

6、這是一個輕量級的框架,並且對限制帶寬的設備,比如智慧型手機等支持的很好

7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。

How to use the Microsoft Outlook Object Library to send an HTML formatted message by using Visual C#

https://support.microsoft.com/zh-tw/help/310262/how-to-use-the-microsoft-outlook-object-library-to-send-an-html-formatted-message-by-using-visual-c

using System;
using System.Reflection;     // to use Missing.Value
// TO DO: If you use the Microsoft Outlook 11.0 Object Library, uncomment the following line.
// using Outlook = Microsoft.Office.Interop.Outlook;

namespace SendHTMLMail
{
   public class Class1
   {
      public static int Main(string[] args)
      {
         try
         {
            // Create the Outlook application.
            Outlook.Application  oApp = new Outlook.Application();

            // Get the NameSpace and Logon information.
            Outlook.NameSpace oNS = oApp.GetNamespace("mapi");

            // Log on by using a dialog box to choose the profile.
            oNS.Logon(Missing.Value, Missing.Value, true, true); 

            // Alternate logon method that uses a specific profile.
            // TODO: If you use this logon method, 
            //  change the profile name to an appropriate value.
            //oNS.Logon("YourValidProfile", Missing.Value, false, true); 

            // Create a new mail item.
            Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

            // Set the subject.
            oMsg.Subject = "Send Using OOM in C#";

            // Set HTMLBody.
            String sHtml;
            sHtml = "<HTML>\n" + 
               "<HEAD>\n" +
               "<TITLE>Sample GIF</TITLE>\n" +
               "</HEAD>\n" +
               "<BODY><P>\n" + 
               "<h1><Font Color=Green>Inline graphics</Font></h1></P>\n" +
               "</BODY>\n" + 
               "</HTML>";
            oMsg.HTMLBody = sHtml;

            // Add a recipient.
            Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
            // TODO: Change the recipient in the next line if necessary.
            Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add("email address");
            oRecip.Resolve();

            // Send.
            oMsg.Send();

            // Log off.
            oNS.Logoff();

            // Clean up.
            oRecip = null;
            oRecips = null;
            oMsg = null;
            oNS = null;
            oApp = null;
         }

         // Simple error handling.
         catch (Exception e)
         {
            Console.WriteLine("{0} Exception caught.", e);
         }  

         // Default return value.
         return 0;
  
      }
   }
}

 

厚積薄發,擁抱 .NET 2016

http://www.zendei.com/article/10879.html

  • .NET Framework 4.6

.NET Framework 4.6 作為 .NET Framework 的最新版本,在過去 10 多年間,不斷被增強。我們利用這個 Framework 構建 Windows Form 、WPF、ASP.NET 4 等應用程式。儘管 ASP.NET Core 應用程式運行在.NET Core 上,但它也能運行在.NET Framework 4.6 上。

如果你想要繼續使用 ASP.NET Web Form 開發應用程式,.那麼 NET Framework 4.6 中的 ASP.NET 4.6 是你的最佳選擇。值得註意的是你不能在.NET Core 上運行 ASP.NET Web Form 應用程式。

  • .NET Core 1.0

.NET Core 1.0(目前是 RC2),是新的.NET,相比於 Mono,它是真正意義上跨平臺的實現。.NET Core 被設計成模塊化的方法,即被分割成大量的 Nuget Package。在應用程式中,你決定需要哪些 Package,並且隨時保持更新和卸載。而.NET Framework,它是操作系統的一部分,註定不能實時被更新,同時,過去 10 多年件,.NET Framework 加入非常多的新功能,它變得越來越大,更糟糕的是,它不可能移除不再需要的舊功能。比如舊的集合類不再被使用因為泛型集合類加入,.NET Remoting 被新的通信技術 WCF、ASP.NET Web API 替換,LINQ to Sql 被 EntityFramework 替換。而這些舊技術,一直存在.NET Framework 中,你不得不全盤接受他們。

  • Xamarin

Mono 是開源社區開發的跨平臺.NET Framework,而 Xamarin 是一個構建於 Mono 上跨平臺移動應用開發框架。相信微軟收購了 Xamarin 之後,Mono 將得到大力支持,.NET Core 在移動端的表現拭目以待。