Mono , Microsoft Windows işletim sistemi için uygulamalar oluşturmak isteyen geliştiriciler için Microsoft tarafından geliştirilen .NET programlama dili ve yazılım çerçevesinin açık kaynaklı bir uygulamasıdır. .NET ve Mono arasındaki temel fark, ikincisinin GNU / Linux sistemlerinde de çalışan uygulamalar oluşturmanıza izin vermesidir.
Novell sponsorluğunda
Novell tarafından desteklenen Mono projesi, Linux geliştiricilerinin, benzeri görülmemiş bir üretkenlikle, GNU / Linux, Microsoft Windows ve Mac OS X işletim sistemleriyle uyumlu, çapraz platformlu zengin uygulamalar oluşturmasına izin veriyor. Ortak Dil Çalışma Zamanı ve C # derleyicisi için ECMA standartlarına dayanır.
Dil birlikte çalışabilirliği sağlar
Yazılım, yaygın olarak çeşitli programlama dillerinde dil birlikte çalışabilirlik sağlayan FCL (Framework Class Library) olarak bilinen büyük bir sınıf kitaplığından oluşur. Ayrıca ağ iletişimi, web uygulaması geliştirme, sayısal algoritmalar, kullanıcı arayüzü, veritabanı bağlantısı, veri erişimi ve kriptografi sağlar.
Büyük GNU / Linux platformlarında desteklenir
Oldukça popüler bir programlama dili olmak ve Banshee müzik çalar ve organizatörü gibi Mono'da yazılmış çok sayıda önemli Linux uygulaması olduğu için, bu proje Arch Linux, Debian, CentOS gibi büyük GNU / Linux platformlarında destekleniyor. Ubuntu, openSUSE ve Gentoo.
Çapraz platform, açık kaynak .NET çerçevesi
.NET programlama dilinin Linux uygulaması olmasına rağmen, Mono, yalnızca GNU / Linux'ta değil, Microsoft Windows ve Mac OS X gibi ana işletim sistemlerinde desteklenen çapraz platform ve açık kaynaktır.
Kullanılabilirlik, geliştirme ve desteklenen mimariler
GNU / Linux üzerinde, Mono projesi bir kaynak arşiv olarak dağıtılır, bu da kullanıcıların yazılımı yüklemeden önce el ile yapılandırmasını ve derlemesini gerektirir. Mutlu bir şekilde, Mono'nun en son sürümünü çeşitli dağıtımların varsayılan yazılım depolarından (yukarıda listelenmiştir) yükleyebilirsiniz. Hem 64 bit hem de 32 bit mimariler şu anda desteklenmektedir.
Bu sürümde yeni olan :
- Microsoft'un açık kaynak kodunun benimsenmesi
- C # 6.0
- Kayan nokta optimizasyonları
- 2.0, 3.5 ve 4.0 meclisleri için destek verdik
- Güncellenmiş IKVM
- Daha açık Debugger ek yükü
- Temel PowerPC64 LE desteği
Sürümde yeni :
- Microsoft'un açık kaynak kodunun benimsenmesi
- C # 6.0
- Kayan nokta optimizasyonları
- 2.0, 3.5 ve 4.0 meclisleri için destek verdik
- Güncellenmiş IKVM
- Daha açık Debugger ek yükü
- Temel PowerPC64 LE desteği
Sürüm 4.2.2.30 :
- Microsoft'un açık kaynak kodunun benimsenmesi 'de yeni olan nedir?
- C # 6.0
- Kayan nokta optimizasyonları
- 2.0, 3.5 ve 4.0 meclisleri için destek verdik
- Güncellenmiş IKVM
- Daha açık Debugger ek yükü
- Temel PowerPC64 LE desteği
Sürüm 4.0.4.1 :
- Microsoft'un açık kaynak kodunun benimsenmesi 'deki yenilikler
- C # 6.0
- Kayan nokta optimizasyonları
- 2.0, 3.5 ve 4.0 meclisleri için destek verdik
- Güncellenmiş IKVM
- Daha açık Debugger ek yükü
- Temel PowerPC64 LE desteği
Sürüm nedir? sürüm 4.0.2.5 :
- Microsoft'un açık kaynak kodunun benimsenmesi
- C # 6.0
- Kayan nokta optimizasyonları
- 2.0, 3.5 ve 4.0 meclisleri için destek verdik
- Güncellenmiş IKVM
- Daha açık Debugger ek yükü
- Temel PowerPC64 LE desteği
Yeni olan nedir? 3.12.1 sürümünde:
- SKIP TLS güvenlik açığı için yama
- FREAK güvenlik açığına yönelik yama
- SSLv2'nin Kaldırılması
Yeni olan nedir? 3.12.0 sürümünde:
- zirveler:
- SGen'de önemli performans ve hafıza kullanımı iyileştirmeleri.
- Verimliliği en üst düzeye çıkarmak ve İpliklerin sayısını en aza indirmek için ThreadPool'un sezgisini geliştirin
- Yeni Windows yükleyicide deneysel önizleme
- Çöp Toplayıcı:
- Ana yığın bloklarının, ana koleksiyonun verimliliğinin artırılması için nasıl manipüle edildiği yeniden düzenlendi.
- Tahsisat paketlerinin daha iyi boyutlandırılmasıyla daha az bellek tüketimi.
- Büyük yığın boyutlandırması için daha kararlı ve beklenmedik ani artışlardan kaçınmak için daha basit bir sezgisel kullanıma geçti.
- Paralel toplayıcıyı kaldırdı, etkili bir hızlandırma sağlamayan deneysel bir özellikti. Gelecekte işleyen bir tasarımla geri getirilecek.
- Sabit yığın yapılandırması kaldırıldı, yeterli performans artışı sağlamayan deneysel bir özellikti. Ek karmaşıklık için kaldırıldı.
- Kanaryalar artık kreş için destekleniyor. Kanaryalar, bellek bozulmasını algılamak için hafif bir hata ayıklama aracıdır. Yeni "kreş-kanaryalar" ile etkinleştirin. MONO_GC_DEBUG ortam değişkeninde seçenek.
- threadpool:
- Havuzun boyutlandırılması için uyarlanabilir tepe tırmanışına geçti. Bu, eski algoritmanın çok fazla iş parçacığı döndürerek thrashingin neden olacağı durumları düzeltir.
- Denetim iş parçacığı, bir süre için yeni iş gönderilmediğinde artık derin uykuya giriyor. Bu, pille çalışan hedeflere güç tasarrufu yapmalıdır.
- Süre:
- Windows, amd64 ve koldaki yeni askıya alma makinelerini uygulayın. Yeni makinenin daha güvenilir olduğu biliniyor ve platformun gelişmiş diş çekme özellikleri kullanıldığında önemli ölçüde daha az askıda kalıyor.
- Windows'un minimum sürüm desteği şimdi WinXP SP2, daha önce Windows 2000 idi. (Ne bekliyorsun?)
- Kalıp:
- 64 bit Windows için hata ayıklayıcı desteği.
- Kernel destekli örnekleme olmadan unix hedeflerinde istatistiksel örneklemeyi güvenilir ve işlevsel hale getirmek için profilleyicide çoklu düzeltmeler.
- Performans:
- X86 kodu artık basılmamış kod üretiyor. Bu, modern cpus'ta daha hızlıdır ve daha küçük gevşeme bilgileri üretir.
- Sıcak kilitler altında daha az iş yapmak ve daha iyimser meta veri yüklemesi yapmak için yeniden çalıştırılan dahili çalışma zamanı kilitleme.
- Sınıf Kitaplıkları:
- OS X artık kqueue kullanan deneysel bir FileSystemWatcher kullanıyor. Çalışıyor ve oylama gerektirmiyor.
- Ambalaj:
- Yeni deneysel Windows yükleyici mevcut. Bu, teknik bir önizleme olduğundan, herhangi bir geri bildirim bekleriz.
- Bilinen Sorunlar:
- Yeni OS X dizisi FileSystemWatcher, çok büyük dizinleri izlerken tüm dosya tanımlayıcılarını kullanır.
- Kanaryalar 64 bit altında çalışmayabilir ve bazı sabitleme durumlarında yanlış raporlar üretemez.
- Hata düzeltmeleri:
- Çalışma zamanı hata düzeltmeleri:
- Kapanma sırasında hata ayıklayıcı iş parçacığındaki appdomain öğesinin kaldırılması geri çağırma işlemi çağrıldığında kapatma işleminden kaçınılmasını önleyin. Düzeltmeler # 24342.
- EH bilgisi için epilog boyutunun hesaplanmasını düzeltin. Düzeltmeler # 24577.
- Bir sınıf başlatıcısı çalışmayı tamamlamadan önce bir varyantı başlatırsa gerçekleşen bir sınıf başlatma yarışı düzeltin. Düzeltmeler # 23242.
- OP_LOCALLOC'u kol üzerinde sabitleyin, böylece boyut büyük olsa bile param alan boyutuyla doğru şekilde ayarlayın. Düzeltmeler # 24221.
- i8 / i16 argümanlarının uzantısını i32'ye i64'e devreden çıkar, çünkü ios sesli arama kuralı bunları i32'den farklı olarak iletir. Düzeltmeler # 22800.
- Talimatların geçersiz kılınması için NULLIFY_INS () öğesini kullanın ve sızıntı geçişindeki öneklerden kaçınmak için phi düğüm yönergeleri oluşturmak için MONO_INST_NEW aracını kullanın. Düzeltmeler # 24006.
- Doğrudan aramaların, llvm yöntemleri arasında yapılma şeklini yeniden yazın. Daha önce tüm çağrılar plt girişleri için yapıldı ve plt giriş sembolleri, yöntem doğrudan .set assembler yönergesi kullanılarak çağrılabilirse karşılık gelen yönteme işaret edecek şekilde takma isimlendirildi. Bu, daha yeni LLVM / CLANG sürümleriyle çalışmaz gibi görünmüyor, bu yüzden LLVM tarafında Value :: replaceAllUsesWith () işlevini kullanın. Düzeltmeler # 23976.
- İşlem işlemlerini paylaşılmayan hale getirin. Düzeltmeler # 23423.
- OS X / x86 üzerinde tek bir fp üyesini içeren vtypes'lerin dönüş komutlarını döndürme. Düzeltmeler # 23813.
- SRE'yi düzeltin. Düzeltmeler # 19039.
- NEWOBJ'den yapılan çağrılar için 5dbf97e66057f8626c53fcea30f1988d6627e5a2'yi uygulayın. Düzeltmeler # 23557.
- Her bir CASTCLASS_CACHE düzeltme ekini, yöntem dizininden ve yöntem başına bir sayaçtan benzersiz bir tanımlayıcı oluşturarak benzersiz hale getirin. Düzeltmeler # 23478.
- Açık düzen ile genel sınıflara izin vermeyin. Düzeltmeler # 23438.
- Hata ayıklayıcısını sanal çağırmak için bir seçenek ekleyin. # 23385 için düzeltmenin bir parçası.
- Threadpool iş parçacığının yeniden adlandırılmasına izin ver. Düzeltmeler # 23206.
- Windows'daki özel durum işleyicimizin kayıt kaydını düzeltin. Düzeltmeler # 23221.
- Gshared'den gsharedvt'a çağrıları, dolaylı olarak çalışma zamanında dolaylı olarak yapılabildiği için, bir örnekleme bulabiliriz ve aramayı başaramaz, performans sorunlarına yol açabiliriz. Düzeltmeler # 23021.
- Bir gsharedvt türüne başvurmuyorsa SIZEOF op kodunu gsharedvt koduna izin verin. Düzeltmeler # 22711.
- mono_marshal_free_ccw () öğesini düzeltin. Düzeltmeler # 22414.
- Sınıf Kitapları hata düzeltmeleri:
- DbEnumerator current özelliğini okuma verilerini klonlamak için giderir. Düzeltmeler # 24452
- Farklı bir sütun türünü kullanarak metin verilerinin 4000 karakterden daha uzun olmasına izin ver. Düzeltmeler # 21172.
- Oluşturulan türler için MonoGenericClass: GetCustomAttributes () öğesini uygulayın. Düzeltmeler # 23769.
- Geliştirilmiş BlockingCollection.AddAny. Düzeltmeler # 22775.
- DataContractJsonSerializer için KnownTypes uygulayın. Düzeltmeler # 23058
- HttpQSCollection.ToString şimdi url değerleri kodlar. Düzeltmeler 22557.
- Yalnızca ContentType değiştikten sonra SetupRequestAsync öğesini çağırın. Düzeltmeler 19529.
- Çocuk görevi NotOnFaulted kullanıldığında üst görevi bilgilendirin. Düzeltmeler # 23594
- AdjustementRules göz ardı edildiğinde TZ geçişlerini kullanın. Düzeltmeler 23170.
- Timespan biçimlendirmeyi yeniden yazıyor. Düzeltmeler # 23376
- Kayan nokta sayılarının Geliştirilmiş Json serileştirmesi. DataContractJsonSerializer, type nesnesinden oluşturulduğunda, floating.point numaralarının serileştirilmesi mümkün olmadı. Düzeltmeler 21583.
- Kayan nokta sayısının nesne olarak Json serileştirilmesini sınama. 21583'ü kapsar.
- Rss20ItemFormatter.ReadFrom artık, Guid PermaLink olduğunda Kimliği ayarlar. Düzeltmeler 23262.
- hatayı düzeltin # 23318 - XComment.ToString () "geçersiz" i & quot; değerler.
- UNIX yolundan Uri ve RelativeOrAbsolute artık göreceli. Düzeltmeler 22954.
- UriParseComponents, UserInfo'daki ‘@ 'kodunu artık çözmez. Düzeltmeler 23246.
- En-NZ tanımlayıcılarını güncelleyin. Düzeltmeler # 22212
- Hata için son düzeltmem için güncelleme # 22129.
- Eşzamansız çağrıdaki parametreleri kopyala / değiştir; Hata # 22129.
- Belirtilmemişse, dizi öğelerinin geçersiz olduğunu varsayalım. Düzeltmeler # 19012.
- ShouldSerialize {V} temelinde isteğe bağlı serileştirme eklendi. SerializationCodeGenerator ve XmlSerializationWriterInterpreter, nesnesinin, yanlış döndüren ShouldSerialize {V} () adında bir yöntemi varsa {V} adında bir özniteliği serileştirmeyecektir. {V} Belirtilen özellik, henüz belirlenemeyen bir özellik olsa bile, özelliğin serileştirilmesinden önce doğru olarak işaretlenir. Düzeltmeler # 1852.
- GMT DateTimeOffset artık uygun şekilde ayrıştırıldı. Düzeltmeler # 22851. GMT tarih biçimleri, useutc değerini true olarak ayarladığından, şimdi useutc'un sıfır ofseti ile DateTimeOffset öğesinin kontrol edilmesi için kontrol edilir.
- Geliştirilmiş CalendricalCalculations fixed_from_dmy yöntemleri. Düzeltmeler # 21930. Bazı durumlarda, fixed_from_dmy, o yılın ay sayısından daha büyük olan ay parametresiyle birlikte kullanılır. Yıl, ay parametresi geçerli olana kadar artmıştır.
- İlkini içeren tüm alt dizinleri numaralandır. Düzeltmeler # 22857
- ContentDisposition adını kodlayın. Düzeltmeler # 18422
- Gerektiğinde serileştirilmiş nesneler dolaylı olarak dönüştürülür. Düzeltmeler # 20403.
- Küçük arabellekle ClientWebSocket.ReceiveAsync () düzeltin; hata # 22704.
- Tokenize yalnızca aralık değerlerinde tire. Düzeltmeler # 22764
- Yalnızca ofset ile zaman biçimi eklendi. Düzeltmeler # 22558.
- # 6512 hatasını düzeltin (Mikkel Kruse Johnsen ile) - GET parametrelerini seri hale getirmeyin.
- UriComponents.SerializationInfoString için destek eklendi. Düzeltmeler # 21571.
- Varsayılan müşteri ve sıfırın işlenmesini birleştirin. Düzeltmeler # 22591
- SendAsync'in özyinelemeli çağrıları yürütmekte serbest olmasını sağlayın. Düzeltmeler # 22724
- Eşzamanlı isteklere izin vermek için # 22179’ı düzeltin.
- DateTime.Parse artık sınırsız sayıda kesirli basamağı işliyor. Bu değişiklik, .NET'in ISO8601 formatını sınırsız sayıda kesirli basamağıyla ayrıştırması nedeniyle yapılmıştır. Düzeltmeler # 22417.
- ISO8601FractionalDigits testi eklendi. Kapaklar # 22417.
- Yansıma isabetini gerçek yürütme noktasına düşürme. Geçici çözümler # 22522
- RequestMessage.RequestUri.AbsoluteUri'yi güncelleyin. Düzeltmeler # 22383
- Sonlandırıcıdan çağrıldığında SerialPortStream.Dispose () tarafından atılan istisnaları yakalayın. Düzeltmeler # 15514
- KeyPairPersistence artık klasör izinlerini düzeltmeye çalışıyor. Klasör izinleri düzeltilebilirse artık bir istisna atılmaz. Düzeltmeler 19274 hatası.
- C # Derleyici hata düzeltmeleri:
- İşaretçi tipi, uçucu bir alanın türü olarak kullanılabilir. Düzeltmeler # 23770
- Değer eşleşmesi bölüm başlangıcı olmadığında sabit anahtar bölümünü doğru şekilde tanımlayın. Düzeltmeler # 23475
- Birleştirilmemiş nullable türünde doğru / yanlış kullanıcı işleyicileri olup olmadığını kontrol edin. Düzeltmeler # 23199
- Koşullu belirtecin daha fazla ayarlanması. Düzeltmeler # 23319
- Kalıtsal kısıtlamalar üye önbelleğini yalnızca temel türlerden değil, aynı türden doldurun. Düzeltmeler # 23017
- Eksik önbelleğe alma işleminin tamamlanmamış genel türlerini kaldırma. Düzeltmeler # 22393
- O zaman koşulu lambda olan üçlü ifadelerin ayrışması. Düzeltmeler # 22523
- MSBuild hata düzeltmeleri:
- ToolTask yürütme yolunu oluştururken ToolPath kullanın. Düzeltmeler # 22981
- zirveler:
- Tüm çalışma zamanı boyunca önemli performans ve ölçeklenebilirlik iyileştirmeleri.
- Windows 64 bağlantı noktasını bitirdi.
- USB bağlantıları için optimize edilmiş Debugger tel protokolü.
- Debugger:
- Güncellenmiş tel protokolü, USB hata ayıklama yaparken bulunanlar gibi yüksek gecikme bağlantılarını daha iyi kullanır.
- İstemci kitaplığı artık bilgi ve toplu iş isteklerini agresif bir şekilde önbelleğe alıyor. Bir test senaryosunda, iletilen tek adımlı paketler 2233'ten sadece 16'ya düştü, gecikme süresi saniyeden 20 milisaniyeye çıktı.
- Performans:
- Artık JIT, daha uzun kalanları ikiye ayrılarak daha iyi kodlar üretiyor.
- Yalnızca bir kez çağrılan delegeler için 10 kat daha hızlı kod oluşturulur. Async ve LINQ gibi C # özellikleri, bu delegelerin çoğunu üretir, bu nedenle bu iyileştirme herkesi etkileyecektir.
- Geliştirilmiş takma ad analizi artık ikinci sıra takma adlarını işleyebilir ve boş çekleri kaldırabilir.
- Çalışma zamanı artık yoğun iş yüklerini önemli ölçüde daha hızlı ve daha ölçeklenebilir hale getirebilen eşzamanlı olarak okunabilir bir hashta sahiptir.
- Çöp Toplama:
- Çöp toplayıcının temel veri yapılarından biri optimize edildi; toplama sürelerinde% 5-10 oranında azalma sağlanmalıdır.
- Hata düzeltmeleri:
- Süre:
- 98bbf8512aec0fa01b4426583280f6d231d22187 tarafından oluşturulan makine bağlantı noktalarının sızmasını onarın. Düzeltmeler # 22068
- ios üzerindeki Process.PrivateMemorySize64 vb. Düzeltmeler # 21882
- Enum- & gt; int cast'leri gsharedvt koduna sabitleyin. Düzeltmeler # 21893
- Normalde gsharedvt yöntemlerinden genel arama yapmaktan kaçının, bunun yerine rgctx altyapısını kullanın. Düzeltmeler # 21677
- Başka bir yerel tip sorununu düzeltin. Umarım # 21670 ve # 21636 giderir.
- Açık boş çekleri ortadan kaldırmak için diğer ad bilgilerini kullanın. Düzeltmeler # 21645
- Gerektiğinde MonoField: GetFieldOffset () içindeki alanları başlat. # 21604 bölümünün düzeltmeleri
- Yakalama bloklarının dışındaki gerdirme işlemlerini düzgün şekilde gerçekleştirin. Düzeltmeler # 20412
- Çalışma zamanı birimi testlerini linux üzerinde devre dışı bırakın çünkü kütüphaneler arasındaki dairesel bağımlılıklar nedeniyle bağlantı kurulamıyor. Düzeltmeler # 21520
- Bir yöntem üstbilgisini ayrıştırırken, kullanılabilir genel bir içeriği iletdiğimizden emin olun. Düzeltmeler # 21388
- Yeni mono_domain_set_config işlevi eklendi; ConfigurationErrorsException öğesini # 10468 numaralı telefondan gidermek için kullanılır
- Yalnızca maverick yığın boyutu kesmesini ana dişe uygulayın. Düzeltmeler # 10096
- Temp dizinini / tmp olarak kodlamayın, bunun yerine g_get_tmp_dizini kullanın. Düzeltmeler # 20894
- TLS depolama alanına güvenmek yerine, açık iş parçacığı GC verileri. Düzeltmeler # 20360
- Make WaitForPendingFinalizers () gerçekten bir önceki GC tarafından eklenen finalizörleri bekler. Düzeltmeler # 20503
- marshal7.cs testini düzeltin, uzunlar 32 bit linux üzerinde 4 bayta hizalanabilir ve çalışma zamanı yapı boyutlarını 8 bayta artık hizalamaz. Düzeltmeler # 20788
- Çözülme sırasında LMF çerçevelerinin patlamasını düzeltin. Düzeltmeler # 20616
- Belirtilen boyutta olan ByValTStr türlerinin sıralamasını onarın. Düzeltmeler # 20674
- MonoJitInfo kodunun çözülmesini düzeltin. Düzeltmeler # 16439
- / dev / zero gibi sihirli sıfır boyutlu dosyalara görünüm oluşturmayı mümkün kılın. Düzeltmeler # 19460
- Dinamik yöntemlerden serbest statik bağlı delege sarmalayıcıları. Düzeltmeler # 19058
- Adlandırılmış bellek segmentleri için çift kaymanın muhasebe işlemini gerçekleştirmeyin. Düzeltmeler # 20591
- Bağlı konuları birleştirmekten kaçının. Düzeltmeler # 19343
- Diğer meclislerde tanımlanan özel marshallers için desteği düzeltin. Düzeltmeler # 20020
- Statik alan olarak boş bir yapıyı içeren bir sınıfa bir jit assertion düzeltin. Düzeltmeler # 20349
- Kyle Edwards kyleedwardsny@gmail.com'dan uygulanan yama. Fix isinf () clang ile kontrol edin. Düzeltmeler # 20244
- Enum türleri için kısıtlanmış tipte paket kaldırmayı düzeltin. Düzeltmeler # 18371
- Sınıf Kitaplıkları:
- Alıntı yapılan dosya adı değeri. Düzeltmeler # 21960
- Kısmi yığın boyutlarını doğru şekilde ele alın. Düzeltmeler # 20583
- Tweak Dictionary'in başlangıç kapasitesinin daha muhafazakar olması. Düzeltmeler # 21375
- InvokeDynamic kullanıldığında IL ile oluşturulan kapalı-null delegeler kullanın. Düzeltmeler # 21196
- Görev testinde bir yarış düzeltin. Düzeltmeler # 20921
- Negatif bir sayıya sahip bir diziyi ve sıfırı değerlendiren bir fragmanı çözerken değerler dizisini sözleşme. Düzeltmeler # 20456
- İfade sütunları ve IsNull ile sorunu çözer. Düzeltmeler # 20925
- Başı ayırma olmadan dizi qsort. Düzeltmeler # 20922
- Enum :: TryParse, önde gelen beyaz alanları göz ardı eder. Düzeltmeler # 20870
- DelegatingHandler öğesinin bertarafı düzeltildi. Düzeltmeler # 20818
- Özet kimlik doğrulamasını düzeltin (bug # 18799)
- Yalnızca boşta kalma zamanlayıcısından ServicePoints uygulamasını geri yükleyin (# 19823 düzeltmesi)
- Değeri de karşılaştırmak için ConcurrentDictionary.Contains (KeyValuePair) olarak değiştirildi. Düzeltmeler # 16990
- System.ServiceModel.Security aksamı ekleyin. Düzeltmeler # 20108
- FileInfo'dan NET_2_1 koşullu blokları kaldırıldı. Düzeltmeler # 19862
- C # Derleyici:
- Boole yüklemeleri için kod dizisini günceller. Düzeltmeler # 21685
- Etkin taban sınıfı, miras alınan türleri içerebilir. Düzeltmeler # 21390
- Yinelenen özgeçmiş kaydının tutulması. Düzeltmeler # 21387
- Eksik paragraf bağımsız değişkenini bildirirken bağımsız değişkenler boş olabilir. Düzeltmeler # 21215
- Taşınmış argümanların akış analizi. Düzeltmeler # 20983
- Yeni başlatıcıyı çalıştır, yalnızca uyumsuz içerik bağlamında çekleri bekler. Düzeltmeler # 20614 [system.data] Değişmez kültür kullanarak sayısal ifadeleri ayrıştır. Düzeltmeler # 20582
- Reachability analizi, yerel değişken bildirimlerini dikkate almamalıdır. Düzeltmeler # 20603
- Kapsayıcı türlerinin eksik bağımlılıklarını kontrol edin. Düzeltmeler # 20382
- Sol taraftaki ifadeyi test ederken etkinlik ifadesini çözün. Düzeltmeler # 20493
- Mantıksal operatörleri kullanmayan ikili ifadelerin akış analizi. Düzeltmeler # 20515
- MSBuild:
- 4.5.1 çerçevesini ekleyin. Düzeltmeler # 20827
- Mülk referansları ile ayrıştırma koşulları. Düzeltmeler # 20634
- Kurucu sözdizimini kullanarak özellik işlevlerini uygular. Düzeltmeler # 12999
- Mono Hata Ayıklayıcı:
- Yüklü olan bir gruba başvuruyorsa etkinlik isteklerini temizlemekten kaçının. Bunun yerine, derleme başvurusunu olay isteğinden kaldırın, böylece etkin kalır. Düzeltmeler # 9924.
- zirveler:
- Çalışma zamanı performans sayaçları, performans sayacı bilgilerinin profil oluşturma araçlarına ve özellikle de Xamarin'in yaklaşan profilleyicisine uygulanmasına olanak veren profilleyiciye entegre edilmiştir.
- Profiler artık istatistiksel mod için geri dönüşler üretiyor. Profilcinin izleme modu artık ARM üzerinde çalışıyor.
- Şimdi nuget'i mac'a dağıtıyoruz.
- Debugger:
- Hata ayıklayıcı artık satır ve sütun aralıklarını destekliyor. pdb2mdb bunu destekler. Not: Araç zincirimizin geri kalanının hala güncellenmesi gerekiyor.
- Hata ayıklayıcı artık geçerli satırın üst çerçevede değiştirilmesini destekliyor.
- Çok sayıda hata düzeltmesi ve performans iyileştirmesi.
- Hata ayıklayıcı artık alıcılarını çağırmadan basit özellikleri okumayı destekliyor; bu, küçük kod parçaları için hafif bir IL yorumlayıcısına sahip olarak gerçekleştiriliyor. Bu, işlem tamamen durdurulurken ve mülk kodunu yürütmek için hedefin yürütülmesini geçici olarak sürdürmek zorunda kalmadan daha fazla mülkün incelenmesini sağlar.
- USB gibi yüksek gecikme bağlantılarında ağ verimliliğini artırmak için tamponlu yanıt modu eklendi.
- Çöp Toplama:
- GC köprüsünde çok fazla performans çalışması var. Bazı iş yüklerini önemli ölçüde artırabilecek iki yeni mod var.
- Sınıf kütüphaneleri:
- Birden çok http yığını iyileştirmesi: yığındaki bazı sızıntılar giderildi, ayrıca asenkron işlemleri ve proxy'leri içeren bazı uzun süredir devam eden hataların çözümü sağlandı. Bu hataların tekrar yüzülmemesi için daha kapsamlı bir test demeti sunduk.
- System.IO.Compression şimdi uygulandı
- System.Security.Claims şimdi uygulandı. Sistem derlemesinde (Kimlik yığında daha önce mevcuttu, ancak şimdi yeni evi .NET 4.5 API'sinden takip ediyoruz).
- Performans:
- Metod aramasında bir sıcak kilidi bırakmak için kilitleme kilitlendi.
- Büyük bir sıcak kilit yerine ince taneli kilitleme kullanın.
- Bazı çalışma zamanı dahili öğelerinin, jeneriklerle kesişen köşe yavaşlamalarından kaçınmak için daha iyi karmaşası.
- Profiler:
- Profiler artık istatistiksel modda geri dönüşler üretebiliyor.
- Etkileşimli kullanıcılara yardımcı olacak periyodik kızarma eklendi. Bu, uygulamanın şu anda veri göndermiyor olsa bile, profil oluşturmanın profil üzerinden veri göndereceği anlamına gelir (bu, yaklaşan yeni profiler kullanıcı arayüzünü desteklemek için vardır).
- Artık performans sayacı bilgilerini toplar ve raporlar. Mprof raporunun man sayfasına bakın.
- Çeşitli:
- Uçuculuğun işlenmesi düzeltildi. CIL öneki.
- Şimdi IKVM'nin ikdasm aracını dağıtıyoruz. Bu, monodinin, demonte edilebilecek uyumlu bir dizi takım gerektirme sınırlamasına sahip olmayan güvenilir bir sökücüdür. Bu, bağımlılıklarına sahip olmayan dosyaları bile dağıtacaktır.
- Daha fazla tür için Optimize Edilmiş EqualityComparer.
- Mono.Unix.Native.Syscall.getxattr () artık OS X üzerinde Errno.ENOATTR değerini döndürebilir.
- msbuild uygulamamız şimdi Project K ve Roslyn'i oluşturabilir
- Daha fazla tür için Optimize Edilmiş EqualityComparer.
- Hata düzeltmeleri:
- C # Derleyici:
- [mcs] Sola / sağa sıfırlamada anonim yöntemlerle iç içe ikili ifadelerin akış analizi eksik. Düzeltmeler # 18417
- [mcs] Paralel parametrelere karşı varsayılan parametreler için sabit mantığı düzeltin. Düzeltmeler # 19754
- [mcs] Mantıksal operatörleri kullanmayan ikili ifadelerin akış analizi. Düzeltmeler # 20086
- [mcs] AssemblyFileVersion'dan yönetilmeyen sürüm bilgilerini yayar. Düzeltmeler # 20057
- [mcs] Kaldırılmış enum eşitliği karşılaştırmaları için ifade ağacı dönüşüm türünü düzeltin. Düzeltmeler # 19938
- [mcs] Param parametresi için isimlendirilmiş argüman verildiğinde hata bildir, ancak tüm resmi parametreler sağlanmadı. Düzeltmeler # 19878
- [mcs] Ulaşılabilir etiket aramasını birleştirin. Düzeltmeler # 19887
- [mcs] Kullanılmadan önce alan adresi kopyasını yayınlamayın. Düzeltmeler # 20040
- [mcs] Döngü ifadeleri için hata raporlama yayılımını düzeltin. Düzeltmeler # 20034
- [mcs] Null döndürme operatörü için null olmayan dönüş türüyle daha iyi bir kod yayar. Düzeltmeler # 19702
- [mcs] Tip parametrelerini içeren açık dizi dönüşümü ekleyin. Düzeltmeler # 18474
- Diğer Hata düzeltmeleri:
- System.ServiceModel.Security aksamı ekleyin. Düzeltmeler # 20108
- [sdb] Çıkarılmış olan bir gruba başvuruyorsa etkinlik isteklerini temizlemekten kaçının. Bunun yerine, derleme başvurusunu olay isteğinden kaldırın, böylece etkin kalır. Düzeltmeler # 19924
- configure.in - & gt; configure.ac. PR # 976 dayanarak
- [Sistem] IPv6 adreslerinin ayrıştırılmasını onar. Düzeltmeler # 18574
- [Http] Zincirleme async işlemleri temizleyin. Düzeltmeler # 19161
- [corlib] Whitespaces ile ayrılan Guid hex formatını ekleyin. Düzeltmeler # 19915
- [System.Net.Http] Eksik sürümlü ürün başlıklarını ayrıştırma. Düzeltmeler # 19881
- [System] Geçersiz bir Process nesnesiyle uğraşırken daha çok durumda IOE atın. Düzeltmeler # 19864
- [bcl] Osx'te Process.PrivateMemorySize64'ü düzeltin, şimdi task_baic_info.resident_size'yi döndürüyoruz. Düzeltmeler # 19738
- FILETIME yapılarının kullanımını temizleyin, bunlara hizalama sorunlarına yol açacağı için, gint64 olarak erişmekten kaçının. Düzeltmeler # 19739
- [sdb] Kutulu bir vtip, alanları kullanarak kendini tekrar başvurduğunda yığın taşmalarından kaçının. Düzeltmeler # 18914
- [profiler] Zamana göre mprof raporunda daha fazla etkinlik türü filtreleyin. Düzeltmeler # 11904
- [profiler] mprof-raporunda 0'dan başlayarak zaman filtresinin düzeltilmesi. Fixes # 11904
- [http] Kullanılabilir olduğunda BOM başlığını kullanarak dizgi çıktı verilerini dönüştürün. Düzeltmeler # 19667
- [system.net.http] Content-MD5 kodlamasını düzeltin. Nberardi tarafından yamaya dayanarak. Düzeltmeler # 19644
- [sdb] Sembol kütüğüne dayalı sıralama noktaları kullanılırken IL yığınının boş olduğu ofsetlere kapalı dizi noktaları yerleştirmekten kaçının. Düzeltmeler # 13640
- [eglib] Test-glib kodunu kaldırın, artık glib ile uyumluluğu sürdürmek zorunda değiliz. Düzeltmeler # 19638
- [corlib] Tembel başlatma başlatıldığında kullanıcı başlatılamadı istisnasını yeniden döndürün. Düzeltmeler # 19564
- [mcs] İsteğe bağlı uygulamalar için arabirim uygulama hatalarını bildirme. Düzeltmeler # 18030
- [mcs] Tanımlayıcı parçası karakterini ayrıştırmada daha fazla unicode kategorisi ekleyin. Düzeltmeler # 18229
- [mcs] Eksik olmayan değeri belirtmek için jenerik türlerin varsayılan parametreleri için boş sabit değer. Düzeltmeler # 19033
- [mcs] Bağımlılık kurallarını kullanarak tip parametrelerini içeren parametre değiştirmeyi yapın. Düzeltmeler # 18473
- [mcs] Üyeler gibi tüm yöntemleri kaynak kodunda göründükleri gibi aynı sırayla yayar. Düzeltmeler # 19509
- [mcs] Altta yatan enum sabitlerini altta yatan türe dönüştürür. Düzeltmeler # 18866
- [mcs] Referans türü uygulanmayan dinamik ifadeler için optimizasyon. Düzeltmeler # 19423
- [mcs] Anonim bir yöntemi, async'ın üst tipte kaldırılmasını gerektirdiğinde doğru tip argümanlarla şişirin. Düzeltmeler # 19176
- [mcs] Tür parametreleri için tip ilişki denetimi kullanarak düzeltme. Düzeltmeler # 18639
- [mcs] Tür argüman tiplerinin önbelleğe alınması hata koşullarında yapılmamalıdır. Düzeltmeler # 18282
- [linq] Gruplama tuşları için doğrusal tarama yerine karma arama kullanın. Düzeltmeler # 18673
- [mcs] Özel üye, iç içe türlerde olduğunda temel üyelere sahip olabilir. Düzeltmeler # 19378
- [mcs] csc ile tutarlı kullanılmayan etkinlik uyarı raporlaması yapın. Düzeltmeler # 19095
- [mcs] Bu, yalnızca doğrudan yakalanmadığında ebeveyn katlı referans ekleyin. Düzeltmeler # 19077
- [mcs] Çatlakların özyineli çözümünü düzeltin. Düzeltmeler # 18511
- # mcs] # 18511 için birim testi ekleniyor
- [mcs] Tüm kullanıcı yapıcılarında ifade ağacı ile alan başlatıcıyı yayınlayın. Düzeltmeler # 18308
- [dlr] NULL türlerinin dönüştürülmesi için doğru kodu yayar. Düzeltmeler # 19500
- Süre:
- [çalışma zamanı] Özel niteliklerde pürüzlü dizilerin kod çözme işlemini düzeltin. Düzeltmeler # 19825
- [runtime] Nesneleri oluşturabildiği için, sgen_thread_detach () 'da mono_thread_current () öğesini çağırmaktan kaçının. Düzeltmeler # 19755
- [runtime] Komutları python API kullanarak lldb'ye geçirmekten kaçının, betik dosyalarında iyi çalışmıyor gibi görünmüyor. Düzeltmeler # 19732
- [çalışma zamanı] İşlemi Onar. İşlem İşlemi Süresi negatif olur. Düzeltmeler # 19739
- [çalışma zamanı] Bir #fdef bloğunu temizle
- [jit] Gsharedvt yöntemlerinden yapılan genel çağrı çağrılarını dolaylı olarak yapın, çünkü bunlar yamalamazlar. Düzeltmeler # 18634
- [jit] Özel durumların başparmak modunda yeniden düzeltilmesi. Düzeltmeler # 18448
- [jit] Interlocked.Exchange öğesinin AOT sürümünün tam-aot modunda aranmasını düzeltin. Düzeltmeler [# 19070] (https://bugzilla.xamarin.com/show_bug.cgi?id=19070)
- [jit] Mini_emit_memset () 'de erişilemeyen bir kod parçasını düzeltin. Düzeltmeler # 19083
- [llvm] 32 bit platformlarda uzun süreli birkaç sorun düzeltin. Düzeltmeler # 18925
- [runtime] MONO_TYPE_VAR / MONO_TYPE_MVAR işleyişini iyileştirin. Düzeltmeler # 18880
- [yorumlayıcı] Ate sınırlama nedeniyle methodinfo delegeleri kullanarak hızlı arama çağırma işlemini devre dışı bırakın. Düzeltmeler # 18688
- [runtime] MONO_TYPE_VAR / MONO_TYPE_MVAR işleyişini iyileştirin. Düzeltmeler # 18880
- [sgen] Bekleme sinyal işleyicisinde tehlike işaretleyicilerini geri yükleyin. Düzeltmeler # 15695
- Temel Kitaplıklar:
- [corlib] Özel Senkronizasyon Bağlamı değişmediğinde fazladan bekleme içerik anahtarını düzeltin. Düzeltmeler # 17878
- [corlib] SortVersion ekle. Düzeltmeler # 18770
- [corlib] Dahili Statik duruma göre değişmez NumberFormatter iş parçacığı statik yapmayın. Düzeltmeler # 18599
- [corlib] Sağdan sola işaret karakterlerini filtreleyin. Düzeltmeler # 18522
- [corlib] Yerelleştirilmiş kaynak yükleme hatası düzeltildi. Düzeltmeler # 14987
- [corlib] Ortak değer türleri için EqualityComparer'ı optimize edin. Düzeltmeler # 18400
- [sistem] Yanlış çerez değerinde yanıt okumasını sonlandırmayın. Düzeltmeler # 18868
- DataRowView dizinleyici & quot; tamamlandı & quot; eklenen satırlar (IsNew olandan başka herhangi bir satır). Düzeltmeler # 18898 (Novell # 595899)
- [corlib] DefinedTypes öğesinde Defer TypeInfo örnekleme mantığı. Düzeltmeler # 19082
- [Mono.Security] Tüm sertifikaları (root hariç) bir SSL / TLS ‘Sunucu sertifikası 'iletisinden (RFC2246'da 7.4.2) gönderin. Düzeltmeler # 16974
- [System.Core] Hashset'i keserken otomatik artım yapmayın. Düzeltmeler # 18687
- [system.net.http] Açık imha üzerindeki servis noktası yuvasını kapatın. Düzeltmeler # 18848
- [Fix] System.Runtime.Caching.MemoryCache, SlidingExpiration ürününü onurlandırmıyor. Düzeltmeler # 18213
- [System.Xml.Linq] XNamespace.GetName kilitleme için kilitleme. Düzeltmeler # 18564
- [System.Net.Http] Eksik bayt ayrıştırma aralıkları. Düzeltmeler # 18494
- [System.ServiceModel.Web] Herhangi bir kültür üzerinde çalışırken JsonQueryStringConverter.ConvertValueToString'i düzeltin. Düzeltmeler # 18437
- System.Runtime.Caching.MemoryCache, expirable öğeleri doğru şekilde sipariş etmez. Düzeltmeler # 18235
- ConcurrentQueue.TryPeek () iş parçacığı güvenli değil. Düzeltmeler [# 18182] (https://bugzilla.xamarin.com/show_bug.cgi?id=18182)
- Sistem / PCL: HttpWebRequest.SupportsCookieContainer, WebRequest.CreateHttp'yi uygulayın. Düzeltmeler # 18378
- [yorumlayıcı] Basit teklif ifadesi uygulayın. Düzeltmeler # 18248
- mdbrebase: FileInfo.MoveTo yerine File.Move kullanın. Düzeltmeler # 18361
- Novell hatası için birim testi ekle # 497562
- System.Runtime.MemoryCache.GetValues (), süresi dolmuş öğelerle LockRecursionException öğesini atar - GetValues (), şimdi ExpireIfNeeded () tarafından gereken bir EnterUpgradeableReadLock komutu alan MemoryCacheContainer.GetEntry () çağırır - Bir test vakası eklendi. Düzeltmeler # 18245
- [Sys.Data] Düzelt Novell Hatası # 519648
- [Sys.Data] Novell hatası için birim testleri ekle # 519648
- [System.XML] XSL değer öğelerindeki boşlukların işlenmesini düzeltin. Düzeltmeler # 18113
- [System.XML] XSL düğüm kümesi hatasını onarın. Düzeltmeler # 18114
- [System.XML] XSL'lerde global değişkenlerin işlenmesini düzeltin. Düzeltmeler # 18118
- [System.XML] Öğe okurken belge şemasını sıfırlamayın. Düzeltmeler # 9541
- Windows.Forms:
- TableLayoutPanel.LayoutSettings'in ayarlayıcısını düzeltmek, istenmeyen bir istisna atar. Düzeltmeler Novell # 497562
- [MWF] Formun opaklığını düzeltin. Düzeltmeler # 19856
- [MWF] Kapalı ekran görüntülenmemesi için ComboBox listesini düzeltin. Düzeltmeler # 15462
- [MWF] Ekranı Onar. Düzeltmeler # 8271
- [MWF] Linux'ta çoklu ekran desteği uygulayın. Düzeltmeler # 325669
- [MWF] Tasfiye edilmeden önce currentCell'i temizle. Düzeltmeler # 19567
- [MWF] birim testi. Düzeltmeler # 19567
- [MWF] Çocuk denetimini kaldırmaya çalışmayın. Düzeltmeler # 19818
- [MWF] # 19818 için birim testi ekle
- [MWF] FlowLayoutPanel'in Otomatik Düzeltme davranışını düzeltin. Düzeltmeler # 2912
- [MWF] ContainerControl'de boş kontrolden kilitlenme düzeltildi. Düzeltmeler # 10537
- [MWF] TableLayoutPanel düzen hatası düzeltildi. Düzeltmeler # 8907
- [MWF] Son açılan satırın kırpılması düzeltildi. Düzeltmeler # 2462
- [MWF] LinkLabel'i tıklattığınızda yakalamayı serbest bırakın. Düzeltmeler # 2787
- [MWF] Düğmelerdeki metin konumunu düzeltin. Düzeltmeler # 463149
- [MWF] Row.Height ayarlandığında kilitlenme düzeltildi. Düzeltmeler # 2394
- [MWF] birim testi. Düzeltmeler # 2394
- [MWF] Mesaj kutusundaki metin alanının boyutunu düzeltin. Düzeltmeler # 2090
- Pano kaynağı uygulaması kapatılırsa askıya alın. Düzeltmeler # 674098
- [Yazdırma] Bildirilen yazıcı ayarlarını geliştirin. Düzeltmeler # 602934
- [Yazdırma] Novell hatası için birim testi ekle # 602934
- Hata düzeltmeleri:
- System.Runtime.InteropServices.WindowsRuntime API'lerini ve PCL Facade'ı Ekle
- MSBuild işlemindeki sorunu düzeltin & quot; İade & quot; içinde . Bu, birden çok Microsoft.Bcl.Build NuGet paketini etkiler
- MSBuild'de görev toplu işlemini uygulayın. Düzeltmeler BXC # 16403
- OSX'teki llvm arama yoluna Ekle / Kitaplıklar, bu daha fazla durumda --llvm çalışır
- C # Async derleyici
- Tüm profiller için birleştirilmiş C # derleyicisi
- 4.5 Async API Profili
- Entegre yeni Microsoft'un Açık Kaynaklı yığınları:
- ASP.NET MVC 4
- ASP.NET Web Sayfaları
- Varlık Çerçevesi
- Jilet
- System.Json (kendi yerine geçer)
- Yeni Yüksek performanslı Çöp Toplayıcısı (SGen - birçok performans ve ölçeklenebilirlik geliştirmesi ile)
- Metrik ton çalışma zamanı ve sınıf kütüphanesi iyileştirmeleri.
- Mono artık eşzamansız programlama desteğine sahip eksiksiz bir C # 5.0 derleyicisine sahiptir
- Değerlendirme artık Derleme Türleri
- Örnek API
- C # Etkileşimli Kabuk
- 4.5 Profil
- Yeni Microsoft Açık Kaynak Yığınları
- Çöp Toplayıcı
- Çalışma Zamanı Optimizasyonları
- ASP.NET
- CodeContracts
- Mono.Data.Sqlite
- C5 Kitaplığı
- Bu sürüm, Görev Paralel Kitaplığını günceller.
- SQLiteConnection artık iş parçacığı modunu ayarlayabilir.
- Geliştirilmiş bir hata ayıklayıcı protokolü var.
- MSBuild 4.0 için temel destek eklendi.
- NuGet artık Mono’da çalışıyor.
- Phalanger 3.0 artık Mono ile çalışıyor.
- Bazı Azure kitaplıklarına destek.
- Profilcileri statik bir ikilide paketlemeye yönelik destek.
- Profilci artık verilerini herhangi bir dosya tanıtıcısına kaydedebilir.
- SGen artık ToggleRefs'i uygulayan nesne sistemleri için yerel desteğe sahip.
- Mobil Profil artık System.IO.MemoryMappedFiles. içeriyor.
- JIT istatistikleri için PerformanceCounters.
- Android CPU sayısı. HashSet artık serileştirilebilir.
Yeniden yönlendirmeden sonra
3.8.0 sürümünde yeni :
3.6.0 sürümünde yeni :
DataGridView hatası için
Roweight / MinimumHeight hatası için
3.2.6 sürümündeki yeni :
Sürüm 3.0.1 Beta'da yeni olan :
Yeni olan nedir? 2.10.8 / 3.0 Beta sürümünde:
Sürüm 2.10.8'de yeni olan :
Yorum Bulunamadı