You are on page 1of 13

TUGAS TEORI ASP

November 24

2011
Arsitektur .Net Framework

Lorem Ipsum dololosa duildac, komo seraphms

1. Net Framework Versi 3.0 a. Windows Presentation Foundation (WPF)


WPF sebelumnya dikenal dengan sebagai Avalon, Windows Presentation Foundation (WPF) adalah subsistem grafis baru di Windows Vista dengan menyediakan sarana untuk mengkombinasikan User Interface, gambar 2D dan 3D, dokumen, dan media digital. WPF dibangun diatas .Net Framework, WPF menyediakan lingkungan yang sudah teratur untuk pengembangan dengan sistem operasi Windows. Hal ini memberi keuntungan dari investasi yang ada dibuat oleh Microsoft dalam .Net Framework, dan memungkinkan pengembang akrab dengan teknologi .Net agar cepat dalam memulai mengembangkan aplikasi yang menggunakan WPF (Andrade 2007). Menurut Ferdiana (2008) Windows Presentation Foundation (atau WPF) adalah sebuah subsistem grafis didalam .NET Framework 3.0 (atau yang lebih baru) dan berkaitan secara langsung dengan bahasa aplikasi XAML. XAML dibaca zammel adalah singkatan dari extensible application markup language. Berikut adalah posisi WPF sampai pada .Net Framework 3.5.

Mesin rendering yang berbasis vektor menggunakan akselerasi hardware dari kartu grafis. Ini membuat UI lebih cepat, terukur dan resolusi yang independen. Ilustrasi di bawah ini memberikan sebuah gambaran utama fitur baru dari WPF :

Pemisahan Tampilan(Apperance) dan Tingkah Laku(Behaviour) WPF dalam memisahkan bentuk tampilan antarmuka pengguna dari tingkahlakunya. Tampilan pada umumnya dispesifikasikan Extensible Application Markup Language (XAML), untuk tingkah laku atau behavior sendiri di kelola menggunakan bahasa pemrograman seperti C# atau Visual Basic. Dua bagian tersebut disatukan dengan databinding, events dan commands. Pemisahan tampilan dan tingkah laku atau behavior memberikan beberapa keuntungan, antara lain : Tampilan dan tingkah laku bersifat loosely coupled Disainer dan developer dapat bekerja pada model yang terpisah Tool disain grafis dapat bekerja pada dokumetn XML yang simpel dari pada kode parsing

Kaya Komposisi Kontrol dalam WPF sangat compasable. Kita dapat menentukan hampir semua jenis kontrol sebagai konten yang lain. Seperti contoh dibawah ini, sebuah tombol memainkan musik kemudian di dalam tombol tersebut terdapat sebuah icon button.

<Button> <StackPanel Orientation="Horizontal"> <Image Source="speaker.png" Stretch="Uniform"/> <TextBlock Text="Play Sound" /> </StackPanel> </Button> Bersifat Kustomisasi Karena pemisahan tampilan dan tingkah laku, kita dapat mengubah tampilan kontrol secara mudah. Konsep style atau gaya yang diterapkan pada kontrol hampir seperti CSS dalam HTML. Template memungkinkan Anda mengganti seluruh tampilan kontrol. Seperti di bawah ini menampilan tombol standar dan sebuah tombol yang sudah dikustomisasi.

Resolusi Independen Semua tindakan dalam WPF adalah unit logis tidak piksel. Sebuah unit logis adalah 1 / 96 inci. Jika Anda meningkatkan resolusi layar Anda, antarmuka pengguna tetap dengan ukuran yang sama jika hanya mendapat crispier. Sejak WPF membangun pada mesin rendering berbasis vektor, itu sangat mudah untuk membangun interface pengguna yang terukur.

b. Windows Communication Foundation (WCF)


WCF merupakan akronim dari Windows Communication Foundation, salah satu teknologi baru dari Microsoft yang memungkinkan aplikasi dalam lingkungan terdistribusi berkomuniksi satu sama lain. WCF adalah model pemrograman lengkap untuk membangun aplikasi berorientasi layanan. Teknologi ini memungkinkan pengembang untuk membangun solusi aman, handal, dan mendukung transaksi, yang dapat terintegrasi lintas platform serta mampu beroperasi dengan investasi yang ada (Mike Liu, 2008). WCF merupakan cara termudah membuat dan mengkonsumsi service pada platform microsoft WCF maupun .NET. Dengan menggunakan teknologi WCF, dan pengembang dapat fokus pada aplikasi mereka daripada fokus ke protokol komunikasi, 2008). WCF mendukung berbagai teknologi seperti : Web service, Binary .NET to .NET communication, Distributed Transaction, Queued Messaging, RESTful Communication, serta mendukung WS-* Spesification. Karena WCF mendukung komunikasi melalui Web Service maka WCF akan dapat saling beroperasi dengan aplikasi platform lain yang mendukung SOAP. Selain itu WCF juga mendukung spesifikasi WS-* sehingga menyediakan kehandalan, keamanan, dan transaksi ketika berkomunikasi dengan platform lain yang juga mendukung spesifikasi WS-* (David Chappel, 2007). WCF tidak mengharuskan untuk menggunakan protokol HTTP, tetapi juga bisa menggunakan TCP. Pertukaran message pun bisa menggunakan selain SOAP, tetapi bisa juga menggunakan XML sederhana ataupun JSON. karena meng-enkapsulasi terhadap pekerjaan teknis, sehingga pengembang bisa lebih produktif (Steve Resnick,

Berikut ini adalah beberapa komponen dasar dari WCF Service Sebuah service adalah unit fungsionalitas yang diekspos ke public (Juval Lwy, 2007). Sebuah service memiliki sekumpulan endpoint yang digunakan untuk berkomunikasi dengan client. Sebuah service juga memiliki service description yang memberitahukan ke publik bagaimana service tersebut dapat diakses, dan apa saja fungsionalitas yang tersedia pada service tersebut. Deskripsi paling umum yang biasa digunakan adalah WSDL, tapi kita juga dapat menggunakan cara lain misal menggunakan XSD Schema, WS-Policy, dan WS-MEX (WS-Metadata Exchange) (Scott Klein, 2007). Ketika kita melihat service lebih dalam lagi, di dalamnya akan terdapat komponen komponen seperti Binding, Service contract, dan kode program dari service. Endpoint Sebuah endpoint merupakan komponen dari service yang berkomunikasi dengan client dan menyediakan operasi operasi dari service. Sebuah service memiliki paling sedikit satu endpoint. Setiap endpoint memiliki address / alamat nya sendiri yang berbeda dengan endpoint yang lain (Scott Klein, 2007). Address WCF adress adalah lokasi / alamat spesifik dari service atau endpoint, tempat dimana message akan dikirim. Semua WCF service di-deploy pada address spesifik, dan mendengarkan request yang masuk pada address tersebut. WCF address memberikan dua informasi penting, yaitu: lokasi dari service dan protokol transport / skema transport yang digunakan untuk berkomunikasi dengan service. WCF address umumnya dituliskan dalam format URI / Unified Resource Identifier (Mike Liu, 2008). Berikut ini format penulisan WCF Address : [transport]://[machine or domain][:optional port]

WCF mendukung protokol atau transport schema berikut ini (Juval Lwy, 2007):

HTTP WCF dapat menggunakan http untuk transportnya. Apabila diperlukan dapat dikonfigurasi untuk menggunakan https yang lebih aman. Contoh penulisan http://localhost:8001

TCP Untuk transport yang dituliskan net.tcp menggunakan alamat URI address. TCP, dapat jika pada Umumnya

menggunakan TCP, juga diberikan nomer port, tetapi jika port tidak disebutkan maka digunakan port 808. Contoh penulisan net.tcp://localhost:8002/MyService Peer Network WCF service juga dapat menggunakan PeerToPeer (P2P) untuk skema transportnya. Tidak semua skenario harus berupa server-client, akan tetapi bisa juga peer-to-peer. Contoh penulisan net.p2p://SimpleChatService IPC (Inter-Process Communication over named pipes) Daripada menggunakan transport TCP ataupun HTTP yang lebih ditujukan untuk komunkasi melalui jaringan, service dapat menggunakan IPC / Named Pipe sebagai mekanisme transport. Named Pipe merupakan mekanisme standar pada Windows untuk komunikasi antar proses di dalam suatu mesin. Pada WCF, service yang dikonfigurasi menggunakan Named Pipe hanya dapat menerima request dari mesin yang sama. Konsekuensinya, untuk penulisan address harus menyebutkan nama local machine dari komputer tersebut atau dengan menuliskan localhost sebagai nama mesin. Contoh penulisan net.pipe://localhost/MyPipe MSMQ Untuk skenario yang memerlukan mekanisme antrian dapat menggunakan skema transport Microsoft Management Queue (MSMQ). Contoh penulisan net.msmq://localhost/private/MyService

Contract WCF contract adalah sekumpulan spesifikasi yang mendefinisikan interface dari WCF service (Mike Liu, 2008). Sebuah service WCF berkomunikasi dengan aplikasi lain berdasarkan contract tersebut. Ada beberapa tipe contract yang digunakan Service Contract Service contract merupakan interface dari WCF Service. Pada dasarnya kontrak ini mendefinisikan apa saja yang dapat dilakukan oleh service, termasuk nama service, namespace dari service, dan beberapa settingan lainnya. Di dalam interface dapat didefinisikan method atau operasi dari service. Suatu service WCF paling sedikit memiliki satu service contract. Operation Contract Operation contract dideklarasikan di dalam service contract. Kontrak ini mendefinisikan parameter dan tipe pengembalian dari suatu operasi. Suatu operasi dapat mengambil tipe data primitif seperti integer sebagai parameter, namun bisa juga mengambil tipe data yang kompleks misalnya class. Suatu operation contract juga dapat untuk mendefinisikan setting level operasi, seperti: fault contract dari operasi, arah dari operasi (one-way, two-way, both-way), serta aliran transaksi dari operasi. Data Contract Data contract adalah tipe data dari WCF service. Seluruh tipe data yang digunakan oleh WCF service harus dideskripsikan di dalam metadata sehingga aplikasi lain dapat beroperasi dengan service. Sebuah data contract dapat digunakan oleh operation contract sebagai parameter atau return type, atau bisa juga digunakan oleh message contract untuk mendefinisikan elemen. Untuk tipe data primitif tidak perlu didefinisikan data contract. Message Contract Jika data contract digunakan untuk mendefinisikan tipe data dari service, maka message format contract dari lebih SOAP. digunakan Message untuk contract mendefinisikan message

mendefinisikan elemen dari message serta settingan dan keamanan yang dapat diberlakukan pada level message. Fault Contract Pada operation contract dari WCF service dapat dideklarasikan fault contract, jika terjadi suatu error dan error tersebut dapat dikembalikan kepada aplikasi pemanggil, maka aplikasi pemanggil

akan diperingatkan dengan error tersebut. Tipe error ini disebut sebagai fault contract. Fault contract adalah opsional, artinya suatu operation contract dapat tidak diasosiasikan dengan fault contract atau diasosiasikan dengan banyak fault contract. Binding Binding adalah konfigurasi yang mendefinisikan bagaimana suatu endpoint dari service berkomunikasi dengan dunia luar. Setiap endpoint harus memiliki sebuah binding. Binding pada dasarnya sekumpulan properti yang mendefinisikan bagaimana pola transport, message, dan kemanan (Scott Klein, 2007). Binding dapat diatur secara programatik dalam kode, maupun melalui file konfigurasi. WCF telah mendefinisikan antara sekumpulan lain: binding yang bisa langsung digunakan, basicHttpBinding, wsHttpBinding,

wsDualHttpBinding, netTcpBinding, dan lain-lain. Dari binding yang tersedia tersebut, kita dapat menggunakan yang sesuai dengan kebutuhan kita. Behavior Behavior mengontrol karakteristik runtime dari service atau endpoint (Scott Klein, 2007). Perbedaan antara behavior dengan binding adalah, behavior digunakan untuk mengkonfigurasi eksekusi lokal, sedangkan binding mengkonfigurasi pada level komunikasi. Ada banyak jenis dari behavior, tapi behavior tersebut dapat dikelompokkan dalam tiga tipe utama, yaitu: Service Behavior, Endpoint Behavior, dan Operation Behavior (Steve Resnick, 2008). Sebagai contoh, pada kelompok service behavior terdapat konfigurasi yang mengatur tenggang waktu timeout dari transaksi, mengatur jumlah maksimum sesi yang terjadi bersamaan, mengatur jumlah maksimum pemanggilan operasi yang terjadi bersamaan, mengatur apakah diijinkan mempublikasi metadata dari service, dan lain-lain. Behavior dapat diatur secara programatik dalam kode, maupun melalui file konfigurasi. Hosting Suatu WCF service haruslah diwadahi (di-hosting-kan) dalam suatu lingkungan agar supaya service tersebut dapat ditemukan dan digunakan oleh aplikasi lainnya. WCF Host adalah aplikasi yang mengontrol masa hidup dari service (Mike Liu, 2008). Ada beberapa cara melakukan hosting service WCF Self Hosting

Suatu service WCF dapat di-hosting pada dirinya sendiri, sehingga service berjalan sebagai suatu aplikasi tersendiri dan mengontrol masa hidupnya sendiri. Ini merupakan teknik termudah, akan tetapi beberapa fitur menjadi terbatas.

Windows Service Hosting Windows service adalah proses yang dikelola oleh sistem operasi Windows dan secara otomatis proses tersebut berjalan ketika Windows berjalan. WCF service juga dapat di-hosting-kan sebagai Windows service di suatu mesin / komputer. IIS Hosting Cara ini dengan meng-hosting-kan WCF service ke IIS. IIS merupakan web server buatan Microsoft untuk platform Windows. Kelebihan cara ini adalah dapat memanfaatkan kemudahan fitur pengelolaan yang ada pada IIS untuk mengelola WCF service. Kelemahan cara ini adalah WCF service hanya dapat memanfaatkan protokol HTTP saja. Windows Activation Services hosting Windows Process Activation Service (WAS) adalah mekanisme aktivasi proses untuk Windows Server 2008, Windows 7, dan Windows vista. WAS memiliki kelebihan yang sama seperti pada IIS Hosting, akan tetapi WAS memungkinkan digunakannya skema transport selain HTTP untuk WCF Service.

c. Windows Workflow Foundation(WF)


Hampir semua perangkat lunak yang digunakan di perusahaanperusahaan/organisasi-organisasi saat ini memiliki tujuan yang sama, yaitu mendukung proses bisnis. Beberapa proses sepenuhnya otomatis, hanya seperti untuk mengandalkan pada komunikasi antar aplikasi. Sedang lainnya dan bahkan hal ini cenderung mayoritas, bergantung pada manusia, memulai proses , menyetujui proses dengan menggunakan dokumen,

menyelesaikan segala situasi yang luar biasa yang timbul, dan banyak lagi. Dalam kedua kasus ini (manual & otomatis), sering kali mungkin untuk menentukan serangkaian langkah tersebut dibutuhkan suatu proses yang disebut alur kerja (WorkFlow), yang menggambarkan kegiatan orang-orang dan perangkat lunak yang terlibat dalam proses. Dimana alur kerja tersebut merupakan dasar dari pengerjaan suatu aplikasi/sistem. Setelah alur kerja ini ditetapkan, aplikasi dapat dibangun sesuai definisi untuk mendukung proses bisnis.

Menciptakan dan mengeksekusi alur kerja dalam perangkat lunak merupakan tantangan yang unik. Beberapa proses bisnis memerlukan proses dalam hitungan menit, jam, hari bahkan minggu untuk menyelesaikannya. Alur kerja yang berjalan lama juga biasanya akan berkomunikasi dengan perangkat lunak lain, tantangan sebenarnya adalah Bagaimana komunikasi antara manusia dan aplikasi tetap berjalan. Sebenarnya pertukaran informasi antar aplikasi boleh dikatakan relatif mudah, namun untuk cenderung ingin lebih banyak fleksibilitas, termasuk hal-hal manusia seperti

kemampuan untuk mengubah bisnis proses sewaktu-waktu. Bagaimana system dapat menangani beragam hal yang tak terduga mengenai perilaku manusia? Tanpa landasan yang tepat untuk membangun system yang memenuhi syarat-syarat seperti ini sangatlah sulit. Microsoft Windows Workflow Foundation diciptakan untuk mengatasi permasalahan fleksibelitas alur kerja dalam suatu bisnis proses. Komponen inti dari Microsoft.NET Framework akan menjadi bagian mendasar dari platform Windows untuk pengembang. Windows Workflow Foundation menyediakan sebuah kerangka umum untuk membangun Workflow ke aplikasi , apakah alur kerja mengkoordinasikan interaksi di antara perangkat lunak, interaksi di antara orang-orang, atau keduanya.

d. Card Space
Windows CardSpace adalah fitur baru dari Microsoft Windows dan .NET Framework 3.0 yang memungkinkan aplikasi user untuk dimanage secara aman dan mengontrol penukaran informasi personal secara online. Dari desainnya, Windows identitasnya CardSpace secara menempatkan online. user ke pusat pengontrolan Windows CardSpace

menyederhanakan pengalaman online dengan mengizinkan user untuk mengidentifikasi dirinya. User melakukan ini dengan mengirimkan informasi terkriptorafi daripada mengingat dan menuliskan manual dari detailnya ke suatu Web site. Pendekatan ini mengungkapkan apa yang disebu dengan identity selector :ketika user membutuhkan autentikasi suatu web site, CardSpace menyediakan keamanan spesial UI dengan sejumlah informasi "cards" user untuk memilih form. CardSpace secara visual merepresentasikan informasi identitas user sebagai kartu informasi. Masing-masing kartu informasi dikontrol oleh user dan mewakilkan satu atau lebih klaim mengenai identitasnya. Klaim adalah suatu set nilai yang dinamai sebagai isu dari kartu informasi yang menyatakan hubungan dengan individual tertentu. Windows CardSpace mendukung dua jenis kartu informasi : personal cards dan managed cards. Personal Cards dibuat oleh user, dan managed cards diperoleh dari pihak

ketiga yang terpercaya seperti bank, pekerja, perusahaan asuransi, dan lainlain. Untuk melindung berbagai jenis informasi personal, semua kartu informasi disimpan dalam komputer lokal di dalam penyimpanan aman terinkripsi yang unik untuk setiap login user. Setiap file dienkripsi dua kali untuk mencegah akses yang tidak diinginkan. Managed cards menyediakan lapisan proteksi tambahan, sebagai tidak ada data personal yang disimpan dalam mesin user, melainkan, disimpan dalam provider terpercaya seperti bank atau penyedia credit card dan hanya dikeluarkan apabila bukti yang sah dan terenkripsi diminta.

2. Net Framework Versi 3.5 a. LINQ


LINQ singkatan dari Language

Integrated

Query,

LINQ

sendiri

merupakan fasiltias baru yang disertakan pada .NET Framework 3.5 dan telah terintegrasi jika kita menginstall Visual Studio 2008. Perbedaan LINQ dengan Query adalah selain bisa melakukan query pada database,LINQ juga dapat melakukan query terhadap data dalam format XML, Entities, Object dan sebagainya. Secara singkat konsepnya sama dengan ODBC yang menjadi jembatan dalam mengakses database dalam berbagi format. LINQ disini juga menjadi jembatan perantara dalam mengakses berbagai format struktur data. Selama format data mendukung IEnumerable Type maka LINQ dapat melakukan query kedalamnya. Bisa dianalogikan mungkin akan lebih menyenangkan jika kita memiliki 1 buah kunci untuk masuk kedalam semua ruangan yang ada, jadi kita tidak perlu repot membawa/mempunyai banyak kunci untuk masuk kedalam ruangan yang berbeda. Dengan LINQ kita mempunyai sebuah kunci untuk dapat masuk dan melakukan Query kedalam berbagai format data yang berbeda

b. ADO.NET
Pada .Net platform kita mendefinisikan berinteraksi beberapa dengan namespace atau yang memperbolehkan untuk lokal remote

penyimpanan data. Namespace ini dikenal dengan nama ADO.Net. Net platform juga menyediakan atau mendukung beberapa data provider yang digunakan untuk komunikasi dengan Sistem Manajemen Basis Data yang spesifik. Seperti Microsoft SQL Server, Oracle, MySQL dan lain sebagainya. ADO.Net menyediakan tiga cara yang berbeda untuk perantara dengan sumber data, yaitu Connected Layer, Disconnected Layer dan Entity Framework.

Connected Layer Ketika menggunakan Connected Layer, kode program secara eksplisit akan terhubung ke dan memutuskan koneksi dari penyimpanan data. Pada saat menggunakan cara ini, biasanya interaksi dengan penyimpanan data menggunakan connection object, command object dan data reader object. Obyek Data reader sendiri menyediakan cara untuk menarik data dari penyimpanan data mengunakan pendekatan forward-only atau read-only. Disconnected Layer Cara yang lain yaitu, Disconnected Layer. Cara ini memungkinkan kita untuk mendapatkan satu set obyek DataTable (berada dalam DataSet) yang berfungsi sebagai client-side copy data eksternal. Ketika mendapatkan DataSet menggunakan obyek Data Adapter yang terkait, koneksi secara otomatis dibuka dan ditutup dengan sendirinya. Pendekatan ini membantu melepaskan koneksi secara cepat agar dapat digunakan oleh pemanggil yang lain. Setelah klien menerima DataSet, klien dapat memanipulasi isi data tanpa menimbulkan / menggunakan sumber lalulintas jaringan yang besar. Apabila klien ingin mengirimkan perubahan data ke penyimpanan data, maka Data Adapter menjadi penghubung yang digunakan untuk update ke sumber data, pada saat itu juga koneksi akan segera ditutup. Entity Framework Mulai .Net 3.5 SP1, ADO.Net telah menambahkan dukungan API baru yaitu Entity Framework (EF). Dengan EF, kita akan menemukan banyak dari spesifikasi database tingkat rendah (seperti SQL Query) yang tersembunyi dari penglihatan ketika menggunakan LINQ query.

3. Net Framework Versi 4.0 a) Parallel LINQ (PLINQ)


Paralel LINQ (PLINQ) adalah implementasi paralel LINQ untuk Objects. PLINQ mengimplementasikan set lengkap dari operator-operator standar quey LINQ sebagai tambahan method untuk T: System.Linq namespace dan memiliki operator tambahan untuk sintak untuk pemrograman paralel. PLINQ menggabungkan kesederhanaan dan pembacaan sintaks LINQ dengan kekuatan pemrograman paralel. Sama seperti kode yang menargetkan Task Parallel Library, PLINQ menskala permintaan dalam derajat konkurensi yang didasarkan pada kemampuan komputer host. Dalam banyak skenario, PLINQ secara signifikan dapat meningkatkan kecepatan query LINQ untuk Objects dengan menggunakan semua core yang

tersedia pada komputer host secara lebih efisien. Peningkatan kinerja ini membawa performa tinggi komputasi ke dalam desktop.

Contoh kode perbandingan LINQ dengan PLINQ: LINQ : List<int> intList = new List<int>() {1,2,3,4,5}; var query = from i in intList where i % 2 == 0 select i;

PLINQ List<int>intList = new List<int>() {1,2,3,4,5}; varquery = from i in intList.AsParallel() wherei % 2 == 0 selecti; b) Task Parallel Library
Task Parallel Library (TPL) adalah satu set public types dan API di System.Threading dan System.Threading.Tasks namespaces dalam versi NET Framework 4.Tujuan dari TPL adalah untuk membuat pengembang lebih produktif dengan menyederhanakan proses penambahan paralel dan konkurensi untuk aplikasi. TPL menskalakan derajat konkurensi secara dinamis untuk mencari semua prosesor yang paling efisien dan tersedia. Selain itu, TPL menangani partisi dari pekerjaan, penjadwalan thread di ThreadPool , dukungan untuk pembatalan, manajemen status, dan rincian level rendah lainnya. Dengan menggunakan TPL, kita dapat memaksimalkan kinerja dari kode yang kita buat sambil memfokuskan pada pada program yang sedang kita rancang. Dimulai dengan Framework. NET 4, TPL adalah cara yang disukai untuk menulis kode multithreaded dan paralel. Namun, tidak semua kode cocok untuk paralelisasi, misalnya, jika loop hanya melakukan pekerjaan kecil pada setiap iterasinya, atau loop tersebut tidak dijalankan untuk banyak iterasi, sehingga overhead dari paralelisasi ini dapat menyebabkan kode berjalan lebih lambat . Selanjutnya, paralelisasi seperti kode multithreaded menambah kompleksitas dari eksekusi program kita. Meskipun TPL menyederhanakan skenario multithreaded, disarankan bahwa kita memiliki pemahaman dasar konsep threading, misalnya, locks, deadlocks, dan race conditions, sehingga Anda dapat menggunakan TPL secara efektif.

You might also like