{"id":218,"date":"2023-09-05T09:31:29","date_gmt":"2023-09-05T08:31:29","guid":{"rendered":"https:\/\/guillemrueda.com\/blog\/?p=218"},"modified":"2023-09-05T09:31:29","modified_gmt":"2023-09-05T08:31:29","slug":"primers-passos-de-net6-c-i-linux","status":"publish","type":"post","link":"https:\/\/guillemrueda.com\/blog\/2023\/09\/05\/primers-passos-de-net6-c-i-linux\/","title":{"rendered":"Primers passos de NET6, C# i Linux"},"content":{"rendered":"\n<p><strong>Crides a llibreries<\/strong><\/p>\n\n\n\n<p>Les crides fins ara es feien des PInvoke a la llibreria de ghostscript de windows. Amb linux no far\u00e0 falta en si descarregar-afegir la llibreria. Tamb\u00e9 el PInvoke amb linux hi ha unes particularitats <sup data-fn=\"75d87b77-9d76-440f-9ff7-52591d7bff03\" class=\"fn\"><a href=\"#75d87b77-9d76-440f-9ff7-52591d7bff03\" id=\"75d87b77-9d76-440f-9ff7-52591d7bff03-link\">1<\/a><\/sup>.<\/p>\n\n\n\n<p><strong>Directoris<\/strong><\/p>\n\n\n\n<p>Els directoris tamb\u00e9 canvien. Per a tenir una generaci\u00f3 de noms de directoris neta sense directoris a m\u00e0, hem de revisar les carpetes especials que fem \u00fas a la API de Path de NET<sup data-fn=\"5d45c25b-76dd-4b02-8c89-80d83d390433\" class=\"fn\"><a href=\"#5d45c25b-76dd-4b02-8c89-80d83d390433\" id=\"5d45c25b-76dd-4b02-8c89-80d83d390433-link\">2<\/a><\/sup> <\/p>\n\n\n\n<p><strong>Llibreries d&#8217;imatges<\/strong><\/p>\n\n\n\n<p>El fet de no comptar amb System.Drawing dificulta molts dels procesaments de imatge dels que es feia us d&#8217;aquesta llibreria de sistema. Cal utilitzar alternatives com Imagesharp o Skiasharp<sup data-fn=\"a352a73e-a371-43fe-ae91-1141e0493363\" class=\"fn\"><a href=\"#a352a73e-a371-43fe-ae91-1141e0493363\" id=\"a352a73e-a371-43fe-ae91-1141e0493363-link\">3<\/a><\/sup> <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Depend\u00e8ncies terceres<\/strong><\/p>\n\n\n\n<p>L&#8217;entorn \u00e9s amb docker\/debian per a poder fer el PInvoke a Ghostscript correctament cal instal\u00b7lar totes les llibreries seg\u00fcents des el dockerfile:<\/p>\n\n\n\n<p>RUN apt update -y &amp;&amp; apt install -y -qq ghostscript &amp;&amp; apt install -y -qq libgs9 &amp;&amp; apt install -y -qq libgs9-common &amp;&amp; apt install -y -qq libgs-dev<\/p>\n\n\n\n<p><\/p>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"75d87b77-9d76-440f-9ff7-52591d7bff03\"><a href=\"https:\/\/developers.redhat.com\/blog\/2016\/09\/14\/pinvoke-in-net-core-rhel\">https:\/\/developers.redhat.com\/blog\/2016\/09\/14\/pinvoke-in-net-core-rhel<\/a> <a href=\"#75d87b77-9d76-440f-9ff7-52591d7bff03-link\" aria-label=\"Ves a la refer\u00e8ncia de la nota al peu 1\">\u21a9\ufe0e<\/a><\/li><li id=\"5d45c25b-76dd-4b02-8c89-80d83d390433\"><a href=\"https:\/\/developers.redhat.com\/blog\/2018\/11\/07\/dotnet-special-folder-api-linux\">https:\/\/developers.redhat.com\/blog\/2018\/11\/07\/dotnet-special-folder-api-linux<\/a> <a href=\"#5d45c25b-76dd-4b02-8c89-80d83d390433-link\" aria-label=\"Ves a la refer\u00e8ncia de la nota al peu 2\">\u21a9\ufe0e<\/a><\/li><li id=\"a352a73e-a371-43fe-ae91-1141e0493363\"><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/net-core-image-processing\/\">https:\/\/devblogs.microsoft.com\/dotnet\/net-core-image-processing\/<\/a> <a href=\"#a352a73e-a371-43fe-ae91-1141e0493363-link\" aria-label=\"Ves a la refer\u00e8ncia de la nota al peu 3\">\u21a9\ufe0e<\/a><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>Crides a llibreries Les crides fins ara es feien des PInvoke a la llibreria de ghostscript de windows. Amb linux no far\u00e0 falta en si descarregar-afegir la llibreria. Tamb\u00e9 el PInvoke amb linux hi ha unes particularitats . Directoris Els directoris tamb\u00e9 canvien. Per a tenir una generaci\u00f3 de noms de directoris neta sense directoris &hellip; <a href=\"https:\/\/guillemrueda.com\/blog\/2023\/09\/05\/primers-passos-de-net6-c-i-linux\/\" class=\"more-link\">Continua la lectura de <span class=\"screen-reader-text\">Primers passos de NET6, C# i Linux<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[{\"content\":\"<a href=\\\"https:\/\/developers.redhat.com\/blog\/2016\/09\/14\/pinvoke-in-net-core-rhel\\\">https:\/\/developers.redhat.com\/blog\/2016\/09\/14\/pinvoke-in-net-core-rhel<\/a>\",\"id\":\"75d87b77-9d76-440f-9ff7-52591d7bff03\"},{\"content\":\"<a href=\\\"https:\/\/developers.redhat.com\/blog\/2018\/11\/07\/dotnet-special-folder-api-linux\\\">https:\/\/developers.redhat.com\/blog\/2018\/11\/07\/dotnet-special-folder-api-linux<\/a>\",\"id\":\"5d45c25b-76dd-4b02-8c89-80d83d390433\"},{\"content\":\"<a href=\\\"https:\/\/devblogs.microsoft.com\/dotnet\/net-core-image-processing\/\\\">https:\/\/devblogs.microsoft.com\/dotnet\/net-core-image-processing\/<\/a>\",\"id\":\"a352a73e-a371-43fe-ae91-1141e0493363\"}]"},"categories":[7,19,1,21,6,20],"tags":[],"class_list":["post-218","post","type-post","status-publish","format-standard","hentry","category-net-programacio","category-c","category-general","category-linux","category-programacio","category-sistemes-operatius"],"_links":{"self":[{"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/posts\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":1,"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/posts\/218\/revisions"}],"predecessor-version":[{"id":224,"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/posts\/218\/revisions\/224"}],"wp:attachment":[{"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/media?parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/categories?post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guillemrueda.com\/blog\/wp-json\/wp\/v2\/tags?post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}