dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem roslyn

When we started PlatformX project, we were using full .NET Framework. Then we migrated to .NET Core. Despite many advantages this migration meant a problem with using Roslyn. This problem is called MsBuildWorkspace...

Tagi: roslyn
Dziel się z innymi:
How to use Roslyn with .NET Core | Michał Komorowski

Sztuka programowania 204 dni, 4 godziny, 23 minuty temu http://michalkomorowski.blo... 69 rozwiń

A few weeks ago I posted about negative aspects of applying AutoMapper. As an alternative I suggested typing all mapping code by hand or utilize some kind of generator like T4Scaffoling or something Roslyn based. In the past I experimented with T4Scaffoling but it was quite tedious. It requires preparation of templates in T4 syntax, referencing it to the project and writing some PowerShell code to provide data for templates. There also was an issue with assembly locking. Then I tried to generate code wit...

Dziel się z innymi:
[EN] Generate mapping code with Roslyn code fix provider. · CEZARY PIĄTEK

Narzędzia 280 dni, 3 godziny, 29 minut temu cezarypiatek 61 rozwiń

A while ago 2 of my SpecFlow tests started failing on the build server. At the same time, on a few local machines no problems were observed. I also didn't find any exceptions in the log, so I decided to log into the server and debug a problem there. Quite soon I figured out that the problem is in the algorithm that uses Roslyn to analyse and understand the code...

Tagi: roslyn
Dziel się z innymi:
Roslyn rme again | Michał Komorowski

I can’t be the only person who hates waiting for the code to compile and run… Especially when I want to test only a small part of it! That’s a total waste of time! But good news everyone, I found a way to run a part of my C# code without building the whole project!Ctrl + E, E – the magical shortcut!

Dziel się z innymi:
Ctrl + E, E – the best Visual Studio shortcut I’ve seen so far! – A Girl Among Geeks

Inne 545 dni, 12 godzin, 37 minut temu AGirlAmongGeeks 399 rozwiń

My last 2 posts were about problems with using Roslyn. Nonetheless, even if I sometime hate it, I'm still using it so the time has come to show some practical example of using Roslyn. Recently, I've been working on the task that can be summed up as: Take this ugly code and do something with it. i.e. more or less the refactoring task...

Tagi: roslyn
Dziel się z innymi:
How I removed 50% of the code | Michał Komorowski

Sztuka programowania 598 dni, 14 godzin, 19 minut temu http://michalkomorowski.blo... 172 rozwiń

In my previous post I wrote about my problem with "empty" projects and Roslyn. The symptom was that in some cases according to Roslyn my C# projects didn't contain any files. For quite a long time, I haven't been able to find a solution. Especially because I couldn't reproduce problem on my local machine. Fortunately, today I noticed exactly the same problem on another computer.

Tagi: roslyn
Dziel się z innymi:
Why I hate Roslyn even more | Michał Komorowski

Recently at work I’ve been looking into migrating our projects from VS2013 to VS2017. As part of the process we decided to move from C# 5.0 to C# 7.0. It turned out that after the switch some of our projects won’t build anymore. I spent some time investigating the issue and found the outcome interesting so let me share my story with you.

Tagi: C# 6.0, roslyn
Dziel się z innymi:
Method overload resolution in C# 6.0: an interesting bug story

Sztuka programowania 610 dni, 3 godziny, 3 minuty temu miloszpiechocki 65 rozwiń

The more I work with Roslyn the more I appreciate the possibilities it gives and the more I hate it. And I hate it for the same thing as many other projects I worked with in the past. What is it? Well, I like when a system fails fast, fails loudly and fails in the clear way. Unfortunately, Roslyn can do something completely different what sometimes makes working with it the pain in ass. I'll give you some examples.

Tagi: roslyn
Dziel się z innymi:
Why I hate Roslyn | Michał Komorowski

This post from Report from the battlefield series will be about my own mistake. It is related to async/await and MARS i.e. Multiple Active Result Sets. async/await allows us to use asynchronous programming more easily. MARS is a feature of MSSQL that allows us to have more than one pending request opened per connection at the same time...

Dziel się z innymi:
Report from the battlefield #9 - async/await + MARS | Michał Komorowski

I'm working on the project where I have an opportunity to use Roslyn compiler as a service. It is very good :) However yesterday it took me more than 2 hours to write working unit tests (based on MSTest) for my code! Here are some tips that may save your time.

Dziel się z innymi:
Roslyn and unit tests suck | Michał Komorowski

Semantyczny model dostarcza nam wiele informacji o kodzie, które zwykle uzyskuje się po kompilacji. Na przykład przeładowanie metod jest dużo łatwiejsze do określenia już po kompilacji.  Oznacza to, że nie jest już to  klasyczna, statyczna analiza kodu. Z tego względu, najpierw danych kod należy skompilować za pomocą...

Tagi: .Net, C#, roslyn
Dziel się z innymi:
Roslyn: Analiza przepływu danych–semantyczny model

Narzędzia 1241 dni, 4 godziny, 1 minutę temu rroszczyk 127 rozwiń

Roslyn to nie tylko parsowanie kodu, ale również zarządzanie projektem\solucją za pomocą WorkspaceAPI. Pisząc różne narzędzia dla programistów, oprócz analizy kodu, zwykle chcemy mieć informacje o kontekście danego kodu – np. nazwie pliku czy projekcie w którym znajduje się dana klasa. Workspace API, jak nie trudno domyślić się, opiera się na abstrakcyjnej klasie Workspace.  Zwykle jednak pracować będziemy z MSBuildWorkspace, która pozwala nam zarządzać .sln czy .csproj:MSBuildWorkspace msWorkspace = M...

Tagi: .Net, C#, roslyn
Dziel się z innymi:
Roslyn: Workspace API

Narzędzia 1241 dni, 4 godziny, 1 minutę temu rroszczyk 117 rozwiń

W poprzednim wpisie przedstawiłem klasę CSharpSyntaxWalker – przydatną przy analizie drzewa kodu. Dzięki niej, automatycznie bez pisania kodu rekurencyjnego jesteśmy w stanie przejść przez każdy element kodu. Dzisiaj o analogicznym rozwiązaniu ale służącym do przepisywania kodu a nie tylko jego analizowania. Mechanizm działa bardzo podobnie do CSharpSyntaxWalker. Wystarczy, że stworzymy klasę dziedziczącą po CSharpSyntaxRewriter:publicclass CustomRewriter : CSharpSyntaxRewriter { publicoverride Synt...

Tagi: .Net, C#, roslyn
Dziel się z innymi:
Roslyn–przepisywanie kodu

Inne 1247 dni, 3 godziny, 11 minut temu rroszczyk 138 rozwiń

W ostatnim poście pokazałem jak za pomocą LINQ można przeglądać drzewo kodu. Czasami jest to jednak niewygodne. Załóżmy, że piszemy konwerter z C# na jakiś inny język. W takiej sytuacji, prawdopodobnie chcemy mieć dostęp do każdego elementu kodu. Możemy to zrobić za pomocą LINQ, ale jest to mało wygodne. Musielibyśmy pisać kod rekurencyjny, który dla skomplikowanych kodów jest jak wiadomo mało wydajny, a nawet może zakończyć się wyjątkiem OutOfMemory. Do dyspozycji jednak mamy klasę CSharpSyntaxWalker. ...

Dziel się z innymi:
Roslyn – przeglądanie drzewa

Sztuka programowania 1255 dni, 1 godzinę, 13 minut temu rroszczyk 127 rozwiń

Analiza kodu za pomocą LINQ to chyba esencja Roslyn.  Bez Roslyn, kod był dla nas jak zwykły tekst (string) i w przypadku jakiejkolwiek analizy, musieliśmy sami parsować tekst i rozpoznawać odpowiednie fragmenty....

Tagi: .Net, C#, Linq, roslyn
Dziel się z innymi:
Roslyn–analiza kodu za pomocą LINQ

Web 1255 dni, 1 godzinę, 13 minut temu rroszczyk 237 rozwiń

W poprzednim wpisie, w dużym skrócie przedstawiłem po co powstał Roslyn i komu może przydać się. W kilku kolejnych postach, zaprezentuję w praktyce jego najważniejsze funkcje. Zaczynami od scripting API.  APi szczególnie przydatne w przypadku edytorów do gier czy bardziej zaawansowanych reguł biznesowych. Zacznijmy od klasycznego “hello world”...

Tagi: .Net, C#, roslyn
Dziel się z innymi:
Roslyn – Scripting API

Narzędzia 1259 dni, 14 godzin, 55 minut temu rroszczyk 131 rozwiń

O projekcie Roslyn od dawna już słychać, ale jeszcze nigdy nie miałem okazji z niego poważnie korzystać, ani wspomnieć o tym na blogu. Czym jest więc Roslyn? W skrócie pisząc jest to “compiler as service”. Roslyn dostarcza API za pomocą, którego możemy komunikować się kompilatorem.  Możemy zatem pisać programy, które rozpoznają kod (C#) i mogą go dynamicznie wykonywać. Innymi słowy, dzięki Roslyn jesteśmy w stanie załadować kod w formie czystego tekstu i w pamięci analizować go  już jako strukturę dany...

Tagi: .Net, roslyn
Dziel się z innymi:
Roslyn – wprowadzanie

Narzędzia 1262 dni, 30 minut temu rroszczyk 321 rozwiń

Wraz z pojawieniem się Roslyn, powstaje wiele interesujących narzędzi. Jednym z nich jest Alive, zachęcam do obejrzenia tego video: https://youtu.be/YipNsoTapho W skrócie – pozwala wykonywać kod w tle, co oznacza, że wiele błędów będziemy w stanie wykrywać na etapie design a nie runtime. Bardzo przypomina nCrunch, ale jeszcze bardziej usprawnia ten proces…

Dziel się z innymi:
Visual Studio Alive

Narzędzia 1290 dni, 20 godzin, 25 minut temu rroszczyk 380 rozwiń

Od pierwszego CTP Roslyna z niecierpliwością czekam na release. W telegraficznym skrócie roslyn to nowa generacja kompilatora. Takiego kompilatora gdzie każdy element jest dostępny przez api/serwis. To otwiera takie możliwości jak budowa własnych narzędzi do refaktoryzacji czy analizy kodu, tworzenie nowych słów kluczowych i nie wiadomo co jeszcze. Przy okazji kompilator jest przepisywany tak aby był szybszy od obecnych. Generalnie Roslyn = mnóstwo gorących i ciekawych rzeczy. Dzisiaj, a w...

Źródło: www.benedykt.net
Dziel się z innymi:
Roslyn ostatnia prosta

Narzędzia 1813 dni, 4 godziny, 15 minut temu arek 206 rozwiń

SyntaxWalker służy do rekursywnego odwiedzania wszystkich węzłów drzewa składni. Za pomocą SyntaxWalker można zbadać/odczytać strukturę kodu: using System; using System.Collections.Generic; using System.Linq; using Roslyn.Compilers.CSharp; namespace GettingStartedCS { class SyntaxWalkerTest { private static string source = @" using System; using System.Collections; using System.Linq; using System.Text;   ...

Tagi: roslyn
Dziel się z innymi:
RoslynCTP: SyntaxWalker

Narzędzia 2585 dni, 19 godzin, 42 minuty temu macko 84 rozwiń

1 2