MVC 2 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
MVC 2 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Çarşamba, Mayıs 05, 2010

Asp.Net MVC – Microsoft Report Yardımı ile Raporlama

Asp.Net MVC Framework ile geliştirilen uygulamalar oldukça fazlalaşmaya başladı. Bu artış ile birlikte uygulamaların içerisinde yapılacak işlemlerden beklenen beklentilerde o oranda artmaktadır. Önceleri sadece verileri göstersin, rahatça veri tabanına kayıt yapalım, silelim, güncelleme yapabilmesi gibi yetkinlikleri basitçe yapabilmesi kolaylık olarak görülürken bir süre sonra kullanmış olduğumuz master page 'in tasarımını da kolayca yenileyebilelim, toolbox içerisinde yer alan bileşenleri artsın, code snippet lar eklensin gibi bir çok istek oluşmuş ve bunlar yapılabilmiştir. Ancak bu noktada code snippet lar dışında bahsedilen diğer özellikler zaten yapılabiliyorken geliştiricilerin önceliğinden ötürü fazla göz önünde değillerdi. Biz de daha önce hazırlamış olduğumuz yazıları bu doğrultuda yönlendirerek beklentileri karşılamaya çalıştık. Şimdi ise MVC 'ten yeni beklentimiz *.RDLC uzantılı dosyaların MVC uygulamaların içerisinde görüntülenmesi için yapılması gereken işlemleri inceliyor olacağız.

Geliştirecek olduğumuz uygulamayı Visual Studio 2008 ve .Net Framework 3.5 üzerinde geliştiriyor olacağız. Visual Studio 2008 üzerinde uygulama şablonunu  MVC 2 ile geliştireceğimizi düşündüğümüzde .Net sürümünün 3.5 SP1 olmasına dikkat etmeniz gerekmektedir. Zaten aksi bir durum söz konusu ile sisteminize MVC 2 sürümünü kuramayacak ve hata alacaksınızdır. Eğer ki Windows 7 kullanılıyor ve kurarken sorun yaşıyorsanız bu bağlantı yardımı ile sorununuzu çözebilir ve işlemlerinize sorunsuzca devam edebilirsiniz.

Hazırlayacağımız örnek için boş bir MVC2 uygulama oluşturarak başlıyoruz.

mak88_1

Proje oluştuğuna göre veri tabanından verileri çekip kullanabilmek için uygulama üzerinde gerekli tanımlamaları yapmak gerekiyor. Ado.Net Entity Data Model yardımı ile veri tabanında yer alan nesneleri kolayca oluşturup kullanabileceğimiz için bu şablonu seçerek adımlara devam ediyoruz.

mak88_2

Veri tabanı bağlantısı için gerekli olan connection string oluşturulur.

mak88_3

Veri tabanı ile bağlantı için gerekli olan cümle oluşturulduktan sonra bundan yararlanarak Northwind veri tabanı içerisinde yer alan tablo, view ve sp leri görüntülüyor olacağız. Örneğimizde Customer tablosundan yararlanacağımız için sadece bu tablo seçilerek işlemi tamamlıyoruz.

mak88_4

Bir sonraki adım da RDLC raporu oluşturmak için Content dizininin içerisine Reports klasörünü oluşturuyor ve içerisine Report.rdlc 'i aşağıdaki şekilde ekliyoruz.

mak88_5

Eklemiş olduğumuz report şablonu arka plan bir veri yapısı ile çalışmaktadır. Bu dataset, entity model ya da herhangi bir generic koleksiyon olabilmektedir. Biz eklemiş olduğumuz Northwind Entities içerisinde yer alan Customers tablosunda yararlanabilmek için Model katmanının içerisine Customer.cs 'i ekleyerek aşağıdaki kod bloğunu ekliyoruz.

mak88_6

[C#]
using System.Collections.Generic;
using System.Linq;

namespace RDLC.Models
{
    public class Customer
    {

        public static List<RDLC.Models.Customers> GetAllCustomers()
        {
            var entities = new NorthwindEntities1();
            var x = from c in entities.Customers
                       select c;
            return x.ToList();
        }
    }
}

Hazırlamış olduğumuz kullanıcı listesi getiren generic list 'i report şablonu üzerinde gösterip kullanabilmemiz gerekmektedir. Bunun için Data menüsünün altında yer alan ShowDataSource seçeneği yardımı ile kullanılabilecek olan veri modellerini görüntüleyebiliriz.

mak88_7

Not: Eğer ki data menüsünün altında Show Data Sources seçeneğini görüntüleyemediyseniz bağlantı üzerinden yapmanı gereken işlemleri bulaibilirsiniz.

Raporu ekledikten sonra görüntülemek istediğimiz verileri Website Data Sources kısmından rapor ekranına sürükleyerek görüntülenmesi için gerekli olan işlemleri hazırlamış bulunuyoruz. Bu işlemler sonrasında bizim hazırlamış olduğumuz rapor tasarımı aşağıdaki gibi olmuştur.

mak88_8

Yapacağımız sıradaki işlem Controller katmanını oluşturup sonrasında bu katmandan yararlanacak olan View sayfasını oluşturmak ve kullanmak olacaktır.

mak88_9

[C#]
using System.Web.Mvc;

namespace RDLC.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            string welcomeMessage = "Northwind Müşteri Listesine Hoşgeldiniz";
            return View((object)welcomeMessage);
        }
    }
}

Controller katmanını kullanarak Index() üzerinde sağ tıklama yaparak View sayfasının oluşturulması için gerekli olan işlemleri yapıyoruz.

mak88_10

[Markup]
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<string>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Index</title>
    </head>
    <body>
        <div>
           <h2>
               <%=Html.Encode(Model) %></h2>
           <%=Html.ActionLink("Müşteri Listesi (PDF)","DetailsReport","Customers") %>
        </div>
    </body>
</html>

Oluşturulan view 'i görüntülediğimizde istediğimiz sonucu elde etmiş olacağız. Ancak ActionLink içerisinde vermiş olduğumuz adrese yani DetailsReport controller 'ına yönlenmek istediğinde yolu bulamıyorum şeklinde bir hata verecektir ki bu olası bir durumdur. Çünkü henüz bu metodu oluşturmadık.

mak88_11
 
Şimdi rapor verilerini görüntüleyebilmek için gerekli olan işlemleri yapıyor olacağız. Bunun için ilk olarak projeye Microsoft.ReportViewer.WebForm DLL 'i ekleyerek başlıyoruz.

mak88_12

Raporu görüntüleyebilmek için gerekli DLL 'i projeye ekledikten sonra müşterilerin verilerini web sayfasında görüntüleyebilmek için yapacağımız işlemleri yapacağımız controller katmanını ekliyoruz.

[C#

using System.Web.Mvc;
using Microsoft.Reporting.WebForms;
using RDLC.Models;

namespace RDLC.Controllers
{
    public class CustomerController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult DetailsReport()
        {
            LocalReport localReport = new LocalReport();
            localReport.ReportPath = Server.MapPath("~/Content/Reports/CustomerReport.rdlc");
            ReportDataSource reportDataSource = new ReportDataSource("Customers", Customer.GetAllCustomers());

            localReport.DataSources.Add(reportDataSource);
            string reportType = "PDF";
            string mimeTpe;
            string encoding;
            string fileNameExtension;

            string deviceInfo = "<DeviceInfo>" +
                    " <OutputFormat>PDF</OutputFormat>" +
                    " <PageWidth>8.5in</PageWidth>" +
                    " <PageHeight>11in</PageHeight>" +
                    " <MarginTop>0.5in</MarginTop>" +
                    " <MarginLeft>1in</MarginLeft>" +
                    " <MarginRight>1in</MarginRight>" +
                    " <MarginBottom>0.5in</MarginBottom>" +
                    "</DeviceInfo>";

            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;

            renderedBytes = localReport.Render(
                                       reportType,
                                       deviceInfo,
                                       out mimeTpe,
                                       out encoding,
                                       out fileNameExtension,
                                       out streams,
                                       out warnings);
             // Oluşan rapor sayfa içerisinde görüntülenmek isteniyorsa aşağıdaki kod parçası kapalı olmalıdır. Eğer ki ayrı bir sayfada
             // görüntülenmek istiyorsanız ise kod parçasını açmanız gerekmektedir.
             //Response.AddHeader("content-disposition", "attachment; filename=NorthWindCustomers." + fileNameExtension);

             return File(renderedBytes, mimeTpe);
        }
    }
}

Nesne olarak oluşan veriler için gerekli işleme işlemleri yapıldıktan sonra Microsoft Report içerisinde gösterilme işlemini tamamlamış oluyoruz. Sonuç aşağıdaki gibidir.

mak88_14

Sonuç olarak bu yazımızda Asp.Net MVC 2 ile hazırlamış olduğumuz uygulamaların içerisinde Microsoft Report aracılığıyla nasıl raporlama yapabileceğimizi incelemeye çalıştık.

Umarım sizler için yararlı olabilmiştir.

Kaynak
MSDN

Turhal Temizer

info@turhaltemizer.com

Visual Studio 2010 & Asp.Net MVC 2 – Code Snippet

Uygulama geliştirirken diller için hazırlanmış olan Code Snippet lar hayatımızı kolaylaştıran çok güzel bir kolaylıktır. Bu kolaylığın farkında olan Microsoft ‘ta Visual Studio 2010 ile Code Snippet ları asp markup kod tarafına da taşıyarak web uygulama geliştiricilerin oldukça rahatlamasına sağlamıştır. Özellikle benim gibi web formaların üzerine eklemiş olduğu kontrolleri sürükle-bırak ile değilde tek tek markup kodları yazan geliştiriciler için oldukça güzel bir özelliktir. Ancak bu yazımızda Asp.Net ile gelen code snippetleri değilde MVC2 ile birlikte gelenleri inceliyor olacağız.

İlk olarak code snippetları kullanmak için gerekli kısa yazımını bildikten sonra tab tuşuna iki kere basmamız durumunda kodu kendi tamamlayacak ve işlemleri yapmaya devam edebileceğiz. Ancak code snippet için tanımlanmış olan kısa yazımı bilmiyorsanız çift tab işlemi geçersiz olacaktır. Bu durumda kullanabileceğiniz code snippetlara göz atabilmeniz için CTRL+K, CTRL+X kısa yolları ile görebilirsiniz.

MVC2 Code Snippet 

Karşımıza çıkartmış olduğumuz ekran sonrasında ASP.NET MVC 2 ‘yi seçiyor ve istediklerimizi kullanmaya başlayabiliyoruz.

MVC 2 Code Snippet

Şimdi MVC 2 içerisinde en sık kullanılabilecek olan HTML ve C# snippet lara göz atalım.

HTML

actionlink

Markup snippet ASP.NET MVC için action link kodunun yazılması için kullanılmaktadır.
<%= Html.ActionLink("linktext", "actionname") %>

beginformajaxcs

Markup snippet ASP.NET MVC için AJAX-enabled forma C# ile kullanılabilmesine yardımcı olacak kodu oluşturur.
<% using (Ajax.BeginForm("actionname", new AjaxOptions {UpdateTargetId= "elementid" })) { %>
<% } %>

beginformcs

Markup snippet ASP.NET MVC için form da yardımcı kodu oluşturur.
<% using (Html.BeginForm()) { %>
<% } %>

displayforcs

Markup snippet ASP.NET MVC template yardımcısıdır.
<%= Html.DisplayFor(x => x.Property) %>

editorforcs

Markup snippet ASP.NET MVC template kod oluşturucu.
<%= Html.EditorFor(x => x.Property) %>

foreachcs

Markup snippet ASP.NET MVC için foreach kod oluşturucu
<% foreach (var item in collection) { %>
<% } %>

ifcs

Markup snippet if else blogunun sadece if blogunu oluşturur. 
<% if (true) { %>
<% } %>

ifelsecs

Markup snippet if-else blogunu oluşturur.
<% if (true) { %>
<% } else { %>
<% } %>

renderpartialcs

Markup snippet ASP.NET MVC view ‘in render edilmesi için gerekli kod blogunu oluşturur
<% Html.RenderPartial("viewname"); %>

textboxmvc

Markup snippet ASP.NET MVC textbox için gerekli olan kod blogunu oluşturur
<%= Html.TextBox("name") %>

validationsummarymvc

Markup snippet ASP.NET MVC validation bilgilendirmesi için gerekli olan kod blogunu oluşturur. 
<%= Html.ValidationSummary() %>

C#

mvcaction

Code snippet action için.
public ActionResult Action()
{
    return View();
}

mvcpostaction

Code snippet action http ‘ye göndermek için.
[HttpPost]
public ActionResult Action()
{
    return View();
}

İyi günler…

Pazartesi, Mayıs 03, 2010

Asp.Net MVC Framework - RSSFeed

Asp.Net MVC Framework – RSSFeed

 

ASP.NET MVC Framework ilk çıktığı günden bu yana gelişimi ve web geliştiricilerin üzerinde ki beğeni etkilerini incelediğimizde sürekli artan bir grafik olduğunu gözlemleriz. Bu doğrultuda artık geliştiriciler yavaş yavaş uygulamlarını MVC Framework 'e geçirmek için planlar yapıyorlar. Bu doğrultuda Asp.Net web sayfalarında yapmış oldukları yapıları da Asp.Net MVC Framework 'te kullanmak isteyeceklerdir ki bu da en olası durumdur. Daha önceden incelemiş olduğumuz konularıdaki yazılarda da değindiğimiz MVC ile hazırlanan web sayfaları gazatecilik, blog, topluluk ve bunun gibi diğer bir çok sistem için oldukça uyumlu bir yapı olduğundan defalarca bahsetmiştik. Bu web uygulamalarında en çok göze batan ve dikkat edilen özellik ise RSS bilgilerinin gösteriliyor olmadır. Bu yazımızda Asp.Net MVC Framework yardımı ile RSS bilgisini site içerisinde nasıl gösterebileceğimizi inceliyor olacağız.

İsterseniz daha önceden hazırlamış olduğunuz uygulamanızın üzerine isterseniz de yeni oluşturacağınız bir uygulamanın içeriğine controller sınıfı ekleyerek adını RSSFeedController olarak belirterek işlemlerimizi yapmaya başlıyoruz.

image.axd

Controller sınıfını oluşturduktan sonra RSS verilerini rahatlıkla işleyebilmek için projeye System.ServiceModel.Web.dll 'i referans gösteriyoruz. System.ServiceModel isim içerisinde yer alan Syndication isim alanı RSS işlemleri için gerekli olan işlemleri yapabilmemize olanak tanır.

Bu durumda bahsetmiş olduğumuz isim alanını kullanarak Controller içerisinde yer alacak olan metodu hazırlayabiliriz.

System.ServiceModel.Syndication; // System.ServiceModel.Web.dll referans olarak ekleniyor.
public class RSSFeedController : Controller
{
    public ActionResult RSSFeed()
    {
        string strFeed = "blabla.feed"; //RSS Feed adresi girilecek
        using (XmlReader reader = XmlReader.Create(strFeed))
            {
                SyndicationFeed rssData = SyndicationFeed.Load(reader);
                return View(rssData);
        }
    }
}

Controller sınfını ve içerisinde yer alacak olan ActionResult 'ı hazırladıktan sonra şimdi gerekli view 'ı oluşturup gerekli içeriği hazırlayarak işlemleri tamamlayabiliriz.


<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SyndicationFeed>" %>
<%@ Import Namespace="System.ServiceModel.Syndication"%>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
RSSFeed
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>RSSFeed</h2>
<% foreach (var item in ViewData.Model.Items)
{
string URL = item.Links[0].Uri.OriginalString;
string Title = item.Title.Text;
Response.Write(string.Format("<p><a href=\"{0}\"><b>{1}</b></a>", URL, Title));
Response.Write("<br/>" + item.Summary.Text + "</p>");
} %>
</asp:Content>

İsim alanını ekledikten sonra RSS 'te yer alan URL, konu başlığı ve içeriğini de gösterek RSSFeed i hazırlamış oluyoruz. Yaptığımız işlemler sonrasında karşımıza çıkan ekran görüntüsü aşağıdaki gibi olacaktır.

image.axd

Sonuç olarak istediğimiz işlemi başarılı bir şekilde sağlamış oluyoruz. Yukarıda yapmış olduğumuz örnek ise Asp.Net geliştirme takımının msdn içerisindeki blogundaki içerikleri göstermektedir.

Sonuç olarak bu yazımızda System.ServiceModel.Syndacation isim alanını kullanarak RSS Feed 'in nasıl hazırlanabileceğini incelemeye çalıştık.

Umarım sizler için yararlı olabilmiştir.

Kaynak
MSDN

Turhal Temizer

info@turhaltemizer.com

Pazartesi, Nisan 12, 2010

Visual Studio 2010 – RTM

Visual Studio 2010 çıktı.

Uzun bir gelişme sürecinin ardından Visual Studio 2010 resmi olarak satışa sunuldu.Visual Studio 2010

IDE üzerinde WPF ‘in nimetlerinden yararlanılarak yapılan değişiklikler, WWF ‘in tasarımın ve akış tiplerinin yenilenmesi, F# dilinin entegre edilmesi, MVC 2 ile beraber gelmesi ve diğer bir çok özelliği ile bugün VS2010 çıkmış bulunuyor. Deneme sürümünü indirip kurmak isteyenler aşağıda verecek olduğum linkten yararlanabilirler. Almak isteyenler için ise Visual Studio 2010 Ultimate satış fiyatı $11850. :)

http://www.microsoft.com/visualstudio/en-us/download

Çarşamba, Mart 24, 2010

Asp.Net MVC Framework 1.0 ‘ten Asp.Net MVC Framework 2.0 ‘a Uygulamaları Yükseltmek (Upgrading)

Asp.Net MVC Framework cephesinde Microsoft geliştirmelerine son sürat devam ediyor. Bunun sonuçları olarakta çok yakın bir zaman da MVC Framework 2.0 sürümü yayınlandı. Bu sürüm ile gelen yenilikleri zaman içerisinde inceliyor olacağız. Ancak şimdi aklımızı kurcalayan ve daha önemli bir konu olan MVC Framework 1.0 ile geliştirilmiş olan uygulamaların akıbeti ne olacak konusunu inceliyor olacağız.

MVC Framework 1.0 ‘ın çıkışı ve kullanım kolaylıkları sebebi ile bir çok web uygulama geliştiricisi bu tasarı ile uygulama nasıl geliştirileceğini yoğun bir şekilde inceledi. Geçen zaman içerisinde de bir kısmı uygulama geliştirerek çok başarılı ürünler çıkartmış oldular. Ülkemizde de fazlaca örneği bulunmaktadır. En büyük faydalarından bir kaçı ise, ID ‘ler ile gereksiz sayfa fazlalığının önüne geçilmesi, entity katmanların yoğun bir şekilde kullanılıyor olması, katmansal mimarinin web uygulamalarında rahatlıkla kullanılabiliyor olması, URL yönlendirme işlemlerinin rahatça yapılabilmesi gibi aklımıza bir çırpıda gelenleri bunlardır.

Evet zaman içerisinde bir çok uygulamanın geliştirildiğinden bahsettik. Eğer ki ortada geliştirilen bir ürün varsa bu ürünün yeni çıkan sürümlerine de uyarlanabiliyor olması gerekmektedir. Bu temek kural sebebi ile Asp.Net MVC Framework 1.0 ile geliştirilen web uygulamalarının Asp.Net MVC Framework 2.0 sürümüne yükseltilmesi esnasında yapılması gereken adımlara değinerek bu ihtiyacımızı nasıl gerçekleştirebileceğimizi incelemeye çalışıyor olacağız.

MVC Framework 1.0 sürümünden MVC Framework 2.0 sürümüne yükseltmek için kullanabileceğimiz iki yöntem bulunmaktadır. Bunlardan birincisi bir sihirbaz yardımı ile bir diğeri ise de direk uygulamaya elle müdahale ederektir.

1.) Sihirbaz Yardımı ile Yükseltmek

Sihirbaz yardımı ile MVC Framework 1.0 ile hazırlamış olduğunuz web sayfalarını MVC Framework 2 sürümüne yükseltmek için MvcAppConverter-MVC2RTM.zip (255 KB)  dosyasını bilgisayara indirdikten sonra uygulama dosyasını yani *.sln dosyasını gösterdikten sonra kendisi otomatik olarak dönüştürme işlemini gerçekleştiriyor olacaktır.

 

Peki bu sihirbaz dönüştürme işlemini güzelce yaptı. Ama hangi dosyaların üzerinde değişiklik yapıldığını ve nasıl kullanabileceğizi öğrenmek ihtiyacı hissedebiliriz . Bu bilgiler temel olarak aşağıda yer almaktadır.

  • Visual Studio 2008 ile yapılan uygulamalar üzerinde dönüştürme yapılabilmektedir.
  • Dönüştürülen bütün uygulamanın yedeği alınır
  • C# ve VB ile geliştirilmiş olan uygulamalarda System.Web.Mvc.dll üzerinde güncelleme yapılmaktadır.
    •     Referansları Asp.NET MVC 2 sürümüne göre güncellenir.
    •    System.ComponentDataMode.DataAnnotations 3.5 eklenmektedir.
    • Uygulama üzerinde de değişiklikler yapılmaktadır
    •     Uygulama tipi Asp.Net MVC 2 nin proje şablonu ile uyumlu olacak şekilde değişikliğe uğrar.
    •     web.config üzerinde yer alan referans bilgileri güncellenir.
    •     Yönlendirme yapısı Asp.NET MVC 1.0 ile olan uyumluluğundan Asp.NET MVC 2.0 için uyumluluğa geçmektedir.
    •    /Views/web.config içerisinde yer alan referans bilgileri güncellenmektedir.
    •     JavaScript dosyalarına JQuery bilgileri eklenir ya da güncellenir.

      Sihirbaz ile yapılan işlemler yukarıdaki adımları izleyecek şekilde olacaktır.

      Yukarıdaki sihirbazı henüz Visual Studio 2010 ve .Net Framework 4.0 üzerinde kullanabilmeniz mümkün değildir. Ancak geliştiricileri bu sürümler içinde dönüştürülme işleminin sağlanması için gerekli çalışmaların yapıldığını belirtilmektedir.

    Ancak sizler ben sihirbaz ile işlemlerimi yapmayı sevmiyorum ya da bu değişiklikleri kendim değiştirmek istiyorum diyorsanız işte bu durumda el ile yükseltme adımlarını takip etmeniz gerekmektedir.

2.) Elle Yükseltmek

Biraz önce başarılı bir yazılımcı tarafında hazırlanmış olan yükseltme sihirbazını kullarak uygulamalarımızı nasıl yeni sürüme yükseltebileceğimizi inceledik. Şimdi ise adım adım biz yapmak istersek bu işlemleri nasıl yapabileceğimize değiniyor olacağız.

Öncelikle MVC Framework 2 sürümünü kullanabilmek için Visual Studio 2008 ve .Net Framework 3.5 'in SP1 sürümlerinin bilgisayarınızda kurulu olması gerekmektedir.

Not: Windows 7 kullanıcıları sadece Visual Studio 2008 ‘in SP1 ‘inin kurmaları yeterli olacaktır. Bilindiği kadarıyla Windows 7 .Net Framework 3.5 SP1 kurulu olarak gelmektedir. Ancak bu özellikleri kullanabilmek için windows özelliklerini aç/kapa ekranını kullanarak .net Framework 3.5.1 seçeneğinin altında yer alan bütün seçeneklerin seçili duruma getirilmesi gerekmektedir. Aksi taktirde Asp.Net MVC 2 sürümünü bilgisayarınıza kuramayacak ve aşağıda anlatacağımız ya da yukarıda anlatmış olduğumuz işlemleri yapamıyor olacaksız.

Gerekli geliştirme araçlarına sahip olduğumuza göre MVC Framework 1.0 ile geliştirilmiş olan web uygulamasını yükseltmeye başlayabiliriz. Bu işlemi adım adım anlatıyor olacağız.

1. Projenin yedeğinin alınması gerekmektedir.

2. *.csproj proje dosyasını not defteri yardımı ile açtıktan sonra ProjectTypeGuid nesnesinin değerine ulaşmamız gerekecektir. Bulmamız gereken GUID {603c0e0b-db56-11dc-be95-000d561079b0} ile {F85E285D-A4E0-4152-9332-AB1D724D3325} şeklindedir. bu değeri bulduktan sonra {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} değerleri ile değiştirilmesi gerekmektedir.

3. Web uygulamasının bulunduğu klasöre eriştikten sonra Web.Config dosyası açılır ve içerisinde verilmiş olan referanslardan System.Web.MVC, Version=1.0.0.0 yazınını bulduktan sonra bu referans bilgisini System.Web.MVC, Version=2.0.0.0 olacak şekilde güncelliyoruz.

4. Views klasörünün içerisinde yer alan Web.config dosyasına da 3. maddede yer alan değişiklikleri uyguluyoruz.

5. Visual Studio ile MVC 1.0 ile hazırlanmış olan projeyi açtıkan sonra (Yukarıdaki değişiklikleri yapmış oluyoruz tabikii) Referanslar bölümünde yer alan System.Web.MVC referansını siliyoruz (1.0 sürümünü). Sonrasında System.Web.Mvc ‘nin 2.0 olan sürümüne ilişkin dll ‘i projeye referans olarak ekliyoruz.

6. Web.config dosyasının içerisine bindingRedirect nesnesinin kullanılabilmesi için aşağıdaki yapılandırma dosyasını ekliyoruz.

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc"
publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

7. Script dosyasınına yeni eklenenleri kullanabilmek için yeni bir MVC 2.0 projesi oluşturduktan sonra olmayan MVC 1.0 ile hazırlanmış olan uygulamada olmayan script dosyalarını 2.0 projesinin içerisinden diğerine kopyalıyoruz.

8. Biraz önce oluşturmuş olduğumuz MVC 2.0 projesi içerisinde yer alan CSS ‘i kullanmak istiyorsanız Site.css ‘i eski projede aynı dosyada yer alan şekilde kopyalıyoruz.

9. Yapılan değişiklikler sonrasında uygulamamızı derliyor ve sorunsuzca çalıştırıyoruz.

El ile adım  adım yaptığımız da gördüğünüz gibi aslında yapacağımız işlemleri basitçe gerçekleştirebilmemiz mümkündür.

Sonuç olarak bu yazımızda Asp.NET MVC Framework 1.0 ile hazırlanmış olan web uygulamalarını Asp.NET MVC Framework 2.0 ‘a yükseltirken hangi adımları uygulayacağımızı hem sihirbaz yardımı ile hem de adım adım bizlerinde nasıl yapabileceğini inceleyerek değinmeye çalıştık.

Umarım Yararlı olabilmiştir.

Kaynaklar
MSDN
Upgrading Wizard

Turhal Temizer

Salı, Mart 23, 2010

Asp.Net MVC Framework 2.0 RTM – Windows 7 Kurulum

Bildiğiniz üzere bir süre önce Asp.Net MVC Framework ‘ün 2. versiyonu yayınlandı. Bizlerde bu uygulamayı hemen kurmak istedik. Ancak Windows 7 kullanan bazı geliştiriciler kurulum esnasında bir sorun yaşadılar ki, hata mesajı olarak .Net Framework 3.5 SP1 ’in sistemde bulunmadığına ilişkindir. Ancak bilindiği üzere Windows 7 işletim sistemi .Net Framework 3.5.1 yani SP1 ‘li versiyonu ile ilk kurulum anından itibaren çalışmaktadır.

Yukarıda bahsettiğimiz türde bir hata alan geliştiricilerin yapması gereken Denetim Masasına girdikten sonra program özelliklerini aç/kapa linkine tıkladıktan sonra karşılarına gelen ekranda .Net Framework 3.5.1 olan bölümlerinde alt başlıkları ile seçmek ve sonrasında işlemi tamamlamak olacaktır. Bu işlem sonrasında bilgisayarınızı yeniden başlatmanız gerekmektedir. Artık bilgisayarınıza Asp.Net MVC Framework 2 ‘yi sorunsuzca kurabilirsiniz.

Not: Görünümü yenilenmiş olan www.asp.net sitesi yardımı ile gerekli bileşenleri bilgisayarınıza indirip yenilikleri takip edebilmeniz mümkündür.

İyi çalışmalar