Menü
Bedava
kayıt
ev  /  internet/ .NET'e genel bakış. Temel konseptler

.NET'e genel bakış. Temel konseptler

kadar. Framework, uygulama geliştirmek için güçlü bir platformdur, tamamen farklı türlerde uygulamalar geliştirmenize olanak tanır.

Masaüstü uygulamaları (üzerinde çalışan uygulamalar yerel bilgisayar kullanıcı);

· Web uygulamaları (bir web sunucusu içinde çalışan ve HTTP / HTTPS protokolü dahilinde bir tarayıcı aracılığıyla kullanıcıya sunulan uygulamalar);

· Zengin kullanıcı arayüzüne sahip web uygulamaları (kullanıcıya tarayıcı içerisinde HTTP/HTTPS protokolü üzerinden teslim edilen ve istemci tarafında yürütülen uygulamalar);

· Web servisleri (sunucu tarafında yürütülen ve herhangi bir veriyi almak veya bir işlem gerçekleştirmek için istemciden çağrılabilen program kodu);

· Mobil uygulamalar (mobil cihazlarda çalışan uygulamalar).

Aşağıdaki uygulama türlerinin her biri için, . Çerçeve, uygulamalar oluşturmanıza izin veren ilgili teknolojiler vardır. Dışında, . Çerçeve, farklı uygulama türlerinde kullanılabilen ortak kitaplıkları içerir. Bu kütüphaneler, kütüphaneleri içerir:

· Dizelerle çalışmak için;

· Matematiksel fonksiyonlarla çalışmak;

· Grafiklerle çalışmak için;

· Verilere erişim;

· Dosyalar ve diğer girdi-çıktı işlemleri ile çalışmak;

· Kriptografik işlemleri gerçekleştirmek;

· Veri kaynakları arasında veri senkronizasyonunu düzenlemek;

· Ve çok sayıda başka kütüphane.

Her bir uygulama türüne genel bir bakış atalım. Yukarıda belirtildiği gibi, platformdaki uygulama türlerinin her biri için. Çerçeve, özel proje şablonları vardır.

Masaüstü Uygulamaları doğrudan kullanıcının bilgisayarında çalışması bakımından farklılık gösterir. Bu en yaygın uygulama türüdür. Masaüstü uygulamaları genellikle erişim gibi kullanıcının bilgisayarının kaynaklarına HDD, ses ekipmanı vb. Bu tür bir uygulamanın avantajları şunları içerir: etkileşim kullanıcı arayüzü ve ağ bağlantısından bağımsız olarak uygulamayı çalıştırma yeteneği internet ve diğer kaynaklar. Ancak, bu tür uygulamaların çalışması için yerel ağda kurulmaları gerekir. bir bilgisayar.

Masaüstü uygulamaları üç türe ayrılabilir - pencere uygulamaları, konsol uygulamaları ve hizmetler pencereler... Pencereli uygulamalar var grafik arayüzü... Konsol uygulamaları genellikle bir komut satırı biçimini alır ve arayüz bu tür uygulamalar metin tabanlıdır ve grafiksel değildir. Son olarak, hizmetler pencereler hiç bir kullanıcı arayüzüne sahip değil, arka planda çalışıyor.

Platform içinde pencereli GUI uygulamaları oluşturmak için. Çerçeve teknolojileri kullanılabilir pencereler Formlar (ile başlayan mevcuttur. Çerçeve 1.0) ve Windows Sunum Temeli(dan temin edilebilir. Çerçeve 3.0). En son teknoloji daha yeni ve daha umut verici.


internet uygulamaları bir web sunucusunda uzaktan çalıştıkları için masaüstünden farklıdır. kullanıcı bir tarayıcı ve protokol aracılığıyla web uygulamalarının gücünden yararlanır HTTP/ HTTPS. Bu tür uygulamaların avantajı, bunları yüklemeye gerek olmamasıdır. bir bilgisayar her kullanıcı - başvuru web'e yüklenmesi gerekiyor sunucu, bundan sonra tüm kullanıcılar tarafından kullanılabilir hale gelir. Bununla birlikte, bu tür uygulamaların dezavantajı, kullanıcı arayüzleri oluşturma yeteneğinin sınırlı olmasıdır. Bunun nedeni şudur: Kullanıcı arayüzü biçimler temelinde inşa edilmiştir HTML, CSS ve oldukça sınırlı olan JavaScript. Bu nedenle, kullanıcı arayüzlerinin işlevselliği genellikle oldukça sınırlıdır.

Web uygulamalarının ciddi bir kusuru olduğundan - sınırlı yetenekler üzerinde kullanıcı arayüzünün oluşumu - adı verilen yeni bir uygulama türü ortaya çıktı. zengin internet uygulamaları veya Zengin İnternet Uygulamaları (RIA)... Bu uygulamaların ideolojisi, tarayıcıözel bir bütünleştirir ek(eklenti) ek görüntüleme yeteneğine sahip içerik türü... Bundan sonra, ne zaman kullanıcı sayfayı tarayıcıda açar, program kodu bu eklenti çerçevesinde çalışan istemci tarafına iletilir. Bu durumda tüm kodlar istemci tarafında işlendiğinden, geliştiricilerin daha fazla fırsatı vardır. üzerinde kullanıcı arayüzlerinin oluşumu.

Bu tür bir uygulamayı oluşturmak için çeşitli teknolojiler mevcuttur. En iyi bilinen teknolojilerden biri Adobe teknolojisidir. flaş... Ayrıca teknoloji de var Microsoft Silverlight, çerçevedeki teknolojilerin geri kalanıyla en uygun şekilde entegre olmanızı sağlar. Çerçeve.

Diğer bir uygulama türü ise Hizmetler(veya web servisleri). Servisler, sunucu üzerinde bulunan ve çalışan bir tür program kodudur. üzerinde kullanıcıdan istek. Örneğin, bir dizi hizmet oluşturabilirsiniz. üzerinde gelen verilerle çalışmak Veri tabanı sunucuda saklanır. Tipik olarak, diğer uygulama türleri (masaüstü uygulamaları, web uygulamaları vb.), sunucuda bir işlem gerçekleştirmek veya sunucudan veri almak için hizmetlere erişir.

Platformun içinde. Çerçeve, hizmetler oluşturmanıza izin veren bir dizi teknoloji vardır. Çoğu eski teknoloji bir ASP.NET Web Hizmetler. Çalışan basit web hizmetleri oluşturmanıza olanak tanır. üzerinde protokol HTTP/ HTTPS. Daha fazla gelişme teknoloji oldu Windows İletişim Vakfı(WCF). Bu platform, çeşitli kanal türlerini destekleyen en güçlü ve esnek araçtır ( HTTP, TCP, adlandırılmış kanallar vb.) ve geliştiricinin yeteneklerini önemli ölçüde genişletir üzerinde hizmetler oluşturmak.

WCF projesinin ek dalları da var - bu WCF sendikasyon Uzantılar (WCF REST) ​​​​ve ADO.NET Verileri Hizmetler. Bu projeler, veri erişim hizmetleri oluşturmayı kolaylaştırmak için tasarlanmıştır.

Son olarak, son uygulama türü mobil uygulamalar... Mobil uygulamalar, işletim sistemine bağlı olarak mobil cihazlar içinde çalışır. Windows Mobil... Mobil cihazlar için, yeteneklerin bir alt kümesinin bir uygulaması da vardır. Çerçeve denir. NET KompaktÇerçeve.

Böylece, platformdaki tüm teknolojiler yelpazesi. Çerçeve aşağıdaki diyagram ile temsil edilebilir.

Tanıtım

Bir PLATFORM, en azından bir program yürütme ortamıdır ve ... geliştirme ve yürütmenin özelliklerini belirleyen başka bir şeydir. program kodu- programlama paradigmaları, programlama dilleri, temel sınıf kümeleri.

Microsoft .NET (.NET Framework) bir yazılım platformudur. Şu ana bileşenleri içerir: ortak dil çalışma zamanı (CLR) ve .NET Framework sınıf kitaplığı (.NET FCL).

CLS (Ortak Dil Belirtimi), programlama dillerinin genel bir özelliğidir. .NET Framework'te kitaplık ve derleyici yazarlarına rehberlik eden bir dizi yapı ve kısıtlamadır. CLS'ye göre oluşturulmuş kitaplıklar, CLS'yi destekleyen herhangi bir programlama dilinden kullanılabilir. CLS uyumlu diller (bunlara Visual C#, Visual Basic, Visual C++) birbiriyle entegre olabilir. CLS, Microsoft .NET platformu içinde diller arası iletişimin temelidir.

CLR (Ortak Dil Çalışma Zamanı) - Çalışma Zamanı Ortamı veya Sanal Makine. Derlemenin yürütülmesini sağlar. .NET Framework'ün temel bileşeni. Altında Sanal makine Program kodunun yürütülmesini sağlayan ve aşağıdaki görevlerin çözülmesini içeren, kapsüllenmiş (bağımsız) yüksek düzeyde yönetilen bir işletim sisteminin soyutlamasını anlayın:

§ kod yönetimi (yükleme ve yürütme),

§ nesneleri yerleştirirken hafıza yönetimi,

§ izolasyon uygulama belleği,

§ Kodun güvenliğini kontrol etmek,

§ Ara ​​dilin makine koduna dönüştürülmesi,

§ meta verilere erişim (türler hakkında geniş bilgi),

§ diller arası istisnalar dahil istisna işleme,

§ yönetilen ve yönetilmeyen kod arasındaki etkileşim (COM nesneleri dahil),

§ geliştirme hizmetleri desteği (profil oluşturma, hata ayıklama vb.).

Kısacası, CLR, bir yapıyı gerçekleştirmek için gereken bir hizmetler topluluğudur. Bu durumda, derlemenin program kodu yönetilebilir (kod, yürütüldüğünde, özellikle CLR, bellek yönetim sistemini etkinleştirir) veya yönetilmeyen ("eski" program kodu).

CLR'nin kendisi iki ana bileşenden oluşur: çekirdek (mscoree.dll) ve temel sınıf kitaplığı (mscorlib.dll). Bu dosyaların diskte bulunması, en azından bilgisayarınıza .NET çerçevesini yüklemeye çalıştığınızın kesin bir işaretidir.

Çalışma zamanı çekirdeği, mscoree.dll kitaplığı olarak uygulanır. Bir derlemeyi bağlarken, içine özel bilgiler gömülür; bu, uygulama başlatıldığında (EXE) veya kitaplık yüklendiğinde (yönetilen bir modülden bir DLL dosyasını çağırmak - yönetilen bir derlemeyi yüklemek için LoadLibrary işlevini çağırmak), aşağıdakilere yol açar: CLR'yi yükleme ve başlatma. CLR işlem adres alanına yüklendikten sonra çalışma zamanı çekirdeği aşağıdakileri yapar:

Montaj yerini bulur,

§ derlemeyi belleğe yükler,

§ derlemenin içeriğini analiz eder (sınıfları, yapıları, arayüzleri tanımlar),

§ meta verileri analiz eder,

Orta Düzey Dil (IL) kodunun platforma özel yönergeler (montaj kodu) halinde derlenmesini sağlar,

§ Güvenlikle ilgili kontrolleri yapar,

§ Uygulamanın ana iş parçacığını kullanarak, kontrolü işlemci komutlarına dönüştürülen derleme kod parçasına aktarır.

FCL (.NET Framework Sınıf Kitaplığı), Microsoft .NET platformunda bulunan sınıflar, arabirimler ve tür sistemlerinden (değer türleri) oluşan CLS uyumlu, nesne yönelimli bir kitaplıktır.

Bu kitaplık, sistemin işlevselliğine erişim sağlar ve .NET uygulamalarının, bileşenlerinin, kontrollerinin geliştirilmesi için bir temel olarak tasarlanmıştır.

NET sınıf kitaplığı, ikinci CLR bileşenidir.

NET FCL, programlama dilinin geliştirilmesinde kullanılan mimari, amaç ne olursa olsun TÜM .NET uygulamaları tarafından kullanılabilir. Özellikle şunları içerir:

§ sınıflar olarak temsil edilen yerleşik (temel) türler (.NET platformunda her şey yapılar veya sınıflar üzerine kuruludur),

§ bir grafik kullanıcı arabiriminin geliştirilmesi için sınıflar (Windows Form),

§ ASP.NET teknolojisine (Web Formları) dayalı Web uygulamaları ve Web hizmetleri geliştirmeye yönelik sınıflar,

§ XML ve İnternet protokollerini geliştirmeye yönelik sınıflar (FTP, HTTP, SMTP, SOAP),

§ veritabanlarıyla çalışan uygulamalar geliştirmeye yönelik sınıflar (ADO.NET),

§ ve daha fazlası.

NET uygulaması, Microsoft .NET platformunda çalışmak üzere tasarlanmış bir uygulamadır. CLS'ye karşılık gelen programlama dillerinde uygulanmaktadır.

MSIL (Microsoft Intermediate Language, diğer adıyla IL - Intermedia Language), Microsoft.NET platformunun bir ara dilidir. .NET uygulamalarına yönelik programların kaynak kodları, CLS spesifikasyonuna uygun programlama dillerinde yazılmıştır. CLS spesifikasyonuna uygun programlama dilleri için MSIL'e bir dönüştürücü oluşturulabilir. Böylece bu dillerdeki programlar MSIL'de ara koda çevrilebilir. CLS'ye uyularak, farklı dillerde yazılan kodun çevrilmesi, uyumlu IL kodu ile sonuçlanır.

Aslında, MSIL bir sanal işlemci derleyicisidir.

METADATA - program kodunu MSIL'e dönüştürürken, programda kullanılan veriler hakkında bilgi içeren bir METADATA bloğu da oluşturulur. Aslında bunlar, modülde tanımlanan veri türleri hakkında, bu modülün atıfta bulunduğu veri türleri hakkında bilgi içeren tablo kümeleridir. Önceden, bu bilgiler ayrı olarak depolanıyordu. Örneğin, bir uygulama, Arayüz Tanımlama Dili'nde (IDL) açıklanan arayüz bilgilerini içerebilir. Meta veriler artık yönetilen modülün bir parçasıdır.

Özellikle, meta veriler aşağıdakiler için kullanılır:

§ türleri hakkında bilgi kaydetme. Derleme sırasında artık başlık ve kitaplık dosyaları gerekli değildir. Derleyici, gerekli tüm bilgileri doğrudan yönetilen modüllerden okur,

§ Modülün yürütülmesi sırasında kodun doğrulanması,

§ modül yürütme sırasında dinamik bellek yönetimi (bellek sürümü),

§ standart araçları kullanarak bir program geliştirirken (Microsoft Visual Studio.NET)

§ Meta verilere dayalı dinamik bilgi istemi (IntelliSense) sağlar.

MSIL'e çevirinin uygulandığı diller:

ve daha birçok başka dil.

Yürütülebilir modül - derleyiciden (ve giriş dilinden) bağımsız olarak, bir .NET uygulamasının çevirisi yönetilen bir yürütülebilir modüldür (yönetilen modül). Standart bir Windows Taşınabilir Yürütülebilir (PE) dosyasıdır.

Yönetilen modülün öğeleri tabloda sunulmaktadır.

Yönetilen bir modül, yönetilen kod içerir.

Yönetilen kod, CLR'de çalışan koddur. Kod, yöntem bildirimlerini içeren kaynak modülde bildirilen yapılar ve sınıflar temelinde oluşturulur. Yönetilen kod, çalışma zamanı için belirli bir düzeyde bilgiye (meta veri) sahip olmalıdır. C#, Visual Basic ve JScript kodu varsayılan olarak yönetilir. Visual C++ kodu varsayılan olarak yönetilmez, ancak derleyici komut satırında (/ clr) bir bağımsız değişken belirterek yönetilen kod oluşturabilir. Yönetilen kodun özelliklerinden biri, YÖNETİLEN VERİLER ile çalışmanıza izin veren mekanizmaların kullanılabilirliğidir.

Yönetilen veriler, bir modülün kodunun yürütülmesi sırasında yönetilen bellekte (yönetilen yığında) ayrılan ve CLR çöp toplayıcı tarafından yok edilen nesnelerdir. C #, Visual Basic ve JScript .NET verileri varsayılan olarak yönetilir. C# verileri de yönetilmeyen olarak işaretlenebilir.

Derleme, .NET Framework'teki bir uygulamanın temel yapı taşıdır. Yönetilen modüller, derlemeler halinde birleştirilir. Derleme, bir veya daha fazla yönetilen modül veya kaynak dosyasının mantıksal olarak gruplandırılmasıdır. Derlemelerdeki yönetilen modüller, Çalışma Zamanı Ortamında (CLR) çalışır. Derleme, yürütülebilir bir uygulama (bu durumda .EXE uzantılı bir dosyada bulunur) veya bir kitaplık modülü (.DLL uzantılı bir dosyada) olabilir. Aynı zamanda, derlemenin sıradan (eski tarz!) Yürütülebilir uygulamalar ve kitaplık modülleriyle hiçbir ilgisi yoktur.

Montaj beyanı (Manifest) - bileşen toplantı. Başka bir meta veri tablosu grubu:

§ derlemeyi bir metin adı, versiyonu, kültürü ve dijital imzası şeklinde tanımlar (eğer derleme uygulamalar arasında paylaşılıyorsa),

§ kompozisyona dahil edilen dosyaları belirler (ad ve hash ile),

§ Montajdan ihraç edilenlerin bir tanımı da dahil olmak üzere derlemede bulunan türleri ve kaynakları belirtir,

§ diğer derlemelere bağımlılıkları listeler,

§, montajın doğru çalışması için gerekli haklar grubunu belirtir.

Bu bilgiler, uygulamanın doğru çalışmasını desteklemek için çalışma zamanında kullanılır.

İşlemci IL kodunu çalıştıramaz. Ve IL kodunun çevirisi, gerektiğinde CLR tarafından etkinleştirilen ve işlemci tarafından yürütülen JIT derleyicisi tarafından (tam zamanında - doğru zamanda) gerçekleştirilir. Bu durumda, JIT derleyicisinin sonuçları RAM'de saklanır. Çevrilmiş IL kodunun parçası ile karşılık gelen bellek bloğu arasında, ayrıca CLR'nin, JIT derleyicisine tekrarlanan çağrıları atlayarak, kontrolü bu bellek bloğunda yazılan işlemci talimatlarına aktarmasına izin veren bir yazışma kurulur.

CLR, farklı programlama dillerinde uygulanan yazılım bileşenlerinin işbirliğine ve etkileşimine izin verir.

Önceden oluşturulmuş meta veri bloğunu temel alan CLR, yürütülebilir .NET uygulamalarının ETKİLİ birlikte çalışabilirliğini sağlar.

CLR için, hangi programlama dillerinde yazılmış olursa olsun tüm derlemeler aynıdır. Ana şey, CLS'ye uymalarıdır. Aslında, CLR, programlama dillerinin sınırlarını yıkar (diller arası birlikte çalışabilirlik). Böylece CLS ve CTS sayesinde .NET uygulamaları aslında MSIL (IL) uygulamalarına dönüşmektedir.

CLR, geleneksel olarak uygulama geliştiricilerin odak noktası olan birçok sorunu çözer. CLR tarafından gerçekleştirilen işlevler şunları içerir:

§ MSIL kodunun işlemci talimatlarına kontrol edilmesi ve dinamik (JIT) derlemesi,

§ bellek yönetimi, süreçler ve iş parçacıkları,

§ süreçlerin etkileşiminin organizasyonu,

§ Güvenlik sorunlarının çözülmesi (sistemde var olan güvenlik politikası çerçevesinde).

AppDomain, bir işlemin adres alanı içindeki bir uygulamayı yalıtmak için kullanılan mantıksal bir derleme kapsayıcıdır. Bir uygulama tarafından oluşturulan tüm nesneler, belirli bir uygulama etki alanı içinde oluşturulur. Aynı işletim sistemi sürecinde birden çok uygulama etki alanı bulunabilir. CLR, uygulama etki alanı içindeki belleği yöneterek uygulamaları yalıtır.

CLR'de (CLR işlemi) çalışan kod, bilgisayarda aynı anda çalışan diğer işlemlerden farklıdır.

Sürece ayrılan adres alanı içinde sistem tarafından normal bir süreç başlatılır. CLR, birçok yönetilen uygulamayı TEK İŞLEM içinde çalıştırma yeteneği sağlar. Yönetilen her uygulama kendi uygulama etki alanına (kısaca AppDomain) bağlanır. Ana etki alanına ek olarak, uygulamada birkaç ek etki alanı oluşturulabilir.

CLR çalışma zamanının yapısı resimde gösterilmiştir.

Etki alanı özellikleri:

§ alanları birbirinden izole edilmiştir. Bir etki alanında oluşturulan nesneler başka bir etki alanında kullanılamaz,

CLR, bu alanlarla ilişkili tüm derlemelerle birlikte alan adlarını boşaltabilir,

§ alan adlarının ek yapılandırması ve korunması mümkündür,

§ alanlar arasında veri alışverişi için özel bir mekanizma uygulanır güvenli erişim(sıralama).

B.NET Framework, öğeleri .NET derlemeleri (.NET derlemesi) olan kendi bileşen modelini geliştirdi ve COM / COM + modeliyle doğrudan ve geriye dönük uyumluluk için CLR yerleşik mekanizmalara (COM) sahiptir. .NET kurallarıyla COM nesnelerine ve COM kurallarıyla .NET derlemelerine erişim sağlayan Interop). Aynı zamanda .NET uygulamaları için bileşenlerin kaydı sistem kayıt defteri Pencereler.

Bir .NET uygulamasını çalıştırmak için bu uygulama ile ilgili derlemeleri tek bir dizine yerleştirmek yeterlidir. Montaj aynı anda birkaç uygulamada kullanılabiliyorsa, o zaman şu şekilde yerleştirilir ve kaydedilir: özel yardımcı program GAC'de (Global Assembly Cache).

CTS - Ortak Tip Sistem Standart Sistem Türler. Tüm platform dilleri tarafından desteklenir. .NET'in OOP'nin çocuğu olması nedeniyle, burada temel türler, sınıflar, yapılar, arabirimler, temsilciler ve numaralandırmalardan bahsediyoruz.

Ortak Tip Sistemi, çalışma zamanının önemli bir parçasıdır, sözdiziminin yapısını, çalışma zamanının ORTAK türlerinin nasıl bildirileceğini, kullanılacağını ve uygulanacağını tanımlar. CTS, GENEL ÖNCEDEN TANIMLI tipler sistemi, kullanımları ve yönetimi (değerleri dönüştürme kuralları) hakkında temel bilgileri içerir. CTS, çok dilli yönetilen uygulamaların entegrasyonunda önemli bir rol oynar.

Ad alanı, bir tür sistemini tek bir grup halinde düzenlemenin bir yoludur. Ortak bir ortak dil temel sınıf kitaplığı vardır. Ve bir ad alanı kavramı, bu kitaplıkta verimli organizasyon ve gezinme sağlar. Programlama dili ne olursa olsun, belirli sınıflara erişim, ortak ad alanları içinde gruplandırılarak sağlanır.

ad alanı Randevu
sistem
Sistem verisi Veritabanlarına erişmek için
Sistem.Veri.Ortak
System.Data.OleDb
System.Data.SqlClient
System.Koleksiyonlar Kapsayıcı nesneleriyle çalışmak için sınıflar
System.Diagnostics Kod izleme ve hata ayıklama sınıfları
Sistem.Çizim Grafik destek sınıfları
Sistem.Çizim.Çizim2D
Sistem.Çizim.Baskı
Sistem.IO G / Ç desteği
Sistem.Net Ağlar üzerinden veri iletimi desteği
Sistem.Yansıma Çalışma zamanında özel türlerle çalışma
System.Reflection.Emit
System.Runtime.InteropServices "Normal kod" ile birlikte çalışabilirlik desteği - DLL'ler, COM sunucuları, uzaktan erişim
System.Runtime.Remoting
Sistem güvenliği Kriptografi, izinler
System.Threading Akışlarla çalışma
System.WEB Web uygulamalarıyla çalışma
Sistem.Windows.Form Öğelerle çalışma Windows arayüzü
System.XML XML veri desteği

Yönetilmeyen yürütülebilir dosyaların yürütülmesi (genel Windows uygulamaları) doğrudan Windows tarafından sağlanır. Yönetilmeyen modüller, Windows ortamında “basit” süreçler olarak çalışır. Bu tür modüllerin karşılaması gereken tek koşul, Windows ortamında doğru çalışmadır. "Doğru" çalışmalıdırlar (sistemi kapatmayın, bellek sızıntılarını önleyin, diğer işlemleri engellemeyin ve işlemler adına çalışmak için işletim sisteminin araçlarını doğru şekilde kullanın). Yani, Windows altında çalışmak için en genel kurallara uyun.

Aynı zamanda, yönetilmeyen bir modülün doğru şekilde yürütülmesiyle ilgili sorunların çoğu (etkileşim, bellek tahsisi ve serbest bırakma sorunları) uygulama geliştiricilerinin sorunlarıdır. Örneğin, iyi bilinen COM teknolojisi, bir uygulama içindeki farklı bileşenlerin etkileşimini düzenlemenin bir yoludur.

nesne - geniş anlamda, programın yürütülmesi sırasında herhangi bir değer yazmak için tahsis edilen bir bellek alanıdır (yığın veya yığın). Bir tür (kullanılan alanın boyutunu belirleyen sabit bir özellik kümesi, bir değeri yorumlamanın bir yolu, bir değer aralığı, bir nesneyi manipüle ederken izin verilen bir dizi eylem) bellekteki bir konum (bir adres) ile karakterize edilir. ).

Çöp toplama, CLR'nin program tarafından yönetilen bellekte bir nesnenin ne zaman kullanılamaz hale geldiğini belirlemesine izin veren bir mekanizmadır. Çöp toplama, yönetilen belleği serbest bırakır. Uygulama geliştiricisi için bir çöp toplama mekanizmasına sahip olmak, artık belleği boşaltma konusunda endişelenmesine gerek olmadığı anlamına gelir. Ancak bu, örneğin sistem kaynaklarını serbest bırakma prosedürüne özel dikkat gösterilmesi gibi programlama stilinde bir değişiklik gerektirebilir. Serbest bırakan yöntemlerin uygulanması gereklidir. sistem kaynakları uygulama tarafından yönetilir.

Yığın, nesne değerlerinin (değişkenler ve sabitler) geçici olarak depolanması, yöntemleri çağırırken parametrelerin iletilmesi, dönüş adresinin depolanması için özel olarak organize edilmiş bir bellek alanıdır. Yığını yönetmek, yığına kıyasla oldukça basittir. Yığının en üstünde karşılık gelen kaydın değerini değiştirmeye dayanır. Yığın boyutu küçüldüğünde, nesneler basitçe kaybolur.

C# programı

Bir program, temelinde bir derlemenin oluşturulduğu, iyi biçimlendirilmiş (C# derleyicisi tarafından sakıncalı olmayan) bir ifadeler dizisidir.

Genel olarak programcı, derleyiciye girdi olarak beslenen sınıf bildirimlerini içeren bir dosya oluşturur. Derleme sonucu, çevirmen tarafından bir derleme olarak temsil edilir ve programcının tercihlerine göre belirlenir. Prensip olarak, montaj iki tip olabilir:

CLR'nin doğrudan yürütülmesi için uygun Taşınabilir Yürütülebilir Dosya (.exe uzantılı PE dosyası),

§ Dinamik Bağlantı Kitaplığı Dosyası (dll uzantılı DLL dosyası), herhangi bir uygulamanın bir bileşeni olarak yeniden kullanılmak üzere tasarlanmıştır.

Her durumda, giriş koduna dayalı olarak, çevirmen bir IL modülü, bir bildirim oluşturur ve bir derleme oluşturur. Gelecekte, derleme ya JIT derlemesinden sonra gerçekleştirilebilir ya da diğer programların bir parçası olarak kullanılabilir.

Dipnot: Microsoft .NET Girişimi. Bileşen uyumluluğu, güvenilirlik ve yeniden kullanılabilirlik sorunları. .NET Çerçevesi. Ortak Dil Çalışma Zamanı CLR. Sözde makine dili CIL (birleştirici tarafından yönlendirilir). JIT derleyicisi. Programlama dilleri. Meclisler. Meta veriler. Çöp toplayıcı. .NET Framework Sınıf Kitaplığı

Modern bilgi sistemlerinin geliştirme sorunları

Entegrasyon sorunları

  • Farklı API'ler (veya API sürümleri) kullanılarak farklı dillerde yazılmış modüller veya farklı format verilerin sunumu;
  • Tek bir yazılım paketi içerisinde çeşitli platformlar için geliştirilmiş programlar;
  • Farklı programlama modelleri kullanan sistemler.

Eski kodla entegrasyon sorunları özellikle yaygındır. Entegrasyon sorunları çözülürken uyumsuzluk sorunları ortaya çıkar.

Taşınabilirlik sorunları

Giderek artan bir şekilde, programların birden çok platformu desteklemesi gerekiyor (örneğin, programla Windows ve Mac OS platformunda çalışabilme).

Sürüm sorunları

Windows geliştiricileri, DLL cehennemi olarak bilinen bir sürüm uyumluluğu sorununun farkındadır. Bu "cehennem", yeni uygulama için kurulan bileşenler eski uygulamanın bileşenlerini değiştirdiğinde ortaya çıkar. Sonuç olarak, eski uygulama hatalı çalışmaya başlar veya çalışmayı durdurur.

Kaynak yönetimi

Programlama sorunlarından biri, kaynakların, dosyaların, belleğin, ekran alanının yönetimi ve doğru şekilde serbest bırakılmasıdır. ağ bağlantıları, veritabanı kaynakları, vb. Bu kaynakların yanlış yönetimi, yanlış program yürütülmesine neden olabilir.

Tip güvenliği

Tip güvenliği probleminden bahsettiklerinde, veri tiplerinin yanlış işlenmesi anlamına gelir: tip sınırı dışındaki bellek alanlarına erişme girişimleri, bir türde bulunmayan yöntemleri çağırma girişimleri veya A tipini alan bir yöntemi çağırma girişimleri. bir parametre ve onu B tipi bir parametre nesnesi olarak iletin.

Çarpışma yönetimi

Win32 API kullanarak Windows uygulamaları geliştirirken, bazı işlevler istisnalar, diğerleri durum kodları ve yine diğerleri HRESULT'ler döndürür. Bu nedenle, hataları ele almak için tutarlı bir mekanizma yoktur ve kodu güvensiz hale getiren bazı istisnaları göz ardı etmek mümkündür.

Bu ve diğer geliştirme sorunları bilgi sistemi Microsoft .NET platformunun çözülmesine yardımcı olur.

.NET'te bilgi sistemleri geliştirme sorunlarının çözülmesi

Heterojenlik sorunuyla başa çıkmanın bir yolu, uygulamaları farklı platformlardaki sunuculara taşımayı kolaylaştıran standart API'ler geliştirmek ve sürdürmektir. Ancak uygulamalar, arayüzleri dilin veya programlama ortamının bileşenleri olmayan veritabanlarını, iletişim ve diğer hizmetleri kullanabilir. Üreticiler tarafından heterojenlik sorununu çözmek için kullanılan bir başka teknik de standart protokolleri desteklemektir. Aynı protokolü destekleyen sistemler, farklı makine mimarilerine ve işletim sistemi.

teknoloji. NET, HTTP ve XML gibi yaygın olarak kullanılan standartları kullanarak programların iletişim kurmasını ve İnternet üzerinden çok sayıda yazılım hizmetine erişim sağlayan bir yazılım geliştirme ve dağıtım yöntemidir. Teknoloji içerir. NET Framework - geliştirmeyi basitleştiren ve hızlandıran uygulamalar geliştirmek ve yürütmek için bir platform, tam teşekküllü bir nesne yönelimli programlama Web için birçok yaygın programlama hatasını düzeltir, tüm diller için ortak bir API sağlar.

Microsoft .NET'i yapan nedir?

NET Framework bir uygulama geliştirme çerçevesidir. Ana bileşenleri Common Language Runtime ve sınıf kitaplığıdır. NET Framework Sınıf Kitaplığı.

Ortak dil çalışması

Ortak Dil Çalışma Zamanı (CLR), herhangi bir eylemi CLR tarafından yetkilendirilmesi gereken, işletim sistemi hizmetlerini özetleyen ve yönetilen uygulamaları yürüten ortak bir dil çalışma zamanıdır.

.NET çerçevesi için tüm kodlar, CLR tarafından CIL ara koduna dönüştürülür. Bu nedenle geliştiriciler, .NET için yazılmış kodları çeşitli programlama dillerine kolayca entegre edebilir. .NET uyumlu bir dilde yapılabilecek her şey (nadir istisnalar dışında) başka herhangi bir dilde yapılabilir. Bu dillerdeki kod, bir dilde - CIL dilinde - koda derlenir.

CLR, işletim sisteminin en üstünde yer alır ve yönetilen uygulamalar için sanal bir ortam sağlar. .NET çerçevesinin kodu ya CLR tarafından yürütülür ya da CLR dışında yürütme izni verilir.

CLR kodu, Ortak Ara Dil (CIL) sözde makine dili komutlarıdır. Bu talimatlar, çalışma zamanında talep üzerine (tam zamanında) uygun işlemci tipinin makine kodunda derlenir. Tipik olarak, bir yöntem ilk çağrıldığında bir kez derlenir. Sonuç daha sonra yeniden deneme gecikmelerini önlemek için bellekte önbelleğe alınır. JIT derleyicisi, kodun yürütüldüğü işlemci için özel olarak kodu optimize eder.

JIT derleyicisi, CIL talimatlarını işlemci talimatlarına dönüştürerek kodun tip güvenlik doğrulamasını gerçekleştirir.

Komutun erişim izninin olmadığı bir bellek alanına erişen bir komutu yürütmek neredeyse imkansızdır. Yönetilen bir uygulamada, hatalı başlatılan işaretçiler sorunu ortadan kalkar ve bir tür güvenlik ihlali olduğu için bir türün olmayan bir şeye dönüştürülmesine izin verilmez. CLR, yok edilmiş bir yığın çerçevesine sahip çağrı yöntemlerine izin vermez.

Yönetilen kod tarafından ayrılan kaynaklar, çöp toplayıcı tarafından geri alınır. Başka bir deyişle, programcı yalnızca bellek ayırır, ancak boşaltmaz - bu CLR tarafından yapılır. Çöp toplayıcı, program tarafından oluşturulan tüm nesne referanslarını takip eder ve işgal ettikleri belleğe başka bir yerde ihtiyaç duyulduğunda bu nesneleri yok eder. Bu, yönetilen kod uygulamalarında bellek sızıntısı sorununu çözer.

Kod doğrulama, CLR'nin tek bir işlem içinde birden çok uygulamayı çalıştırma yeteneği için de temeldir. İşlem sanal bölümlere ayrılmıştır - uygulama alanları. Bu, işlemlere ayrılan belleği kullanma verimliliğini artırır. Uygulama etki alanları, yönetilen uygulamalar tarafından sınırları ihlal edilemediğinden süreçler kadar güvenlidir.

.NET Framework Sınıf kitaplığı (FCL)

NET sınıf kitaplığı derlemelerinde dahildir. NET Framework Sınıf kitaplığı (FCL), her biri bazı işlevler sağlayan birkaç bin türün tanımını içerir. "İlgili" tür kümeleri ayrı ad alanlarında toplanır. Örneğin, System ad alanı, diğer tüm türlerin nihai olarak türetildiği Object temel sınıfını içerir.

Böylece, içindeki her varlık. NET, kendi alanları ve yöntemleri olan bir nesnedir.

Ek olarak, Sistem tamsayılar, karakterler, dizeler, istisna işleme, konsol G / Ç, bir türü diğerine güvenli bir şekilde dönüştürmek, verileri biçimlendirmek için bir grup tür içerir, rastgele sayılar üretmek ve matematiksel işlemleri gerçekleştirmek. Tüm uygulamalar, Sistem ad alanındaki türleri kullanır.

Mevcut bir FCL türünü değiştirmek için kendi türetilmiş türünüzü oluşturabilirsiniz. Kendi ad alanlarınızı oluşturabilirsiniz. Tüm bunlar, platformun önerdiği ilkelere açıkça karşılık gelecektir. AĞ

İşte daha yaygın olan bazı ad alanları ve içerdikleri türlerin kısa bir açıklaması.

Temel FCL ad alanları
ad alanı İçerik
sistem Temel Veri Tipleri ve Yardımcı Sınıflar
System.Koleksiyonlar Hash tabloları, değişken diziler ve diğer kapsayıcılar
Sistem verisi Veri Erişimi için ADO .NET Sınıfları
Sistem.Çizim Grafikleri görüntülemek için sınıflar (GDI +)
Sistem.IO Dosya ve Akış G/Ç Sınıfları
Sistem.Net Birlikte çalışmak için sınıflar ağ protokolleriörneğin HTTP ile
Sistem.Yansıma Meta veri okuma ve yazma sınıfları
System.Runtime.Remoting Dağıtılmış uygulamalar için sınıflar
System.ServiceProcess Wndows hizmetleri oluşturmaya yönelik sınıflar
System.Threading Akış oluşturma ve yönetme sınıfları
Sistem.Web HTTP Desteği Sınıfları
Sistem.Web.Hizmetler Web hizmetleri geliştirmeye yönelik sınıflar
Sistem.Web.Hizmetler. Protokoller web hizmetleri istemcileri geliştirmeye yönelik sınıflar
Sistem.Web.UI ASP .NET tarafından kullanılan ana sınıflar
Sistem.Web.UI. Web Kontrolleri ASP .NET Sunucu Kontrolleri
System.Wndows.Forms GUI Uygulamaları için Sınıflar
System.Xml XML verilerini okumak ve girmek için sınıflar

Tüm yönetilen uygulamalar

İyi günler. Alexey Gulynin temas halinde. Son yazımızda C# ile bir metoda nasıl argüman aktarılacağını gördük. Bu yazıda ne olduğunu (daha basit kelimelerle) bir kez daha anlatmak istiyorum. platform. ağ çerçevesi ve Visual Studio. Bu makale, Visual Studio Description ve .Net Framework makalelerinin devamı niteliğindedir. .Net Çerçevesi CLR (Ortak Dil Çalışma Zamanı - ana bileşen .Net Framework), yönetilen kodun yürütülmesini sağlar. CLR bu kodu yönetir. Yönetilen kod nedir? .NET Framework için yazılan kod, nihai makine kodunda değil, bir ara dilde (Ara Dil, IL olarak adlandırılır) derlenir. Daha sonra bu derleme kullanıcıya iletilir (makinede bir .Net Framework olmalıdır), belleğe yüklenir ve IL komutlarını yapılması gereken eylemlere çevirir.

Ara dil IL'deki nokta nedir?

Birincisi, platformdan bağımsızdır, belirli bir işlemciye bağlı değildir.

İkincisi, varlığı CLR'nin programınızın çalışmasını kontrol etmesine, yani. kabul edilemez şeyler yapmasına izin vermeyin (örneğin, hafızayı manipüle etmek).

İkinci önemli bileşen CLR'den sonra sınıf kitaplığı... .NET Framework, tüm temel işlevleri sağlayan çok sayıda ad alanlı sınıf içerir. Bu, programınızın ihtiyaç duyabileceği işlevselliktir, örneğin dosyalarla, ağlarla, işlemlerle ve grafik alt sistemiyle çalışmak.

Üçüncü bileşen Geliştirme Çerçeveleri (diğer bir deyişle geliştirme kitaplıkları). Bu, WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), gibi kitaplıkları içerir. Windows Mağazası ve diğerleri Aslında, bunlar da sınıflardır. Aradaki fark, bu sınıfların belirli sorunları çözmek için tasarlanmış olmasıdır:

  • WPF - grafik uygulamalarla çalışmak için
  • ASP.NET - web uygulamalarıyla çalışmak için
  • WCF - ağ oluşturma ve dağıtılmış (istemci-sunucu) uygulamaları oluşturmak için
  • Entity Framework - bir veritabanıyla çalışmak için.

Bu yazının yazıldığı sırada En son sürüm.Net Framework 4.6'dır

Microsoft tarafından önerilen birincil geliştirme ortamı Visual Studio'dur. Microsoft genellikle bu duruma sahiptir: nasıl ortaya çıkıyor yeni bir versiyon.NET Framework, ardından bir süre sonra Visual Studio'nun yeni bir sürümü çıkıyor. Visual Studio'ya neler dahildir (temel):

  1. Kodun sözdizimi vurgulamalı metin düzenleyicisi
  2. IntelliSence yardım sistemi (otomatik olarak veya Ctrl + Space (boşluk) tuşlarına basılarak çağrılır)
  3. Farklı dillerden derleyiciler
  4. Hızlı Uygulama Geliştirme (RAD)
  5. Arayüzlerin, diyagramların görsel tasarımcısı
  6. Veritabanları ile sunucularla çalışmak için bileşen
  7. IIS web sunucusu ve sql sunucusu Ekspres seçeneği
  8. Hata ayıklayıcılar, profil oluşturucular, hataları işlemenize izin veren bileşenler
  9. MSDN Yardım Sistemi

Bu yazı yazılırken en son sürüm Visual Studio 2015'tir.

Program kavramı Visual Studio'da nasıl çalışır? Stüdyo "Proje" ve "Çözüm" konseptlerine sahiptir. Proje bir derleme birimidir. Bir dizi dosyadan oluşur. Proje, bütünlüğü içinde, genellikle bir derleme (exe dosyası veya dll dosyası) halinde derlenir. Projeler Çözüm olarak gruplandırılabilir. Çözüm, birbiriyle ilişkili olabilecek veya olmayabilecek (genellikle olan) bir projeler topluluğudur.

.NET Uygulama Türleri

C# dili, bir DOS penceresinde çalışan metin tabanlı uygulamalar olan konsol uygulamaları oluşturmak için kullanılabilir. Büyük olasılıkla, bu tür uygulamalar sınıf kitaplıklarını test etmek için kullanılacaktır. Ancak, çoğu zaman, .NET ile ilişkili teknolojilerin çoğuna erişimi olan uygulamalar oluşturmak için C# kullanılması gerekecektir. Bu makale, C # ile yazabileceğiniz farklı uygulama türlerine hızlı bir genel bakış sağlar.

ASP.NET Uygulamaları Oluşturma

ASP.NET 1.0'ın erken ortaya çıkışı, web programlama modelini temelden değiştirdi. ASP.NET 4, ürünün daha eski sürümüdür ve önceki gelişmeler üzerine kuruludur. ASP.NET 4, daha üretken olmak için önemli atılım adımları sunar. ASP.NET 4'ün temel amacı, mümkün olan en az miktarda kodla güçlü, güvenli, dinamik uygulamalar oluşturmanıza olanak sağlamaktır.

ASP.NET Özellikleri

Birincisi ve belki de en önemlisi, sayfaların yapılandırılmış... Yani, her sayfa, aslında, miras alınan bir sınıftır. .NET System.Web.UI.Page sınıfı, bir Page nesnesinin yaşam döngüsü boyunca çağrılan bir dizi yöntemi geçersiz kılabilir. (Bu olayları, olayların sayfaya özgü kardeşleri olarak düşünebilirsiniz. OnApplication_Start ve OnSession_Start klasik ASP'de global.asax dosyalarında gelir.) Sayfaların işlevselliği belirli amaçlar için olay işleyicilerine bölünebildiğinden, ASP.NET sayfalarının anlaşılması çok daha kolaydır.

ASP.NET sayfalarıyla ilgili bir başka güzel şey de, bunları aynı ASP.NET sayfaları tarafından kullanılan iş mantığı ve veri erişim bileşenleri için kodladığınız ortam olan Visual Sludio 2010'da oluşturabilmenizdir. Bir Visual Studio 2010 projesi veya çözümü, bir uygulamayla ilişkili tüm dosyaları içerir. Ayrıca, klasik ASP sayfalarında doğrudan düzenleyicide hata ayıklanabilir. V eski günler Visual InterDev ile ilgili olarak, hata ayıklamayı etkinleştirmek için InterDev'i ve projenin web sunucusunu özel olarak yapılandırmak için can sıkıcı bir ihtiyaç vardı.

Açıklık açısından, ASP.NET arka plan kod aracı, yapılandırılmış yaklaşımı daha da genişletmenize olanak tanır. ASP.NET, bir sınıftaki bir sayfanın sunucu işlevselliğini yalıtmanıza, o sınıfı diğer sayfalarla birlikte bir DLL'de derlemenize ve bu DLL'yi HTML bölümünün altındaki bir dizine yerleştirmenize olanak tanır. Sayfanın başındaki @Page yönergesi bu dosyayı sınıfla ilişkilendirir. Bir tarayıcı bir sayfa istediğinde, web sunucusu, sayfanın sınıf dosyasında bulunan sınıfta olaylar üretir.

Son olarak, belirtilmesi gereken ASP.NET özelliği artan performanstır. Klasik ASP sayfaları, sayfaya her erişildiğinde yorumlanırken, ASP.NET sayfaları derlemeden sonra web sunucusunda önbelleğe alınır. Bu, ASP.NET sayfaları için sonraki tüm isteklerin ilkinden daha hızlı olduğu anlamına gelir.

ASP.NET, tarayıcıda uygulanabilecek formları görüntüleyen sayfalar yazmayı da kolaylaştırır. Şirket ağı... Form yönelimli uygulamaların geleneksel görünümü, zengin bir kullanıcı arabirimi sağlamalarıdır, ancak birçok istemci makinede çalıştıkları için bakımı daha zordur. Bu nedenle insanlar yalnızca zengin bir arayüze ihtiyaç duyduklarında form merkezli uygulamalara güvenirler ve kullanıcılarına güvenilir destek sağlayabilirler.

Web formları

Web sayfalarının tasarımını daha da basitleştirmek için Visual Studio 2010, Web Forms kitaplığını sağlar. Bu araç, tıpkı pencerelerin Visual Basic 6 ve C ++ Builder'da oluşturulduğu gibi, grafiksel olarak ASP.NET sayfaları oluşturmanıza olanak tanır. Başka bir deyişle, gerekli kontrolleri araç kutusundan formun yüzeyine sürüklemeniz, ardından formun kodunu hafifçe değiştirmeniz ve kontroller için olay işleyicileri yazmanız gerekecektir. Web formu oluşturmak için C# kullanırken, temel sınıftan miras alan bir C# sınıfı oluşturursunuz. Sayfa, ve bu sınıfı arka plan kodu olarak işleyen bir ASP.NET sayfası. Elbette web formunuzu oluşturmak için C# kullanmanıza gerek yok; Bunu yapmak için Visual Basic 2010 veya başka bir .NET yönelimli dili de kullanabilirsiniz.

Geçmişte, web geliştirmenin karmaşıklığı, bazı geliştirme ekiplerinin bunda ustalaşmaya çalışmasını engelledi. Web uygulamaları geliştirmede başarılı olmak için çok şey bilmek zorundaydınız. farklı teknolojiler VBScript, ASP, DHTML, JavaScript vb. Web Formları kavramlarını web sayfalarına uygulamak, web uygulamaları oluşturmayı çok daha kolay hale getirdi.

Web sunucusu kontrolleri

Web Formlarında kullanılan denetimler, ActiveX denetimleriyle aynı anlamda denetimler değildir. Bunun yerine, sayfa istendiğinde web tarayıcısının dinamik olarak HTML tanımlayıcılarına ve istemci tarafı komut dosyalarına dönüştürdüğü ASP.NET ad alanlı XML tanımlayıcılarıdır. Şaşırtıcı bir şekilde, web sunucusu aynı kontrolleri gerçekleştirebilir sunucu tarafıçeşitli şekillerde, isteği yapan belirli web tarayıcısına uygun bir dönüşüm üretir. Bu, artık kolayca mükemmel yaratabileceğiniz anlamına gelir. Kullanıcı arayüzleri web sayfalarını, sayfanın mevcut tarayıcılardan herhangi birinde nasıl çalıştırılacağı konusunda endişelenmeden - Web Formları bununla ilgilenir.

XML Web Hizmetleri

Bugün, HTML sayfaları, World Wide Web'deki trafiğin çoğunu oluşturuyor. Ancak, XML sayesinde bilgisayarlara, İnternet üzerinden iletişim kurmak için kullanılabilecek, cihazdan bağımsız bir format verilir. Gelecekte bilgisayarlar, EDI (Elektronik Veri Değişimi) gibi tescilli bir biçimde kiralık hatlar üzerinden birbirlerine mesaj göndermek yerine bilgi alışverişi yapmak için XML kullanabilirler. XML Web Hizmetleri, uzak bilgisayarların, kullanıcıya son sunumundan önce ayrıştırılıp yeniden biçimlendirilebilen dinamik bilgileri sağladığı hizmet merkezli bir web ortamı için tasarlanmıştır. XML Web Hizmetleri, bilgisayarların Internet'teki diğer bilgisayarlara XML biçiminde bilgi sağlamasının kolay bir yoludur.

Teknik terimlerle, bir .NET XML Web Hizmeti, istemciler tarafından istendiğinde HTML yerine XML döndüren bir ASP.NET sayfasıdır. Bu tür sayfalar, WebService'den devralınan sınıfları içeren arka plan kod DLL'lerine dayanır. Visual Studio 2010 IDE, web hizmetleri oluşturmayı kolaylaştıran bir mekanizma sağlar.

Bir kuruluş veya kuruluş, iki ana nedenden dolayı XML Web Hizmetlerini seçebilir. Birinci neden, HTTP tabanlı olmalarıdır; Web hizmetleri, bilgileri aktarmak için mevcut HTTP tabanlı ağları aracı olarak kullanabilir. Diğer bir neden de, XML Web Hizmetlerinin XML kullanması nedeniyle iletilen verilerin biçiminin kendi kendini belgeleyen, açık ve platformdan bağımsız olmasıdır.

Windows Formları Oluşturma

C# ve .NET özellikle web geliştirme için tasarlanmış olsalar da, yine de sözde "yağ" istemci uygulamalarını desteklerler - yani. İşlemlerin çoğunun yapıldığı son kullanıcının makinesine yüklenmesi gereken uygulamalar. Bu, Windows form kitaplığı tarafından sağlanır.

Ancak, .NET çerçevesini öğrenmeye başlıyorsanız, tavsiye etmedi Windows Forms'u öğrenir ve doğrudan en son WPF teknolojisine geçersiniz.

Windows Sunum Vakfı (WPF)

Biri en son teknolojiler Windows Presentation Foundation (WPF) devrim niteliğindedir. WPF, uygulamalar oluşturmak için XAML kullanımına dayanır. XAML, Genişletilebilir Uygulama İşaretleme Dili - Genişletilebilir Uygulama İşaretleme Dili anlamına gelir. İlk olarak 2006'da tanıtılan Microsoft ortamında uygulama oluşturmanın bu yeni yolu, .NET Framework 3.0, 3.5 ve 4'ün bir parçasıdır. Bu, herhangi bir WPF uygulamasını çalıştırmak için istemci makinenin kurulu olduğundan emin olmanız gerektiği anlamına gelir. .NET Framework 3.0, 3.5 veya 4. Windows 7, Windows Vista, Windows XP için WPF uygulamaları mevcuttur, Windows Server 2003 ve Windows Server 2008 (yalnızca bu işletim sistemleri .NET Framework 3.0, 3.5 veya 4'ü yüklemenize izin verir).

XAML, WPF uygulamalarının tüm görsel yönlerini ve davranışını temsil eden formlar oluşturmak için kullanılan bir XML bildirimidir. WPF uygulamasıyla programlı olarak çalışabileceğiniz için bu teknoloji, endüstrinin bugüne doğru yöneldiği bildirimsel programlamaya doğru bir adımı temsil ediyor. Bildirimsel programlama, C#, VB veya Java gibi derlenmiş bir dilde kod yazarak nesneler oluşturmak yerine, her şeyin XML benzeri programlama kullanılarak bildirilmesi anlamına gelir.

Windows hizmetleri

Windows Hizmeti (başlangıçta NT Hizmeti olarak adlandırılır), Windows NT / 2000 / XP / 2003 / Vista / 7 (ancak Windows 9x değil) altında arka planda çalışacak şekilde tasarlanmış bir programdır. Bu hizmetler, kullanıcının inisiyatifinde açıkça başlatmaya gerek kalmadan olaylara yanıt vermeye hazır programların sürekli çalışmasını düzenlemeniz gerektiğinde yararlıdır. İyi bir örnek, istemcilerden gelen web isteklerini dinleyen web sunucularındaki World Wide Web Hizmetidir.

C# ile servis geliştirmek çok kolaydır. ad alanında Sistem.Hizmet.Süreç Sistem hizmetleriyle ilişkili şablonlu görevlerin çoğunu çözmenize olanak tanıyan temel .NET çerçeve sınıfları vardır. Ek olarak, Visual Studio .NET, içinde oluşturulacak bir C# Windows Hizmeti projesi oluşturmanıza olanak tanır. pencere hizmetleri tarafından kullanılan kaynak C #.

Windows İletişim Vakfı (WCF)

Microsoft teknolojilerinin verileri ve hizmetleri bir noktadan diğerine taşıma yollarını keşfederken, çok çeşitli özelliklere sahip olduğunuzu göreceksiniz. olası çözümler... Örneğin, ASP.NET Web Services, .NET Remoting Technology, Enterprise Services veya MSMQ'yu kullanabilirsiniz. Hangi teknolojiyi seçmelisiniz? Bu sorunun cevabı, elde etmeye çalıştığınız şey tarafından belirlenir, çünkü bu teknolojilerin her biri belirli bir durumda tercih edilir.

Bunu akılda tutarak, Microsoft tüm bu teknolojileri gerçekten bir araya getirdi ve .NET Framework 3.0'da ve .NET Framework 3.5 ve 4'e dahil edilmesinde, verileri taşımanın tek bir yolu var: Windows Communication Foundation (WCF). WCF kitaplığı, başlangıçta bir hizmet oluşturma ve ardından bu hizmeti basit bir değişiklikle farklı şekillerde (farklı protokoller üzerinden bile) sunma yeteneği sağlar. yapılandırma dosyası. WCF dağıtılmış sistemleri bağlamak için çok güçlü yeni bir araçtır.

Windows İş Akışı Temeli (WF)

Windows Workflow Foundation (WF) ilk olarak .NET Framework 3.0'da tanıtıldı, ancak şimdi birçok kişi tarafından çok daha yararlı bulunacak büyük bir revizyondan geçti. Visual Studio 2010'da WF deneyiminin büyük ölçüde iyileştirildiğini ve kendi iş akışlarınızı oluşturmayı çok daha kolay hale getirdiğini göreceksiniz. Ayrıca yeni akış kontrolleri, Akış Şeması sınıfı ve DoWhile, ForEach ve ParallelForEach gibi bir dizi yeni eylem bulacaksınız.