KMRT BSRN

"Hiç kimsenin ilgisine ihtiyaç duymadığın gün olgunlaşırsın. Hiç kimseden beklentiye girmediğin gün yara almazsın. Ve hiç kimseye bağımlı kalmazsan kazanırsın." OSHO


Yorum bırakın

ASP.NET MVC ile Bootstrap Checkbox ve Radio Kullanımı

Evet.. Uzun bir aradan sonra tekrar makale yazmaya başlamalıyım diye düşünüyordum. Sonunda yavaştan yavaştan başlamak gerektiği için hadi bakalım dedim ve kolları sıvadım. Aslında bunun sebeplerinden biri artık çoğu kişinin video içeriklere yönelmesi ve video ile bazı şeyleri göstererek daha hızlı ve 1 dakikalık bir zaman dilimine daha çok şey sığdırabildiğimizden dolayıdır sanırım. Fakat açıkçası ben hala makalelerden ve kitaplardan yanayım. Video içerikler daha kolay uçuyor akıllardan ve özümsemesi zor. Anlatılan bir noktayı bulması da daha zor. Henüz video içi arama pek gelişmedi. Sanırım bu gelince bende ona daha fazla yönelebilirim. Tabii ki izlemek, anlatılanı yapılırken görmek ayrı, olmazsa olmaz. Ama nedense benim gözlerim metin arıyor, ne diyebilirim.

Peki konumuza dönelim. Bu yazımızda sizlere asp.net mvc içinde radio ve checkbox kullanımı ile ilgili bir yöntem göstereceğim. Bende herkes gibi projelerimde veya örneklerimde bootstrap kullanıyorum. Dolayısı ile en çok sıkıntı duyduğum nokta checkbox ve radio kontrollerinin tasarımının bootstrap’te eksik olması! Aslında eksik değil ama bizim alıştığımızdan farklı olması. Bizim bildiğimiz bu şekilde..

 

image

Bootstrap kullanılsa bile ortaya çıkan radio ve checkbox görünümü.

 

Fakat bootstrap ‘in yaklaşımı ile olması gereken budur.

 

image

Bootstrap in checkbox ve radio yaklaşımı bu şekilde

 

Kullanımı kolay ve özellikle mobil cihazlar için bu tasarım aslında harika oluyor.. Fakat bunu elde etmek için gereken HTML kodu şu şekilde(Bu arada ikonlar tamamen benim uydurmamdır ki onu da nasıl yaptığımı göstereceğim). Örneğin HTML, CSS ve JS kodlarına buradan ulaşabilirsiniz.

Okumaya devam et


Yorum bırakın

ADOX ile MDB ya da ACCDB Access Database Oluşturma

Geliştirdiğiniz uygulamalarda kullanmak üzere 2010 öncesi access veri tabanı(*.mdb) ya da 2010 ve sonrası access veri tabanı(*.accdb) oluşturma ihtiyacınız olursa, aşağıdaki kodlar ile bir access veri tabanı dosyasının disk üzerinde oluşturulmasını sağlayabilirsiniz. Ayrıca oluşturmuş olduğunuz veri tabanına tablo eklemesini ve basit veri tiplerinin nasıl tanımlandığını inceleyebilirsiniz.

Okumaya devam et


Yorum bırakın

Visual Studio 2015’de ReportViewer ve RDLC Report Bileşenleri Ekleme

Visual Studio 2015 ile “RDLC raporları” hazırlamak istediğinizde kurulumunuza bağlı olarak “Windows Forms Application” uygulaması geliştirirken, toolbox’da raporlama(reporting) tab’ını göremeyeceksiniz. Bunun sebebi “SQL Server Data Tools” yüklemesinin yapılmamış olmasıdır. Visual Studio 2015 ‘deTools” => “Extension & Updates”  seçeneğinin altında “Update” tab’ında “SQL Server Data Tools” yüklemesini göreceksiniz. Buradan gerekli güncellemeyi yapabilirsiniz ama bu güncelleme sonucunda da eğer “Windows Forms Application” uygulaması geliştirirken, toolbox’da raporlama(reporting) tab’ını göremiyorsanız; farklı bir yöntem daha mevcut.

Öncelikle “Denetim Masası” => “Program Ekle/Kaldır” kısmına gidiniz. Gelen listeden “Visual Studio 2015” ‘i sağ tıklayarak “Değiştir” seçeneği ile kuruluma “SQL Server Data Tools”  özelliğini seçerek “Update” işlemini yapınız. Yaklaşık 118 MB ‘lık bir yükleme sonucu kurulum tamamlandıktan sonra ilgili “toolbox” ve “Item Ekleme” kısmında ilgili nesneler görünecek ve kullanılabilecektir. İlgili adımları aşağıdaki görsellerden de takip ederek yapabilirsiniz.

reporting-in-visual-studio-1


2 Yorum

ASP.NET MVC Yazılımcıların Yükselişi

gorsel

Yeni bir eğitim için kolları sıvamış bulunuyorum. Aslında birçok kişi tarafından sürekli istenen bir eğitimdi. Bende yarattığım fırsatlarda bu eğitimi hazırlamaya karar verdim. Şu an eğitimin tüm videoları tamamlanmamış durumda ama son hızla tamamlamak için fırsat buldukça uğraşıyorum. Umarım ortaya güzel bir eğitim çıkar ve bekleyenleri memnun eder. Şu an yaklaşık 8 saatlik bir video serisi çıkmış durumda ama benim öngörüm bu daha yolun yarısı, eğitimi merak edenler için aşağıda tanıtım videosunu ve link’ini paylaşıyor olacağım. Kendiniz de henüz yayınlanmamış bölümleri gördüğünüzde ne demek istediğimi anlayacaksınız.

Eğitim içeriğinde ASP.NET MVC temellerinden başlayarak tüm konulara değinmeye çalışıyor olacağım. Tasarım işlerini Bootstrap’Dan faydalanarak, veritabanı işlemlerini ise Entity Framework CodeFirst ile yapıyor olacağım. Eğitim sonunda 2 Bonus bölüm ve bir uygulama örneği yapıyor olacağım.

Eğitimi bunlarla sınırlamak istemiyorum. Dolayısı ile zamanla fazladan bölüm ekleme ve yenilikleri yine aynı eğitim üzerinden anlatarak eğitimi genişletmeyi düşünüyorum.

ASP.NET MVC Eğitimi için tıklayınız.

Tüm Eğitimlerim için tıklayınız.

ASP.NET MVC Eğitimi by Kadir Murat Başeren

Eğitim içeriğini aşağıda görebilirsiniz;

  • ASP.NET MVC Giriş
  • Razor Syntax (Sözdizimi)
  • Views
  • Controller & View Arası İletişim
  • Models ve Model Binding
  • Bootstrap Framework ve Helper Metotlar
  • Entity Framework CodeFirst Entegrasyonu
  • Entity Framework CodeFirst ile Veritabanı İşlemleri
  • Auto-Generated Views
  • ActionResult Türleri
  • Action Attributes
  • Routing
  • BundleConfig Yapılandırması
  • Durum Yönetimi
  • Validation
  • Filters
  • Ajax Helper Metodları
  • JQuery ile Ajax İşlemleri
  • Area
  • BONUS : Web Helpers
  • BONUS : Grid.MVC Entegrasyonu
  • Uygulama : MyEvernote Örneği

Gördüğünüz gibi dolu bir içerik sizleri ve benim çekmemi bekliyor. Ben üstesinden gelebileceğimi düşünüyorum. Umarım sizlerede bir faydası dokunur.

Şimdiden iyi seyirler ve başarılı projeler dilerim.

 

Visual Studio ile C# Programlama
ASP.NET MVC ile Grid.MVC Entegrasyonu


Yorum bırakın

Engin Demiroğ ile “32 Saatte ASP.NET MVC Framework Öğreniyor ve Projesini Geliştiriyoruz”

Engin Demiroğ sunumu ve anlatımı ile  “32 Saatte ASP.NET MVC Framework Öğreniyor ve Projesini Geliştiriyoruz” eğitimi duyuruldu.

Tarih: 31 Ocak Cumartesi –  1 Şubat Pazar ve 7 Şubat Cumartesi –  8 Şubat Pazar günde 8 saatlik oturumlar ile yoğun bir eğitim programı sizleri bekliyor.

Sizde ASP. NET MVC Framework öğrenmek ve SOLID prensiplerine uygun bir alt yapıya sahip olmak istiyorsanız,  bu eğitimi kaçırmamanızı öneriyorum.

Eğitim içeriği bir çok teknoloji,  tekniği görebileceğiniz ve güçlü bir altyapıya sahip olabileceğini şekilde düşünülmüş. 
Eğitim de yok yok!

Kayıt ve tüm detaylara aşağıdaki link’ten ulaşabilirsiniz.

https://www.eventbrite.com/e/32-saatte-aspnet-mvc-framework-ogreniyor-ve-projesini-gelistiriyoruz-tickets-15038373179?aff=eandprexshre&ref=eandprexshre


Yorum bırakın

Excel Export için ReportModel Yapısı ve Kullanımı

Excel export işlemi için daha öncede yazdığım yazıya buradan ulaşabilirsiniz. Bu yazımda sizlere excel export işleminde kullanabileceğiniz esnek bir ReportModel’den bahsedeceğim. Bu yapıları kullanarak oluşturacağınız bir ReportModel’i excel export işleminde kullanabilirsiniz. Böylece elinizde esnek bir yapı olacaktır. Dilediğiniz şekilde excel tabloları oluşturabilirsiniz.

Verilerinizi veritabanından çektikten sonra Report Model’i oluşturmanız yeterli olacaktır. Excel tablosunda görünmesini istediğiniz özellikleri(property) içeren anonim(anonymous) tipi oluşturmanız yeterlidir.

Öncelikle nasıl kullanıldığını içeren Helper class’ı sizlerele paylaşıyorum. Diğer class’larda yazının ilerleyen kısımların mevcut. Kod aralarında açıklama satırları mevcuttur. Anlaşılacağını umuyorum.

 

MyExcelHelper.cs

using ExcelExportSample.Model;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ExcelExportSample
{
    public class MyExcelHelper
    {
        public void WriteToExcel(RDExportReportModel exportReportModel, string path)
        {
            // Excel dosya erişimi için gerekli tanımlar yapılır.
            Microsoft.Office.Interop.Excel.Application xlApp;
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            xlApp = new Microsoft.Office.Interop.Excel.Application();
            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            // Başlık(Header) hücrelerin renklenmesi sağlanır.
            xlWorkSheet.Cells["1:1"].Font.Bold = true;
            xlWorkSheet.Cells["1:1"].Font.Color = Color.Red;

            int colIndex = 65;  //A

            // Excel tablo Header'lar yazılır.
            foreach (RDExportReportColumnModel column in exportReportModel.ExportData.Keys)
            {
                string cellIndex = char.ConvertFromUtf32(colIndex);
                string cellHeader = column.ColumnName;

                xlWorkSheet.Cells[string.Concat(cellIndex, 1)].Value = cellHeader;

                if (column.ColumnWidth > 0)
                    xlWorkSheet.Cells[string.Concat(cellIndex, 1)].ColumnWidth = column.ColumnWidth;

                if (!string.IsNullOrEmpty(column.Format))
                    xlWorkSheet.Cells[string.Concat(cellIndex, ":", cellIndex)].NumberFormat = column.Format;

                colIndex++;
            }

            colIndex = 65;  //A

            // Her bir kolon için dönülerek, kolon kolon veriler yazılır.
            foreach (RDExportReportColumnModel column in exportReportModel.ExportData.Keys)
            {
                string cellIndex = char.ConvertFromUtf32(colIndex);
                int rowIndex = 2;

                // Değerler satır satır hücrelere yazılır.
                // Yazma işlemi kolon kolon yapılır.
                // Her kolon satur satır işlenir, sonra diğer kolona geçilir.
                foreach (RDExportReportCellModel cellModel in exportReportModel.ExportData[column])
                {
                    xlWorkSheet.Cells[string.Concat(cellIndex, rowIndex)].Value = cellModel.Value.ToString();
                    rowIndex++;
                }

                colIndex++;
            }

            // Excel dosya kaydedilir.
            xlWorkBook.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();
        }

        public void SaveSampleExcelExportFile()
        {
            RDExportReportModel reportModel = new RDExportReportModel();
            reportModel.ExportData = new Dictionary>();

            // Örnek veri bu veri veritabanından geliyor olsun.
            var sampleData = new List>() {
                new Tuple("Murat","Başeren"),
                new Tuple("Şükran","Başeren"),
                new Tuple("Belinay","Başeren")
            };

            // Veritabanından gelen veriyi istediğimiz bir model'e dönüştürüyoruz.
            var data = (from x in sampleData
                        select new
                         {
                             FirstName = x.Item1,
                             LastName = x.Item2
                         }).ToList();

            // Kolon ve verisi oluşturulur.
            reportModel.ExportData.Add(
                RDExportReportColumnModel.CreateColumnModel("ExportExcel#", "FirstName"),
                new List(
                    data.Select(x =>
                        new RDExportReportCellModel()
                        {
                            Value = x.FirstName
                        })));


            // Kolon ve verisi oluşturulur.
            reportModel.ExportData.Add(
                    RDExportReportColumnModel.CreateColumnModel("ExportExcel#", "LastName"),
                    new List(
                        data.Select(x =>
                            new RDExportReportCellModel()
                            {
                                Value = x.FirstName
                            })));

            // Excel export yapılır.
            WriteToExcel(reportModel, Application.StartupPath + @"\sample.xls");
        }
    }
}

RDExportReportModel.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExcelExportSample.Model
{
    public class RDExportReportModel
    {
        /// 
        /// Verileri kolon ve kolona ait hücre değerleri olarak saklıyoruz. Dolayısı ile satırları elde etmek için aşağıdaki metotlar kullanılır.
        /// 
        public Dictionary<RDExportReportColumnModel, List> ExportData { get; set; }

        /// 
        /// Verilen satır index 'ine ait satır verilerini getirir.
        /// 
        /// 
        /// 
        public RDExportReportRowModel GetRow(int rowIndex)
        {
            RDExportReportRowModel rowModel = new RDExportReportRowModel();
            rowModel.Cells = new List();

            this.ExportData.Values.ToList().ForEach(
                x =>
                {
                    rowModel.Cells.Add(
                        new RDExportReportCellModel()
                        {
                            Value = x[rowIndex].Value
                        });
                });

            return rowModel;
        }

        /// 
        /// Tüm satırları verir.
        /// 
        /// 
        public List GetRows()
        {
            List rows = new List();

            int rowCount = this.ExportData[this.ExportData.Keys.First()].Count;

            for (int i = 0; i < rowCount; i++)
            {
                RDExportReportRowModel rowModel = new RDExportReportRowModel();
                rowModel.Cells = new List(this.ExportData.Keys.Count);

                foreach (RDExportReportColumnModel column in this.ExportData.Keys)
                {
                    rowModel.Cells.Add(
                        new RDExportReportCellModel()
                        {
                            Value = this.ExportData[column][i].Value
                        });
                }

                rows.Add(rowModel);
            }

            return rows;
        }
    }
}

RDExportReportColumnModel.cs


namespace ExcelExportSample.Model
{
    public class RDExportReportColumnModel
    {
        public string ColumnName { get; set; }
        public int ColumnWidth { get; set; }
        public string Format { get; set; }


        /// 
        /// 
        /// 
        /// Localization section.
        /// Localization key. For example; "{0}#{1}"
        /// 
        public static RDExportReportColumnModel CreateColumnModel(string section, string key)
        {
            return new RDExportReportColumnModel() { 
                ColumnName = Localization.Get(section, key) 
            };
        }
    }

    public class Localization
    {
        public static string Get(string section, string key)
        {
            // Burada veritabanından okunan localization eşlemesinin karşılığı elde edilir. Örnek; Login#Username gibi anahtar veritabanından sorgulanır.
            return section + "#" + key;
        }
    }
}

RDExportReportRowModel.cs

using System.Collections.Generic;
using System.Drawing;

namespace ExcelExportSample.Model
{
    public class RDExportReportRowModel
    {
        public List Cells { get; set; }
    }
}

RDExportReportCellModel.cs

namespace ExcelExportSample.Model
{
    public class RDExportReportCellModel
    {
        public object Value { get; set; }
    }
}

Örnek kullanım;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExcelExportSample
{
    class Program
    {
        static void Main(string[] args)
        {
            MyExcelHelper myExcelHelper = new MyExcelHelper();
            myExcelHelper.SaveSampleExcelExportFile();
        }

    }
}

Proje dosyası için tıklayınız..


Yorum bırakın

cdnjs.com – the missing cdn for javascript and css

Bu site çok iyimiş !
Javascript ve CSS kütüphanelerinin CDN Uri’lerinin bulunduğu bir site, doğrudan buradaki link’i kullanarak projelerinizde, web sitelerinizde kullanabilirsiniz. Her kütüphanenin link’inin yanında çıkan “Copy” butonunda çeşitli şablon seçeneklerinde size Uri’yi sunuyor. Pratik, basit ve kullanışlı.. Ben sevdim sizin de seveceğinizi düşünüyorum. 🙂
cdnjs.com – the missing cdn for javascript and css.