<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CETURK &#187; Asp.Net Mvc</title>
	<atom:link href="http://www.ceturk.com/etiket/aspnet-mvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Sat, 05 May 2012 16:04:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Asp.Net MVC3 Release Candidate 2 Duyruldu</title>
		<link>http://www.ceturk.com/asp-net-mvc3-release-candidate-2-duyruldu/</link>
		<comments>http://www.ceturk.com/asp-net-mvc3-release-candidate-2-duyruldu/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 07:57:33 +0000</pubDate>
		<dc:creator>Halil İbrahim Ateş</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Asp.Net Mvc]]></category>
		<category><![CDATA[Asp.Net MVC3]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7017</guid>
		<description><![CDATA[Microsoft Asp.Net ekibi geçtiğimiz günlerde  Asp.net MVC3 ün final sürümü niteliğinde olan release candidate sürümünü duyurdu. Bu sürümün neredeyse tamamen final sürümüyle aynı olduğunu belirten ekip, bu sürüm ile birlikte yazilim dünyasının son testlerini yapmasına imkan sağlamak istediklerini belirtti. Final sürümünün ise haziran ayında yayınlanması bekleniyor. RC2 sürüme hem Visula Studio. 2010 hem de Visula [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft Asp.Net ekibi geçtiğimiz günlerde  Asp.net MVC3 ün final sürümü niteliğinde olan release candidate sürümünü duyurdu. Bu sürümün neredeyse tamamen final sürümüyle aynı olduğunu belirten ekip, bu sürüm ile birlikte yazilim dünyasının son testlerini yapmasına imkan sağlamak istediklerini belirtti. Final sürümünün ise haziran ayında yayınlanması bekleniyor.</p>
<p><span id="more-7017"></span><br />
<img class="alignnone" src="http://msdn.microsoft.com/en-ca/ff657791.MVC3.gif" alt="" width="212" height="105" /></p>
<p>RC2 sürüme hem Visula Studio. 2010 hem de Visula Studio 2010 SP1 Beta ile uyumlu olarak çalışmakta. Henüz yeni duyurulan VS 2010 SP1 Beta ile ilgili detaylı bilgiye <a href="http://www.hanselman.com/blog/VisualStudioExplosionVS2010SP1BETAReleasedAndContext.aspx" target="_blank">buradan </a>ulaşabilirsiniz.</p>
<p>Bu sürüm bir çok bug düzeltmesi ve performans iyileştirmesi içermekte.Son yapılan performans testleri gösteriyorki, MVC3  MVC2 den daha hızlı çalışmakta.</p>
<p>Bu sürüm aynı zamanda jQuery 1.4.4 and jQuery Validation 1.7 yi de içermekte.Ayrıca yeni gelen güzel özelliklerden biride yeni proje oluşturacağınız Asp.net projelerinde JQuery UI içerecek şekilde oluşturabilirsiniz. Böylece bu komponentinde eklentilerini ve özelliklerini kolaylıkla kullanabileceksiniz..</p>
<p>Bu bunun gibi birçok özelliğini daha detaylı incelemek isterseniz yazının orjinaline <a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx" target="_blank">buradan </a>ulaşabilirsiniz&#8230;</p>
<p>Halil İbrahim Ateş</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-net-mvc3-release-candidate-2-duyruldu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.Net MVC ile Kendi Doğrulama Niteliğimizi Yazalım</title>
		<link>http://www.ceturk.com/asp-net-mvc-ile-kendi-dogrulama-niteligimizi-yazalim/</link>
		<comments>http://www.ceturk.com/asp-net-mvc-ile-kendi-dogrulama-niteligimizi-yazalim/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 06:00:12 +0000</pubDate>
		<dc:creator>GokayOkutucu</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Asp.Net Mvc]]></category>
		<category><![CDATA[Gökay Okutucu]]></category>
		<category><![CDATA[Membership]]></category>
		<category><![CDATA[Mvc Framework]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=2394</guid>
		<description><![CDATA[Uzunbir aradan sonra herkese merhaba. Daha öncede belirttiğim gibi üzerinde çalıştığım bir proje var. Bu yüzden makalelerime ara vermek zorunda kaldım. Bugün sizlerle birlikte Asp.Net Web Formlar için denediğimiz özel Membership’imizi yani kullanıcı denetleme sistemimizi Asp.Net MVC için yazmaya çalışacağız. Önceki yazımızda Web Form için bu olayı Üst/Taban(Base) bir sınıftan türeterek yaparken, MVC’de sadece doğrulama [...]]]></description>
			<content:encoded><![CDATA[<p>Uzunbir aradan sonra herkese merhaba. Daha öncede belirttiğim gibi üzerinde çalıştığım bir proje var. Bu yüzden makalelerime ara vermek zorunda kaldım.<br />
<img class="aligncenter" src="http://www.ceturk.com/images/attributemvcsamp1.png" alt="" width="500" height="289" /></p>
<p>Bugün sizlerle birlikte Asp.Net Web Formlar için denediğimiz özel Membership’imizi yani kullanıcı denetleme sistemimizi Asp.Net MVC için yazmaya çalışacağız. Önceki yazımızda Web Form için bu olayı Üst/Taban(Base) bir sınıftan türeterek yaparken, MVC’de sadece doğrulama işleminin gerçekleşmesini istediğimiz sınıf üzerine ilgili <span style="font-weight:bold;">Niteliği</span>(Attribute) koyarak yapacağız.</p>
<div><strong>Özel Doğrulama Niteliği</strong></div>
<div><strong><br />
</strong></div>
<div><strong>Nitelikler</strong>(Attributes) bildiğimiz üzere <strong>Yansıma</strong>(Reflection) teknikleri kullanarak çalışma zamanında nesneler ile ilgili bilgilere erişmemizi sağlarlar. <strong>Asp.Net MVC</strong> içerisinde yapacağımız bu projede de eski ve kullanımı zor yöntemlerden sıyrılıp çok daha kolay kullanılabilen bir doğrulama sistemi yazacağız. Bunu bize sağlayan şey ise tabiki de Asp.Net MVC’nin esnekliği ve Nitelikler&#8230;</div>
<div>
<div>Niteliğimizi yazmaya başlamadan önce üye bilgileri tutacağımız <strong>MemberInfo</strong> ve <strong>MemberTicket</strong> sınıflarını yazalım.</div>
<div>
<pre class="brush:csharp">namespace MvcCustomMembership.Helper
{
public class MemberInfo
{
public string User { get; set; }
public MemberTicket Ticket { get; set; }
public bool IsAuthenticate { get; set; }
}

public class MemberTicket
{
public Guid Guid { get; set; }
public int UserId { get; set; }
public string User { get; set; }
public DateTime IssueDate { get; set; }
public DateTime Expiration { get; set; }
}
}</pre>
</div>
</div>
<div>Bu sınıflarda kullanıcı adı, kullanıcı doğrulandı mı doğrulanmadı mı ve <strong>çerez</strong>(cookie) için bazı bilgiler içeriyor. Bu bilgileri <strong>Session’da </strong>tutacağız ve gerektiğinde kullanağız.</div>
<div>Niteliğimizi yazarken <strong>ActionFilterAttribute </strong>isimli <strong>Soyut</strong>(Abstract) sınıfından türettiğimize dikkat ediyoruz. Hatırlayacağınız üzere <strong>soyut</strong>(Abstract) sınıflar içerisinde tanımlanan <strong>soyut metotlar</strong>(Abstract Methods) mutlak suretle <strong>ezilmelidirler</strong>(Override). Şimdi biz de bu metotlardan birini ezerek devre dışı bırakacağız.</div>
<div><span style="font-family:-webkit-monospace;font-size:100%;"><span style=" white-space: pre;font-size:13px;"><span style="font-family:Georgia;font-size:130%;"><span style=" white-space: normal;font-size:16px;"><br />
</span></span></span></span></div>
<div>
<pre class="brush:csharp">public class AuthenticationAttribute : ActionFilterAttribute
{
private HttpContextBase _context;

public Role Roles { get; set; }

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Controller is ControllerBase)
{
var baseControllar = filterContext.Controller as ControllerBase;
if (baseControllar != null)
{
_context = baseControllar.ControllerContext.HttpContext;

var memberInfo = (MemberInfo)_context.Session["MemberInfo"] ?? new MemberInfo();
Helper.CookieLogin(memberInfo);

if (!memberInfo.IsAuthenticate &amp;&amp; _context.Request.Path != null)
{
    string loginUrl = "~/Account/Login?returnUrl=" + _context.Request.Path;
    filterContext.HttpContext.Response.Redirect(loginUrl);
}
}
}
}
}</pre>
</div>
<div><strong>OnActionExecuting </strong>metodu <strong>Controller </strong>sınıfı içerisinde tanımlanmış olan bir <strong>ActionMethod</strong> çalıştırılmak üzereyken işleme alınır. Burada üzerinde bizim niteliğimiz tarafından işaretlenmiş olan bir <strong>Controller</strong> sınıfı metot gövdesinde kullanılmak üzere parametre ile aktarılıyor. Eğer <strong>Session</strong> da tanımlanmış olan <strong>MemberInfo</strong> null değilse <strong>memberInfo</strong> değişkenine aktarılıyor. Eğer null ise yeni bir <strong>MemberInfo </strong>sınıfı yaratılıyor. Yaratılma işleminden hemen sonra ise daha önce <strong>“Beni Hatırla”</strong> seçeneği işaretlenmişse çerez içerinden bilgiler aktarılıp <strong>memberInfo </strong>sınıfına bu şekilde aktarım gerçekleştiriliyor.</div>
<div>Bir sonraki satırda ise kullanıcının doğrulanma durumu kontrol ediliyor. Doğrulama işlemi gerçekleştirilmemişse kullanıcının hangi sayfadan <strong>Login </strong>sayfasına yönlendirildiğine dair bir <strong>Url</strong> bilgisi elde ediliyor. Böylelikle eğer <strong>About</strong> sayfasına girdiyseniz ve bu sayfada doğrulama işlemi gerekiyorsa, sistem sizi <strong>Login</strong> sayfasına yönlendiriyor(<strong>returnUrl</strong> isimli parametre).</div>
<div>Şimdi geçelim <strong>AccoutController </strong>sınıfımıza. Öncelikle yeni yaratılan <strong>MVC proje şablonu</strong> içerisindeki <strong>AccountController </strong>sınıfının gövdesini temizleyelim ve aşağıdaki kod blogunu buraya geçirelim.</div>
<div>
<pre class="brush:csharp">[HandleError]
public class AccountController : Controller
{
public ActionResult Index()
{
return RedirectToAction("Login");
}

public ActionResult Login()
{
ViewData["Title"] = "Login Page";
return View();
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string username, string password, string rememberMe)
{
//Kullanıcı adı ve şifre kontrollerinide veritabanına bağlanıp yapmalıyız
if (username == "test" &amp;&amp; password == "test")
{
string requestUrl = Request.QueryString.Count &gt; 0 ? Request.QueryString["returnUrl"] : null;

//Bu kısımı database'den gelen veriye göre set etmemiz gerekiyor
var memberInfo = new MemberInfo { IsAuthenticate = true, User = "Gokay" };

Session["MemberInfo"] = memberInfo;
memberInfo.Ticket = new MemberTicket()
{
  User = memberInfo.User,
  Expiration = DateTime.Now.AddMinutes(2),
  IssueDate = DateTime.Now,
  UserId = 1,
  Guid = Guid.NewGuid()
};

if (rememberMe == "on")
  AddCookie(memberInfo);

if (requestUrl != null)
  return Redirect(requestUrl);
return RedirectToAction("Index", "Home");
}
else
return View();
}

private void AddCookie(MemberInfo memberInfo)
{
var myCookie = new HttpCookie("myCookie");

myCookie.Values.Add("userName", memberInfo.User);
myCookie.Values.Add("userIssueDate", memberInfo.Ticket.IssueDate.ToString());
myCookie.Values.Add("userId", memberInfo.Ticket.UserId.ToString());
myCookie.Values.Add("userGuid", memberInfo.Ticket.Guid.ToString());
myCookie.Values.Add("userExpiration", memberInfo.Ticket.Expiration.ToString());

myCookie.Expires = memberInfo.Ticket.Expiration;

Response.Cookies.Add(myCookie);
}

public ActionResult Logout()
{
Session["MemberInfo"] = null;
if (Request.Cookies["myCookie"] != null)
{
RemoveCookie();
}

return RedirectToAction("Index", "Home");
}

private void RemoveCookie()
{
var myCookie = new HttpCookie("myCookie") { Expires = DateTime.Now.AddYears(-1) };

Response.Cookies.Set(myCookie);
}
}</pre>
</div>
<p>En üsteki <strong>Index </strong>isimki <strong>ActionResult</strong> metodumuz tarayıcıdan <strong>http://localhost/Account</strong> biçminde bir istek gelirse <strong>Login</strong> <strong>ActionResult’una </strong>yönlendirme yapıyor. <strong>Login metodu</strong> içerisinde ise doğrulama işlemlerini ele alıyoruz. Bunun için bir de <strong>Login </strong>isimli bir <strong>View</strong> oluşturmamız gerekiyor. Burada kullanıcı arabirimimizi tasarlayacağız.</p>
<div>
<pre class="brush:csharp">&lt;asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"&gt;
&lt;% using (Html.BeginForm())
{ %&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
Username :
&lt;/td&gt;
&lt;td&gt;
&lt;%= Html.TextBox("username")%&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Password :
&lt;/td&gt;
&lt;td&gt;
&lt;%= Html.Password("password")%&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input id="rememberMe" name="rememberMe" type="checkbox"/&gt;&lt;label for="rememberMe"&gt;Beni Hatırla&lt;/label&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="submit" name="login" id="login" value="Login" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;%} %&gt;
&lt;/asp:Content&gt;</pre>
</div>
<div><strong>Login ActionResult metodu</strong> içerindeki <strong>KullanıcıAdı </strong>ve <strong>Şifre</strong> kontrollerini veritabanına bağlanıp yapabiliriz. Ben burada işlemleri hızlı yapmak adına kullanıcı adı ve şifresiyi <strong>“test”</strong> olarak belirledim. <strong>İf blogunun </strong>içine bakmak gerekirse; burada <strong>Nitelik </strong>içerisinde belirtilen <strong>returnUrl </strong>isimli parametrenin <strong>Url </strong>üzerinde olup olmadığını kontrol ediyoruz. Daha sonra <strong>memberInfo </strong>sınıfını yaratıp, giriş yapan kullanıcının bilgilerini buradaki <strong>özelliklere</strong>(properties) atıyoruz. <strong>“Beni Hatırla”</strong> isimli <strong>chechBox</strong> işaretlenmişse çerezimizi yazıyor ve kullanıcıyı <strong>“returnUrl”</strong> parametresinde belirtilen adrese ya da anasayfaya yönlendiriyoruz.</div>
<div>Bunların dışında ben anasayfada kullanmak üzere ufak bir <strong>UserControl </strong>yazdım. Bu UserControl ile <strong>Login </strong>isimli <strong>View </strong>içerindeki kodlar birbiriyle oldukça benzer. Bu yüzden sadece UserControl içerisindeki kod bloglarını anlatacağım.</div>
<div>
<pre class="brush:csharp">&lt;%
MemberInfo memberInfo = Helper.GetMemberInfo();

if (memberInfo.IsAuthenticate)
{
%&gt;
&lt;span&gt;Hoş Geldiniz
&lt;%= Html.Encode(memberInfo.User) %&gt;&lt;/span&gt;
&lt;%
}
else
{
using (Html.BeginForm("login", "account", FormMethod.Post))
{
%&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;
Kullanıcı Adı
&lt;/td&gt;
&lt;td&gt;
&lt;input id="username" name="username" type="text" maxlength="20" size="20" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
Şifre
&lt;/td&gt;
&lt;td&gt;
&lt;input id="password" name="password" type="password" maxlength="20" size="20" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="checkbox" id="rememberMe" name="rememberMe" /&gt;&lt;label for="rememberMe"&gt;Remember
  Me&lt;/label&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt;
&lt;input type="submit" name="login" id="login" value="Login" /&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;%
}
}
%&gt;</pre>
</div>
<p>En üst satırda <strong>memberInfo </strong>sınıfımızı <strong>Helper </strong>metodu içerisindeki <strong>GetMemberInfo </strong>metodu ile <strong>set </strong>ediyorum</p>
<div>
<pre class="brush:csharp">public static class Helper
{
public static MemberInfo GetMemberInfo()
{
var memberInfo = new MemberInfo();

if (HttpContext.Current.Session["MemberInfo"] != null)
    memberInfo = (MemberInfo)HttpContext.Current.Session["MemberInfo"];
else
    CookieLogin(memberInfo);

return memberInfo;
}

public static void CookieLogin(MemberInfo memberInfo)
{
var myCookie = HttpContext.Current.Request.Cookies["myCookie"];
if (myCookie != null)
{
    int userExpration = Convert.ToDateTime(myCookie.Values["userExpiration"]).Year;
    int userIssueDate = Convert.ToDateTime(myCookie.Values["userIssueDate"]).Year;
    if (myCookie["userName"] != null &amp;&amp; !memberInfo.IsAuthenticate &amp;&amp; userExpration &gt;= userIssueDate)
    {
        memberInfo.User = myCookie["userName"];
        memberInfo.Ticket = new MemberTicket()
        {
            User = myCookie["userName"],
            Guid = new Guid(myCookie["userGuid"]),
            UserId = Convert.ToInt32(myCookie["userId"])
        };
        //Eğer belirtilen guid database'de bulunuyorsa isAuthenticate property'sini true yapalım
        memberInfo.IsAuthenticate = true;
    }
}
}
}</pre>
</div>
<div>Doğrulama işlemi başarılı gerçekleştirilmişse<strong> “Hoş Geldiniz”</strong> yazısını ve kullanıcı ismini gösteriyor, gerçekleştirilmemiş ise giriş yapma arabiriminiz gösteriyorum. Burada dikkat etmemiz gereken bir ikinci kısım ise buradaki belirtilen <strong>form</strong>’un yani <strong>BeginForm</strong> ile başlayan kısımın <strong>metot özelliğini “Post”</strong> olarak atıyoruz(Parametrelerden diğer ikisi ise <strong>ActionName</strong> ve <strong>Controller Name</strong>’i belirtiyor). Belirtilen bu metodun çalışması için <strong>Controller </strong>sınıfı içerindeki <strong>Login </strong>metodu üzerinide <strong>[AcceptVerbs(HttpVerbs.Post)] </strong>niteliğini tanımlıyoruz.</div>
<div>Şimdi geldi buraya kadar yaptıklarımızı denemeye. Hemen <strong>HomeController</strong> sınıfımıza giriyoruz ve <strong>About </strong>isimli <strong>metodumuzun </strong>üzerinde <strong>niteliğimizi </strong>yazıyoruz.</div>
<div>
<pre class="brush:csharp">[Authentication(Roles = Role.User)]
public ActionResult About()
{
  return View();
}</pre>
</div>
<div>Eğer istersek kullanıcı <strong>rollerinide</strong> belirtip <strong>role </strong>göre login işlemlerini gerçekleştirebiliriz.</div>
<div><img class="aligncenter" src="http://www.ceturk.com/images/attributemvcsamp2.png" alt="" width="500" height="342" /></div>
<div><img class="aligncenter" src="http://www.ceturk.com/images/attributemvcsamp3l.png" alt="" width="500" height="315" /></div>
<div>Geldik bir yazımızın sonuna daha&#8230; Farkı bir konuda, farklı bir yazıda görüşmek üzere esen kalın.</div>
<div>Örneği indirmek için <a href="http://www.ceturk.com/images/MvcCustomMembership.rar">tıklayın</a>.</div>
<p><strong>Mehmet Gökay Okutucu</strong><br />
<strong>Email : </strong><a href="mailto:gokayokutucu@gmail.com">gokayokutucu@gmail.com</a><br />
<strong>Blog : </strong><a href="http://gokayokutucu.blogspot.com">http://gokayokutucu.blogspot.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-net-mvc-ile-kendi-dogrulama-niteligimizi-yazalim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.Net Mvc Seminer Videosu &#8211;  Gökay Okutucu</title>
		<link>http://www.ceturk.com/asp-net-mvc-seminer-videosu-gokay-okutucu/</link>
		<comments>http://www.ceturk.com/asp-net-mvc-seminer-videosu-gokay-okutucu/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 06:42:39 +0000</pubDate>
		<dc:creator>Yönetici</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CETURK TV]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Seminerler]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Asp.Net Mvc]]></category>
		<category><![CDATA[Asp.Net Mvc Seminer]]></category>
		<category><![CDATA[Asp.Net Mvc Video]]></category>
		<category><![CDATA[CETURK Anadolu Bilişim Turu]]></category>
		<category><![CDATA[CETURK Yazılım Mimarisi Tasarımı Günü]]></category>
		<category><![CDATA[Fırat Üniversitesi]]></category>
		<category><![CDATA[Gökay Okutucu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=2369</guid>
		<description><![CDATA[&#8220;CETURK Anadolu Bilişim Turu&#8221; kapsamında 21 Mart 2009 tarihinde Elazığ&#8217;ta Fırat Üniversitesi Atatürk Kültür Merkezi&#8217;nde &#8220;CETURK Yazılım Mimarisi Tasarımı Günü&#8221; etkinliği gerçekleştirildi. Etkinlikte Gökay Okutucu Asp.Net MVC Semineri verdi.]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="CETURK Anadolu Bilişim Turu"><strong>CETURK Anadolu Bilişim Turu</strong></a>&#8221;  kapsamında 21 Mart 2009 tarihinde Elazığ&#8217;ta<strong> Fırat Üniversitesi </strong>Atatürk Kültür Merkezi&#8217;nde &#8220;<a href="http://www.ceturk.com/etiket/CETURK-Yazilim-Mimarisi-Tasarimi-Gunu">CETURK Yazılım Mimarisi Tasarımı Günü</a>&#8221; etkinliği gerçekleştirildi.</p>
<p>Etkinlikte <a href="http://www.ceturk.com/etiket/gokay-okutucu"> <strong>Gökay Okutucu</strong></a> <strong>Asp.Net MVC </strong> Semineri verdi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/asp-net-mvc-seminer-videosu-gokay-okutucu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

