asp.net ajax godaddy

godaddy biçok projemde kullandığım hostingim kendisi şimdiye kadar gördüğüm en ucuza verilebilecek en uygun hostinge sahip. asp.net ve ajax istiyorsanızda http://www.asp.net/ajax/ den download ediceksiniz. ajaxcontroltoolkit ile bir sürü şey çok daha kolay duruma getirilmiş durumda. fakat bu projeyi godaddy de çalıştırmak isterseniz olmicak bir sürü problemle karşılaşabilirsiniz.

birinci problem urlrewriting ve ajax. asp.net de shared hostingden güzel url ler yapmak istiyorsanız yegane seçenek urlrewriting. kendisi gelişimini tamamlamış ama hala dertli bir proje. çalışıyor olması benim için yeterli. karşılaşdığım problemse axd isteklerine nane olan urlrewriting in ortalığı karıştırması. istek yapılan url örneği

ScriptResource.axd?d=jtJbL061WgTeksaav7VzwLP3l4DtdW1JA4V6X4OjnLEejk63vKlwC3
ygcyLnZP4Mp8dYDcZskJgS9zF-m8TQIeMwCfsCwv49rLTyqVCsqCQ1&t=633082638440786315

bunun bide bir alt folder olması durumunda başı götü ayrı değişiyor sonuçda tertemiz bir excetption fırlıyor.

Exception information:
Exception type: System.Web.HttpException
Exception message: ‘http://www.sozlukcell.com/sozlukcell/ScriptResource.axd’ is not a valid virtual path.

bunu önlemek için web.config e

<add name="WebResourceFix" virtualUrl="^~/WebResource.axd(.*)" rewriteUrlParameter="IncludeQueryStringForRewrite" destinationUrl="~/WebResource.axd$1" ignoreCase="true"/>
<add name="ScriptResource" virtualUrl="^~/ScriptResource.axd(.*)" rewriteUrlParameter="IncludeQueryStringForRewrite" destinationUrl="~/ScriptResource.axd$1" ignoreCase="true"/>

girmeniz gerekmiyor 🙂 ee niye yazdım denedim olmuo onu söyliem dedim bi türlü urlrewriting i ayarsal yoldan bu dosyalardan ayıramadım temiz çözüm: ScriptResource.axd ve WebResource.axd isminde 2 tane boş dosya oluşturun upload edin. urlrewritingde kontrol ettiğinde o dosyaları gördüğünden daha fazla rewrite etmeye çalışmayıp frameworke olayı bırakıyor. frameworkde akıllı axd istio haa bu script hedesi diyip işine bakıo. bi şekil kandırmış oluyoruz urlrewriting’i.

ikinci problemde godaddy ben yükledim siz yüklemen demesine rağmen System.Web.Extensions.dll i bin folderına koymanız gerekmesi.

sonuç hala içime sinmemiş olan autocomplete textbox ım çalışıyor olması. sözlükde arama yaparken 2. karakterden sonra direk autocomplete listesi çıkıyor. updateprogress konusu nedense hala bunla beraber çalışmıyor. patch bulduğunu söyleyenler var forumda ama denemedim. bir sonrakiversiyonda düzelir sanırım.

asp.net den başka neler var çabası içinde

bi önceki yazıda anlattığım gibi java denemelerim bitmedi bu arada okurkene okurkene RoR a geldim. baktım godaddy destekliyor neden olmasın dedim ve ilk ror tutorialimi bitirdim. alet db ye epey hassasmış database.yml dosyasında 10 dakka oynadım bi türlü

error Before updating scaffolding from new DB schema, try creating a table for your model (Mujuser)

hatasını geçemedim sonradan öğrendimki oluşturmak istediğinizin kontrolün adında bir table gerekio sonunda da s olması ve o table da en azından bir ID kolonu bulunması gerekiyor yoksa ror kod generate edemiyor çatlıyor.

sorunları çözdükten sonra çalışır halini görmek nasip oldu bakim bu rb uzantılı dosyalar ne ayakdır dedim ve umduğum gibi python indentation u çakması sonunda noktalı virgül olmayan değişik bir syntax daha. {}(dantelli parantez) lerde kullanılmıo sanırım gözüme çarpmadı. bir türlü bu tipi sindiremedim. python da böyleydi.

bu arada netbeans ile de pojolar ve persistance naneleri çıkarmayı becerdim fekat insertlerini yazmadı yada ben henüz bulamadım. bakim hostingde çalışacakmı dedim. sonuç godaddy de kod çalıştırmak ayrı bir maharet özellikle php değilse. sonuç hala hosting ve frameworksel problemleri aşamadım bunaltı içindeyim.

Server Side Scripting Language

bundan çok zaman önce sanırım 15 yada 20 sene önce serverlardan html vermek için C veya benzeri low level diller ile programlar yazılıyordu CGI diye biliniolar kendileri. sonra aklı evvel insanlar ulan C de yazıoz bunu iyi hoşda bunu değiştirmesi ayrı bir dert yazması ayrı bi dert altı üstü html print edioz manyakmıyız diyip perl, php ve asp gibi dilleri icat ettiler bunlar özünde ortaya exe yani executable yani çalıştırılabilir şeyler çıkarmıyorlardı. basit html içine gömülüyorlar dinamik html oluşturuyorlardı. bunlar zaman içinde gelişdi versiyonlar koydular frameworkler oldular falan ama sonuç hep html.

buraya nerden geldik bundan 2 hafta kadar önce bi çok domaine bakan bi arkadaşım freelance olarak alsan şunları dedi kendisi bıkmışdı bende olur dedim illa dedicated mı olmalı illa olmasına gerek yok ama maildi ottu bokdu rahat edersin sen bi dedicated ayarla dedi. araştırdım ve ne gördüm linux ve windows dedicated serverlar arasında fiyat farkı ortalama 40$ linux 70$ civarıyken windows serverlar 110$ da geziniyor uleyn dedim anladık kapitalistsiniz amerikalısınızda bokunu çıkarmanın ne alemi var. sonra kızıp elimdeki domainlerden birine java ile web uygulaması yazmalıyım diye karar verdim. ve günlerdirde bakınıyorum adam gibi bir framework varmı asp.net de membership role provider gibi şeyleri kapsayan basit bişey.

ve vardığım sonuç yok. rife turbine webwork ne varsa piyasada bakdım bi kere bunlar topluca karar vermişler çalışmayalım millet uyuz olsun hepsi koca koca paketler yayınlıo ama bomboş. ya çalışmıo ya gerekeni kapsamıyor osuruk ajax naneleri uisel hareketler struts jsf hepsi bomboş işin arayüz kısmı htmli zaten atla deve değil yırtsa kendini1 haftada herşeyi çözülüyor. ama dünya kadar alet içinde asp.net deki profile işini halledecek derecede basit bir class yok. bu arada apache deki maven’e bulaşan proje çalışmaz oluyor. onada kanaat geitrdim ya repo ya ulaşamıo ya versiyonu uyuşamıo saçma salak bir hata verip bi yerinde patlıo.

neden java dedim. buda basit sonuçda oturmuş teknolojisi ide’ye yakın şeyleri var her ne kadar ömür törpüsüde olsalar kullanılabiliyorlar notepad dende bir adım yukardalar. sonuçda php bunuda beceremedi bide yazarken değişkenin başına”$” işareti koymaya alışamadım gitti bi garip geliyor.

peki framework bulamadım diyip ide ler ile işimi götürmeye çalışim dedim en sonunda eclipse ile pojo üretmeyi başardım lakin eclipse in her tarafı kızarıverdi. yamuk nane gereken libleri refere etmiyor benimde bunları hissi kablel vukuyla bulmam gerekiyor. koca IBM duruyor arkasında hala bi işe yaramıyor. netbeans de jsf ile uraşayim dedim basit html koyup bunu çalıştırdım ve sonuç komedi netbeans kendiliğinden koda button ekliyor şaka gibi. intellij myeclipse de de aradığımı bulamayınca geriye jdeveloper kaldı. oracle ın eşşek boyu IDE si bakalım bundan ne çıkıcak şu anda download oluyor.

bir kaçgün daha java bakıncam ama adam gibi framework bulamazsam asp.net den devam etmek zarar ettirmeyecek beni sonuçda o işi almadım 🙂 dedicated serverda almadım ucuz shared hostingler hala bana yetiyor.

bu arada timu biliyorum symfony kullan diyorsun. o kadar uğraşmayı istesem düz jsp ilede aynı zamanda hallederim.

Session state in sql de tutulması (ASPState)

bu durum sessionun uzun ömürlü olmasını istediğinizde yapacağınız bişeydir ki
Session[“eblek”]=”gobalak”;
dediğimizde veriler sql de tutulur ve timeout süresince orda kalırlar.

bunu kurmakda ayrı konudur hemen web.config den ayarlayınca olmazlar

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727>aspnet_regsql.exe -ssadd -C “Data
Source=localhost;User ID=***;Password=***”

şeklinde ayarlanırlar.
web.config dede yapılması gerekenler
<sessionState
mode="SQLServer"
sqlConnectionString="Data Source=localhost;User ID=***;Password=***"
cookieless="false"
timeout="1000" />

aha şimdi 1000 dakikalık sessionumuz ilen dakılabilirsiniz 🙂

sqldatasource kullanmak ve faydaları

öncelikle server browserdan sürükler bırakırsın çat diye oluşur insert ve inserted eventlerini yakalarsan mssql de son insert ettiğin id yi ala bilirsin .

protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
int _inserted_maintemplate_id = Convert.ToInt32(((IDbDataParameter)e.Command.Parameters[“@NewID”]).Value);

}
protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
((IDbDataParameter)e.Command.Parameters[“@NewID”]).Size = 4;
}

asp:parameter type=”String” name=”NewID” direction=”Output”

bu son parametreyide eklemeyi unutma ama table da değişiklik yapıp insert dersen ve sql i değiştirmediysen anlamsız exception veriyor. table değişirse sqlini değiştirmeyi unuma.

IIS behind apache

bunu aradım aradım adam gibi yazı bulamadım en sonunda apache nin dökümanları satır satır okunur denenir denenir ve sonuç

<location /sonfirsat>
ProxyPass http://127.0.0.1:8888/lubmanager
ProxyPassReverse http://127.0.0.1:8888/lubmanager
</location>

şimdi bunu httpd.conf a ekleyin ve görün o serverdan serverip/sonfirsat dediğinizde IIS ki benimki 8888 de çalışıodu oraya proxy yapan bi apache aynı makinede tomcat de var o sebeplen apache onada mod_rewrite ilen url directive yapmakdadır. jk connector kullanmakdadır işde aynı makinede asp.net jsp böyle yapılır 🙂