Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/buraksenyurt/webservice-detective
Eski bir uygulamadaki web servis ve web servis metotlarını kodu statik analiz yoluyla tarayarak bulmak istersek ne yapabiliriz sorusuna Roslyn'den de destek alıp bakmaya çalışıyoruz.
https://github.com/buraksenyurt/webservice-detective
dotnet roslyn static-code-analysis web-services
Last synced: about 1 month ago
JSON representation
Eski bir uygulamadaki web servis ve web servis metotlarını kodu statik analiz yoluyla tarayarak bulmak istersek ne yapabiliriz sorusuna Roslyn'den de destek alıp bakmaya çalışıyoruz.
- Host: GitHub
- URL: https://github.com/buraksenyurt/webservice-detective
- Owner: buraksenyurt
- Created: 2021-10-01T20:28:37.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-10-04T16:25:27.000Z (over 3 years ago)
- Last Synced: 2025-01-05T17:40:10.095Z (about 1 month ago)
- Topics: dotnet, roslyn, static-code-analysis, web-services
- Language: C#
- Homepage:
- Size: 127 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WebService Detective
Eski bir uygulamadaki web servis ve web servis metotlarını, statik kod analizi yardımıyla tarayıp bulmak istersek ne yapabiliriz sorusuna Roslyn'den de destek alıp bakmaya çalışıyoruz.
__Motivasyon__ : Legacy bir .net uygulaması içinde kullanılan web servis ve web servis metotlarının statik kod analizi ile çıkarılması. Roslyn kullanarak bu çözümün uygulanması bekleniyor.
## Başlangıç
Senaryo gereği içinde çeşitli tipte sınıflar ve web servisler barındıran bir proje var. AmigaWorld bu amaçla tasarlanmış dummy türde .Net Framework tabanlı bir çözüm. İşe yarar hiçbir şey yapmıyor ama Roslyn tarafını kandırmak için değişik tuzaklar içermekte. Örneğin Service klasörü içinde WebService olmayan tipler var _(ya da Entity klasöründe)_ Bu tiplere bakmayıp WebService niteliğini _(attribute)_ uygulayan ve içinde WebMethod niteliği kullanan operasyonları ele almamız gerekiyor.
![./assets/screenshot_1.png](./assets/screenshot_1.png)
Amaç GamersService.asmx ve MagazineService.asmx ile içindeki web metotları yakalamak.
## Gelişim
- Çözüme Roslyn kullanan bir Console uygulaması ekledim.
- Hem Console'a hem de Text dosyasına log bırakmak istediğimden Observer desenini kullanan bir düzenleme yaptım.
- İlkel kodlarla solution içindeki projeleri ve ilgili nitelikleri uygulayan tipleri dolaşıp bilgilerini ekrana bastırdım.Buna göre aşağıdakine benzer bir çıktı elde ettim.
![./assets/screenshot_2.png](./assets/screenshot_2.png)