Asp .Net Core Geçiş Sürecimiz

Merhaba arkadaşlar, yazımıza başlamadan önce geçirdiğimiz bu zor günlerde herkesin sağıklı ve mutlu kalmasını temenni ederim. Çalıştığım şirkette bir süredir uygulamalarımızı .Net Core Framework’üne geçirmeye çalışıyoruz. Bu süreçteki deneyimlerimizi, yaptıklarımızı, adımlarımızı sizinle paylaşmak istedim.

Öncelikle sürecimiz hala devam ediyor fakat iç uygulamalarımızdan bazılarının geçişini tamamladık ve şu an test süreçleri devam etmektedir. Biz de edindiğimiz bilgileri, süreçleri paylaşmak ve planlamalarınıza yardımcı olmak istedik. Peki bu süreçte neler yapılmalı? Nasıl başlanmalı? Bu sorulara kendi açımızdan cevap vermeye çalışalım.

1- İlk olarak geçiş yapmayı düşündüğünüz projeyi analiz edin.

Evet, geçiş sürecinin en önemli maddelerinden biri hali hazırda olan projenizi iyi analiz etmenizdir. Örneğin; Bir Mvc projeyi .Net Core yapısına geçirmek istiyorsanız routelar, bundler, filterlar, custom attributeler, global_asax altındaki eventler gibi yapıları iyi analiz etmelisiniz. HttpContext işlemleriniz, httpModuller, Cache işlemleriniz, injection stratejileriniz, dependencyleriniz, kullandığınız kütüphanelerin analizini yapın.

Yani programınız ayağa kalkarken nelere ihtiyaç duyuyor? Nasıl aksiyonlar alıyor? Bunların .Net Core da karşılığını nasıl yazabilirsiniz? Bunların cevaplarını verebiliyor olmanız lazım.
Bu aşamayı geçmeden efor vermeniz çok doğru olmaz, analizinizi yaptıktan sonra iş birimlerine eforunuzu analize göre iletebilirsiniz. Ayrıca süreçte çıkabilecek aksilikler ve önceden gelen teknik borçlar için eforunuza buffer da koymanızı tavsiye ederim.

question-mark-pixabay
question-mark-pixabay

2- Planlama

Planlama aşamanız hem süreçlerinizin daha belirgin olmasını, hem iş dağılımınızın sorunsuz ilerlemesini sağlayacak aşamadır. Bu aşamada .Net Core geçişinize vereceğiniz efora ek olarak bazı teknik borçlarınızın ödenmesini (.Net Core yapısı bazı noktalarda sizi doğruya zorlar), httpModullerinizi Custom middleware yapılarına çevirmenizi, testleri entegre etmenizi ve geçiş süresinde yapılan geliştirmelerin mergelenmesini göz önünde bulundurmalısınız.

3- Geliştirmeler

Planlama aşamasından sonra işin asıl yapıldığı geliştirme aşaması gelecektir. Bu aşamada daha önceden analiz ettiğiniz yapıları .Net Core Framework’üne geçirmeye başlarsınız. Burada daha önceden belirli yapıların (Örn;HttpContext.Current yerine IHttpContextAccessor kullanmak gibi) değiştiğini ve bunları yeni yapıya göre uyarlamanız gerektiğini göreceksiniz.
Bu süreçte hem geliştirme hem de muhtemelen aynı anda araştırma yaparak ilerlemeniz gerekecektir.

Daha önceden kullandığınız Class Library’ lerinizi, .Net Standart’a geçirerek başlayabilirsiniz. Bunun arkasından eğer ORM’inizi değiştirecekseniz (Örn; Entity Framewrok yerine Entity Framework Core kullanacaksınız) bu işlemle devam edebilir, Context’inizi ve Orm toolunuzu entegre edebilirsiniz. (Dapper gibi yapılar içinde orm register aşamanızı kontrol etmelisiniz).

Daha sonrasında bu altyapıları kullanacak clientlarınızı taşımaya başlayabilirsiniz. Clientlarda kullandığınız service injectionlar ve middleware yapılarını dikkatli bir şekilde planlamanızı tavsiye ederiz.
Mümkün olduğunca best practiceleri uygulamaya çalışarak ilerlerseniz daha sonrası için büyük efor kazancınız olur.

iceland-pixabay
iceland-pixabay

4- Testler

Daha önceden testleriniz bulunuyorsa bu testleri kontrol edebilir ve geliştirebilirsiniz. Eğer daha önceden herhangi bir testiniz bulunmuyorsa farklı test kütüphanelerinden faydalanarak (Nunit, Xunit, MsTest, Mock Libraries) unit testlerinizi ve integration testlerinizi sisteminize entegre edebilirsiniz. Eğer bir CI/CD pipeline kullanıyorsanız (Kullanmıyorsanız kesinlikle tavsiye ederiz) pipelinınıza test süreçlerinizi entegre edebilirsiniz.
Unit ve integration testlerin yanında farklı UI testleri ve UAT testlerini de uygulamalısınız. Ayrıca Selenium gibi farklı kütüphanelerden de faydalanabilirsiniz.

5- Monitoring

Yaptığınız işlemlerin sonuçlarını sürekli izleyemeyeceğiniz için farklı monitoring ve alert toollarından faydalanmanızı tavsiye ederiz. Sentry, Azure Application Insight, Aws Cloudwatch gibi toolları kullanabilirsiniz.

6- Geçiş planlama

Bu aşamaların hepsini tamamladıktan sonra bir süre uygulamanızı izleyerek sorunsuz olduğuna inandığınızda (her zaman gözden kaçan bir yer olur 😄) geçiş planlamanızı yapabilirsiniz. Eğer bu geçiş sürecinde Code Freeze yapmadıysanız geçiş sürecinde yapılan geliştirmeleri yeni yapınıza mergeleyebilirsiniz. Daha sonra uygulamanıza göre bir deploy stratejisi belirleyerek .Net Core geçişinizi tamamlayabilirsiniz.

Productiona çıktıktan sonra uygulamanızı, kullandığınız monitoring toolu aracılığıyla bir süre normalden daha dikkatli izleyerek productiondan gelen geri bildirimlere göre hızlıca çözüm sağlayarak geçiş sürecinin sıkıntılarını azaltabilirsiniz.

alesnesetril-unsplash
alesnesetril-unsplash

Sizlere yaşadıklarımızdan yola çıkarak .Net Core geçiş süreci ile ilgili bilgiler aktarmaya ve planlamalarınızda yardımcı olmaya çalıştım.
Umarız faydalı oluşmuştur.

“Asp .Net Core Geçiş Sürecimiz” için 2 yanıt

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir