Aracılığıyla paylaş


Saklı Yordamların Hatalarını Ayıklama (VB)

tarafından Scott Mitchell

PDF'i indirin

Visual Studio Professional ve Team System sürümleri kesme noktaları ayarlamanıza ve SQL Server içindeki saklı yordamlara adım atarak saklı yordamlarda hata ayıklamayı uygulama kodunda hata ayıklama kadar kolay hale getirmenize olanak sağlar. Bu öğreticide, saklı yordamların doğrudan veritabanı hata ayıklaması ve uygulama hata ayıklaması gösterilmektedir.

Giriş

Visual Studio zengin bir hata ayıklama deneyimi sağlar. Farenin birkaç tuş vuruşu veya tıklamasıyla, bir programın yürütülmesini durdurmak ve durumunu ve denetim akışını incelemek için kesme noktalarını kullanmak mümkündür. Visual Studio, uygulama kodunda hata ayıklamanın yanı sıra SQL Server'ın içinden saklı yordamlarda hata ayıklama desteği sunar. Kesme noktalarının ASP.NET arka planda kod sınıfı veya İş Mantığı Katmanı sınıfının kodu içinde ayarlanabildiği gibi, bunlar da saklı yordamlara yerleştirilebilir.

Bu öğreticide, Visual Studio içindeki Sunucu Gezgini'nden saklı yordamlara adım atmayı ve saklı yordam çalışan ASP.NET uygulamasından çağrıldığında isabet alan kesme noktalarını ayarlamayı inceleyeceğiz.

Uyarı

Ne yazık ki, saklı yordamlara yalnızca Visual Studio'nun Professional ve Team System sürümleri aracılığıyla adım adım girilebilir ve hata ayıklanabilir. Visual Web Developer'ı veya Visual Studio'nun standart sürümünü kullanıyorsanız, saklı yordamlarda hata ayıklamak için gerekli adımları incelediğimizde okumaya devam edebilirsiniz, ancak bu adımları makinenizde çoğaltamazsınız.

SQL Server Hata Ayıklama Kavramları

Microsoft SQL Server 2005, tüm .NET derlemeleri tarafından kullanılan çalışma zamanı olan Common Language Runtime (CLR) ile tümleştirme sağlamak üzere tasarlanmıştır. Sonuç olarak, SQL Server 2005 yönetilen veritabanı nesnelerini destekler. Başka bir ifadeyle, Visual Basic sınıfında yöntemler olarak saklı yordamlar ve User-Defined İşlevleri (UDF) gibi veritabanı nesneleri oluşturabilirsiniz. Bu, bu saklı yordamların ve UDF'lerin .NET Framework'te ve kendi özel sınıflarınızdan işlevselliği kullanmasına olanak tanır. Elbette SQL Server 2005, T-SQL veritabanı nesneleri için de destek sağlar.

SQL Server 2005, hem T-SQL hem de yönetilen veritabanı nesneleri için hata ayıklama desteği sunar. Ancak bu nesneler yalnızca Visual Studio 2005 Professional ve Team Systems sürümleri aracılığıyla hata ayıklanabilir. Bu öğreticide T-SQL veritabanı nesnelerinde hata ayıklamayı inceleyeceğiz. Sonraki öğretici, yönetilen veritabanı nesnelerinde hata ayıklama işlemini ele alıyor.

SQL Server 2005 CLR Entegrasyon Ekibinden SQL Server 2005'te T-SQL ve CLR Hata Ayıklamaya Genel Bakış blog girdisi, Visual Studio'dan SQL Server 2005 nesnelerinde hata ayıklama yöntemlerinden üçünü vurgular:

  • Doğrudan Veritabanı Hata Ayıklama (DDD) - Sunucu Gezgini'nden saklı yordamlar ve UDF'ler gibi herhangi bir T-SQL veritabanı nesnesine adım atabiliriz. 1. Adımda DDD'i inceleyeceğiz.
  • Uygulama Hata Ayıklama - Veritabanı nesnesi içinde kesme noktaları ayarlayabilir ve ardından ASP.NET uygulamamızı çalıştırabiliriz. Veritabanı nesnesi yürütüldüğünde, kesme noktasına gelinir ve denetim hata ayıklayıcıya devredilir. Uygulama hata ayıklama ile uygulama kodundan bir veritabanı nesnesine adım atamayacağımızı unutmayın. Hata ayıklayıcıyı durdurmak istediğimiz saklı yordamlarda veya UDF'lerde kesme noktalarını açıkça belirlemeliyiz. Uygulama hata ayıklaması 2. Adım'dan başlayarak incelendi.
  • SQL Server Projesinden hata ayıklama - Visual Studio Professional ve Team Systems sürümleri, yönetilen veritabanı nesneleri oluşturmak için yaygın olarak kullanılan bir SQL Server Project türü içerir. Sonraki öğreticide SQL Server Projelerini kullanmayı ve içeriklerinde hata ayıklamayı inceleyeceğiz.

Visual Studio, yerel ve uzak SQL Server örneklerinde saklı yordamların hatalarını ayıklayabilir. Yerel SQL Server örneği, Visual Studio ile aynı makineye yüklenen örnektir. Kullandığınız SQL Server veritabanı geliştirme makinenizde yoksa, uzak örnek olarak kabul edilir. Bu öğreticiler için yerel SQL Server örneklerini kullanıyoruz. Uzak SQL sunucusu örneğinde saklı yordamlarda hata ayıklamak, yerel örnekteki saklı yordamlarda hata ayıklamaya kıyasla daha fazla yapılandırma adımı gerektirir.

Yerel bir SQL Server örneği kullanıyorsanız, 1. Adım ile başlayabilir ve bu öğreticiyi sonuna kadar çalışabilirsiniz. Öte yandan uzak bir SQL Server örneği kullanıyorsanız, ilk olarak hata ayıklarken uzak örnekte SQL Server oturum açma bilgisi olan bir Windows kullanıcı hesabıyla geliştirme makinenizde oturum açtığınızdan emin olmanız gerekir. Ayrıca, hem bu veritabanı oturum açma bilgileri hem de çalışan ASP.NET uygulamasından veritabanına bağlanmak için kullanılan veritabanı oturum açma bilgileri rolün sysadmin üyesi olmalıdır. Uzak örnekte hata ayıklamak için Visual Studio ve SQL Server'ı yapılandırma hakkında daha fazla bilgi için bu öğreticinin sonundaki Uzak Örneklerde T-SQL Veritabanı Nesnelerinde Hata Ayıklama bölümüne bakın.

Son olarak, T-SQL veritabanı nesneleri için hata ayıklama desteğinin .NET uygulamaları için hata ayıklama desteği kadar zengin bir özellik olmadığını anlayın. Örneğin, kesme noktası koşulları ve filtreleri desteklenmez, hata ayıklama pencerelerinin yalnızca bir alt kümesi kullanılabilir, Düzenle ve Devam Et'i kullanamazsınız, Anında penceresi kullanılamaz hale gelir ve bu şekilde devam eder. Daha fazla bilgi için bkz. Hata Ayıklayıcı Komutları ve Özellikleriyle İlgili Sınırlamalar .

1. Adım: Saklı Yordamaya Doğrudan Giriş

Visual Studio, veritabanı nesnesinde doğrudan hata ayıklamayı kolaylaştırır. Northwind veritabanındaki Products_SelectByCategoryID saklı yordamına adım adım ilerlemek için Doğrudan Veritabanı Hata Ayıklama (DDD) özelliğini nasıl kullanacağımıza bakalım. Adından da anlaşılacağı gibi, Products_SelectByCategoryID belirli bir kategoriye ait ürün bilgilerini döndürür; Typed DataSet'in TableAdapters öğreticisi için Mevcut Saklı Yordamları Kullanma öğreticisinde oluşturulmuştur. Sunucu Gezgini'ne giderek başlayın ve Northwind veritabanı düğümünü genişletin. Ardından Saklı Yordamlar klasörünün içine dalın, Products_SelectByCategoryID saklı yordamına sağ tıklayın ve bağlam menüsünden Saklı Yordama Adımla seçeneğini belirleyin. Bu işlem hata ayıklayıcıyı başlatır.

Products_SelectByCategoryID Saklı yordam bir @CategoryID giriş parametresi beklediğinden bu değeri sağlamamız istenir. 1 girildiğinde, içecekler hakkındaki bilgileri döndürecek.

@CategoryID Parametresi için Değer 1'i kullanın

Şekil 1: Parametre için Değer 1'i @CategoryID kullanma

@CategoryID parametresi için değer sağlandıktan sonra saklı yordam yürütülür. Ancak hata ayıklayıcısı, tamamlanmaya çalışmak yerine ilk deyimde yürütmeyi durdurur. Kenar boşluğunda, saklı işlemdeki geçerli yeri gösteren sarı oka dikkat edin. Parametre değerlerini İzleme penceresinden veya saklı yordamdaki parametre adının üzerine gelerek görüntüleyebilir ve düzenleyebilirsiniz.

Saklı Yordamın İlk Deyiminde Hata Ayıklayıcı Durduruldu

Şekil 2: Hata Ayıklayıcı, Saklı Yordamın İlk Deyiminde Durduruldu (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Saklı yordamda her seferinde bir beyana adım adım ilerleyebilmek için Araç Çubuğu'ndaki Geçiş Yap düğmesine tıklayın veya F10 tuşuna basın. Saklı Products_SelectByCategoryID yordam tek bir ifade içerir, bu nedenle F10'a basmak, tek ifadeyi adım adım geçer ve saklı yordamın yürütülmesinin tamamlanmasına neden olur. Saklı yordam tamamlandıktan sonra çıktısı Çıktı penceresinde görüntülenir ve hata ayıklayıcı sonlandırılır.

Uyarı

T-SQL hata ayıklama, deyim düzeyinde gerçekleşir; SELECT deyimine giremezsiniz.

2. Adım: Web Sitesini Uygulama Hata Ayıklama için Yapılandırma

Bir saklı yordamın hatasını doğrudan Sunucu Gezgini'nden ayıklamak kullanışlı olsa da, çoğu senaryoda saklı yordam ASP.NET uygulamamızdan çağrıldığında hata ayıklamayla daha çok ilgileniyoruz. Visual Studio'dan bir saklı yordama kesme noktaları ekleyebilir ve ardından ASP.NET uygulamasında hata ayıklamaya başlayabiliriz. Uygulamadan kesme noktaları içeren bir saklı yordam çağrıldığında yürütme kesme noktasında durur ve 1. Adımda yaptığımız gibi saklı yordamın parametre değerlerini görüntüleyebilir ve değiştirebilir ve deyimlerinde adım adım ilerleyebiliriz.

Uygulamadan çağrılan saklı yordamlarda hata ayıklamaya başlayabilmeniz için önce ASP.NET web uygulamasına SQL Server hata ayıklayıcısıyla tümleştirmesi talimatını vermemiz gerekir. Çözüm Gezgini'nde (ASPNET_Data_Tutorial_74_VB ) web sitesi adına sağ tıklayarak başlayın. Bağlam menüsünden Özellik Sayfaları seçeneğini belirleyin, soldaki Başlangıç Seçenekleri öğesini seçin ve Hata Ayıklayıcılar bölümündeki SQL Server onay kutusunu işaretleyin (bkz. Şekil 3).

Uygulamanın Özellik Sayfalarında SQL Server Onay Kutusunu işaretleyin

Şekil 3: Uygulamanın Özellik Sayfalarında SQL Server Onay Kutusunu işaretleyin (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Ayrıca, bağlantı havuzunun devre dışı bırakılması için uygulama tarafından kullanılan veritabanı bağlantı dizesini güncelleştirmemiz gerekir. Bir veritabanına bağlantı kapatıldığında, ilgili SqlConnection nesne kullanılabilir bağlantılardan oluşan bir havuza yerleştirilir. Bir veritabanına bağlantı kurulduğunda, yeni bir bağlantı oluşturmak ve kurmak yerine bu havuzdan mevcut bir bağlantı nesnesi alınabilir. Bu bağlantı nesneleri havuzu bir performans geliştirmesidir ve varsayılan olarak etkindir. Ancak, hata ayıklama yaparken, hata ayıklama altyapısı havuzdan alınan bir bağlantıyla çalışırken doğru şekilde yeniden kurulmadığı için bağlantı havuzunu devre dışı bırakmak istiyoruz.

Bağlantı havuzunu devre dışı bırakmak için, NORTHWNDConnectionString içindeki Web.config güncelleyin ve Pooling=false ayarını ekleyin.

<connectionStrings>
    <add name="NORTHWNDConnectionString" connectionString=
        "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;
            Integrated Security=True;User Instance=True;Pooling=false"
        providerName="System.Data.SqlClient" />
</connectionStrings>

Uyarı

ASP.NET uygulaması aracılığıyla SQL Server'da hata ayıklamayı tamamladıktan sonra, bağlantı dizesinden ayarı kaldırarak Pooling (veya olarak ayarlayarak Pooling=true ) bağlantı havuzunu yeniden devreye aldığınızdan emin olun.

Bu noktada ASP.NET uygulaması, Web uygulaması aracılığıyla çağrıldığında Visual Studio'nun SQL Server veritabanı nesnelerinde hata ayıklamasına izin verecek şekilde yapılandırılmıştır. Şimdi geriye kalan tek şey saklı yordama kesme noktası eklemek ve hata ayıklamaya başlamaktır!

3. Adım: Kesme Noktası Ekleme ve Hata Ayıklama

Products_SelectByCategoryID Saklı yordamı açın ve uygun yerdeki kenar boşluğuna tıklayarak veya imlecinizi deyimin SELECT başına getirip F9 tuşuna basarak deyimin SELECT başında bir kesme noktası ayarlayın. Şekil 4'te gösterildiği gibi kesme noktası kenar boşluğunda kırmızı bir daire olarak görünür.

Products_SelectByCategoryID Saklı Yordamında Kesme Noktası Ayarlama

Şekil 4: Saklı Yordamda Products_SelectByCategoryID Kesme Noktası Ayarlama (Tam boyutlu görüntüyü görüntülemek için tıklayın)

SQL veritabanı nesnesinin bir istemci uygulaması aracılığıyla hata ayıklaması için, veritabanının uygulama hata ayıklamasını destekleyecek şekilde yapılandırılması zorunludur. Kesme noktasını ilk kez ayarladığınızda, bu ayar otomatik olarak açılmalıdır, ancak iki kez kontrol etmek akıllıca olur. Sunucu Gezgini'nde düğüme NORTHWND.MDF sağ tıklayın. Bağlam menüsü, Uygulama Hata Ayıklama adlı işaretli bir menü öğesi içermelidir.

Uygulama Hata Ayıklama Seçeneğinin Etkinleştirildiğinden emin olun

Şekil 5: Uygulama Hata Ayıklama Seçeneğinin Etkinleştirildiğinden Emin Olun

Kesme noktasının ayarlanması ve uygulama için hata ayıklamanın etkinleştirilmesiyle, ASP.NET uygulamasından çağrı yapıldığında saklı yordamın hatalarını ayıklamaya hazırız. Hata Ayıkla menüsüne gidip Hata Ayıklamayı Başlat'ı seçerek, F5'e basarak veya Araç Çubuğu'ndaki yeşil yürütme simgesine tıklayarak hata ayıklayıcıyı başlatın. Bu işlem hata ayıklayıcıyı başlatır ve web sitesini başlatır.

Saklı yordam, Products_SelectByCategoryIDTyped DataSet s TableAdapters öğreticisi için Mevcut Saklı Yordamları Kullanma öğreticisinde oluşturulmuştur. Buna karşılık gelen web sayfası (~/AdvancedDAL/ExistingSprocs.aspx), bu saklı yordam tarafından döndürülen sonuçları görüntüleyen bir GridView içerir. Bu sayfayı tarayıcı üzerinden ziyaret edin. Sayfaya ulaşılırken saklı yordamdaki Products_SelectByCategoryID kesme noktasına ulaşılır ve denetim Visual Studio'ya döndürülür. 1. Adımda olduğu gibi saklı yordam deyimlerinde adım adım ilerleyebilir ve parametre değerlerini görüntüleyebilir ve değiştirebilirsiniz.

ExistingSprocs.aspx Sayfası Başlangıçta İçecekleri Görüntüler

Şekil 6: Sayfa Başlangıçta ExistingSprocs.aspx İçecekleri Görüntüler (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Saklı Yordam Kesme Noktasına Ulaşıldı

Şekil 7: Saklı yordamın Kesme Noktasına Ulaşıldı (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Şekil 7'deki gözcü penceresinde gösterildiği gibi parametrenin @CategoryID değeri 1'dir. Bunun nedeni ExistingSprocs.aspx , sayfanın başlangıçta 1 değerine sahip CategoryID içecekler kategorisindeki ürünleri görüntülemesidir. Açılan listeden farklı bir kategori seçin. Bunun yapılması geri gönderime neden olur ve Products_SelectByCategoryID saklı yordamın yeniden yürütülmesine yol açar. Kesme noktasına yine isabet edilir, ama bu sefer @CategoryID parametresinin değeri seçili açılan liste öğesinin CategoryID değerini yansıtır.

Drop-Down Listesinden Farklı Bir Kategori Seçin

Şekil 8: Drop-Down Listesinden Farklı Bir Kategori Seçin (Tam boyutlu görüntüyü görüntülemek için tıklayın)

<span class= @CategoryID Parametresi, Web Sayfasından Seçilen Kategoriyi Yansıtır" />

Şekil 9: @CategoryID Parametre, Web Sayfasından Seçilen Kategoriyi Yansıtır (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Uyarı

Products_SelectByCategoryID sayfasını ziyaret ettiğinizde ExistingSprocs.aspx saklı yordamındaki kesme noktasına ulaşılamıyorsa, ASP.NET uygulamasının Özellikler Sayfasındaki Hata Ayıklayıcılar bölümünde SQL Server onay kutusunun işaretli olduğundan, bağlantı havuzunun devre dışı bırakıldığından ve veritabanının Uygulama Hata Ayıklama seçeneğinin etkinleştirildiğinden emin olun. Sorun yaşamaya devam ediyorsanız Visual Studio'yu yeniden başlatın ve yeniden deneyin.

Uzak Örneklerde T-SQL Veritabanı Nesnelerinde Hata Ayıklama

SQL Server veritabanı örneği Visual Studio ile aynı makinede olduğunda Visual Studio aracılığıyla veritabanı nesnelerinde hata ayıklama oldukça basittir. Ancak, SQL Server ve Visual Studio farklı makinelerde bulunuyorsa, her şeyin düzgün çalışması için dikkatli bir yapılandırma gerekir. Karşılaştığımız iki temel görev vardır:

  • ADO.NET aracılığıyla veritabanına bağlanmak için kullanılan oturum açma bilgilerinin role ait sysadmin olduğundan emin olun.
  • Geliştirme makinesinde Visual Studio tarafından kullanılan Windows kullanıcı hesabının role ait sysadmin geçerli bir SQL Server oturum açma hesabı olduğundan emin olun.

İlk adım oldukça basittir. İlk olarak, ASP.NET uygulamasından veritabanına bağlanmak için kullanılan kullanıcı hesabını belirleyin ve ardından SQL Server Management Studio'dan bu oturum açma hesabını sysadmin role ekleyin.

İkinci görev, uygulamada hata ayıklamak için kullandığınız Windows kullanıcı hesabının uzak veritabanında geçerli bir oturum açma bilgisi olmasını gerektirir. Ancak, iş istasyonunuzda oturum açtığınız Windows hesabının SQL Server'da geçerli bir oturum açma işlemi olmaması olasılığı vardır. Belirli oturum açma hesabınızı SQL Server'a eklemek yerine, bazı Windows kullanıcı hesabını SQL Server hata ayıklama hesabı olarak belirlemek daha iyi bir seçenektir. Ardından, uzak bir SQL Server örneğinin veritabanı nesnelerinde hata ayıklamak için Bu Windows oturum açma hesabının kimlik bilgilerini kullanarak Visual Studio'yu çalıştırırsınız.

Bir örnek, olayları netleştirmeye yardımcı olmalıdır. Windows etki alanında SQLDebug adlı bir Windows hesabı olduğunu hayal edin. Bu hesabın, uzak SQL Server örneğine geçerli bir giriş kimliği ve sysadmin rolünün üyesi olarak eklenmesi gerekir. Ardından, Visual Studio'dan uzak SQL Server örneğinde hata ayıklamak için kullanıcı olarak Visual Studio'yu SQLDebug çalıştırmamız gerekir. Bu işlem, iş istasyonumuzun oturumunu kapatarak, olarak SQLDebugyeniden oturum açarak ve sonra Visual Studio'yu başlatarak yapılabilir, ancak daha basit bir yaklaşım kendi kimlik bilgilerimizi kullanarak iş istasyonumuzda oturum açmak ve ardından kullanıcı olarak runas.exe Visual Studio'yu başlatmak için kullanmaktırSQLDebug. runas.exe belirli bir uygulamanın farklı bir kullanıcı hesabı kisvesi altında yürütülmesine izin verir. Visual Studio'yu olarak SQLDebugbaşlatmak için komut satırına aşağıdaki deyimi girebilirsiniz:

runas.exe /user:SQLDebug "%PROGRAMFILES%\Microsoft Visual Studio 8\Common7\IDE\devenv.exe"

Bu işlem hakkında daha ayrıntılı bir açıklama için William R. Vaughn'unHitchhiker's Guide to Visual Studio ve SQL Server, Seventh Edition kitabına bakın.

Uyarı

Geliştirme makineniz Windows XP Service Pack 2 çalıştırıyorsa, uzaktan hata ayıklamaya izin vermek için İnternet Bağlantısı Güvenlik Duvarı'nı yapılandırmanız gerekir. Nasıl Yapılır: SQL Server 2005 Hata Ayıklamayı Etkinleştirme makalesi, bunun iki adım içerdiğini belirtir: (a) Visual Studio konak makinesinde Özel Durumlar listesine eklemeli Devenv.exe ve TCP 135 bağlantı noktasını açmanız gerekir; (b) Uzak (SQL) makinede TCP 135 bağlantı noktasını açmanız ve Özel Durumlar listesine eklemeniz sqlservr.exe gerekir. Etki alanı ilkeniz IPSec üzerinden ağ iletişiminin yapılmasını gerektiriyorsa UDP 4500 ve UDP 500 bağlantı noktalarını açmanız gerekir.

Özet

Visual Studio, .NET uygulama kodu için hata ayıklama desteği sağlamanın yanı sıra SQL Server 2005 için çeşitli hata ayıklama seçenekleri de sağlar. Bu öğreticide bu seçeneklerden ikisini inceledik: Doğrudan Veritabanı Hata Ayıklama ve uygulama hata ayıklama. T-SQL veritabanı nesnesinde doğrudan hata ayıklamak için, Sunucu Gezgini aracılığıyla nesneyi bulun ve sağ tıklayın ve İçine Adımla'yı seçin. Bu, hata ayıklayıcıyı başlatır ve veritabanı nesnesinin ilk deyiminde durur; bu noktada nesnenin deyimlerinde adım adım ilerleyebilir ve parametre değerlerini görüntüleyebilir ve değiştirebilirsiniz. Birinci Adımda, saklı yordamın içine girmek için Products_SelectByCategoryID bu yaklaşımı kullandık.

Uygulama hata ayıklama, kesme noktalarının doğrudan veritabanı nesneleri içinde ayarlanmasına olanak tanır. Kesme noktalarına sahip bir veritabanı nesnesi bir istemci uygulamasından (ASP.NET web uygulaması gibi) çağrıldığında, hata ayıklayıcı devraldıkça program durur. Uygulama hata ayıklama, belirli bir veritabanı nesnesinin çağrılmaya neden olduğu uygulama eylemini daha net bir şekilde gösterdiği için yararlıdır. Ancak, Doğrudan Veritabanı Hata Ayıklama'dan biraz daha fazla yapılandırma ve kurulum gerektirir.

Veritabanı nesnelerinin hata ayıklaması SQL Server Projeleri aracılığıyla da yapılabilir. Sonraki öğreticide SQL Server Projelerini kullanmayı ve yönetilen veritabanı nesnelerini oluşturmak ve hatalarını ayıklamak için bunların nasıl kullanılacağını inceleyeceğiz.

Mutlu Programlama!

Yazar Hakkında

Yedi ASP/ASP.NET kitabının yazarı ve 4GuysFromRolla.com kurucusu Scott Mitchell, 1998'den beri Microsoft Web teknolojileriyle çalışmaktadır. Scott bağımsız bir danışman, eğitmen ve yazar olarak çalışır. Son kitabı Sams Teach Yourself ASP.NET 24 Hours 2.0'dır. Ona adresinden mitchell@4GuysFromRolla.comulaşabilirsiniz.