Ana içeriğe atla

Kayıtlar

How to read .Net Resource Files all content

Once in a day, when I need to read all resx file contents and put all of them into database I tried to find resource with googling but I couldn't find any proper solution to read efficiently so I tried to create a method in a basic way of xml reading.  To read all key and values from .net resource language map files. Following method can be used :   private static Dictionary<string, string> GetResourceFile(string languageCode)         {             Dictionary<string, string> langMap = new Dictionary<string, string>();             string fileName = $"SharedResource.{languageCode}.resx";             string fullPath = "D:\\projects\\projectName\\Resources\\" + fileName;             XDocument xDoc = XDocument.Load(fullPath);             foreach (XElement item in xDoc.Root.Elements("data")) ...

IEnumerable ile List Arasındaki Farklar

Sık kullandığımız iki tip olan IEnumerable ve List tipleri ile ilgili sürekli kullanılmasına rağmen farkının çok bilinmediğini düşünerek bu konuda kısa bir yazı yazmak istedim. Bakalım aralarında farklar nelermiş. IEnumerable bir interface iken, List yine IEnumerable sınıftan türeyen somut ( concrete) bir sınıftır. Arasındaki Farklar :  IEnumerable  - List e göre iteration çok daha hızlıdır. Performans için kullanılabilir.  - Read Only bir tip olduğu için Add, Remove gibi işlemler yapılamaz, IEnumerable ile sadece iteration, sort, filter gibi işlemler yapılabilir.  - Soyut bir class olduğu için istenen tipe somutlaştırılabilir.  - yield tipi ile birlikte kullanılabilir.(Promise veri döndürme,state-machine liste kullanımı)  - Linq sorguları veri tabanı sorgularınızın cevaplarınızı IEnumerable olarak döndürür, bu size siz ilgili IEnumerable list i iterate edene kadar ilgili sorguyu çalıştırmama performansı verir, böylece ilgili listeyi kullanmaya ihtiyacını...

.NET Core 3.0: Razor views değişikliklerinde uygulama tekrar derlenmeme problemi

 Normal şartlarda mvc  ortamında uygulama geliştirirken cshtml dosyalarında yaptığımız değişiklikler uygulama çalışır durumdayken sayfayı yenilediğimizde otomatik derlenip ekrana geliyordu sadece .cs dosyalarındaki işlemler için uygulamayı durdurup tekrar başlatmamız gerekiyordu. Fakat .net core ile birilkte bu çalışmamaya başladı ve mvc core uygulaması geliştirirken view larımızda yaptığımız her değişiklikten sonra uygulamayı durdurup tekrar başlatmamız gerekiyor bu da geliştirme sırasında bir işkenceye dönüşüyor.  Bu sorunu çözmek için bir nuget package yükleyerek startup.cs e aşağıdaki kodu eklememiz yeterli. Sırası ile  :  1. Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation nuget package ını indiriyoruz. 2. Startup.cs içerisine aşağıdaki gibi bir ekleme yapıyoruz ki bu kısım views değiştiğinde otomatik recompile işlemini yapacak kısım. services . AddControllersWithViews (). AddRazorRuntimeCompilation (); yada  services . AddControllers (). AddRa...

Hibrit Mobil Uygulama Geliştirme Hakkında

Uzun yıllardır windows ve web platformlarında çalışan bir yazılımcı olduğum için ara ara mobil uygulama geliştirme konusunda motive olup native android ve ios geliştirme denemelerim olsa da sonradan bu tarafta ciddi bir efor sarf edip zaman harcamam gerektiğini gördükten sonra önce android sonra ios platformlarında geliştirme yapmaktan sırayla vazgeçtim. Ama mobil uygulama geliştirme fikri bana hep olağanüstü geldi. Çünkü artık insanlar bilgisayar başında değil telefonu başında vakit geçiriyor ve eğer bir kitleye hitap eden ürün geliştirmek istiyor iseniz mobil uygulama tarafı kaçınılmaz oluyor. Zaman zaman hibrit platformlar üzerine denemeler yapsam ve çevremde bolca araştırma yapsam da uygulamaların performanslarından oldukça şikayet olduğunu duyduktan ve gözlemledikten sonra bu fikrimden de hep vazgeçmiştim. IONIC 3 Geçen yılın başlarında angular teknolojisi ile biraz haşır neşir olmaya başladıktan sonra ionic 3 hakkında çevremden baya iyi övgüler almaya başladım. ionic 3 - ...

Asp.Net Core - Swagger Kurulumu

Asp.Net Core 3.0 ile swagger kullanımı için basitce aşağıdaki aşamaları takip etmemiz yeterli olacaktır. 1.Package Manager Console açalım. 2.Aşağıdaki komutu çalıştıralım : Install-Package Swashbuckle.AspNetCore -Version 5.0 . 0 -rc4 3. Startup.cs içerisinde gerekli configurasyonu aşağıdaki gibi ekleyelim.   ConfigureServices metodu içerisine metodun başlangıcına aşağıdaki kodu ekleyelim:             // Register the Swagger generator, defining 1 or more Swagger documents             services.AddSwaggerGen(c =>             {                 c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });             });   Configure metodu içerisine yine metodun başlangıcına ekleyelim :             // Enable middleware to serve generate...

Linux Centos 7 - .Net Core Api Yayınlama

.Net Core dünyasını uzun zamandır takip etmemin yanı sıra bir fırsat bulupta arge ve küçük deneme projelerinden öteye geçememiş, henüz zamanı var bu platform biraz daha olgunlaşsın community artsın diye diye baya da geç kalmıştım :) Sonunda dedim ki tamam ben artık bu .Net Core dünyasına geçiş yapayım ve deployment dahil tam bir similasyon projesi yapayım gerçek hayata uygun şekilde. Bu tarafta da belirlediğim kıstasların başında projenin Linux da çalışması vardı.Şimdi bakalım adım adım neler yaptık, hangi kavramları öğrendik ve sonuca nasıl ulaştık. Başlamadan Önce Araştırmanız Gereken Temel Konular;  - Nginx -> EngineX  - Centos7 Linux İşletim sistemi  - .Net Core Kestrel Servis  - SSH ile command line üzerinden linux sunucusuna bağlantı ve temel ssh komutları  - .Net Core da bir api projesi oluşturmak ve deploy etmek  -

Angular Dinamik Component Oluşturma ve Dinamik Componentler ile Çalışma

Angular ile çalışırken bazı durumlarda dinamik olarak oluşan ve yönetilen modüler bir alt yapı ihtiyacımız olabilir. Bu ihtiyacımızı karşılayabilmek için angular 'ComponentFactoryResolver' adında bir sınıfa sahip. Bu sınıf aracılığı ile oldukça esnek ve runtime da çalışan dinamik bir yapı hazırlayabiliriz. Adım Adım Dinamik Modül Sistemi Uygulama  1- Yeni bir proje oluşturuyoruz. Routing mekanizmasına sahip bir angular uygulamasını console yardımı ile aşağıdaki komutu çalıştırarak uyguluyoruz. ng new test-dinamik --routing 2 - Örnek Uygulamamızın Kurgusu Örnek uygulamamızda bir adet mesaj componentini dinamik olarak ilgili sayfamızın içerisine dahil ediyor olacağız. Modülümüzü dinamik yüklerken aynı zamanda @Input() anahtar kelimesi ile child component imize de veri gönderiyor olacağız. Şimdi Adım Adım İşlemimize Geçeli : app.component.html app.component.html dosyamıza aşağdaki gibi bir html ekliyoruz. İlgili html ComponentContainer Id si il...

OAuth implementation in Asp.Net Web Api

While desinging Rest API ,we almost need to security layer to keep our data source in safety. The most popular authentication is OAuth in last years.  What is OAuth ? OAuth is an authentication which allow to use RestApi Architecture more secure. There are several type of usage which is seperated with GrantTypes as follow; Grant Types  - Authorization Code  - Implicit  - Password  - Client Credentials  - Device Code  - Refresh Token We will explain to usage of Password Grant Type and implement in via Asp.Net Web Api. So lets follow the basic steps to implement password grant type OAuth2:  - Create a Visual Studio Project as Asp.Net Web Api project.  - As default we have a ValuesController which allow to call http get :  http://localhost:3221/api/values without any security control.  - Lets call  http://localhost:3221/api/values url to see data before implement anything.  - Add new item in App...

Angular Projemizi Electron.js ile Masaüstü Uygulamaya Çevirme

Electron.js son zamanlarda oldukça popüler hale gelmeye başladı. Hibrit uygulamalar öncelikle web uygulamalarının mobil uygulama olarak kullanmaya imkan verdikten sonra, sonrasında masaüstü uygulamalara da el attı ve electron.js framework ü ciddi anlamda bu konuda destek sağlayarak windows app geliştirilerini de web e yönlendirecek kıvama geldi. Bu yazımda kısaca mevcut bir angular2+ uygulamanızı nasıl electron.js ile masaüstü uygulamasına çevirebilirsiniz bunu anlatıyor olacağım. Electron.js Nedir Kısaca bahsetmem gerekirse electron.js açık kaynak olarak geliştirilen web uygulamalarımızı mac,windows ve linux ortamlarında çalışabilen masaüstü uygulamasına çeviren bir frameworktür. Bu framework ile geliştirilen uygulamaları görmek isterseniz  https://electronjs.org/apps  linkine göz atabilirsiniz. Electron.js kullanarak masaüstü uygulama hizmeti sunan en bilindik uygulamaları aşağıdaki gibi sıralayabiliriz. Angular Projemizi Electron.js ile Masaüstü Uy...

Angular uygulama içinde birden fazla layout kullanımı

Angular uygulamamız içerisinde login/logout sayfalarında farklı layout, uygulama içinde farklı layout, hatta farklı bölümler için de birden fazla layout kullanmak isteyebiliriz. Bu durumlar için yapmamız gereken işlem her bir layout'umuz için farklı bir component oluşturmak ve Route dosyamızı aşağıdaki şekilde güncellememiz yeterlidir. Şimdi diyelim ki 2 adet layout kullanacağız. Layotlarımızdan biri sadece bir layout olsun adına BasicLayoutComponent , diğeri de genel olarak projemizde kullanacağımız bir layout olsun header footer bilgileri içersin. Bu layoutumuzun adına da PortalLayoutComponent diyelim. Layoutları da kullanan login ve index adında iki component oluşturalım. Componentleri aşağıdaki komut satırı ile oluşturabiliriz.  - ng generate component BasicLayout  - ng generate component PortalLayout  - ng generate component Index  - ng generate component Login Ardından app-routing.module.ts dosyamızı aşağıdaki şekilde düzenliyelim. app-routing.m...

How to import bootstrap and jquery to our angular project

In order to import jquery and bootstrap frameworks to our angular project. we may use following command via commandline. Update angular cli  - npm install -g @angular/cli Import jquery and bootstrap  - npm install bootstrap jquery If the commands above gave you to permission you can open commandline as right click "Run as Administrator" on windows, add prefix "sudo " in mac After run commands, then the add paths of jquery and bootstrap as follows in to angular.json file which is located in root of project. "styles": [               "src/styles.css",               "node_modules/bootstrap/dist/css/bootstrap.min.css"             ],             "scripts": [               "node_modules/jquery/dist/jquery.min.js",               "node_modules/bootstrap/dist/j...

Asp.Net Web Api - Windows Authentication

Asp.Net Web Api projemize internal çalışacak bir güvenlik sistemi eklemek için Windows Authentication eklemek isteyebiliriz. Bunun için internette biraz nitelikli kaynak sıkıntısı çektiğim için ihtiyacı olanlara yardımcı olması açısından bilgi vermek istiyorum. Öncelikle bu işlem oldukça basit bir süreç. Sırası ile aşağıdaki aşamaları uygulamamız yeterli olacaktır. 1. web.config dosyasını açıp <system.web> in altına aşağıdaki ayarı ekliyoruz.   <authentication mode="Windows">     </authentication> 2. Windows Authentication özelliğini kullanmak istediğimiz api metodlarımızın üzerine [Authorize] annotation ununu eklememiz ilgili aip metodlarımızın Windows Authentication ile çalışması için yeterli. 3.Gelelim Http Client tarafında test edip çalıştırma işlemine. aşağıdaki kod bloğu ile api metodlarımızı çağırabilir ve windows auth bilgilerini HttpClientHandler ile sağlayabiliriz. var httpClient = new HttpClient(new HttpClientHandler() ...

Sql Check All Tables Data Size

When the sql server has large data size then we need to check which table has how much data row and data size. TO check all tables data size and row count in sql server we may use following sql query: SELECT     t.NAME AS TableName,     s.Name AS SchemaName,     p.rows AS RowCounts,     SUM(a.total_pages) * 8 AS TotalSpaceKB,     CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,     SUM(a.used_pages) * 8 AS UsedSpaceKB,     CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,     (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,     CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM     sys.tables t INNER JOIN        sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN     sys.partitions p ON i.ob...

Installing dotnet core 2.2 version with ssh terminal

To check your dotnet core current version on your linux machine with terminal ssh connection type following command to terminal  dotnet --info Above commanve will give you detail explanation about your dotnet core version.To install 2.2 or any spesific version of dotnet core type following kind of command to your terminal then complete your dotnet core 2.2 version installation. sudo yum install dotnet-sdk-2.2

Sql Server Database Language Change

-- Set to single-user mode ALTER DATABASE   yourdatabasename SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO    -- change collation ALTER DATABASE  yourdatabasename    COLLATE Turkish_CI_AS ;   GO   -- Set to multi-user mode ALTER DATABASE yourdatabasename SET MULTI_USER WITH ROLLBACK IMMEDIATE ; GO   --Verify the collation setting.   SELECT name , collation_name   FROM sys . databases   WHERE name = yourdatabasename' ;  

Angular Routing Problem on Linux Host

If your angular application working well on localhost then does not work on linux host when redirecting any of existing page with returning 404 error. It means that you have missing routing configuration for routing. To provide right configuration on linux apache server just put following code to .htAccess file of your angular application root folder and check the the magic :) .htaccess file content should be as following: RewriteEngine On # If an existing asset or directory is requested go to it as it is RewriteCond %{ DOCUMENT_ROOT }%{ REQUEST_URI } - f [ OR ] RewriteCond %{ DOCUMENT_ROOT }%{ REQUEST_URI } - d RewriteRule ^ - [ L ] # If the requested resource doesn't exist, use index.html RewriteRule ^ / index . html On the otherhand, If you deployed your app to another servers check the following solutions : IIS Server on windows host , following webconfig rule can be help you to solve your redirection problem web.config file con...

How to set ASPNETCORE_ENVIRONMENT to Development Mode in Asp.Net Core MVC Application

Asp.Net MVC Core Application Development Mode  When we deployed our application to the server and get any eror message then we won't be able to see details of message on previewed page. In this time we may convert our application to development mode via web.config. In root folder of web.config file  we can add following  lines to child of AspNetCore element. < environmentVariables > < environmentVariable name = "ASPNETCORE_ENVIRONMENT" value = "Development" /> </ environmentVariables > Result view of config should be as following ; < system.webServer > < handlers > < add name = "aspNetCore" path = "*" verb = "*" modules = "AspNetCoreModule" /> </ handlers > < aspNetCore processPath = ".\CMSPortal.WebUI.exe" stdoutLogEnabled = "false" > < environmentVariables > < environmentVariable name = "ASPNET...

Running large .sql script via command line

Sometimes we need to run large sql script which has 1-10 gb size or something etc. then we won't be open this .sql file in sql, notepad, etc. In this case, we need to run this command without any problem in easiest way, we can use commandline sqlcmd command to run our sql commands. To do this operation, just follow few steps ;  - Click Windows + R  - type cmd and press enter to reach commandline  - use   sqlcmd - S [ servername ] - d [ databasename ] - i [ scriptfilename ]  command to run your file :) Thats all. In my scenario , I runned 8 GB .sql file with this method then it will completed successfuly without wasting memory or cpu while doing its job.