Ne oldu. Platformda ne tür uygulamalar oluşturulabilir?

Ne oldu. Platformda ne tür uygulamalar oluşturulabilir?

İyi günler. Alexey Gulynin temas halinde. Son makalede, C#'ta bir yönteme bağımsız değişken aktarmanın yollarını inceledik. Bu yazıda tekrarlamak istiyorum (daha fazla basit kelimelerle), hangisi .Net Çerçevesi ve Visual Studio. Bu makale, Visual Studio Açıklaması ve .Net Framework makalelerinin devamıdır. .net çerçevesi Ortak Dil Çalışma Zamanı'dır (CLR). .Net Framework'ün ana bileşeni), yönetilen kodun (yönetilen kod) 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 (IL - Orta Düzey Dil olarak adlandırılır) derlenir. Daha sonra bu derleme kullanıcıya aktarılır (makine .Net Framework'e sahip olmalıdır), belleğe yüklenir ve IL komutlarını gerçekleştirilecek eylemlere dönüştürür.

Ara dil IL'de amaç 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 izin verir, örn. bazı kabul edilemez şeyler yapmasına izin vermeyin (örneğin, hafıza manipülasyonu).

İkinci önemli bileşen CLR'den sonra sınıf kitaplığı. .NET Framework şunları içerir: çok sayıda tüm temel işlevleri sağlayan ad alanlarına bölünmüş sınıflar. Bu, grafik alt sistemiyle dosyalarla, ağla, işlemlerle çalışmak gibi programınızın ihtiyaç duyabileceği işlevselliktir.

Üçüncü bileşen- bunlar Geliştirme Çerçeveleridir (başka bir deyişle, geliştirme kitaplıkları). Buna WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), Windows Store gibi kitaplıklar dahildir. 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ğ ile çalışmak ve dağıtılmış (istemci-sunucu) uygulamalar oluşturmak için
  • Entity Framework - 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 ana geliştirme ortamı Visual Studio'dur. Microsoft genellikle bu duruma sahiptir: nasıl 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. Sözdizimi kodu vurgulamalı metin düzenleyici
  2. IntelliSense yardım sistemi (otomatik olarak veya Ctrl + Boşluk (boşluk) tuşlarına basarak çağrılır)
  3. Farklı dillerden derleyiciler
  4. Hızlı Geliştirme Araçları (RAD - Hızlı Uygulama Geliştirme)
  5. Arayüzlerin, diyagramların görsel tasarımcısı
  6. Sunucularla, veritabanlarıyla ç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şlemenizi sağlayan bileşenler
  9. MSDN yardım sistemi

Bu yazının yazıldığı sırada en son sürüm Visual Studio 2015'tir.

Program kavramı Visual Studio'da nasıl çalışır? Stüdyo "Proje" (Proje) ve "Karar" (Çözüm) konseptine sahiptir. Bir proje bir derleme birimidir. Bir dizi dosyadan oluşur. Proje bir bütün olarak, genellikle bir derlemede (exe dosyası veya dll dosyası) derlenir. Projeler Çözüm altında gruplandırılabilir. Bir Çözüm, birbiriyle ilişkili olabilecek veya olmayabilecek (genellikle böyledir) bir proje koleksiyonudur.

Çünkü. AÇIKÇerçeve, uygulama geliştirme için güçlü bir platformdur, tamamen farklı türde 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ünü kullanan 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ü aracılığıyla sunulan ve istemci tarafında yürütülen uygulamalar);

web hizmetleri (sunucu tarafında çalışan ve herhangi bir veriyi almak veya bir işlemi gerçekleştirmek için istemciden çağrılabilen yazılım kodu);

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

Bileşimdeki yukarıdaki uygulama türlerinin her biri için. AÇIKÇerçeve, uygulama oluşturmanıza izin veren ilgili teknolojiler vardır. Ayrıca, . AÇIKÇerçeve, farklı türde uygulamalarda kullanılabilen ortak kitaplıklar içerir. Bu kitaplıklar aşağıdaki kitaplıkları içerir:

· dizelerle çalışmak;

matematiksel fonksiyonlarla çalışmak için;

grafiklerle çalışmak için

verilere erişim;

· dosyalar ve diğer giriş-çıkış işlemleri ile çalışmak;

kriptografik işlemleri gerçekleştirmek;

· veri kaynakları arasında veri senkronizasyonunu organize etmek;

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. AÇIKÇerçeve, özel proje şablonları vardır.

Masaüstü Uygulamaları doğrudan kullanıcının bilgisayarında çalıştırılmaları 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şimKullanıcı arayüzü ve uygulamanın ağ bağlantısından bağımsız olarak çalışabilmesi İnternet ve diğer kaynaklar. Ancak, bu tür uygulamaların çalışması için yerel olarak yüklenmesi gerekir. bilgisayar.

Masaüstü uygulamaları üç türe ayrılabilir - pencere uygulamaları, konsol uygulamaları ve hizmetler. pencereler. Pencere uygulamaları bir grafik arayüze sahiptir. Konsol Uygulamaları genellikle benziyor Komut satırı, A arayüz bu tür uygulamalar metin tabanlıdır, grafiksel değil. Son olarak, hizmetler pencereler hiç bir kullanıcı arayüzüne sahip olmayın, ancak arka planda çalışın.

Platform içinde pencereli bir grafik arayüz ile uygulamalar oluşturmak. AÇIKÇerçeve teknolojileri kullanılabilir pencereler Formlar (. AÇIKÇerçeve 1.0) ve Windows Sunum Vakfı(dan temin edilebilir AÇIKÇerçeve 3.0). En son teknoloji daha yeni ve daha umut verici.


Web uygulamaları bir web sunucusunda uzaktan çalıştıkları için masaüstü bilgisayarlardan farklıdır. kullanıcı bir tarayıcı ve protokol aracılığıyla web uygulamalarının yeteneklerini kullanır http/https. Bu tür uygulamaların avantajı, bunları bilgisayarınıza yüklemeye gerek olmamasıdır. bilgisayar her kullanıcı - başvuru web'e kurulması 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şturmak için sınırlı yetenektir. Bunun nedeni, Kullanıcı arayüzü biçimlere dayalı 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 dezavantajı olduğu için - sınırlı yetenekler İle kullanıcı arayüzünün şekillendirilmesi - adı verilen yeni bir uygulama türü ortaya çıktı zengin internet uygulamaları veya Zengin kullanıcı arayüzüne sahip internet uygulamaları (Zengin İnternet Uygulamaları, RIA). Bu uygulamaların felsefesi, tarayıcıözel ek ek görüntüleme yeteneğine sahip (eklenti) içerik türü. Ondan sonra ne zaman kullanıcı tarayıcıda sayfa açıldığında bu eklenti içerisinde çalışan program kodu client tarafına aktarılır. Bu durumda, tüm kod istemci tarafında yürütüldüğünden, geliştiricilerin daha fazla seçeneği vardır. İle kullanıcı arayüzlerinin oluşturulması.

Bu tür bir uygulamayı oluşturmak için çeşitli teknolojiler vardır. En bilinen teknolojilerden biri Adobe teknolojisidir. Flaş. Ek olarak, çerçeve içindeki diğer teknolojilerle en uygun şekilde entegre olmanızı sağlayan Microsoft Silverlight teknolojisi de vardır. AÇIKçerçeve.

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

Platform içinde. AÇIK Framework, hizmetler oluşturmanıza izin veren bir dizi teknoloji vardır. En eski teknoloji ise A.S.P..ağ ağı Hizmetler. çalışan basit web hizmetleri oluşturmanıza olanak tanır. İle protokol http/https. Bir sonraki gelişme teknolojiydi. 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ış yöneltmeler, vb.) ve geliştiricinin seçeneklerini önemli ölçüde genişletir İle hizmetler oluşturmak.

WCF projesinin ek şubeleri de vardır - bu WCF'dir. 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ürleri şunlardır: mobil uygulamalar. Mobil uygulamalar, mobil cihazlarda aşağıdakilere dayalı olarak çalışır: işletim sistemi Windows Mobil . Mobil cihazlar için, bir yetenek alt kümesi uygulaması da vardır. AÇIK denilen çerçeve. NET Kompaktçerçeve.

Böylece, platform içindeki tüm teknolojiler yelpazesi. AÇIKÇerçeve aşağıdaki şema ile temsil edilebilir.

giriiş

Bir PLATFORM, en azından bir program yürütme ortamı ve ... program kodu geliştirme ve yürütme özelliklerini belirleyen başka bir şeydir - 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 Spesifikasyonu), programlama dilleri için genel bir spesifikasyondur. .NET Framework'teki kitaplık ve derleyici yazarlarına rehberlik sağlayan 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 (bunlar arasında Visual C#, Visual Basic, Visual C++) birbirleriyle entegre olabilir. CLS, Microsoft.NET platformunda diller arası birlikte çalışabilirliğin temelidir.

CLR (Common Language Runtime) - Çalışma Zamanı Ortamı veya Sanal Makine. Derlemenin yürütülmesini sağlar. .NET Framework'ün ana bileşeni. Sanal Makine, program kodunun yürütülmesini sağlayan ve aşağıdaki görevlerin çözülmesini içeren, kapsüllenmiş (ayrı) üst düzey yönetilen bir işletim sisteminin bir soyutlamasıdır:

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

§ nesneleri yerleştirirken bellek yönetimi,

§ izolasyon uygulama belleği,

§ kod güvenlik kontrolü,

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

§ meta verilere erişim (genişletilmiş tür bilgisi),

§ diller arası istisnalar dahil olmak üzere istisna işleme,

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

§ geliştirme hizmetleri için destek (profil oluşturma, hata ayıklama vb.).

Kısacası, CLR, bir yapıyı gerçekleştirmek için gereken bir dizi hizmettir. Bu durumda, bir derlemenin program kodu yönetilebilir (kod, özellikle CLR tarafından yürütüldüğünde, bellek yönetim sistemini etkinleştirir) veya yönetilemez ("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ı, bilgisayarın en azından .NET çerçevesini yüklemeye çalıştığına dair kesin bir işarettir.

Çekirdek çalışma zamanı, mscoree.dll kitaplığı olarak uygulanır. Bir derleme bağlandığında, bir uygulama (EXE) başlatıldığında veya bir kitaplık yüklendiğinde (yönetilmeyen bir modülden bir DLL'ye erişme - yönetilen bir derlemeyi yüklemek için LoadLibrary işlevini çağırma) neden olan özel bilgiler yerleşiktir. yüklenecek ve başlatılacak CLR. CLR bir işlemin adres alanına yüklendikten sonra çalışma zamanı çekirdeği aşağıdakileri yapar:

§ montajın 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,

§ ara dil (IL) kodunun platforma özgü talimatlara (assembler kodu) derlenmesini sağlar,

§ ile ilgili kontrolleri gerçekleştirir güvenlik,

§ uygulamanın ana iş parçacığını kullanarak, kontrolü işlemci talimatlarına dönüştürülen montaj kodu parçasına aktarır.

FCL (.NET Framework Sınıf Kitaplığı), Microsoft .NET platformunda yer alan ve CLS belirtimine karşılık gelen sınıfların, arabirimlerin ve tür sistemlerinin (değer türleri) nesne yönelimli bir kitaplığıdır.

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

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

NET FCL, programlama dilini geliştirmek için 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ı arabirimi geliştirmek için sınıflar (Windows Form),

ASP.NET teknolojisine (Web Formları) dayalı Web uygulamaları ve Web hizmetleri geliştirmek için § sınıfları,

§ XML ve İnternet protokolleri (FTP, HTTP, SMTP, SOAP) geliştirmek için sınıflar,

§ veritabanlarıyla çalışan uygulamalar geliştirmek için 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ı için kaynak kodları, CLS spesifikasyonuna uygun programlama dillerinde yazılır. CLS spesifikasyonuna uygun programlama dilleri için MSIL'e dönüştürücü kurulabilir. Böylece bu dillerdeki programlar MSIL ara koduna çevrilebilir. CLS uyumluluğu nedeniyle farklı dillerde yazılan program kodlarının çevrilmesi sonucunda uyumlu bir IL kodu elde edilir.

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, tarafından başvurulan veri türleri hakkında bilgi içeren tablo kümeleridir. bu modül. Önceden, bu bilgiler ayrı olarak saklanıyordu. Örneğin, bir uygulama, bir Arayüz Tanımlama Dili'nde (IDL) açıklanan arayüzler hakkında bilgi içerebilir. Meta veriler artık yönetilen modülün bir parçasıdır.

Özellikle, meta veriler şu amaçlarla kullanılır:

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

§ modül yürütme sırasında kod doğrulama,

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

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

§ Meta verilere dayalı olarak dinamik bir ipucu (IntelliSense) sağlanır.

MSIL çevirisinin uygulandığı diller:

ve daha birçok başka dil.

Yürütülebilir - Derleyiciden (ve kaynak dilden) bağımsız olarak, bir .NET uygulamasının çevrilmesinin sonucu, yönetilen bir yürütülebilir dosyadır (yönetilen modül). Bu, standart bir taşınabilir yürütülebilir (PE - Portable Executable) Windows dosyasıdır.

Yönetilen modülün öğeleri tabloda gösterilmektedir.

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

Yönetilen kod, CLR'de çalışan koddur. Kod, yöntem bildirimleri içeren kaynak modülde bildirilen yapılar ve sınıflar temelinde oluşturulur. Yönetilen kod, çalıştırma ortamı için belirli bir bilgi düzeyine (meta veri) uymalı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 sağlayarak yönetilen kod üretebilir. Yönetilen kodun özelliklerinden biri, YÖNETİLEN VERİLER ile çalışmanıza izin veren mekanizmaların varlığıdır.

Yönetilen veriler - modül 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 nesneler. C#, Visual Basic ve JScript .NET verileri varsayılan olarak yönetilir. C# verileri yönetilmeyen olarak da 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ün veya kaynak dosyasının mantıksal bir gruplandırmasıdır. Derlemelerdeki yönetilen modüller, Çalışma Zamanı Ortamında (CLR) çalışır. Derleme, yürütülebilir bir uygulama (bir .EXE dosyasında) veya bir kitaplık modülü (bir .DLL dosyasında) olabilir. Aynı zamanda, derlemenin sıradan (eski tarz!) yürütülebilir uygulamalar ve kitaplık modülleri ile hiçbir ortak yanı yoktur.

Derleme bildirimi (Manifest), derlemenin ayrılmaz bir parçasıdır. Başka bir meta veri tablosu seti:

§ derlemeyi metin adı, sürümü, kültürü ve dijital imzası biçiminde tanımlar (derleme uygulamalar arasında paylaşılıyorsa),

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

§ derlemeden dışa aktarılanların açıklaması da dahil olmak üzere derlemede var olan türleri ve kaynakları belirtir,

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

§ Derlemenin düzgün çalışması için gereken haklar kümesini belirtir.

Bu bilgiler, uygulamanın düzgün çalışmasını sağlamak için çalışma zamanında kullanılır.

İşlemci IL kodunu yürütemez. Ve IL kodunun çevirisi, gerektiğinde CLR tarafından etkinleştirilen ve işlemci tarafından yürütülen JIT derleyicisi tarafından gerçekleştirilir (tam zamanında - doğru zamanda). Bu durumda, JIT derleyicisinin sonuçları şu klasörde saklanır: rasgele erişim belleği. Çevrilen IL kodunun bir parçası ile karşılık gelen bellek bloğu arasında, daha sonra CLR'nin JIT derleyicisine tekrarlanan bir çağrıyı atlayarak bu bellek bloğunda kaydedilen işlemci talimatlarına kontrolü aktarmasına izin veren bir yazışma kurulur.

CLR'de buna izin verilir takım çalışması ve bileşenlerin etkileşimi yazılımçeşitli programlama dillerinde uygulanmaktadır.

Önceden oluşturulmuş meta veri bloğuna dayanan CLR, çalışan .NET uygulamaları arasında ETKİLİ birlikte çalışabilirlik sağlar.

CLR için, hangi programlama dillerinde yazılmış olursa olsun tüm derlemeler aynıdır. Önemli olan, CLS'ye uymalarıdır. Aslında, CLR programlama dillerinin sınırlarını yok eder (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 sorunların çoğuyla ilgilenir. CLR tarafından gerçekleştirilen işlevler şunları içerir:

§ MSIL kodunun işlemci talimatlarına doğrulanması ve dinamik (JIT) derlemesi,

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

§ süreçler arasındaki etkileşimin organizasyonu,

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

AppDomain, bir uygulamayı bir işlemin adres alanı içinde izole etmek için kullanılan mantıksal bir derleme kabıdır. tüm nesneler uygulama tarafından oluşturulan, belirli bir uygulama etki alanı içinde oluşturulur. Tek bir işletim sistemi işleminde birden çok uygulama etki alanı bulunabilir. CLR, bir uygulama etki alanındaki belleği yöneterek uygulamaları yalıtır.

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

İşlem için özel olarak ayrılmış bir adres alanı içinde sistem tarafından normal bir işlem başlatılır. CLR, birden çok yönetilen uygulamayı TEK BİR SÜREÇTE çalıştırma yeteneği sağlar. Her biri yönetilen uygulama kendi uygulama etki alanına (kısaca AppDomain) bağlanır. Ana etki alanına ek olarak, uygulamada birkaç ek alan oluşturulabilir.

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

Etki alanı özellikleri:

§ domainler birbirinden izole edilmiştir. Bir etki alanında oluşturulan nesnelere başka bir etki alanından erişilemez,

§ CLR, etki alanlarıyla birlikte bu etki alanlarıyla ilişkili tüm derlemeleri kaldırabilir,

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

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

§ .NET Framework, öğeleri .NET derlemeleri (.NET derlemesi) olan kendi bileşen modelini geliştirmiştir ve COM / COM + modeliyle ileri ve geri uyumluluk için CLR yerleşik mekanizmalara sahiptir (COM .NET kurallarına göre COM nesnelerine ve COM kurallarına göre .NET derlemelerine erişim sağlayan Interop). Aynı zamanda, .NET uygulamaları, bileşenlerin sistem kaydı Pencereler.

Bir .NET uygulamasını çalıştırmak için bu uygulama ile ilgili derlemeleri aynı dizine yerleştirmek yeterlidir. Montaj birkaç uygulamada kullanılabiliyorsa, kullanılarak yerleştirilir ve kaydedilir. özel yardımcı program GAC'de (Global Derleme Önbelleği).

CTS - Ortak Tip Sistem Tüm platform dilleri tarafından desteklenir. .NET'in OOP'nin bir alt öğesi olması nedeniyle, burada temel türler, sınıflar, yapılar, arayüzler, delegeler ve numaralandırmalardan bahsediyoruz.

Ortak Tip Sistemi, sözdizimsel yapıların yapısını, GENEL çalışma zamanı tiplerinin nasıl bildirileceğini, kullanılacağını ve uygulanacağını tanımlayan çalışma zamanı ortamının önemli bir parçasıdır. CTS, GENEL ÖN TANIMLI tiplerin sistemi, bunların kullanımı ve yönetimi (değer dönüştürme kuralları) hakkında temel bilgiler içerir. CTS, çok dilli yönetilen uygulamaların entegrasyonunda önemli bir rol oynar.

Ad alanı, bir yazı sistemini tek bir grup halinde düzenlemenin bir yoludur. Ortak bir ortak dil temel sınıf kütüphanesi 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 gruplanarak sağlanır.

Ad alanı Amaç
Sistem
Sistem verisi Veritabanlarına erişmek için
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Collections Konteyner nesneleri ile çalışmak için sınıflar
System.Diagnostics İzleme ve hata ayıklama kodu için sınıflar
Sistem Çizimi sınıflar grafik desteği
Sistem.Çizim.Çizim2D
Sistem.Çizim.Yazdırma
Sistem.IO G/Ç desteği
Sistem.Net Ağlar üzerinden veri aktarımı desteği
Sistem.Yansıma Çalışma zamanında özel türlerle çalışma
System.Reflection.Emit
System.Runtime.InteropServices "Düz kod" ile etkileşim desteği - DLL'ler, COM sunucuları, uzaktan erişim
System.Runtime.Remoting
Sistem güvenliği Şifreleme, izinler
System.Threading Akışlarla çalışma
Sistem.WEB Web uygulamalarıyla çalışma
System.Windows.Form Windows arabirim öğeleriyle çalışma
Sistem.XML XML veri desteği

Yönetilmeyen yürütülebilir modüllerin (normal Windows uygulamaları) yürütülmesi doğrudan Windows sistemi tarafından sağlanır. Yönetilmeyen modüller çalışır Windows ortamı"basit" süreçler olarak. Bu tür modüllerin karşılaması gereken tek gereksinim, Windows ortamında düzgün çalışmasıdır. "Doğru" çalışmalıdırlar (sistemi askıya almayın, bellek sızıntılarından kaçının, 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, en çok eşleşmek için Genel kurallar Windows altında çalışın.

Aynı zamanda, yönetilmeyen bir modülün doğru şekilde çalıştırılmasına ilişkin sorunların çoğu (etkileşim, belleğin tahsisi ve serbest bırakılması sorunları), uygulama geliştiricilerin sorunlarıdır. Örneğin, iyi bilinen COM teknolojisi, bir uygulama içindeki heterojen bileşenlerin etkileşimini düzenlemenin bir yoludur.

Bir nesne, geniş anlamda, herhangi bir değer yazmak için bir programın yürütülmesi sırasında tahsis edilen bir bellek alanıdır (yığın veya yığın üzerinde). Bellekteki konuma (adres) göre bir tür (işgal edilen alanın boyutunu, değerin yorumlanma şeklini, değer aralığını, nesneyi işlerken izin verilen eylemler kümesini belirleyen sabit bir özellikler kümesi) ile karakterize edilir. ).

Çöp toplama, CLR'nin bir nesnenin programın yönetilen belleğinde artık bulunmadığını belirlemesini sağlayan bir mekanizmadır. Çöp toplama, yönetilen belleği boşaltır. Uygulama geliştiricisi için, çöp toplama mekanizmasının varlığı, artık belleği boşaltma konusunda endişelenmesine gerek olmadığı anlamına gelir. Ancak bu, programlama stilinde bir değişiklik gerektirebilir, örneğin, sistem kaynaklarının serbest bırakılması prosedürüne özel dikkat gösterilmelidir. Uygulamanın kontrolü altındaki sistem kaynaklarını serbest bırakan yöntemler uygulamanız gerekir.

Yığın, nesnelerin değerlerini (değişkenler ve sabitler) geçici olarak depolamak, yöntemleri çağırırken parametreleri iletmek, dönüş adresini saklamak için tasarlanmış özel olarak düzenlenmiş bir bellek alanıdır. Bir yığının yönetimi, bir yığına kıyasla oldukça basittir. Yığının tepesindeki karşılık gelen yazmacın değerindeki değişime dayanır. Yığın boyutu küçültüldüğünde, nesneler basitçe kaybolur.

C# programı

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

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

§ CLR tarafından doğrudan yürütülmeye uygun Taşınabilir Yürütülebilir Dosya (.exe uzantılı PE dosyası),

§ Dinamik Bağlantı Kitaplığı Dosyası (.dll uzantılı DLL dosyası), bir uygulama içinde bir bileşen olarak yeniden kullanılmak üzere tasarlanmıştır.

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

Çevre kavramı. Çevresel faktörler ve sınıflandırılması

Ekolojide "çevre" terimi geniş ve dar anlam kelimeler. Kelimenin geniş anlamıyla çevre, çevredir. Çevre, Dünya gezegeninde var olan tüm yaşam koşullarının toplamıdır. Amerikalı biyolog P. Ehrlich, 60'ların sonunda yayınlanan "Nüfus Patlaması" adlı kitabında çevreyi mecazi olarak şöyle tanımladı: "Çevremiz, toprak, su ve gazlı bir atmosferden oluşan türünün tek örneği" bir deridir ". , mineral besinler ve canlı organizmalar, aksi takdirde olağanüstü olmayan bir gezegeni kaplar." Çevre, kelimenin dar anlamıyla bir yaşam alanıdır. Habitat, organizmayı çevreleyen ve doğrudan etkileşime girdiği doğanın bir parçasıdır. Her organizmanın habitatı çeşitli ve değişkendir. Canlı ve cansız doğaya ait birçok unsur ile insanın ekonomik faaliyeti sonucunda ortaya koyduğu unsurlardan oluşur.
Organizma ile ilgili çevrenin tüm unsurları eşit değildir: bazıları onun hayati aktivitesini etkilerken, diğerleri ona kayıtsızdır. Bu bağlamda çevrenin tüm unsurları aşağıdaki gibi gruplandırılmıştır.
1. Nötr faktörler, çevrenin vücudu etkilemeyen ve içinde herhangi bir reaksiyona neden olmayan unsurlarıdır.
2. Çevresel faktörler, bireysel gelişiminin en azından bir aşamasında vücudu doğrudan veya dolaylı olarak etkileyebilen ve belirli bir adaptif reaksiyona sahip olmasına neden olan çevre unsurlarıdır.
Çevresel çevresel faktörler çeşitlidir, farklı bir doğaya ve eylem özgüllüğüne sahiptirler. Vücut için önemlerine göre iki gruba ayrılırlar:
1. Varoluş koşulları veya yaşam koşulları, organizmanın onsuz var olamayacağı ve ayrılmaz bir birlik içinde olduğu çevresel faktörlerdir. Bu faktörlerden en az birinin yokluğu organizmanın ölümüne yol açar.
2. İkincil faktörler, hayati olmayan, ancak organizmanın varlığını değiştirebilen, iyileştirebilen veya kötüleştirebilen çevresel faktörlerdir.
Kaynaklarının doğası gereği çok çeşitli çevresel faktörlerin analizi, onları üçe ayırmamızı sağlar. büyük gruplar, her birinde sırayla alt gruplar ayırt edilebilir:
I. Abiyotik faktörler, vücudu doğrudan veya dolaylı olarak etkileyen cansız faktörlerdir. Dört alt gruba ayrılırlar:
a) iklim faktörleri - bunların tümü iklimi şekillendiren ve organizmaların yaşamını etkileyebilecek faktörlerdir (ışık, sıcaklık, nem, atmosfer basıncı, rüzgar hızı vb.);
b) edafik veya toprak faktörleri, organizmaların yaşamını etkileyen toprağın özellikleridir. Bunlar sırasıyla fiziksel (mekanik bileşim, yumruluk, kılcallık, görev döngüsü, hava ve nem geçirgenliği, hava ve nem kapasitesi, yoğunluk, renk vb.) ve kimyasal (asitlik, mineral bileşimi, humus içeriği) özelliklerine ayrılır. toprak;
c) orografik faktörler veya kabartma faktörleri, kabartmanın doğasının ve özelliklerinin organizmaların yaşamı üzerindeki etkisidir (arazinin deniz seviyesinden yüksekliği, arazinin ekvatora göre enlemi, arazi, arazinin ufka eğim açısıdır, arazinin maruz kalması, arazinin ana noktalara göre konumudur);
d) hidrofiziksel faktörler - bu, tüm durumlardaki suyun (sıvı, katı, gaz) ve fiziksel çevresel faktörlerin (gürültü, titreşim, yerçekimi, manyetik, elektromanyetik ve iyonlaştırıcı radyasyon) organizmaların yaşamı üzerindeki etkisidir.
II. Biyotik faktörler, canlı doğanın faktörleri, canlı organizmaların birbirleri üzerindeki etkisidir. Çok çeşitli doğaya sahiptirler ve yalnızca doğrudan değil, aynı zamanda dolaylı olarak çevreleyen inorganik doğa yoluyla da hareket ederler. Etkileyen organizmanın türüne bağlı olarak, iki gruba ayrılırlar:
a) tür içi faktörler - bu, aynı türden bireylerin vücut üzerindeki etkisidir (tavşandan tavşana, çamdan çama vb.);
b) türler arası faktörler - bu, diğer türlerin bireylerinin vücut üzerindeki etkisidir (tavşandaki kurt, huş ağacındaki çam vb.).
Belirli bir krallığa ait olmaya bağlı olarak, biyotik faktörler dört ana gruba ayrılır:
a) fitojenik faktörler - bu, bitkilerin vücut üzerindeki etkisidir;
b) zoogenik faktörler - bu, hayvanların vücut üzerindeki etkisidir;
c) mikrojenik faktörler - bu, mikroorganizmaların (virüsler, bakteriler, protozoa, riketsiya) vücut üzerindeki etkisidir;
d) mikojenik faktörler - bu, mantarların vücut üzerindeki etkisidir.
III. Antropojenik faktörler, organizmaların yaşamı üzerindeki bir dizi insan etkisidir. Etkilerin doğasına bağlı olarak, iki gruba ayrılırlar:
a) doğrudan etki faktörleri - bu, bir kişinin vücut üzerindeki doğrudan etkisidir (çim biçme, ormansızlaşma, hayvanları vurma, balık tutma vb.);
b) dolaylı etki faktörleri - bu, bir kişinin varlığı gerçeğinden kaynaklanan etkisidir (her yıl, insanları soluma sürecinde, 1.1x1012 kg karbondioksit atmosfere girer ve çevre 2,7x1015 kcal enerji gıda şeklinde) ve ekonomik faaliyetler (tarım, sanayi, ulaşım, ev faaliyetleri vb.) yoluyla geri çekilir.
Etkinin sonuçlarına bağlı olarak, bu antropojenik faktör gruplarının her ikisi de, organizmaların veya organizmaların yaşamını iyileştiren pozitif faktörlere (bitkilerin ekilmesi ve beslenmesi, hayvanların üremesi ve korunması, çevre koruma vb.) Ayrılır. sayılarını artırmak ve organizmaların yaşamını bozan veya sayılarını azaltan olumsuz faktörler (ağaçların kesilmesi, çevre kirliliği, yaşam alanlarının tahrip edilmesi, yolların inşası ve diğer iletişim).
Çevresel faktörlerin sabitlik derecelerine göre orijinal sınıflandırması, yani. periyodikliklerine göre, A.S.'yi önerdi. Monchadsky. Bu sınıflandırmaya göre, aşağıdaki üç faktör grubu ayırt edilir.
1. Birincil periyodik faktörler, Dünya'da yaşamın ortaya çıkmasından önce hareket etmeye başlayan ve canlı organizmaların bunlara hemen uyum sağlaması gereken faktörlerdir (günlük aydınlatma periyodikliği, mevsimlerin mevsimsel periyodikliği, ay ritimleri, vb.).
2. İkincil periyodik faktörler, birincil periyodik faktörlerin (nem, sıcaklık, gıda dinamikleri, sudaki gaz içeriği vb.) sonucu olan faktörlerdir.
3. Periyodik olmayan faktörler - bunlar, doğru periyodikliğe veya döngüselliğe sahip olmayan faktörlerdir (edafik faktörler, antropojenik faktörler, su, atmosfer veya topraktaki kirleticilerin içeriği vb.).
Zaman içindeki değişimin doğasına bağlı olarak, çevresel faktörler de üç gruba ayrılır:
1. Düzenli periyodik faktörler, günün saatine, yılın mevsimine veya gelgitlerin ritmine (ışık, sıcaklık, gündüz saatleri vb.) bağlı olarak güçlerini değiştiren faktörlerdir.
2. Düzensiz faktörler, açıkça tanımlanmış bir periyodikliğe sahip olmayan faktörlerdir (farklı yıllardaki iklim faktörleri, sel, kasırga, deprem vb. sonucu felaket kaynaklı faktörler).
3. Yönlendirici faktörler, uzun bir süre boyunca tek bir yönde hareket eden faktörlerdir (iklimin soğuması veya ısınması, bir rezervuarın aşırı büyümesi, bir yerde otlatma vb.).
Vücudun çevresel bir faktörün etkisine verdiği tepkinin doğasına göre, aşağıdaki çevresel faktör grupları ayırt edilir:
1. Tahriş edici maddeler, fizyolojik fonksiyonlarda ve biyokimyasal reaksiyonlarda adaptif değişikliklere neden olan faktörlerdir.
2. Değiştiriciler, vücutta adaptif anatomik ve morfolojik değişikliklere neden olan faktörlerdir.
3. Sınırlayıcılar, organizmanın belirli koşullarda var olmasını imkansız hale getiren ve organizmanın yayılması için ortamı sınırlayan faktörlerdir.
4. Sinyal cihazları, diğer faktörlerdeki değişimi gösteren ve uyarı sinyali görevi gören faktörlerdir.
Vücutla etkileşime girerken tüketim olasılığına bağlı olarak, çevresel faktörler iki kategoriye ayrılır:
1. Koşullar, zaman ve mekanda değişen, faktörün gücüne (sıcaklık, nem, atmosferik basınç, toprağın fiziksel özellikleri vb.) bağlı olarak vücudun farklı tepkiler verdiği çevresel çevresel faktörlerdir. Koşullar vücut tarafından tüketilmez ve tüketilmez.
2. Kaynaklar, bir organizmanın tükettiği, organizma ile etkileşimin bir sonucu olarak miktarlarının (mevcut stok) azalabileceği anlamında tükettiği tüm çevresel çevresel faktörlerdir. Kaynaklar, öncelikle bir organizmanın vücudunu oluşturan maddeler, hayati faaliyet süreçlerinde yer alan enerji ve ayrıca belirli aşamalarının gerçekleştiği yerlerdir. yaşam döngüsü.
Çevresel faktörlerin yukarıdaki sınıflandırmalarına ek olarak, ekolojide araştırmacının ilgi alanlarına bağlı olarak çeşitli kriterlere dayanan başka sınıflandırmalar da kullanılmaktadır.

.NET Framework, Windows sisteminin bileşenlerinden biridir. Yeni nesil uygulamalar oluşturmanıza ve kullanmanıza olanak tanır. platformun amacı .NET Çerçevesi :

  • tutarlı oluşturma nesne yönelimli programlama ortamıçeşitli uygulama seçeneklerine izin vermek: kod yerel olarak saklanabilir ve çalıştırılabilir; yerel olarak çalıştırın ve İnternet üzerinden dağıtın; veya uzaktan çalıştırın
  • yazılım dağıtımını ve sürüm oluşturma çakışmalarını en aza indiren bir kod yürütme ortamı sağlar;
  • bilinmeyen bir geliştirici veya kısmi güvene sahip bir geliştirici tarafından oluşturulan kod dahil olmak üzere ortamda kod yürütme güvenliğinin sağlanması;
  • betikli veya yorumlamaya dayalı ortamlardaki performans sorunlarını ele almak için bir kod yürütme ortamı sağlamak;
  • geliştiricilerin çalışmalarını tamamen farklı uygulamalarda birleştirmek: hem Windows uygulamalarında hem de web uygulamalarında;
  • veri alışverişinin tüm alanlarında endüstri standartlarının kullanılması ve bunun sonucunda .NET Framework'te oluşturulan kodun diğer programlarla uyumluluğunun sağlanması.