diff --git a/samples/features/sql-clr/Curl/.gitignore b/samples/features/sql-clr/Curl/.gitignore
new file mode 100644
index 00000000..09e33592
--- /dev/null
+++ b/samples/features/sql-clr/Curl/.gitignore
@@ -0,0 +1,7 @@
+*.cproj.user
+.vs/*
+.vscode/*
+bin/*
+obj/*
+*.log
+Properties/PublishProfiles/*
\ No newline at end of file
diff --git a/samples/features/sql-clr/Curl/Curl.cs b/samples/features/sql-clr/Curl/Curl.cs
new file mode 100644
index 00000000..691bcc6e
--- /dev/null
+++ b/samples/features/sql-clr/Curl/Curl.cs
@@ -0,0 +1,47 @@
+using Microsoft.SqlServer.Server;
+using System;
+using System.Data.SqlTypes;
+using System.Net;
+
+///
+/// Provides CURL-like functionalities in T-SQL code.
+///
+public partial class Curl
+{
+ [SqlFunction]
+ [return: SqlFacet(MaxSize = -1)]
+ public static SqlChars Get(SqlChars H, SqlChars url)
+ {
+ var client = new WebClient();
+ if (!H.IsNull)
+ {
+ var header = H.ToSqlString().Value;
+ if (!string.IsNullOrWhiteSpace(header))
+ client.Headers.Add(header);
+ }
+ return new SqlChars(
+ client.DownloadString(
+ Uri.EscapeUriString(url.ToSqlString().Value)
+ ).ToCharArray());
+ }
+
+ [SqlProcedure]
+ public static void Post(SqlChars H, SqlChars d, SqlChars url)
+ {
+ var client = new WebClient();
+ if (!H.IsNull)
+ {
+ var header = H.ToSqlString().Value;
+ if (!string.IsNullOrWhiteSpace(header))
+ client.Headers.Add(header);
+ }
+ if(d.IsNull)
+ throw new ArgumentException("You must specify data that will be sent to the endpoint", "@d");
+ var response =
+ client.UploadString(
+ Uri.EscapeUriString(url.ToSqlString().Value),
+ d.ToSqlString().Value
+ );
+ SqlContext.Pipe.Send(response);
+ }
+};
\ No newline at end of file
diff --git a/samples/features/sql-clr/Curl/Properties/AssemblyInfo.cs b/samples/features/sql-clr/Curl/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..a7d0318d
--- /dev/null
+++ b/samples/features/sql-clr/Curl/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SqlClrCurl")]
+[assembly: AssemblyDescription("Implementation of CURL command in SQL Server Database Engine")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Sql Server GitHub Samples")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("265e0bc3-ad5f-44f3-bb17-c61f77b9847f")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/features/sql-clr/Curl/README.md b/samples/features/sql-clr/Curl/README.md
new file mode 100644
index 00000000..3ec8ff0d
--- /dev/null
+++ b/samples/features/sql-clr/Curl/README.md
@@ -0,0 +1,134 @@
+# CURL in SQL Server using CLR
+SQL Server Database Engine don't have built-in functions that would enable you to send information to some API using `http://` protocol. If you would need to call some REST endpoint or a web hook from the T-SQL code, you would need to use `WebClient` or `WebRequest` classes from .Net framework and expose them as T-SQL function or procedure.
+
+One of the most popular tool for calling API on `http:` endpoints is [curl](https://curl.haxx.se). This code sample demonstrates how to create CLR User-Defined function/procedure that provides CURL-like functionalities in T-SQL.
+
+> This code exposes minimal CURL functionalities required for the basic demo purposes. If you need some advanced features, you can modify the code.
+
+### Contents
+
+[About this sample](#about-this-sample)
+[Build the CLR/CURL extension](#build-functions)
+[Add RegEx functions to your SQL database](#add-functions)
+[Test the functions](#test)
+[Disclaimers](#disclaimers)
+[Appendix](#appendix) - quick install script for your dev environment.
+
+
+
+## About this sample
+1. **Applies to:** SQL Server 2005+ Enterprise / Developer / Evaluation Edition, Azure SQL Database (Managed Instance)
+2. **Key features:**
+ - CLR
+3. **Programming Language:** T-SQL, .NET/C#
+4. **Author:** Jovan Popovic [jovanpop-msft]
+
+
+
+## Build the CLR/CURL functions
+
+1. Download the source code and open the solution using Visual Studio.
+2. Change the password in .pfk file (go to Project > Properties > Signing) and rebuild the solution in **Retail** mode.
+3. Open and save [SqlClrCurl.tt](SqlClrCurl.tt) to generate T-SQL file that will contain the script that inserts CLR assembly with the **CURL** functionalities, and exposes T-SQL/CLR functions.
+
+
+## Add CURL functions to your SQL database
+
+File SqlClrCurl.sql contains the code that will import CURL assembly into SQL Database.
+
+If you have not added CLR assemblies in your database, you should use the following script to enable CLR:
+```
+sp_configure @configname=clr_enabled, @configvalue=1
+GO
+RECONFIGURE
+GO
+```
+
+Once you enable CLR, you can use the T-SQL script to add the **CURL** functions. The script depends on the location where you have built the project, and might look like:
+```
+
+--Create the assembly
+CREATE ASSEMBLY SqlClrCurl
+FROM 'C:\GitHub\sql-server-samples\samples\features\sql-clr\Curl\bin\Release\SqlClrCurl.dll'
+WITH PERMISSION_SET = EXTERNAL_ACCESS;
+GO
+
+CREATE SCHEMA CURL;
+GO
+
+--Create the function/procedure
+CREATE FUNCTION CURL.XGET (@H NVARCHAR(MAX), @url NVARCHAR(4000))
+RETURNS NVARCHAR(MAX)
+AS EXTERNAL NAME SqlClrCurl.Curl.Get;
+GO
+
+CREATE PROCEDURE CURL.XPOST (@H NVARCHAR(MAX), @d NVARCHAR(MAX), @url NVARCHAR(4000))
+AS EXTERNAL NAME SqlClrCurl.Curl.Post;
+GO
+```
+
+This code will import a assembly in SQL Database and add one function and one procedure that provide CURL functionalities. Two modules are provided in this sample:
+ - CURL.XGET - function that calls API on some http endpoint using `get` method, and fetches the response. It has two parameters:
+ - @H representing the header information that should be sent to remote endpoint (`null` for none).
+ - @url representing the Url endpoint where the Http request should be sent.
+ - CURL.XPOST - procedure that sends text to some http endpoint using `post` method and prints response. It has three parameters:
+ - @H representing the header information that should be sent to the remote endpoint (`null` for none).
+ - @d representing the data that should be sent to remote endpoint in the request body.
+ - @url representing the Url endpoint where the Http request should be sent.
+
+
+
+## Test the functions
+
+Once you create the assembly, you can use CURL functionalities in T-SQL code. The following simple example gets the Microsoft earning from [Investors Exchange ("IEX") API data](https://iextrading.com/developer/) REST API:
+```
+select curl.xget(null, 'https://api.iextrading.com/1.0/stock/msft/earnings')
+```
+
+The following example sends one event to [Azure Event Grid](http://azure.com/eventgrid).
+```
+declare @hkey nvarchar(200) = N'aeg-sas-key: 9CwFFHbPIwTPVEdXS+W7eMnuPk1/+pouIlhzf5=';
+declare @body nvarchar(4000) = N'[{"id":"1807","eventType":"recordInserted","subject":"myapp/vehicles/motorcycles","eventTime": "2017-08-10T21:03:07+00:00","data": {"make": "Ducati","model":"Monster"},"dataVersion":"1.0","metadataVersion":"1"}]';
+declare @endpoint nvarchar(1000) = N'https://test-event-grid.eventgrid.azure.net/api/events';
+
+exec curl.XPOST @H = @hkey, @d = @body, @url = @endpoint;
+```
+
+> **Note**: The code might return an error if your firewall/networking rules don't allow access to targetet Url. Security and configuring access right in your networks is beyond the scope of this sample.
+
+
+
+## Disclaimers
+The code included in this sample is not intended to be a set of best practices on how to build scalable enterprise grade applications. This is beyond the scope of this sample.
+
+## Apendix
+In order to quickly test the function in your dev environment, you can create and assembly using the following script that imports assembly from binary format. Recommendation it to take the source code, compile it, and execute the script shown above.
+
+
+```
+sp_configure @configname=clr_enabled, @configvalue=1
+GO
+RECONFIGURE
+GO
+
+EXEC sp_add_trusted_assembly 0xF1DCC19FDB930CC4E148A41A262F34532E021F8F4DB5782B43FA1C718561D46252DC7B2F0EFBDE0FD0B5BFE8EF1BA1B1AE2C5E7A9050BB496343FB454B590E3E, N'SqlClrCurl'
+GO
+
+CREATE ASSEMBLY [SqlClrCurl]
+FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103006477D25A0000000000000000E00022200B013000000E000000060000000000006A2C000000200000004000000000001000200000000200000400000000000000060000000000000000800000000200000FC70000030060850000100000100000000010000010000000000000100000000000000000000000182C00004F00000000400000E403000000000000000000000000000000000000006000000C000000E02A00001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000700C000000200000000E000000020000000000000000000000000000200000602E72737263000000E4030000004000000004000000100000000000000000000000000000400000402E72656C6F6300000C00000000600000000200000014000000000000000000000000000040000042000000000000000000000000000000004C2C0000000000004800000002000500302100003009000009000000000000000000000000000000602A0000800000000000000000000000000000000000000000000000000000000000000000000000133002005500000001000011731200000A0A026F1300000A2D23026F1400000A0C1202281500000A0B07281600000A2D0C066F1700000A076F1800000A06036F1400000A0C1202281500000A281900000A6F1A00000A6F1B00000A731C00000A2A000000133003006500000002000011731200000A0A026F1300000A2D23026F1400000A0D1203281500000A0C08281600000A2D0C066F1700000A086F1800000A06046F1400000A0D1203281500000A281900000A036F1400000A0D1203281500000A6F1D00000A0B281E00000A076F1F00000A2A1E02282000000A2A00000042534A4201000100000000000C00000076342E302E33303331390000000005006C000000D4020000237E0000400300008C03000023537472696E677300000000CC0600000400000023555300D0060000100000002347554944000000E00600005002000023426C6F620000000000000002000001471502000900000000FA013300160000010000001B00000002000000030000000600000020000000110000000200000001000000030000000000500201000000000006005301F5020600D201F50206005C00C3020F0015030000060084007C02060036017C02060002017C020600B9017C02060073017C0206009E017C020600B1007C0206007000D60206004E00D6020600E5007C020600CC00FA0106004E0375020A002101A2020A008C01A2020A00390324030E00640359030A00420224030A009B00A2020600450275020E008E0259030E004C0275020A007303A2020A004600A20200000000010000000000010001000100100070020000410001000100502000000000960055030D010100B4200000000096006E03160104002521000000008618BD0206000700000000000000000001000A00000002007102000001000A000000020028000000030071020900BD0201001100BD0206001900BD020A002900BD0210003100BD0210003900BD0210004100BD0210004900BD0210005100BD0210005900BD0210006100BD0215006900BD0210007100BD0210007900BD0210008900BD0206009100BD020600B100BD020600A100BD02060099005F022200990040022600A900F0012B00B9002A002F00A10042033400C10021001000C90030023900A10014023E00B9007E0343009900BD024800A10023025700D1003D005D00D900250010008100BD02060020007B003802240083003D022E000B0020012E00130029012E001B0048012E00230051012E002B0061012E00330095012E003B0095012E00430051012E004B009B012E00530095012E005B0095012E006300B3012E006B00DD012E007300EA0140008B0038021A004E00048000000100000000000000010000006B006A020000040000000000000000000000620018000000000004000000000000000000000062000C000000000004000000000000000000000062007502000000000000003C4D6F64756C653E00480053797374656D2E44617461006D73636F726C6962004164640053656E640049734E756C6C4F7257686974655370616365006765745F506970650053716C5069706500477569644174747269627574650044656275676761626C6541747472696275746500436F6D56697369626C6541747472696275746500417373656D626C795469746C654174747269627574650053716C50726F63656475726541747472696275746500417373656D626C7954726164656D61726B417474726962757465005461726765744672616D65776F726B41747472696275746500417373656D626C7946696C6556657273696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E4174747269627574650053716C46756E6374696F6E41747472696275746500417373656D626C794465736372697074696F6E41747472696275746500436F6D70696C6174696F6E52656C61786174696F6E7341747472696275746500417373656D626C7950726F647563744174747269627574650053716C466163657441747472696275746500417373656D626C79436F7079726967687441747472696275746500417373656D626C79436F6D70616E794174747269627574650052756E74696D65436F6D7061746962696C697479417474726962757465006765745F56616C75650053797374656D2E52756E74696D652E56657273696F6E696E6700446F776E6C6F6164537472696E670055706C6F6164537472696E6700457363617065557269537472696E6700546F53716C537472696E67005572690053716C436C724375726C2E646C6C006765745F49734E756C6C0053716C436C724375726C0053797374656D0053797374656D2E5265666C656374696F6E00576562486561646572436F6C6C656374696F6E004D6963726F736F66742E53716C5365727665722E536572766572002E63746F720053797374656D2E446961676E6F73746963730053797374656D2E52756E74696D652E496E7465726F7053657276696365730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F6465730053797374656D2E446174612E53716C54797065730053716C4368617273006765745F48656164657273004F626A656374004765740053797374656D2E4E657400576562436C69656E7400506F73740053716C436F6E7465787400546F43686172417272617900000000000000C96C133A9E0FB0459BA00DB35693791E00042001010803200001052001011111042001010E042001010207070312510E11550320000204200011550320000E040001020E04200012610400010E0E0420010E0E0420001D03052001011D0308070412510E0E11550520020E0E0E040000126D08B77A5C561934E08980A00024000004800000940000000602000000240000525341310004000001000100594568514168B07173B4258E3B5DCAC316DAE3F3C0C01DDFDBC628534C3F8D1A4F378F74CDD858CDB90804D5A862842BC650F764CBD8EC01C5C69A9EC1BFA90012AC45AC19B8198569A6E06671977DE65FC6939CFC20366252416CFFEA1DEDBB035134658E4C113C92CBA6CB1D32233F033102809E95F0D16B0C1E25E0352CB6080002124D124D124D09000301124D124D124D0801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010801000200000000000F01000A53716C436C724375726C00003301002E496D706C656D656E746174696F6E206F66204355524C20636F6D6D616E6420696E2053514C204461746162617365000005010000000017010012436F7079726967687420C2A920203230313800002901002432363565306263332D616435662D343466332D626231372D63363166373762393834376600000C010007312E302E302E3000004D01001C2E4E45544672616D65776F726B2C56657273696F6E3D76342E362E310100540E144672616D65776F726B446973706C61794E616D65142E4E4554204672616D65776F726B20342E362E31040100000012010001005408074D617853697A65FFFFFFFFAE984FE7561B5B2C5B5EDFF51A4C24A230777ACEFC0484A0B1A3C8E335C2D88AC0E4D02349D31613A7A56459CB86A83D5307BD23C4C1F71A1387A456C0FBB168D4AB447A18CF7077182634BD2F3D0AACBD8324DE6A7190F2FC54A0696A3D1A4839EE2BE1E2A47619FE136216BE2E8B3B268A9A6584E9DA83E9BB4F820B401926000000006477D25A00000000020000001C010000FC2A0000FC0C000052534453275E3606551D694B84D7321583A41ADA01000000433A5C4769744875625C73716C2D7365727665722D73616D706C65735C73616D706C65735C66656174757265735C73716C2D636C725C4375726C5C6F626A5C52656C656173655C53716C436C724375726C2E70646200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000402C000000000000000000005A2C00000020000000000000000000000000000000000000000000004C2C0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058400000880300000000000000000000880334000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000001000000000000000100000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004E8020000010053007400720069006E006700460069006C00650049006E0066006F000000C4020000010030003000300030003000340062003000000076002F00010043006F006D006D0065006E0074007300000049006D0070006C0065006D0065006E0074006100740069006F006E0020006F00660020004300550052004C00200063006F006D006D0061006E006400200069006E002000530051004C002000440061007400610062006100730065000000000022000100010043006F006D00700061006E0079004E0061006D00650000000000000000003E000B000100460069006C0065004400650073006300720069007000740069006F006E0000000000530071006C0043006C0072004300750072006C0000000000300008000100460069006C006500560065007200730069006F006E000000000031002E0030002E0030002E00300000003E000F00010049006E007400650072006E0061006C004E0061006D0065000000530071006C0043006C0072004300750072006C002E0064006C006C00000000004800120001004C006500670061006C0043006F007000790072006900670068007400000043006F0070007900720069006700680074002000A90020002000320030003100380000002A00010001004C006500670061006C00540072006100640065006D00610072006B007300000000000000000046000F0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000530071006C0043006C0072004300750072006C002E0064006C006C000000000036000B000100500072006F0064007500630074004E0061006D00650000000000530071006C0043006C0072004300750072006C0000000000340008000100500072006F006400750063007400560065007200730069006F006E00000031002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000031002E0030002E0030002E00300000000000000000000000000000000000000000000000000000000000000000000000002000000C0000006C3C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+WITH PERMISSION_SET = EXTERNAL_ACCESS
+GO
+
+CREATE SCHEMA CURL;
+GO
+
+--Create the function/procedure
+CREATE FUNCTION CURL.XGET (@H NVARCHAR(MAX), @url NVARCHAR(4000))
+RETURNS NVARCHAR(MAX)
+AS EXTERNAL NAME SqlClrCurl.Curl.Get;
+GO
+CREATE PROCEDURE CURL.XPOST (@H NVARCHAR(MAX), @d NVARCHAR(MAX), @url NVARCHAR(4000))
+AS EXTERNAL NAME SqlClrCurl.Curl.Post;
+GO
+
+```
\ No newline at end of file
diff --git a/samples/features/sql-clr/Curl/SqlClrCurl.csproj b/samples/features/sql-clr/Curl/SqlClrCurl.csproj
new file mode 100644
index 00000000..541d22d3
--- /dev/null
+++ b/samples/features/sql-clr/Curl/SqlClrCurl.csproj
@@ -0,0 +1,72 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {265E0BC3-AD5F-44F3-BB17-C61F77B9847F}
+ Library
+ Properties
+ SqlClr
+ SqlClrCurl
+ v4.6.1
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+
+
+ SqlClrCurl.pfx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ SqlClrCurl.tt
+
+
+ TextTemplatingFileGenerator
+ SqlClrCurl.sql
+
+
+
+
\ No newline at end of file
diff --git a/samples/features/sql-clr/Curl/SqlClrCurl.sln b/samples/features/sql-clr/Curl/SqlClrCurl.sln
new file mode 100644
index 00000000..91a4c4a4
--- /dev/null
+++ b/samples/features/sql-clr/Curl/SqlClrCurl.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26730.16
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlClrCurl", "SqlClrCurl.csproj", "{265E0BC3-AD5F-44F3-BB17-C61F77B9847F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {265E0BC3-AD5F-44F3-BB17-C61F77B9847F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {265E0BC3-AD5F-44F3-BB17-C61F77B9847F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {265E0BC3-AD5F-44F3-BB17-C61F77B9847F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {265E0BC3-AD5F-44F3-BB17-C61F77B9847F}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {54C7E749-77A3-460D-A89A-5AB7943A1F15}
+ EndGlobalSection
+EndGlobal
diff --git a/samples/features/sql-clr/Curl/SqlClrCurl.sql b/samples/features/sql-clr/Curl/SqlClrCurl.sql
new file mode 100644
index 00000000..fb24a454
--- /dev/null
+++ b/samples/features/sql-clr/Curl/SqlClrCurl.sql
@@ -0,0 +1,61 @@
+
+-- Enable CLR
+sp_configure 'clr enabled', 1;
+RECONFIGURE WITH OVERRIDE;
+GO
+
+--Drop the functions if they already exist
+DROP FUNCTION IF EXISTS CURL.XGET
+GO
+DROP PROCEDURE IF EXISTS CURL.XPOST
+GO
+
+--Drop the schema if it already exists
+DROP SCHEMA IF EXISTS CURL;
+GO
+
+--Drop "trusted assembly flag" if it is set
+
+DECLARE @hash VARBINARY(64);
+
+SELECT @hash = hash
+FROM sys.trusted_assemblies ta
+WHERE ta.description = N'SqlClrCurl'
+
+EXEC sp_drop_trusted_assembly @hash;
+GO
+
+--Drop the assembly if it already exists
+DROP ASSEMBLY IF EXISTS SqlClrCurl;
+GO
+
+
+DECLARE @hash VARBINARY(64);
+SELECT @hash = HASHBYTES('SHA2_512', BulkColumn)
+FROM OPENROWSET(BULK 'C:\GitHub\sql-server-samples\samples\features\sql-clr\Curl\bin\Release\SqlClrCurl.dll', SINGLE_BLOB) AS assembly_content
+
+IF(@hash IS NOT NULL)
+ EXEC sp_add_trusted_assembly @hash, N'SqlClrCurl'
+ELSE
+ PRINT 'Cannot create hash for assembly!'
+GO
+
+--Create the assembly
+CREATE ASSEMBLY SqlClrCurl
+FROM 'C:\GitHub\sql-server-samples\samples\features\sql-clr\Curl\bin\Release\SqlClrCurl.dll'
+WITH PERMISSION_SET = EXTERNAL_ACCESS;
+GO
+
+--Create the schema where CURL modules will be placed.
+CREATE SCHEMA CURL;
+GO
+
+--Create the function/procedure
+CREATE FUNCTION CURL.XGET (@H NVARCHAR(MAX), @url NVARCHAR(4000))
+RETURNS NVARCHAR(MAX)
+AS EXTERNAL NAME SqlClrCurl.Curl.Get;
+GO
+
+CREATE PROCEDURE CURL.XPOST (@H NVARCHAR(MAX), @d NVARCHAR(MAX), @url NVARCHAR(4000))
+AS EXTERNAL NAME SqlClrCurl.Curl.Post;
+GO
\ No newline at end of file
diff --git a/samples/features/sql-clr/Curl/SqlClrCurl.tt b/samples/features/sql-clr/Curl/SqlClrCurl.tt
new file mode 100644
index 00000000..6ff3e308
--- /dev/null
+++ b/samples/features/sql-clr/Curl/SqlClrCurl.tt
@@ -0,0 +1,63 @@
+<#@output extension=".sql"#>
+<#@ template language="C#" hostspecific="True" #>
+
+-- Enable CLR
+sp_configure 'clr enabled', 1;
+RECONFIGURE WITH OVERRIDE;
+GO
+
+--Drop the functions if they already exist
+DROP FUNCTION IF EXISTS CURL.XGET
+GO
+DROP PROCEDURE IF EXISTS CURL.XPOST
+GO
+
+--Drop the schema if it already exists
+DROP SCHEMA IF EXISTS CURL;
+GO
+
+--Drop "trusted assembly flag" if it is set
+
+DECLARE @hash VARBINARY(64);
+
+SELECT @hash = hash
+FROM sys.trusted_assemblies ta
+WHERE ta.description = N'SqlClrCurl'
+
+EXEC sp_drop_trusted_assembly @hash;
+GO
+
+--Drop the assembly if it already exists
+DROP ASSEMBLY IF EXISTS SqlClrCurl;
+GO
+
+
+DECLARE @hash VARBINARY(64);
+SELECT @hash = HASHBYTES('SHA2_512', BulkColumn)
+FROM OPENROWSET(BULK '<#= this.Host.ResolvePath("bin\\Release\\SqlClrCurl.dll") #>', SINGLE_BLOB) AS assembly_content
+
+IF(@hash IS NOT NULL)
+ EXEC sp_add_trusted_assembly @hash, N'SqlClrCurl'
+ELSE
+ PRINT 'Cannot create hash for assembly!'
+GO
+
+--Create the assembly
+CREATE ASSEMBLY SqlClrCurl
+FROM '<#= this.Host.ResolvePath("bin\\Release\\SqlClrCurl.dll") #>'
+WITH PERMISSION_SET = EXTERNAL_ACCESS;
+GO
+
+--Create the schema where CURL modules will be placed.
+CREATE SCHEMA CURL;
+GO
+
+--Create the function/procedure
+CREATE FUNCTION CURL.XGET (@H NVARCHAR(MAX), @url NVARCHAR(4000))
+RETURNS NVARCHAR(MAX)
+AS EXTERNAL NAME SqlClrCurl.Curl.Get;
+GO
+
+CREATE PROCEDURE CURL.XPOST (@H NVARCHAR(MAX), @d NVARCHAR(MAX), @url NVARCHAR(4000))
+AS EXTERNAL NAME SqlClrCurl.Curl.Post;
+GO
\ No newline at end of file