Sejak belajar. .NET, gaya pemrograman yang elegan, skalabilitas yang sangat sederhana, alat pengembangan yang cukup kuat, dan kurva belajar yang sangat kecil, telah membuat saya memiliki minat yang kuat pada platform ini, dan saya juga telah mengumpulkan beberapa komponen open source dalam pekerjaan dan studi saya. Kerangka kerja caching terdistribusi: Microsoft Velocity: Kerangka kerja layanan cache terdistribusi Microsoft sendiri. Memcahed: Sistem caching terdistribusi yang saat ini digunakan oleh banyak situs web untuk meningkatkan kecepatan akses situs web. Redis: adalah database KV berkinerja tinggi. Kemunculannya sebagian besar mengkompensasi kekurangan Memcached dalam beberapa aspek. EnyimMemcached: Akses klien .NET terbaik Memcache dengan algoritme pemerataan terdistribusi yang baik. Sumber terbuka. Rekomendasi Sistem .NET: OXITE: Kerangka kerja presentasi kasus Microsoft ASP.NET MVC. PetShop: Toko hewan peliharaan Microsoft ASP.NET. Orchard: Sistem blog open source MVC asing. SSCLI: Kode sumber terbuka Microsoft di era NET Framework 2.0. DasBlog: Sistem blogging berbasis ASP.NET di luar negeri. BlogEngine.NET: Sistem blogging gratis dan open source di luar negeri. Dotnetnuke.NET: Serangkaian program portal open source berbasis ASP.NET yang sangat bagus. Discuz.NET: Sistem komunitas forum open source domestik. nopCommerce dan Aspxcommerce: Satu set sistem situs web B2C open source berkualitas tinggi di luar negeri. JumboTCMS dan DTCMS: Dua sistem manajemen situs web open source di Cina: Penanganan pengecualian pengelogan: Log4Net.dll: Kerangka kerja pencatatan .NET gratis dan sumber terbuka yang ringan. Aplikasi Log Perpustakaan Perusahaan Hitam: Pencatatan Perpustakaan Perusahaan Microsoft. Elmah: Mengimplementasikan kerangka kerja pengecualian aplikasi ASP.NET yang paling populer. NLog: adalah pustaka pencatatan yang sederhana dan fleksibel dengan kinerja lebih tinggi daripada Log4Net dan kesulitan penggunaan dan pemeliharaan yang rendah. Tentang Database NoSQL: Mongodb: Database penyimpanan file terdistribusi. Membase: Anggota keluarga kelas berat baru. Kerangka kerja penjadwalan tugas otomatis Quartz.NET: Penjadwalan pekerjaan sumber terbuka dan kerangka kerja tugas otomatis. Topshelf: Kerangka kerja sumber terbuka lainnya untuk membuat layanan Windows Kerangka kerja kontainer IOC injeksi dependensi: Unity: Kerangka kerja injeksi dependensi IOC yang dikembangkan oleh tim pola & praktik Microsoft yang mendukung masalah lintas sektoral AOP. MEF (Managed Extensibility Framework): adalah kerangka kerja untuk memperluas aplikasi .NET dan memungkinkan pengembangan sistem plug-in. Spring.NET: Injeksi dependensi, pemrograman berorientasi aspek (AOP), abstraksi akses data, dan integrasi ASP.NET. Autofac: Injeksi dependensi dan kerangka kerja IOC paling populer, ringan dan berkinerja tinggi, hampir tidak mengganggu kode proyek. PostSharp: Mengimplementasikan AOP lintas sektoral statis, mudah digunakan, kuat, dan tidak memerlukan perubahan apa pun pada metode intersepsi target. Ninject: Kerangka kerja IOC injeksi dependensi berdasarkan .NET yang ringan dan sumber terbuka Beberapa kerangka kerja ORM yang umum digunakan: EF (ADO.NET Entity Framework): Kerangka kerja ORM yang dikembangkan oleh Microsoft berdasarkan ADO.NET. Nhibernate: Kerangka kerja ORM yang ringan untuk lingkungan .NET. SqlMapper.cs: Kelas akses database C# generik untuk proyek kecil. AutoMapper: Kerangka kerja pemetaan objek populer yang mengurangi banyak hardcoding, ringkas dan fleksibel, serta memiliki kinerja yang dapat diterima. SubSonic: Kerangka kerja pemetaan ORM sumber terbuka yang sangat baik yang menyediakan pembuat kode yang memenuhi kebutuhan Anda. FluentData: Kerangka kerja ringan ORM kueri berantai berbasis Fluent API sumber terbuka. Dapper: Ringan, berkinerja tinggi, berdasarkan kerangka kerja ORM yang dihasilkan EMIT. EmitMapper: Kerangka kerja ORM berperforma tinggi yang secara dinamis menghasilkan kode IL melalui EMIT saat runtime, daripada menggunakan mekanisme refleksi. Konversi format dan tipe data Newtonsoft.Json: Pustaka serialisasi JSON paling populer yang saat ini dalam pengembangan .NET, menyediakan dasar untuk versi baru pustaka WebAPI. System.JSON.dll: Komponen serialisasi JSON Microsoft sendiri (perlu diunduh secara terpisah) DataContractJsonSerializer dan DataContractXmlSerializer: Serializer yang digunakan oleh Microsoft di WCF. Javascrip{filter}tSerializer: Pemformat JSON default Microsoft untuk pengembang WEB. iTextSharp, PDFsharp, dan PDF.NET: Melalui. .NET untuk memproses dan menghasilkan dokumen PDF. SharpZipLib.dll: Komponen dekompresi file ZIP dan GZIP gratis dan sumber terbuka. Math.NET: Operasi matematika yang kuat, kalkulus, pemecahan persamaan, dan operasi ilmiah. DocX: Tidak perlu menginstal perangkat lunak word, mengoperasikan file word melalui C#. SharpSerializer: XML sumber terbuka dan, biner, JSON, kompresi, dan kerangka kerja pengoptimalan. Bahasa reflektif dan dinamis Dinamis tanah liat: Kerangka kerja dinamis sumber terbuka memungkinkan Anda membuat objek dalam bentuk javascrip{filtering}t. ExposedObject: Akses anggota pribadi di luar kelas dengan cara bahasa dinamis. PrivateObject: Kelas dalam kerangka kerja pengujian unit Microsoft yang nyaman untuk memanggil anggota privat kelas secara eksternal. Solusi lintas platform dan runtime MONO.NET: Lintas platform. Lingkungan runtime .NET, memungkinkan operasi lintas platform .NET. DotGnu Portable.NET: Runtime lintas platform mirip dengan MONO.NET. Phalanger: Mengkompilasi PHP ke .NET memungkinkan interoperabilitas PHP dan .NET. VMDotNet: Runtime .NET yang digunakan oleh China Mobile Feixin. Unity3D: Dukungan kuat Microsoft untuk C# dan kerangka kerja pengembangan game lintas platform Javascrip. Cassini, IIS Express, dan Cassinidev: Lingkungan eksekusi ASP.NET sumber terbuka. Katana: ASP.NET boarding non-IIS Microsoft dan MVC berdasarkan spesifikasi OWIN. IKVM.NET: Berdasarkan. .NET adalah mesin virtual JAVA yang memungkinkan JAVA berjalan di atas .NET. Pengembangan dan desain WEB Jumony Core: Mesin HTML yang dikembangkan berdasarkan .NET. Microsoft.mshtml.dll, Winista.HtmlParser.dll, dan HtmlAgilityPack.dll: Kerangka kerja yang mengurai dan memproses dokumen HTML. Javascrip{filtering}t.NET dan Clearscrip{filtering}t (diproduksi oleh Microsoft): Berdasarkan . .NET mengembangkan mesin Javascrip{filter}t. NCrawler: Perayap web sumber terbuka untuk mesin pemrosesan HTML-nya, htmlagilitypack. AntiXSS: Perpustakaan sumber terbuka resmi Microsoft untuk mencegah serangan intrusi skrip XSS lintas situs, yang mengkodekan konten melalui mekanisme daftar putih. YUICompressor.NET, Microsoft Ajax Minifier dan Google Closure Compiler: JavaScrip dan CSS Compressor. NancyFx: adalah kerangka kerja .NET WEB open source ringan yang bagus. Jika Anda ingin membuat aplikasi WEB sederhana dengan cepat. AspNetPager: Kontrol paging ASP.NET terkenal di Cina, mendukung beberapa metode paging. NOPI.dll: Plugin untuk mengekspor laporan Excel (berdasarkan implementasi Microsoft OpenXml) (nopi.css.dl bergaya melalui css) Perpustakaan Perusahaan: Komponen praktik terbaik Microsoft untuk pengembangan aplikasi tingkat perusahaan. PowerCollections: Koleksi open source tingkat tinggi yang ditulis oleh orang asing yang luar biasa. Internet seluler dan komputasi awan PushSharp: Dorong pesan ke berbagai platform seluler melalui .NET. Mono untuk Android: Gunakan. Aplikasi Android pengembangan bahasa .NET: MonoTouch: Kembangkan aplikasi IOS dalam bahasa .NET. PhoneGap dan AppCan: Platform pengembangan seluler berbasis HTML5 lintas platform. Cordova: Proyek open source setelah PhoneGap berkontribusi pada Apache, ini adalah mesin inti yang menggerakkan PhoneGap. Komunikasi jaringan dan protokol jaringan SuperSocket: Kerangka kerja pengembangan soket yang ringan dan dapat diskalakan berdasarkan .NET. SuperWebSocket: Mengimplementasikan kerangka kerja TML5 WebSocket melalui .NET. XProxy: Rakitan agen dasar yang mendukung plugin, dengan NAT bawaan, enkripsi dan dekripsi, proxy terbalik, langsung dan tidak langsung. Kerangka kerja pemrosesan grafis dan gambar Paint.NET: Berdasarkan pada. .NET adalah proyek open source pemrosesan grafis yang ringkas, fleksibel, dan kuat. Imagemagick.NET: Enkapsulasi komponen pemrosesan gambar sumber terbuka Imagemagick di C#. Skimpt: Perangkat lunak tangkapan layar sumber terbuka berdasarkan .NET. ImageGlue.NET: Komponen pemrosesan gambar komersial memiliki daftar besar format yang didukung. Sprite dan Kerangka Kerja Pengoptimalan Gambar: Microsoft CSS Wizard, multi-gambar yang menggabungkan gambar besar dan gaya CSS. Kerangka kerja aplikasi desktop DevExpress: Perpustakaan kontrol UI yang terkenal di dunia untuk aplikasi desktop. Prisma: Kerangka kerja MVVM yang dikembangkan oleh Microsoft untuk WPF dan Silverlight, yang memisahkan fungsi bisnis kompleks dan kopling UI melalui gagasan modularitas fungsional. WPFToolkit dan Fluent Ribbon Control Suite: Kembangkan menu Pita bergaya Office. Pengujian dan evaluasi kinerja Faker.Net: Kerangka kerja untuk menghasilkan data pengujian dalam jumlah besar. Nunit: Kerangka kerja pengujian unit yang ringan. Moq: Kerangka kerja Mock yang sangat populer yang mendukung LINQ, fleksibel dan berkinerja tinggi. xUnit: Kerangka kerja pengujian unit yang lebih baik daripada NUnit, versi kerangka kerja Nunit yang ditingkatkan. MiniProfiler dan Glimpse: Dua kerangka kerja pemantauan peristiwa performa berbasis MVC. Dukungan transaksi transaksional dan terdistribusi KtmIntegration: Kelas sumber terbuka transaksional yang mendukung sistem file NTFS. Manajer File Transaksional NET: Menambahkan dukungan transaksional untuk operasi sistem file (menyalin, memindahkan, dan menghapus). Segmentasi kata, pencarian teks lengkap, dan mesin pencari Lucene.net: Perpustakaan indeks teks lengkap berkinerja tinggi populer yang dapat digunakan untuk menyediakan fungsi pencarian yang kuat untuk semua jenis informasi. Lucene.Net.Analysis.PanGu: Mendukung versi terbaru dari perpustakaan ekstensi segmentasi Cina Pangu Lucene.Net. Organisasi komponen validasi data FluentValidation untuk . NET: Komponen verifikasi antarmuka yang lancar berdasarkan rantai metode ekspresi LINQ. Microsoft.Practices.EnterpriseLibrary.Validation.dll: Blok program validasi Microsoft Enterprise Library. CuttingEdge.Conditions: Komponen pemrograman kontrak berdasarkan metode antarmuka Fluent. DotNetOpenAuth: Memungkinkan situs web untuk mendukung autentikasi dengan OpenID, OAuth, InfoCard, dan banyak lagi. Kontrol Statistik Bagan Sumber Terbuka: Visifire: Serangkaian kontrol bagan WPF yang sangat bagus yang mendukung gambar 3D, kurva, polyline, sektor, cincin, dan trapesium. SparrowToolkit: Sekumpulan kontrol bagan WPF yang mendukung menggambar kurva dinamis, termasuk osiloskop, penggunaan CPU, dan bentuk gelombang. DynamicDataDisplay: Grafik dinamis WPF sumber terbuka Microsoft, bagan garis, bagan gelembung, dan peta panas.
Kategori antrean pesan dapat diperluas, seperti Kafka, yang merupakan sistem perpesanan berbasis publikasi/langganan yang terdistribusi. Tujuan desain utama adalah sebagai berikut: Persistensi pesan disediakan dalam bentuk kompleksitas waktu O(1), dan kinerja akses kompleksitas waktu konstan dapat dijamin bahkan untuk data di atas terabyte. Throughput tinggi. Bahkan pada mesin komersial yang sangat murah, dapat mendukung transmisi lebih dari 100 ribu pesan per detik pada satu mesin. Ini mendukung partisi pesan dan konsumsi terdistribusi antara server Kafka, dan memastikan transmisi pesan secara berurutan di setiap partisi. Ini mendukung pemrosesan data offline dan pemrosesan data waktu nyata. Skalakan: Mendukung ekspansi horizontal online. KelinciMQ RabbitMQ adalah antrean pesan sumber terbuka yang ditulis dalam Erlang yang mendukung banyak protokol: AMQP, XMPP, SMTP, STOMP, itulah sebabnya sangat berat dan lebih cocok untuk pengembangan tingkat perusahaan. Pada saat yang sama, arsitektur broker diimplementasikan, yang berarti bahwa pesan diantri di antrean pusat terlebih dahulu saat dikirim ke klien. Ada dukungan yang baik untuk perutean, penyeimbangan beban, atau persistensi data. Redis Redis adalah database NoSQL berdasarkan pasangan Kunci-Nilai, dan secara aktif dikembangkan dan dipelihara. Meskipun ini adalah sistem penyimpanan database nilai kunci, ini mendukung fungsionalitas MQ itu sendiri, sehingga dapat digunakan sebagai layanan antrean yang ringan. Untuk operasi onboarding dan out-queue RabbitMQ dan Redis, masing-masing 1 juta kali, dan waktu eksekusi dicatat setiap 100.000 kali. Data pengujian dibagi menjadi empat ukuran berbeda: 128Byte, 512Byte, 1K, dan 10K. Tabel eksperimental: Saat bergabung dengan tim, kinerja Redis lebih tinggi daripada RabbitMQ ketika perbandingan data kecil, dan jika ukuran data melebihi 10K, Redis sangat lambat. Saat keluar dari tim, Redis menunjukkan performa yang sangat baik terlepas dari ukuran datanya, sedangkan performa RabbitMQ jauh lebih rendah daripada Redis. ZeroMQ ZeroMQ mengklaim sebagai sistem antrian pesan tercepat, terutama untuk skenario permintaan throughput tinggi. ZeroMQ dapat mengimplementasikan antrean lanjutan/kompleks yang tidak dikuasai RabbitMQ, tetapi pengembang perlu menggabungkan beberapa kerangka kerja teknis sendiri, dan kompleksitas teknis merupakan tantangan bagi keberhasilan penerapan MQ ini. ZeroMQ memiliki mode non-middleware yang unik di mana Anda tidak perlu menginstal dan menjalankan server pesan atau middleware karena aplikasi Anda akan memainkan peran server ini. Yang perlu Anda lakukan hanyalah merujuk perpustakaan ZeroMQ, yang dapat diinstal menggunakan NuGet, dan Anda dapat dengan senang hati mengirim pesan antar aplikasi. Namun, ZeroMQ hanya menyediakan antrean non-persisten, yang berarti jika turun, data akan hilang. Di antara mereka, versi Storm Twitter sebelum 0.9.0 menggunakan ZeroMQ sebagai transmisi aliran data secara default (Storm mendukung ZeroMQ dan Netty sebagai modul transmisi dari versi 0.9). AktifMQ ActiveMQ adalah subproyek di bawah Apache. Mirip dengan ZeroMQ, ini memungkinkan antrian dengan teknologi agen dan peer-to-peer. Pada saat yang sama, mirip dengan RabbitMQ, ia dapat secara efisien mengimplementasikan skenario aplikasi lanjutan dengan sejumlah kecil kode. Kafka/Jafka Kafka adalah subproyek dari Apache, sistem antrian pesan terbagi/langganan terdistribusi berkinerja tinggi di seluruh bahasa, dan Jafka diinkubasi di atas Kafka, yang merupakan versi Kafka yang ditingkatkan. Ini memiliki karakteristik sebagai berikut: persistensi cepat, yang dapat mempertahankan pesan di bawah overhead sistem O(1); Throughput tinggi, yang dapat mencapai tingkat throughput 10W/s pada server biasa; Sistem yang sepenuhnya terdistribusi, Broker, Produsen, dan Konsumen semuanya secara asli mendukung terdistribusi dan secara otomatis mewujudkan penyeimbangan beban; Mendukung pemuatan paralel data Hadoop, yang merupakan solusi yang layak untuk data log dan sistem analisis offline seperti Hadoop, tetapi dengan keterbatasan pemrosesan waktu nyata. Kafka menyatukan pemrosesan pesan online dan offline melalui mekanisme pemuatan paralel Hadoop. Apache Kafka adalah sistem perpesanan yang sangat ringan dibandingkan dengan ActiveMQ, dan selain kinerja yang sangat baik, ini juga merupakan sistem terdistribusi yang berfungsi dengan baik. |