C#, .NET, .Net Core
ASP.NET MVC, ASP.NET Web Forms, ASP.NET Core
HTML 5, CSS 3, Javascript, jQuery, Bootstrap
Entity Framework, NHibernate, Dapper
Sql Server, MySql, Oracle
Windows Server, Ubuntu, Debian, Pardus
Xamarin Forms, Android Studio
--- The future of the open web platform is looking very bright!
--- .NET is a free, cross-platform, open source developer platform for building any app.
Google Analytics İzleme
17 Eylül 2010
Coolite ile server-side tarafından alert görüntülemeyi sağlanma
Coolite.Ext.Web.MessageBox.Instance.Alert("Mesaj başlığı", "Mesaj içeriği").Show();
Oracle'da bulunan job veya schedule job'ların detaylı bilgilerine bakma
select owner, -- jobın kullanıcısı ( OTMNDEV, CORP vs. )
job_name, -- jobın adı ( JOB_SENDMAILFROMQUEUE, GUNLUK_PERFORMANS vs. )
job_action, -- jobın PL/SQL içeriği
log_date, -- jobın çalışma zamanı
status -- jobın çalışma durumu
from sys.vw_job_details
16 Eylül 2010
Oracle veritabanında Toad programında sql script ile schedule job çalıştırma
-- ORACLE VER. 10.1'DE GELEN KOMUT, ONDAN ONCE dbms_job.run KOMUTU KULLANILIYORMUŞ
EXEC DBMS_SCHEDULER.RUN_JOB('CORP.JOB_LOGINIDTRANSFER_TO_OTMN')
Kaynak:
http://psoug.org/reference/dbms_scheduler.html
http://psoug.org/reference/dbms_job.html
ext veya Coolite GridPanel'in PagingToolbar'da bulunan yenile butonunu gizleme
Toolbar render olurken this.loading.hideParent = true; this.loading.hide(); javascripti ile gizlemeyi sağlamış oluruz.
Örnek kullanım:
<ext:GridPanel ID="GridPanelAux9" runat="server"
Title="Aux9 Sürelerim"
StoreID="StoreForAux9RelationCause"
StripeRows="true"
AutoExpandColumn="clmnInformation"
>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
....
....
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
</SelectionModel>
<LoadMask ShowMask="true" />
<View>
<ext:GridView AutoFill="true" DeferEmptyText="false" EmptyText="Kayıt yok."></ext:GridView>
</View>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBar1" runat="server" PageSize="10" StoreID="StoreForAux9RelationCause" >
<Listeners>
<Render Handler=" this.loading.hideParent = true; this.loading.hide();" />
</Listeners>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
Kaynak:
http://www.coolite.com/forums/Topic14956-4-1.aspx#bm16812
http://www.sencha.com/forum/showthread.php?28755-Disable-the-refresh-button-in-PagingToolbar&p=330511
http://dev.sencha.com/deploy/dev/docs/?class=Ext.PagingToolbar
15 Eylül 2010
CA Service Desk uygulaması için örnek sql server sorguları
-- cagri master tablosu (son halini gosterir)
select * from call_req where ref_num = 'R1958636'
-- rootcause bilgileri
select * from rootcause
-- cagri statu lookup
select * from cr_stat
-- user tablosu
SELECT * FROM CA_CONTACT (NOLOCK) where DEPARTMENT = 400002
and contact_uuid = 0x4B9F048CB4CB8A4AAE88F1A5AC2BCA5B -- call_req tablosundaki customer alani
-- cagrinin steplerini gosterir
select * from soft_actlog where call_req_id = 'cr:2346488'
SELECT
COUNT(*)
FROM
CALL_REQ
-- 1,556,229
-- calisanlarin actigi cagrilarin bilgileri
SELECT
CA.REF_NUM,
CA.SUMMARY,
CA.DESCRIPTION,
CA.ROOTCAUSE,
RC.SYM AS ROOTCAUSESYM,
CA.STATUS,
ST.SYM AS STATUSSYM,
ST.DESCRIPTION AS STATUSDESCRIPTION,
CA.OPEN_DATE,
DATEADD(ss,CA.OPEN_DATE+3600,'1970-01-01 02:00:00') AS CALLOPENDATE,
CO.FIRST_NAME,
CO.LAST_NAME,
CO.EMAIL_ADDRESS,
CO.ALTERNATE_IDENTIFIER AS EMPLOYEENUMBER,
CO.USERID AS NTUSER
--CA.*,
--CO.*
FROM
CALL_REQ CA,
CA_CONTACT CO,
CR_STAT ST,
ROOTCAUSE RC
WHERE
CA.CUSTOMER = CO.CONTACT_UUID
AND CA.STATUS = ST.CODE
AND (CA.ROOTCAUSE = RC.ID)
AND CO.DEPARTMENT = 400002
AND CO.ALTERNATE_IDENTIFIER = '90016439'
AND CA.STATUS <> 'IPTAL'
ORDER BY
CA.OPEN_DATE DESC
SELECT
CA.REF_NUM,
CA.SUMMARY,
CA.DESCRIPTION,
CA.ROOTCAUSE,
RC.SYM AS ROOTCAUSESYM,
CA.STATUS,
ST.SYM AS STATUSSYM,
ST.DESCRIPTION AS STATUSDESCRIPTION,
CA.OPEN_DATE,
DATEADD(ss,CA.OPEN_DATE+3600,'1970-01-01 02:00:00') AS CALLOPENDATE,
CA.CLOSE_DATE,
DATEADD(ss,CA.CLOSE_DATE+3600,'1970-01-01 02:00:00') AS CALLCLOSEDATE,
CO.FIRST_NAME,
CO.LAST_NAME,
CO.EMAIL_ADDRESS,
CO.ALTERNATE_IDENTIFIER AS EMPLOYEENUMBER,
CO.USERID AS NTUSER
--CA.*,
--CO.*
FROM
CALL_REQ CA LEFT JOIN CA_CONTACT CO ON CA.CUSTOMER = CO.CONTACT_UUID
LEFT JOIN CR_STAT ST ON CA.STATUS = ST.CODE
LEFT JOIN ROOTCAUSE RC ON CA.ROOTCAUSE = RC.ID
WHERE
CO.DEPARTMENT = 400002
AND CO.ALTERNATE_IDENTIFIER = '90013829'
AND CA.STATUS <> 'IPTAL'
ORDER BY
CA.OPEN_DATE DESC
SELECT
CA.REF_NUM,
CA.SUMMARY,
CA.DESCRIPTION,
CA.ROOTCAUSE,
RC.SYM AS ROOTCAUSESYM,
CA.STATUS,
ST.SYM AS STATUSSYM,
ST.DESCRIPTION AS STATUSDESCRIPTION,
CA.OPEN_DATE,
DATEADD(ss,CA.OPEN_DATE+3600,'1970-01-01 02:00:00') AS CALLOPENDATE,
CA.CLOSE_DATE,
DATEADD(ss,CA.CLOSE_DATE+3600,'1970-01-01 02:00:00') AS CALLCLOSEDATE,
CO.FIRST_NAME,
CO.LAST_NAME,
CO.EMAIL_ADDRESS,
CO.ALTERNATE_IDENTIFIER AS EMPLOYEENUMBER,
CO.USERID AS NTUSER
--CA.*,
--CO.*
FROM
CALL_REQ CA LEFT JOIN CA_CONTACT CO ON CA.CUSTOMER = CO.CONTACT_UUID
LEFT JOIN CR_STAT ST ON CA.STATUS = ST.CODE
LEFT JOIN ROOTCAUSE RC ON CA.ROOTCAUSE = RC.ID
WHERE
CO.DEPARTMENT = 400002
AND CO.ALTERNATE_IDENTIFIER = ~USERCODE
AND CA.STATUS <> 'IPTAL'
AND DATEADD(ss,CA.OPEN_DATE+3600,'1970-01-01 02:00:00') BETWEEN ~STARTDATE AND ~ENDDATE
ORDER BY
CA.OPEN_DATE DESC
14 Eylül 2010
ExtJs ve Bütün xType lar
xtype Class ------------- ------------------ box Ext.BoxComponent button Ext.Button colorpalette Ext.ColorPalette component Ext.Component container Ext.Container cycle Ext.CycleButton dataview Ext.DataView datepicker Ext.DatePicker editor Ext.Editor editorgrid Ext.grid.EditorGridPanel grid Ext.grid.GridPanel Ext.PagingToolbar panel Ext.Panel progress Ext.ProgressBar propertygrid Ext.grid.PropertyGrid slider Ext.Slider splitbutton Ext.SplitButton statusbar Ext.StatusBar tabpanel Ext.TabPanel treepanel Ext.tree.TreePanel viewport Ext.Viewport window Ext.Window Toolbar components --------------------------------------- toolbar Ext.Toolbar tbbutton Ext.Toolbar.Button tbfill Ext.Toolbar.Fill tbitem Ext.Toolbar.Item tbseparator Ext.Toolbar.Separator tbspacer Ext.Toolbar.Spacer tbsplit Ext.Toolbar.SplitButton tbtext Ext.Toolbar.TextItem Form components --------------------------------------- form Ext.FormPanel checkbox Ext.form.Checkbox combo Ext.form.ComboBox datefield Ext.form.DateField field Ext.form.Field fieldset Ext.form.FieldSet hidden Ext.form.Hidden htmleditor Ext.form.HtmlEditor label Ext.form.Label numberfield Ext.form.NumberField radio Ext.form.Radio textarea Ext.form.TextArea textfield Ext.form.TextField timefield Ext.form.TimeField trigger Ext.form.TriggerField Kaynak:http://www.onurozgurozkan.com/extjs-ve-butun-xtype-lar/#content
13 Eylül 2010
ASP.NET Page Life Cycle (ASP.NET Sayfa Olayları Çalışma Sırası)
Master Page , Web Content Form ve User Kontroller içeren bir sayfanız var ise tam olarak çalışma sırası aşağıdaki şekilde gerçekleşir.
1. Page.OnPreInit
2. MasterPageControl.OnInit (master page deki her kontrol icin – for each control on the master page)
3. Control.OnInit (sayfa daki her kontrol icin – for each contol on the page)
4. MasterPage.OnInit
5. Page.OnInit
6. Page.OnInitComplete
7. Page.LoadPageStateFromPersistenceMedium
8. Page.LoadViewState
9. MasterPage.LoadViewState
10. Page.OnPreLoad
11. Page.OnLoad
12. MasterPage.OnLoad
13. MasterPageControl.OnLoad (master page deki her kontrol icin – for each control on the master page)
14. Control.OnLoad (sayfa daki her kontrol icin – for each control on the page)
15. OnXXX (control event)
16. MasterPage.OnBubbleEvent
17. Page.OnBubbleEvent
18. Page.OnLoadComplete
19. Page.OnPreRender
20. MasterPage.OnPreRender
21. MasterPageControl.OnPreRender (master page deki her kontrol icin – for each control on the master page)
22. Control.OnPreRender (sayfa daki her kontrol icin – for each control on the page)
23. Page.OnPreRenderComplete
24. MasterPageControl.SaveControlState (master page deki her kontrol icin – for each control on the master page)
25. Control.SaveControlState (sayfa daki her kontrol icin – for each control on the page)
26. Page.SaveViewState
27. MasterPage.SaveViewState
28. Page.SavePageStateToPersistenceMedium
29. Page.OnSaveStateComplete
30. MasterPageControl.OnUnload (master page deki her kontrol icin – for each control on the master page)
31. Control.OnUnload (sayfa daki her kontrol icin – each control on the page)
32. MasterPage.OnUnload
33. Page.OnUnload
http://www.sdtslmn.com/kodmod/asp-net-page-life-cycle-asp-net-sayfa-olaylari-calisma-sirasi/
09 Eylül 2010
The connection name 'LocalSqlServer' was not found in the applications configuration hatası ve çözümü
Parser Error Message: The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is emptyIf you receive the following application error message from your web application:
Parser Error Message: The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.
The solution is to modify your application's web.config file and add the following line to the connection string element:
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=DBServerName;Integrated Security=false;Initial Catalog=DBName;User ID=DBLogin;Password=DBPassword" providerName="System.Data.SqlClient" /></connectionStrings> Kaynak:
https://support.winhost.com/KB/a813/parser-error-message-connection-name-localsqlserver.aspx
-------------------------------------------------
Resolution
The above error message indicates that connection string names LocalSqlServer is being used in the machine.config file. You have to override this setting to point to your connection string name which is used in the application’s web.config file.
This can be done by clearing, removing and adding connection string name in your web.config file as shown below.
<connectionStrings>
<clear />
<remove name=”LocalSqlServer ” />
<add name=”LocalSqlServer” connectionString=”Server=SQL_SERVER_HOST; User ID=YOUR_USER_NAME;password=YOUR_PASSWORD;Database=YOUR_DATABASE_NAME;Persist Security Info=False” providerName=”System.Data.SqlClient” />
<add name=”ASPNETDBConnectionString” connectionString=”Server=SQL_SERVER_HOST; User ID=YOUR_USER_NAME;password=YOUR_PASSWORD;Database=YOUR_DATABASE_NAME;Persist Security Info=False” providerName=”System.Data.SqlClient” />
</connectionStrings>Add the above code to your web.config file, update the variables mentioned in capital letters and upload to your web server. Your application should work fine now.
Kaynak:
07 Eylül 2010
.net ile sap bağlantı kurma esnasında alınan hata, NiCreateHandle: no free handle
Connect to SAP gateway failed Connect_PM GWHOST=
....
NiCreateHandle: no free handle
...
şeklinde hata alınmasının sebebi önceden açılan sap bağlantılarının çok fazla olması ve yeni açılalacak bağlantı imkanının olmamasıdır. Bunu engellemek için her açılan sap bağlanatısı açıldıktan sonra kapatılmalıdır.Yoksa hep timeout süresi kadar sürekli açık kalacaktır.
Çok sayıda connection açılıp kapatılmıyor.
Bu sebeple de aşağıda hata mesajında da olan (NiCreateHandle: no free handle) işletim sisteminde handle’ların tükenmesi sorunu ortaya çıkıyor.
Durum bu noktaya geldiğinde (işletim sisteminin vereceği handle kalmadığında) ancak sorunu windows restart giderebilir veya network bağlantısı açıp kapatılmalıdır veya connection timeout süresi kadar beklenmelidir.
Ama bu connection sorunu olduğu müddetçe sorun yinelenecektir.
06 Eylül 2010
Unable to load DLL (oramts.dll) hatası ve çözümü
Bu dosyayı yüklemek için, sisteminize oracle client yüklemesi yaparken Oracle Services for Microsoft Transaction Server seçeneği bizzat seçmelisiniz yoksa default varsayılan yüklemede bu dosya yüklenmemektedir.
Kaynak:
http://support.microsoft.com/?scid=kb%3Ben-us%3B843044&x=13&y=8
http://forums.oracle.com/forums/thread.jspa?threadID=302098&tstart=-2
http://www.sinanucar.com/IcerikDetay47/vs2008-ile-oracle-data-access-components-kurulumu-ve-kullanimi.aspx
Coolite, Ext Js Tarih Formatları
Ext.util.Format.dateRenderer('d.m.Y G:i:s') metodunu kullanırız.
Tarih formatlarının tanımlamaları bu linkte detaylıca anlatılmaktadır:
http://dev.sencha.com/deploy/dev/docs/?class=Date
05 Eylül 2010
SQL Server 2005 Management Studio yüklemesi veya kurulumu
03 Eylül 2010
ASPNET hesabını yanlışlıkla sildiyseniz veya yoksa bu hesabı yeniden oluşturma
veya
C:\WINDOWS\Microsoft.NET\Framework\vx.x.xxxx\aspnet_regiis -i
Çok dil destekli uygulama geliştirirken dikkat edilecekler
International Considerations for Databases and Database Engine Applications
http://msdn.microsoft.com/en-us/library/ms190245%28v=SQL.90%29.aspx
Writing International Transact-SQL Statements
http://msdn.microsoft.com/en-us/library/ms191307%28v=SQL.90%29.aspx
02 Eylül 2010
BT projeleri neden başarısız oluyor ?
Genellikle İş Süreçleri ve Bilgi Teknolojileri projeleri komplekstir. Yapılan araştırmalara göre BT projelerinin %60′tan fazlası başarısız olmakta veya zaman ve bütçe aşımı ile sonuçlanmaktadır. Dolayısıyla, BT yöneticilerinin bu başarı/başarısızlık ihtimallerini sürekli göz önünde bulundurarak hareket etmesinde yarar var. BT yöneticilerinin projelerin başarısızlıkla sonuçlanmasına yol açan en temel sebepleri bilmeleri ve başkalarının yaptıkları hatalardan ders alarak aynı hataları tekrar etmeyecek şekilde davranmaları başarı şanslarını önemli ölçüde arttıracaktır.
BT projelerinin başarısızlıkla sonuçlanmalarının nedenlerinden önemli bir kısmı şunlardır :
- İş ihtiyaçlarının net olarak tanımlanmaması ( Belirlenen ihtiyaçların eksik olması veya değişikliğe uğraması)
- Proje sponsorlarının proje hedeflerine göre yapılandırılmamış olması.
- Proje kapsamının tam olarak belirlenmemesi ve gerçekci olmayan beklentilere girilmesi.
- Proje planı yapılmaması.
- Kaynak yetersizliği (insan, teknoloji, para, zaman, vs.).
- Proje kısıtlarının yeterince bilinmemesi.
- Uygun olmayan metodoloji veya proje yaklaşımı uygulanması.
- Projede çok fazla insan çalışması (sinerji oluşmaması).
Alıntı: http://www.alpdogan.net/?p=72
Oracle (Connect By) soyağacı sorgulama
Çoğu zaman ilişkili tablolarımızda tablo sayısı bir kaç taneyi geçebiliyor ve genelde bunların sonuna ya da başına _ALT koyuyoruz (: ama soyun sınırsız olduğunu düşündüğümüzde bunu tek tabloda tutup ATA_ID ya da PARENT_ID gibi kendisinin atasıyla ilişkilendirmek daha mantıklı oluyor. bu gibi durumlarda Recursive işlemlere ihtiyac duyuyoruz . ama bunu recursive olarak dataya sormak yerine recursive işlemini dataya yapmak daha da mantıklıdır. bu işlemi yapan cümleciğimizin yapısı da CONNECT BY PRIOR – START WITH anahtar cumleciklerinden oluşuyor ilk once bir soyağacı tablosu örneği vermek istiyorum . ailem diye bir tablo oluşturalım
0 | CREATE TABLE ailem( |
ailenin her ferdini bu tabloda ilişkili olarka tutabiliriz baba_tc kendisinin babası olan kaydın tckimlik alanına eşit olacaktır.
şimdi kayıtlarımızı ekleyelim
0 | INSERT INTO ailem (tckimlik,adi) VALUES (1,'Ömer'); |
yandaki tablodan da gördüğümüz gibi baba_tc alanı ile kaydın babasını belirledik. bu iki sütun yardımı ile ağaç yapısnı oluşturabileceğimiz bir tablo yapımız oldu.
şimdi ornek sorguyu yazalım
0 | SELECT adi,tckimlik,baba_tc |
bu sorgu sonucunda bize tüm kayıtlar ve varsa alt alt kayıtları da dönecektir. örnek resim :
kayıtlar baba_tc ile geldi ama bu ne kadar işimize yarar (: her kayıt baba olarak ve her kaydın da varsa cocuğu geldi baba_tc ile zaten bu tabloda bir ilişki kurabiliyorduk bu bizim için bi anlam ifade etmedi conenct by sorgularında kullanabileceğimiz bir anahtar daha LEVEL bu da bize kaydın derinliğini ya da nesil katını verir diyelim.
örnek sorgu
0 | SELECT adi,tckimlik,baba_tc,LEVEL |
level bize derinlik verdi. resimdeki orneğe bakalım
leveli 1 olan ilk atalar 2- 3 diye arttıkça torun oluyor.
buna bir de leveli kullanarak anlaşılabilir bir görüntü verebiliriz. lpad fonksiyonunu kullanarak isimlerin başına “level” kadar ” – ” attıralım..
0 | SELECT LPAD('-',LEVEL,'-')|| adi sahis,tckimlik,baba_tc,LEVEL |
boylelikle kayıtlar daha anlaşılır oldu kim kimin atası net olarak görülebiliyor.
şimdi bu kayıtları üst kaydı göstererek tek satırda göstermeye çalışalım. bunun için de SYS_CNNECT_BY_PATH() fonksiyonunu kullanacağız.
örnek sorgu :
0 | SELECT tckimlik,adi, SYS_CONNECT_BY_PATH(adi, '->') AS konum |
tablo :
şimdi ise her kaydı dosya yolu gibi PATH ‘i ile beraber dededen ->toruna ikişkisiyle göstermeyi başardık (:
iyi çalışmalar…
Alıntı: http://www.tufyta.com/oracle-connect-by-soyagaci-sorgulama