{"id":35748,"date":"2021-09-08T09:30:44","date_gmt":"2021-09-08T16:30:44","guid":{"rendered":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/?p=35748"},"modified":"2024-04-19T10:46:02","modified_gmt":"2024-04-19T17:46:02","slug":"open-sourcing-the-net-5-c-language-extension-for-sql-server","status":"publish","type":"post","link":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/","title":{"rendered":"Open sourcing the .NET 5 C# Language Extension for SQL Server"},"content":{"rendered":"<p>For over two decades, the C# programming language has allowed developers to build secure and robust applications within the .NET ecosystem.<\/p>\n<p>SQL Server 2019 supports the R, Python, and Java Language Extensions. These language extensions provide many benefits to developers. They provide data security, rapid speed for deployment, and ease of integration.<\/p>\n<p>Previously, we announced the release of <a target=\"_blank\" href=\"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2020\/04\/22\/open-sourcing-the-java-language-extension-for-sql-server\/\" rel=\"noopener\">Java<\/a>, <a target=\"_blank\" href=\"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2020\/09\/24\/open-sourcing-the-r-and-python-language-extensions-for-sql-server\/\" rel=\"noopener\">R, and Python<\/a> extensions. <strong>Today we are thrilled to share that we are <a target=\"_blank\" href=\"https:\/\/github.com\/microsoft\/sql-server-language-extensions\/tree\/main\/language-extensions\/dotnet-core-CSharp\" rel=\"noopener\">open sourcing the .NET 5 C# Language Extension<\/a> for SQL Server on GitHub.<\/strong><\/p>\n<p>This extension is yet another example of using the developed programming language extensibility architecture which provides integration with a new type of <a target=\"_blank\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/language-extensions-overview?view=sql-server-ver15\" rel=\"noopener\">language extension<\/a>. This latest architecture allows customers to have the freedom to use existing SQL Server tables which they can pass to a C# application as a <a target=\"_blank\" href=\"https:\/\/devblogs.microsoft.com\/dotnet\/an-introduction-to-dataframe\/\" rel=\"noopener\">DataFrame<\/a>. Then, they can perform operations in C#, use the rich libraries, and obtain back a result set. One of the reasons to use C# is to reuse existing customer C# code, calculations, logic, or extensive libraries that provide functionality which you cannot get in T-SQL. We encourage developers to use the .NET 5 C# Language Extension and build on it.<\/p>\n<p>Let us look at what use cases C# can enable inside SQL Server. Bringing C# workloads closer to the data opens a variety of possibilities:<\/p>\n<ul>\n<li>Data cleaning.<\/li>\n<li>Fast data querying.<\/li>\n<li>Any processing in C# can now occur through a DataFrame.<\/li>\n<li>Customers are not limited to the T-SQL language surface area.<\/li>\n<li>C# application development teams that leverage SQL Server as backend storage can now even embed C# code in stored procedures which enables pushing business logic down into the database for better performance.<\/li>\n<li>Furthermore, this will help avoid unnecessary data movement and latency when data must be retrieved from SQL Server and moved into the app tier to do the business logic processing.<\/li>\n<\/ul>\n<h2>Why open source?<\/h2>\n<p>Like Java, Python, and R have open-source language extensions, it is a natural next step to open source the .NET 5 C# Language Extension. This language extension leverages the Extensibility Framework API for SQL Server and this <a target=\"_blank\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/reference\/extensibility-framework-api?view=sql-server-ver15\" rel=\"noopener\">API is publicly documented<\/a>. The API along with the\u00a0<a target=\"_blank\" href=\"https:\/\/github.com\/microsoft\/sql-server-language-extensions\/tree\/main\/language-extensions\/dotnet-core-CSharp\" rel=\"noopener\">open-source code of the .NET Core C# language extension<\/a>\u00a0shows an example of how a programming language extension can be built.\u00a0Now, more developers in the SQL Server community can continue to develop additional programming language extensions.<\/p>\n<h2>Get started<\/h2>\n<p>If you want to start using the .NET 5 C# language extension for SQL Server, follow this <a target=\"_blank\" href=\"https:\/\/github.com\/microsoft\/sql-server-language-extensions\/blob\/main\/language-extensions\/dotnet-core-CSharp\/sample\/regex\/README.md\" rel=\"noopener\">tutorial<\/a>. If you are interested in creating your own language extension, explore more information on <a target=\"_blank\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/language-extensions\/language-extensions-overview?view=sql-server-ver15\" rel=\"noopener\">SQL Server Language Extensions<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are thrilled to share that we are open sourcing the .NET 5 C# Language Extension for SQL Server on GitHub.<\/p>\n","protected":false},"author":6110,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[],"product":[5227,2536],"content-type":[2448],"topic":[2466],"coauthors":[3630],"class_list":["post-35748","post","type-post","status-publish","format-standard","hentry","product-sql","product-sql-server-2019","content-type-updates","topic-developer","review-flag-5-1593580452-31","review-flag-lever-1593580264-545","review-flag-new-1593580247-437"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open sourcing the .NET 5 C# Language Extension for SQL Server - Microsoft SQL Server Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open sourcing the .NET 5 C# Language Extension for SQL Server - Microsoft SQL Server Blog\" \/>\n<meta property=\"og:description\" content=\"Today we are thrilled to share that we are open sourcing the .NET 5 C# Language Extension for SQL Server on GitHub.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft SQL Server Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/sqlserver\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-08T16:30:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-19T17:46:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/08\/cropped-microsoft_logo_element.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nikita Takru\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:site\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nikita Takru\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/\"},\"author\":[{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/author\\\/nikita-takru\\\/\",\"@type\":\"Person\",\"@name\":\"Nikita Takru\"}],\"headline\":\"Open sourcing the .NET 5 C# Language Extension for SQL Server\",\"datePublished\":\"2021-09-08T16:30:44+00:00\",\"dateModified\":\"2024-04-19T17:46:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/\"},\"wordCount\":436,\"publisher\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/\",\"url\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/\",\"name\":\"Open sourcing the .NET 5 C# Language Extension for SQL Server - Microsoft SQL Server Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#website\"},\"datePublished\":\"2021-09-08T16:30:44+00:00\",\"dateModified\":\"2024-04-19T17:46:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/2021\\\/09\\\/08\\\/open-sourcing-the-net-5-c-language-extension-for-sql-server\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open sourcing the .NET 5 C# Language Extension for SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/\",\"name\":\"Microsoft SQL Server Blog\",\"description\":\"Official News from Microsoft\u2019s Information Platform\",\"publisher\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#organization\",\"name\":\"Microsoft SQL Server Blog\",\"url\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Microsoft-Logo.png\",\"contentUrl\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft SQL Server Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/newed.any0.dpdns.org\\\/en-us\\\/sql-server\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/www.facebook.com\\\/sqlserver\",\"https:\\\/\\\/x.com\\\/SQLServer\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/MSCloudOS\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Open sourcing the .NET 5 C# Language Extension for SQL Server - Microsoft SQL Server Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"Open sourcing the .NET 5 C# Language Extension for SQL Server - Microsoft SQL Server Blog","og_description":"Today we are thrilled to share that we are open sourcing the .NET 5 C# Language Extension for SQL Server on GitHub.","og_url":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/","og_site_name":"Microsoft SQL Server Blog","article_publisher":"http:\/\/www.facebook.com\/sqlserver","article_published_time":"2021-09-08T16:30:44+00:00","article_modified_time":"2024-04-19T17:46:02+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/08\/cropped-microsoft_logo_element.png","type":"image\/png"}],"author":"Nikita Takru","twitter_card":"summary_large_image","twitter_creator":"@SQLServer","twitter_site":"@SQLServer","twitter_misc":{"Written by":"Nikita Takru","Est. reading time":"2 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/#article","isPartOf":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/"},"author":[{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/author\/nikita-takru\/","@type":"Person","@name":"Nikita Takru"}],"headline":"Open sourcing the .NET 5 C# Language Extension for SQL Server","datePublished":"2021-09-08T16:30:44+00:00","dateModified":"2024-04-19T17:46:02+00:00","mainEntityOfPage":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/"},"wordCount":436,"publisher":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/","url":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/","name":"Open sourcing the .NET 5 C# Language Extension for SQL Server - Microsoft SQL Server Blog","isPartOf":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#website"},"datePublished":"2021-09-08T16:30:44+00:00","dateModified":"2024-04-19T17:46:02+00:00","breadcrumb":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/2021\/09\/08\/open-sourcing-the-net-5-c-language-extension-for-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/"},{"@type":"ListItem","position":2,"name":"Open sourcing the .NET 5 C# Language Extension for SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#website","url":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/","name":"Microsoft SQL Server Blog","description":"Official News from Microsoft\u2019s Information Platform","publisher":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#organization","name":"Microsoft SQL Server Blog","url":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft SQL Server Blog"},"image":{"@id":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.facebook.com\/sqlserver","https:\/\/x.com\/SQLServer","https:\/\/www.youtube.com\/user\/MSCloudOS"]}]}},"msxcm_animated_featured_image":null,"bloginabox_display_generated_audio":false,"_links":{"self":[{"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/35748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/users\/6110"}],"replies":[{"embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/comments?post=35748"}],"version-history":[{"count":0,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/35748\/revisions"}],"wp:attachment":[{"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/media?parent=35748"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/post_tag?post=35748"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/product?post=35748"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/content-type?post=35748"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/topic?post=35748"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/newed.any0.dpdns.org\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/coauthors?post=35748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}