オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Jonathan Allen , 翻訳者 編集部 投稿日 2009年3月16日
Concurrent Basicは、見込まれるVisual Basicの将来を表す。Polyphonic C#およびC-OmegaなどのC#研究言語で実行される作業に基づいているけれども、Visual Basicは宣言型プログラミングの本来備わっている傾向のため、白羽の矢が立った。その構文は、VBの宣言型イベントハンドラによって着想される。
キーワード
以下は、上記のキーワードを使用して実装されるスレッドセーフなバッファの完全なリストである。
Class Buffer(Of T)
Asynchronous Sub Put (t as T)
Synchronous Function Take() as T
Function React (t as T) as T When Put, Take
Return T
End Function
End Class
関数Putは、非同期に呼び出すことができる。Take関数は、最低1つの保留Putが存在するまでブロックする。React関数は、Putを通じてキューされたオブジェクトを、Takeが期待するフォームに変換するという実装の詳細を扱う。
以下は、その2つの例である。最初の例はAまたはBにおいて、メッセージを待機する。2番目の例は、AおよびBの両方でメッセージがある限り待機する。
Class Either(Of T)
Asynchronous Sub PutA(t as T)
Asynchronous Sub PutB(t as T)
Synchronous Function TakeEither() as T
Function ReactA(t as T) as T When TakeEither, PutA
Return T
End Function
Function ReactB(t as T) as T When TakeEither, PutB
Return T
End Function
End Class
Class Both(Of T, U)
Asynchronous Sub PutA(t as T)
Asynchronous Sub PutB(u of U)
Synchronous Function TakeBoth() as T
Function React(t as T, u as U) as Pair(Of T, U) When Take, PutA, PutB
Return new Pair(Of T, U)(t, u)
End Function
End Class
次は、1つの場所のバッファに対するパターンであり、最大で同時に1つのメッセージを格納するバッファである。
Class OPB(of T)
Sub New
Empty()
End Sub
Synchronous Sub Put (t as T)
Synchronous Function Take() as T
Private Asynchronous Empty()
Private Asynchronous Full(of T)
Sub PutAndEmpty(t as T) When Put, Empty
Full(t)
End Sub
Sub TakeAndFull(t as T) as T When Take, Full
Empty()
Return t
End Sub
End Class
Put、Take、EmptyおよびFullは内部キューを表す。応答メソッドはWhenクラスとキューのサイズが一致するパターンで実行される。
これまで、それぞれの例はTakeメソッドが同期であることを前提としていた。しかしながら、そうである必要はなく、コールバックを使用することもできる。
Class AsyncBuffer(Of T)
Asynchronous Sub Put (t as T)
Asynchronous Function Take() as T
Function React (callback as Func(t as T), t as T) as T When Put, Take
Return callback(t)
End Function
End Class
このモデルを使用して、スレッドはReactおよびコールバック機能の処理をする。スレッドプール、GUIスレッドまたは他のスレッドライブラリなど別のことをしたいと考える人もいるかもしれない。そのためには、ContinuationAttributeを実装する必要がある。以下は、属性のベースクラスである。
Public MustInherit Class ContinuationAttribute
Inherits Attribute
Public MustOverride Sub BeginInvoke( task As Continuation)
Public MustOverride Sub Invoke( task As Continuation)
End Class
Public Delegate Sub Continuation()
例および使用
Public Class MyThreadPoolAttribute
Inherits ContinuationAttribute
Public Overrides Sub BeginInvoke( task As Continuation)
ThreadPool.Enqueue(task)
End Sub
Public Overrides Sub Invoke( task As Continuation)
task()
End Sub
End Class Class AsyncBuffer(Of T)
Asynchronous Sub Put (t as T)
Asynchronous Function Take() as T
Function React (callback as Func(t as T), t as T) as T When Put, Take
Return callback(t)
End Function
End Class
詳しくは、Channel 9のビデオ(リンク)およびConcurrent Basicの提案(PDF)を参照のこと。
原文はこちらです:http://www.infoq.com/news/2009/03/Concurrent-Basic
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信