迅速な開発フレームワークのコーディング

画像



私自身についていくつかの言葉-私はIncoding Softwareで働いています。IncodingSoftwareは、長年にわたってアウトソーシングに成功しており、さまざまな分野(医療、掲示板、ソーシャルネットワークなど)でインターネットおよびイントラネットプロジェクトを実施しています。



Incoding Frameworkは、asp.net mvcプラットフォームでWebプロジェクトを開発するためのクライアント/サーバーソリューションです。



3つの部分で構成されます。



注:Incoding Frameworkの特徴は、各部分が互いに統合されることです(IMLはAJAXにMVDを使用し、MVDはCQRSなどを実行します)が、個別に使用できます(Nugetには3つの独立したパッケージがあります)



1つの記事でフレームワークの各部分を検討することはできないため、ライブラリの最も興味深いコンポーネント(IML)に重点が置かれます。 クライアントの部分を強調した理由は、CQRS、Event Broker、Unit Testが.netの世界で多くの類似物を持っていることであり、すぐに興味を引くことは非常に困難です(多くの機能がありますが)が、IMLはまだありません直接アナログ。



類似物はありませんが、タスクはどのように解決されますか?



IMLには直接的な類似物はありませんが、もちろん間接的な類似物もあります。





JavaScriptなしで、ウェブサイトを構築しない


あなたはすべての困難に対処しなければなりません:





聞いていません、jqueryがあります


Jqueryの出現により、Webアプリケーションの開発が容易になりましたが、クライアント側のアプリケーションの複雑化により、ダビングのレベルが高くなるため、コードを記述するためのスクリプト作成アプローチが正当化されなくなりました。 。



OK、UIでアーキテクチャを構築しましょう


JS上に構築されたMVVMまたはMVCアーキテクチャはサーバーとの通信を提供しますが、モデルがクライアント側に表示される場合、モデルをサーバー側のモデルと同期する必要があり、これにより開発者はフロントエンドとバックエンドに分割されます。

注:プログラマーをサーバーとクライアントに分割するという考えは非常にうまくいかないようです。なぜなら、アクションを調整する必要があり、常に誰かがより速く働き、誰かがより遅くなるからです。 。



アーキテクチャをゼロから構築しないように、AngularJSなどの既製のJavaScriptフレームワークを使用できますが、asp.net mvcで既存のコードを繰り返して、Controller、Routesなどを記述する必要があります。すべてのjavascriptフレームワークの主な問題は、 JSコードを書く必要があります



ああ、JSがなければ


最近、型付きインタプリタまたは代替言語を使用してJavaScriptを記述する傾向が発達しています

TypeScriptはJavaScriptを記述する機能ですが、C#のような構文です。 TypeScriptとIMLの違いは何ですか:





さて、IMLはどのように役立ちますか?



IMLは、JavaScriptコードなしでクライアントスクリプトを記述するための一連のメソッドを提供します。 ブラウザーはイベントモデルの原則に従って動作し、実践が示しているように、それほど多くのシナリオはありません。

標準のアルゴリズムを見てみましょう:

  1. DOM要素でイベントが発生します(ユーザーに代わって、またはプログラムで)
  2. アクションが実行されます(ほとんどの場合、指定されたURLへのAjaxリクエストです)
  3. アクションのチェーンを開始するアクション完了コールバック(受信データの挿入、DOMの操作、CSSの更新、jQueryプラグインの使用)




コードを見せてください、すべてがすぐに明確になります


Html.When(JqueryBind.InitIncoding) .Do() .AjaxGet(Url.Dispatcher().Query(GetCardsQuery { Client = Html.Selector.Name(r=>r.Client) })) .OnSuccess(dsl => dsl.Self().Core().Insert.WithTemplate(idTemplate.ToId()).Html()) .AsHtmlAttributes() .ToDiv()
      
      







より良いアルゴリズム


IMLは宣言型なので、その構造は簡単に説明できます

  1. When InitIncoding-要素がページに表示されたときにイベントが発生したとき
  2. 実行 -イベントの動作を処理する方法(デフォルトの防止、伝播の停止)
  3. アクション -指定されたURLへのajaxリクエスト

    注:たとえば、URLの作成にはMVDが使用されますが、旧式のUrl.Action( "controller"、 "action"、new {Client = Html.Selector.Name(r => r.Client)})も使用できます

  4. オン -アクションが正常に完了すると、アクションのシーケンスを実行します。たとえば、これはテンプレートを介したデータ挿入です
  5. AsHtmlAttributes -IMLコードを「暖かく信頼できる」RouteValueDictionaryにパックします
  6. ToDiv-ページでDivとして宣言します(任意のタグで可能)




構造図を理解する最も簡単な方法


画像



IMLのその他の理由は何ですか?


IMLの主な利点を強調すると、次のようになります。





ここで、C#を教えてください


C#言語はおそらく最も豊富な機能を備えており、Razorページ内でこれらすべてを使用できることが重要です。つまり、匿名関数、ラムダなど、アプリケーションをリファクタリングできるようにすることです。





大丈夫ですか?



以下は、Incoding Frameworkのマイナス面のリストです





おわりに



最初に、私たちの会社はさまざまなプロジェクトに携わっていると書きましたが、Incoding Frameworkが直面しているタスクの範囲は非常に大きいことを強調しました。 ほぼすべての企業が独自のフレームワークを開発していると多くの人が言うでしょうが、他のチームが使用できるツールを開発したように思えます。



PSフィードバックとコメントを聞いてうれしい



All Articles