Coder Social home page Coder Social logo

opentouryoproject / opentouryo Goto Github PK

View Code? Open in Web Editor NEW
240.0 32.0 55.0 136.3 MB

”Open棟梁”は、長年の.NETアプリケーション開発実績にて蓄積したノウハウに基づき開発した.NET用アプリケーション フレームワークです。 (”OpenTouryo” , is an application framework for .NET which was developed using the accumulated know-how with a long track record in .NET application development.)

Home Page: https://opentouryo.osscons.jp

C# 57.39% PLSQL 0.01% HTML 0.79% CSS 0.19% JavaScript 15.75% Batchfile 0.72% Dockerfile 0.01% TSQL 0.90% Shell 0.01% Visual Basic .NET 21.64% PowerShell 0.01% ASP.NET 2.60%
visual-studio c-sharp visual-basic dotnet netstandard netcore aspnet webforms mvc webapi

opentouryo's People

Contributors

daisukenishino avatar daisukenishino2 avatar hayasaka-ryosuke avatar kadoyau avatar kishoreandukuri avatar ledsun avatar nicolas-raoul avatar rituparnabiswas avatar saiandukuri avatar sandeepnayak077 avatar shashi-hcs avatar supragyan avatar toshiomakiyy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opentouryo's Issues

Support of event handling of the TextBox Class (System.Web.UI.WebControls)

Support of the new event handling

Corresponding to the TextBox.TextChanged event handling.

Incidental products

reference to the following

listview

issues#31

RadioButtonList and CheckBoxList

issues#43

Workflow Function : It is not possible to start from other than WorkflowNo = 1.

Problem

For example, if you want to join after the start,
Start workflow definition may be present at WorkflowNo >= 2.
スタート後に合流する場合など、
WorkflowNo = 2以上でスタートするWorkflow定義が存在し得る。

Countermeasures

Change to conditions such as ActionType = "Start".
ActionType="Start"などの条件に変更する。

Correction target

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Business/Workflow/Workflow.cs#L124

Problem of UnZipper

Garbled occurred in ExtractFileFromZip method

棟梁のTouryo.Infrastructure.Pulic.IO.UnZipperにおいて、ExtractFileFromZipメソッドを使用して、zipファイルを解凍するとエンコードを設定していてもファイル名の文字化けが起こります。調査したところ、解凍に使用しているIonic.Zipのバージョンが1.9.1.5であり、このバージョンの場合、zip = new ZipFile(zipFileName, enc)とすると、ファイル名が設定された後にエンコーディングが設定されるため、文字化けが起こるようです。

At the Touryo.Infrastructure.Pulic.IO.UnZipper, file name's garble occurs, even if you set the encoding type when unzip the zip file using the ExtractFileFromZip method. Results of the investigation, I found to be due to the following reasons. Encoding type is set after the file name is set at ZipFile class's constructor in Ionic.Zip version 1.9.1.5.

DotNetZip1.9.1.5

  public ZipFile(string fileName, System.Text.Encoding encoding) {
    ...
    _InitInstance(fileName, null);
    ProvisionalAlternateEncoding = encoding;
    ...
  }

となっており、ファイル名⇒エンコーディングの順で設定されています。
It has become as above, It is set in the order of file name ---> encoding type.

DotNetZip1.9.1.8

  public ZipFile(string fileName, System.Text.Encoding encoding) {
    ...
    AlternateEncoding = encoding;
    AlternateEncodingUsage = ZipOption.Always;
    _InitInstance(fileName, null);
    ...
  }

と処理の順番が入れ替えられているようです。
Processing order is swapped.

CONTRIBUTING.md

CONTRIBUTING.mdをルート階層に置くと、Web上であればIssue作成時やPR作成時にそこへのリンクが表示されます。このリポジトリへの貢献の仕方/ルール(どういう風な貢献を期待するか、使う言語は何か、等)を書いておくといいでしょう。

strange warning about CS1685

The following warning is output at the time of build.
Please investigate the cause of this warning and resolve.

warning CS1685 : The predefined type 'System.Runtime.CompilerServices.ExtensionAttribute' is defined in multiple assemblies in the global alias; using definition from 'c:\Progr
am Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Core
.dll'

We are currently merging.

Requirement

Because it is in the merge work,
Please send as text without committing the modification for the following issues.

Procedure of merging

  • Performs the merge in the following order.
    root [new] -> root_easysetup -> root_VS2010 -> root_VS2012 -> root_VS2013.
  • Confirm the difference between the edition of old version by using the Diff of WinMerge.
  • Copy the new version to the old version location ( the old edition to the new edition location ).
  • Confirm the change of addition and deletion between the copy by using the Diff of WinMerge.
  • Perform the additional work of the above-mentioned additional files by using the TortoiseGit.
  • Commit the change of addition and deletion without update by using the TortoiseGit.
  • Change of addition and deletion is confirmed by using the Diff of TortoiseGit's commit screen.
    ( The difference between the edition, please note to the file other than the source file. )
  • Commit the changes of the update by using the TortoiseGit.
  • After the fixes and commit has been completed, check to see build passes without problems.
  • And, continue until merge work is complete, fixes and commit the problems that have been discovered.

Other than the source file

Check point.

  • *. sln
    • Format Version
    • TargetFrameworkMoniker
  • */...proj
    • TargetFrameworkVersion
    • ToolsVersion=
  • *.config
    • targetFramework
  • else
    • *.bat
    • readme.* (*.txt, *.md)

Memo

Insert file

Update file

  • To regenerate the designer.cs or vb files of resource file by re-run the custom tool (Resgen.exe).
  • Unnecessary possibilities :
  • Delete the reference to the WPFToolKit from WPF Sample project file and *.xaml file.
  • Add the reference to the PCLFramework to Silverlight Sample project file.
  • Add the descriptions of the how to build and execute to the readme.md file.

Delete file

  • Delete Portable Class Library *.dll file. And, append to "ignore list" in the .gitignore.
  • Delete certificate of pfx format file. And, append description that to add the pfx for to build the project.
  • Delete WinAzure_sample from "root" excluding "root_VS2013".

Support for the timestamp in the automatic generation of screen.

Point of the time stamp.

This is the same in data maintenance and table maintenance.

However, time stamp names are supposed common,
Therefore, input field in Form3 of data maintenance, there is only 1.

Detail

(1) It does not display the timestamp column.

(2) Set to the Where clause timestamp columns when you update.

(3) Update method input field

Further, when the update method input field is specified,
Update the time stamp column use the was set update method at input field at the time of update the record.

(This process, which is bundled with SQL that is automatically generated.
Therefore, it is not necessary to prepare the setting field how to update the timestamp Form3. )

(4) When executing Select clause.

  • Get: "Table1.TS"
  • Get: "Table2.TS"

And will not be displayed.

(5) When executing Update clause.

Set Timestamp to SQL parameter.

  • Set: "Where Table1.TS = @ Table1_TS"
  • Set: "Where Table2.TS = @ Table2_TS"

Workflow Function : Reflect the feedback from the user.

Reflect the feedbacks

Modification target

Feedback from the user

  • Freely select ToUser from screen.
    Add argument that specifies ToUser to the method below.
    • StartWorkflow method.
    • RequestWfApproval method( ToUser argument already exists. ).
  • Turnback to person issuing the voucher.
    • Add TurnbackIntoFirst method.
      • Turnback to FromUser of HistoryNo = 1.
    • Run this method by adding a button to the tab 7.
  • Add API that Workflow discarded.
    • Add ForcedTermination method.
      • This method Screw the EndDate to EndDate column of T_Workflow table.
    • Run this method by adding a button to the tab 7.
  • Add API that switch the person in charge.
    • Add SwitchPersonInCharge method.
      • After the acceptance by AcceptWfRequest method,
      • Clearing the acceptance column by a null string by SwitchPersonInCharge method.
      • After that, it becomes possible different users are acceptable.
      • Check the specifications of the switching history of the person whether are recorded.
    • Run this method by adding a button to the tab 7.

D-layer automatic generation tool : there is no consideration of the schema when getting the column.

Problem of primary key acquisition function of Oracle (ODP.NET) (2)

At D-layer automatic generation tool (D層自動生成ツールにて)

There is a consideration of the schema when getting the table, but there is no consideration of the schema when getting the column. This problem occurs only in the auto-generated using the Oracle Database.
テーブルを取得するスキーマの考慮されているが、列を取得するときに、スキーマは考慮されていない。この問題は、Oracleデータベースを使用した自動生成でのみ発生する。

To merge the changes ( - Until September 30)

変更をマージする(-9月30日までに)

Contents

Changes to current,(今までの変更を、)

Please merge in the following order. (次の順序でマージしてください。)

Notes(注意点)

  • There are differences outside the scope of the merge. (マージの範囲外の差分があります。)
    • Some data providers have been removed. (一部のデータプロバイダが取り除かれている。)
    • The web.config and project files and solution file, there is a difference by the version of Visual Studio and .NET. (ソリューションファイルとプロジェクトファイルとweb.configは、.NETやVisual Studioのversionによって違いがある。)
    • Functions that supported by the new .NET Framework or program language version. In this case, " *.cs file and *.vb file" can be commonize the source code using the #if and #define. (新しい.NET Frameworkか、プログラム言語のバージョンでサポートされている機能。この場合、 *.csファイルと *.vbファイルは#ifと#defineを使用してソースコードを共通化できる。)
  • Doesn't merge the test code. (テストコードはマージしない。)
    • However, you should test using the test code code after merging. (しかし、マージした後のコードはテストコードを使用してテストして下さい。)
  • Please do not merge as text project file and solution file. Set the change using the Visual Studio. (ソリューションファイルとプロジェクトファイルはテキストとしてマージしないでください。Visual Studioを使用して変更を設定して下さい。)

GitHub

  • To facilitate the performance of the review, it is necessary to divide "pull request and commit" depending on the "type of merge or files, and number of files". (レビューの遂行を容易にするために、「マージやファイルの種類、ファイルの数」に応じて「プル要求とコミット」分割する必要がある。)
    • example of type of merge or files. (マージやファイルの種類の例。)
      • Add X function. (X機能の追加。)
      • Modification of the license header. (ライセンスヘッダの修正。)
      • *.cs file, *.config file. ( *.cs ファイル, *.config ファイル )

Marge Tool (マージ ツール)

  • Use WinMarge the work of the merge. (マージの作業にはWinMargeを使用して下さい。)
    http://winmerge.org/?lang=en
  • The following settings are useful. (以下の設定が便利。)
    View → Expand All Subfolders. (表示→全てのサブフォルダを展開する。)
  • It is convenient to use a filter, but note merge leakage of files that have been filter. Please work to understand what a file is been filtered. (フィルタを使用すると便利ですが、フィルタされたファイルのマージ漏れに注意して下さい。どのファイルがフィルタされているかを把握して作業して下さい。)
    https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/files/tools/WinMergeFilters

Specifying the WCF options in communication control function.

Explanation

If you want to specify the option in the WCF communication control function, In the current implementation, it is possible only in the section of config file.
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/web.config#L279

Please modify to possible specify WCF options settings such as proxy and authentication by using the communication control function API.

At the moment, it is only possible in ASP.NET Web service.
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Framework/Transmission/CallController.cs#L416

Item transfer is troublesome.

Sumally

Item transfer is troublesome.

  • Screen Item be set for transfer to parameter properties.
  • Parameter properties be set for transfer to Dao properties.

The following is expected.

  • Screen item can be set for transfer to Dao property, directly.
  • Or, there is a library that is supported the item transfer.

The row count of the result of ProductsTableAdapter.SelectMethod is one too many.

Report an Issue

Issue

The row count of the result of ProductsTableAdapter.SelectMethod is one too many.

/// <summary>データ取得処理を実装</summary> 
/// <param name="startRowIndex">開始位置</param> 
/// <param name="maximumRows">取得行数</param> 
/// <returns>DataTable</returns> 
public DataTable SelectMethod(int startRowIndex, int maximumRows) 
{ 
  • e.g. : The below program will return 31 records.
DataTable dt = productsTableAdapter.SelectMethod(0, 30);

Countermeasure

The second argument of SelectMethod is "maximumRows".
Therefore, above program must return 30 records.
Therefore it is necessary to generate a TableAdapter as follows.

selectPagingSQL = string.Format(
  selectPagingSqlTemplate,
  new string[] {
    parameterValue.ColumnList,
    parameterValue.SortExpression,
    parameterValue.SortDirection,
    s + parameterValue.TableName + e , whereSQL,
    startRowNum.ToString(), (startRowNum + parameterValue.MaximumRows - 1).ToString()}
  ).Replace("_p_", p).Replace("_s_", s).Replace("_e_", e).Replace("_f_", f);

Can't submit in IE11.

Problem

Can't submit in IE11 by "double submit prevention function" 's problem.

Countermeasures

Can be determined that the IE11 by the presence or absence of "Trident" in the navigator.appName string.

  • Before the change:
if (navigator.appName == "Microsoft Internet Explorer") {
  • After the change:
if (navigator.appName == "Microsoft Internet Explorer" || navigator.appVersion.indexOf("Trident") != -1) {

Below, the user agent list
http://www.openspc2.org/userAgent/

Build fails because the path is different depending on the environment.

The following is considering how to respond.

  • I am using the MSbuild.exe in express edition.
    And, I am using the devenv.com at edition other than express edition.
    I wanted to unify the MSBuild.exe. But, I am using devenv.exe for the following reasons.
    • MSbuild.exe will be spent many time to corresponding that often can't build by some errors.
  • If possible, I want to select the path automatically.
    But, I think it's difficult on the environment that contains multiple visual studio version and Edition.
  • Environment difference of x86,64 can be overcome by using the "%VS1x0COMNTOOLS%" environment variable for selection of devenv.exe build tool.
VS1x0COMNTOOLS=C:\Program Files\Microsoft Visual Studio 1x.0\Common7\Tools\
VS1x0COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 1x.0\Common7\Tools\

Problem of Table Maintenance screen automatic generation.

[TableName]ConditionalSearch.aspx and [TableName]SearchAndUpdate.aspx

https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/files/tools/DGenTemplates

TextBox in GridView is not WebCustomTextBox.
Please correct the template.

<asp:TemplateField SortExpression="ProductID">
  <ItemTemplate>
    <asp:TextBox ReadOnly="true" BackColor="lightgray" ID="txtProductID" runat="server" Text='<%# Bind("ProductID") %>'></asp:TextBox>
  </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="ProductName">
  <ItemTemplate>
    <asp:TextBox ReadOnly="true" ID="txtProductName" runat="server" Text='<%# Bind("ProductName") %>'></asp:TextBox>
  </ItemTemplate>
</asp:TemplateField>

args.get_postBackElement() returns "undefine".

Phenomenon

args.get_postBackElement() returns "undefine".

countermeasure

AjaxPostBackElement.disabled = xxxx;
 
if (AjaxPostBackElement) {
  AjaxPostBackElement.disabled = xxxx;
}

Review of the build system ( ビルドの見直し

現状の問題点を挙げます。

  • ビルドにdevenvが必要(MSBuildではだめなのか)
  • rootやroot_VSxxxx_TemplateBaseでコードがかなり重複している
  • 大量のbatファイルの必要性が不明(MSBuildではだめなのか)
  • DBのデータプロバイダが必要(NuGetから取るのではだめなのか)

.NETではMSBuildやNuGetによる管理が標準的であり、それに従った方がメリットが大きいと考えます。

Enhancement of general-purpose DTO.

Enhancement

Refactoring

I want to move these codes to CustomMarshaler class
as "StringFromPrimitivetype" and "PrimitivetypeFromString" method.
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Util/CustomMarshaler.cs

Support of SavejqGridJson method

How to set commandtimeout value for each query of Automatic Generation Dao and CmnDao

I want to set commandtimeout value for each query.

Please set the commandtimeout value taken out of the Command object before execution of Command.

  • (((DamSqlSvr)this.GetDam()).DamSqlCommand).CommandTimeout = xxx;
  • DirectCast(GetDam(), DamSqlSvr).DamSqlCommand.CommandTimeout = xxx

However, the above is possible only in your own Dao,

  • CmnDao this process can not be implemented.
    If necessary to modify the implementation of CmnDao as follows.
  • Similarly, the Automatic Generation Dao this process can not be implemented.
    If necessary to modify the implementation of Automatic Generation Dao template as follows.

Implement the process of setting the CommandTimeout property after the "This.SetSQL ();" statement in ExecXXXX method.

License terms

The license templates on the source files state that the copyright owner is the Apache Software Foundation. For example, root/programs/C#/Frameworks/Infrastructure/CustomControl/Control/WebCustomButton.cs says:

// The ASF licenses this file to you under the Apache License, Version 2.0

Is this true? If not, the license templates should better be updated to declare the copyright owner, using the template included in license/LICENSE.txt.

Sorry for the nit-picking / please forgive me if the ownership of copyright has in fact been transferred to ASF. Thank you and good luck to the people working on the project!

Problem of Data Maintenance screen automatic generation.

The following test case has not been described in the tutorial.

  • Time stamp
    Optimism exclusive function using a timestamp column.
  • Relevant check and automatic numbering processing
    Implementation of the relevant check and automatic numbering processing.
    • This tool correspond manually numbering and automatic numbering.
    • Method of automatic numbering is different for each DBMS.
      There are two major method those are "Identity" and "Sequence".

Exception occurs if execute the SQL using ODP.NET to Oracle12cR1.

The colon in comment might have been interpreted as variables by odp.net.

Environment and Condition of premise.

  • Windows Server 2008R2
  • Oracle version : Oracle12cR1(12.1.0.2)
    It does not occur with Oracle12c
  • ODAC version : ODAC_12.1.0.2.1
  • In the case of dynamic parameterized query.
    In the case of static parameterized query, the exception does not occur.
  • When execute following SQL that include comment string that can be identified as variables using ODP.NET to Oracle12cR1, then the Exception occurs.
<?xml version="1.0" encoding="shift_jis" ?>
<ROOT>
-- 説明・説明・説明・説明・説明
-- 2013/09/30 名前・名前・名前
-- ITEM_ORDER 1:xxxxxxxxxx
--         2:yyyyyyyyyy
--         3:zzzzzzzzzz
-- ■説明・説明・説明
SELECT
・・・
</ROOT>

The following is a stack trace of the exception

パラメータ・バインディングが無効です
パラメーター名:項目セット
   場所 Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
   場所 Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   場所 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   場所 Touryo.Infrastructure.Public.Db.DamOraOdp.ExecSelectFill_DT(DataTable dt)
   場所 Touryo.Infrastructure.Framework.Dao.BaseDao.ExecSelectFill_DT(DataTable dt)
   場所 Touryo.Infrastructure.Business.Dao.CmnDao.ExecSelectFill_DT(DataTable dt)
   場所 ・・・

Cause and countermeasure

Cause

The following comment might have been interpreted as variables by odp.net.
Because, the exception has not occur, after these colon were changed to full-width from half-width.

-- 1:xxxxxxxxxx
-- 2:yyyyyyyyyy
-- 3:zzzzzzzzzz

▼ ▼ ▼

-- 1:xxxxxxxxxx
-- 2:yyyyyyyyyy
-- 3:zzzzzzzzzz

I think this reason is that it was not recognized as a comment.

Countermeasure

It is not clear whether ODP.NET( or OracleClient) problems or OpenTouryo problems at present.

IE 11 ignores dialogWidth-Height

Summary

IE 9 ignores postback possible dialog's Width-Height properties by using Frameset.

Solution

Problem

This issue's modification not yet started by following reasons.

Reference

Workflow Function : Can't turnbuck continuous

Problem

Due to the implementation of Turnbuck in confluence, can't turnbuck continuous. Maybe, there is a need to modify the SQL. Logic that get the User of Turnbuck destination also need to be modify.
合流地点でのTurnbuckの実装のせいで、連続Turnbuckできなくなった。多分、SQLを修正する必要がありそう。Turnbuck先のUser取得のロジックも修正が必要だろう。

Problem of "suppress submit by pressing enter key."

Problem of "suppress submit by pressing enter key."

Problem of Current implementation.

Current implementation is suppressed to submit by pressing enter key.
There is a requirement to allow submit by pressing the enter key by explicitly attributes.

Corresponding methods

I think following implementation can cope with it.

  • "cansubmitbyenter" attribute of "input type="text"" that has been permitted submit processing by pressing the enter key will be specified "true".
<input type="text" size="10" cansubmitbyenter="true">
  • "input type="text"" that is specified "true" to "cansubmitbyenter" attribute can submit processing by pressing the enter key.
if ((event.keyCode == 13) && !(event.srcElement.type == "submit" || event.srcElement.type == "textarea")) { 
  // enterの場合 (submitボタンやtextarea領域以外)
  if (event.srcElement.cansubmitbyenter == null || event.srcElement.cansubmitbyenter == undefined) {
    // cansubmitbyenter属性が定義されていない場合、enter不許可
    return false; 
  }
  else {
    // cansubmitbyenter属性が定義されている場合
    if (event.srcElement.cansubmitbyenter == "true") {
      // cansubmitbyenter属性がtrueの場合は、enter許可(TextBoxの場合submit)。
    }
    else {
      // cansubmitbyenter属性がfalseの場合は、enter不許可。
      return false; 
    }
  }
} 
else {
  // enterの場合もsubmitボタンやtextarea領域はenter許可
}

Reference

  • フォームでのEnterキー押下について調べてみた - 130単位
    http://d.hatena.ne.jp/deeeki/20090516/formenterkey
    • When the user presses the "Enter key" in the input element,
      it will be post or get to destination that is specified in the action attribute of the form.
    • If the text box is multiple,
      • Behavior is different by the browser.
      • IE / Firefox / Opera : It is not Submit to even if Enter is pressed.
      • Opera / Safari / Chrome : It is Submit When Enter is pressed.

Support of event handling of the listview

Support of the new event handling

I want you to add support for event handling of the ListView by referring to the code in the event handling of GridView.

Search using the keyword "GridView" the following pages.

Please consider the events to be supported.

Incidental products

Development of AsyncProcessingService function

Requirement

Windows Service that achieve asynchronous processing by used DBMS as a queue.

Windows Service

C# - How to Create a Windows Service - Part 1-3 - YouTube
http://www.youtube.com/watch?v=uM9o8GsO_u4

Specification

I have uploaded to the following URL.
https://github.com/OpenTouryoProject/OpenTouryoDocuments/blob/develop/documents/1_User_Guide/en/AsyncProcessingService/AsyncProcessingService_EN.xlsx
Note: Refer to the develop branch.

User

This function will be used in the Copy tool of Azure Storage.
The following URL is Copy tool of Azure Storage of specifications.
https://github.com/OpenTouryoProject/CloudOS/blob/develop/documents/AzureStorageBlobDataCopyWebsite/Specification_EN.xlsx

I want to provide the following changes to VB version.

Requirement

I want to provide the following changes to VB version.

(1)

  • Changes to the JS file
  • I've already merged.

(2)

(3)

  • jQGrid + WCF(JSON.NET)
    This is provided against edition of more than root_VS2010, because it require .NET v4.0.

(4)

AsyncProcessingService :

  • Infrastructure.Business.AsyncProcessingService
  • ServiceInterface.AsyncProcessingService
  • Sample.AsyncProcessingService

note : I aborted the VB migration of ServiceInterface.AsyncProcessingService.
Therefor, There is no need to migrate ServiceInterface.AsyncProcessingService to VB.

README.md

TEST

README.mdの修正
兼、コミットメッセージによるissue操作のテスト

Modification of README.md
And, test the issue operation with the commit message.

DynInsParameter of dynamic insert does not be disabled by null value setting.

Problem

This is because DynInsParameter have problem.
Because ELSE tag is not set in the IF tag.

Modification target

Automatic generation process of automatic generation tool.

DaoGen_Tool/Form2.cs

How to fix

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Tools/DaoGen_Tool/Form2.cs#L3849

this.DynInsParameters += 
  "<IF>" + this.ParamSign + col.Replace(' ', '_') + ",</IF>" + ","; 

↓ Modify as follows.

this.DynInsParameters += 
  "<IF>" + this.ParamSign + col.Replace(' ', '_') + ",<ELSE></ELSE></IF>" + ","; 

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Tools/DaoGen_Tool/Form2.cs#L4237

oldStirng = "<IF>" + this.ParamSign + this.TimeStampColName.Replace(' ', '_') + ",</IF>";

↓ Modify as follows.

oldStirng = "<IF>" + this.ParamSign + this.TimeStampColName.Replace(' ', '_') + ",<ELSE></ELSE></IF>";

How to Specify a DataTable to the argument of the user-defined function.

Table Valued Parameters

/ ***** Implementation of VB ***** /
Dim Param As SqlParameter = _
Param.SqlDbType = SqlDbType.Structured
Param.TypeName = "[dbo].[User-defined table type]"
/ ***** Implementation of user-defined function ***** /
CREATE FUNCTION XXXXX
(
    @AAAAA Integer
    , @BBBBB Integer
    , @CCCCC [dbo].[User-defined table type] READONLY
)

How to Implement

You can not specify a DataTable by SetParameter method at the moment.
However, it is available in a implementation the following methods of self-made Dao + α.

Please refer to the following.

In implementation of this self-made Dao,

((DamSqlSvr) Me._dam.).SqlCommand.Parameters.add(new SqlParameter(···));

As described above, to add parameters (* In this case, dynamic SQL of XML format is not supported).

About the support of future

In the future, I consider the overload of Me.SetParameter method that added the TypeName argument.

Reference information:

Workflow Function : Check the validity of the function.

How to verify the validity

Testing the Workflow Function.

Point of test

  • Use a testing framework. Check the coverage.
  • Test for Reply and Turnback is important.
  • Test for branch and confluence is also important
  • Combination test for "Reply and Turnback" and "branch confluence" is important.
  • Is it possible that this workflow function represent loop structure and process that?

Consider the problem of the specification by reference to the following sites.

To verify such as if there is a problem with the functional level of OpenTouryo,
for example, by use the information of workflow patterns in the following HP.

Enhancement of the table maintenance screen auto generation.

I did the following modifications, please PULL(Or Fetch & Marge).

3d17c62

Can be add related check processing by this modify.
The meaning of "Related check" is a check using the information in the DB.

Inherit the _3TierEngine and Override the UOC_RelatedCheck.
Implement the related check processing to UOC_RelatedCheck.
And change the tableadapter code that generated by table maintenance screen auto generation tool.

Like this.

 // B層を生成
 // _3TierEngine b = new _3TierEngine();
 // XXXX class is inherit the _3TierEngine and override the UOC_RelatedCheck.
 XXXX b = new XXXX();

In addition, When multiple DB support is complete then please delete the following code.

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/files/tools/DGenTemplates/ConditionalSearch.aspx#L9

Modify to support by selection of data provider on automatic generation tool.

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/files/tools/DGenTemplates/ConditionalSearch.aspx.cs#L92

This is necessary to change the auto-generated templates and tools.

Finally, Change the tutorial of automatic screen generation.

  • Multiple DB support.
  • Implementation of the "Related check".
    (Tutorial_Automatic Screen Generation_EN.doc)

https://github.com/OpenTouryoProject/OpenTouryoDocuments/tree/master/documents/2_Tutorial/en

Comments incorrect called "adopt a design pattern that is used as a singleton"

「シングルトンとして利用されるデザイン パターンを採用」という誤ったコメント
https://github.com/OpenTouryoProject/OpenTouryo/blob/01-00/root/programs/C%23/Frameworks/Infrastructure/Framework/Business/TransactionControl.cs#L76

このクラスはシングルトンではありません。
コメントが間違っているか、シングルトンパターンを間違って認識しているかでしょう。

Porting session timeout detection function on the ASP.NET WebForm to ASP.NET MVC.

Requirement

Please porting the above function to the following location of ASP.NET MVC.

Supplement

Session timeout detection function to detect the Session timeout using the session timeout detection cookie.

  • Session timeout detection cookie is generated along with the session cookie in the case of "HttpSessionState.IsNewSession == true".
  • Then, Web access is continued in state of "HttpSessionState.IsNewSession == false".
  • If session timeout has occurred, only the state of "HttpSessionState.IsNewSession == true" in ASP.NET standard feature.
  • But, it is possible to detect session timeout by the session timeout detection cookie existence check in addition to this state.

Reference

Support of event handling of the RadioButtonList and CheckBoxList

Support of the new event handling

I want you to add support for SelectedIndexChanged event handling of the RadioButtonList and CheckBoxList. by referring to the code in the event handling of RadioButton and CheckBox.

Search using the keyword "SelectedIndexChanged" the following pages.

Incidental products

Also, will need to add the definition of the prefix of a RadioButtonList and CheckBoxList in app.config.
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/app.config#L8

And add the RadioButtonList and CheckBoxList test code to the test code of below.
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/Aspx/testFxLayerP/normal/testScreen2.aspx

Recommended method of "null and undefined" check in javascript.

Requirement

I want to derive the recommended method in this project.

The current implementation.

I have checked javascript's "null and undefined" value for just in case.
e.g. : https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Samples/WebApp_sample/ProjectX_sample/Framework/Js/common.js#L82

// hiddenがnullになることがある・・・ 
if (childScreenType == null || childScreenType == undefined) { 
  return; 
} 

The suggestion on the Internet.

The information on the Internet, there is a lot of suggestion of a variety of ways.

Column name that begin with "AND" or "OR" characters in the SQL is cut at the editing process of the "Where tag".

Phenomenon

Column name that begin with "AND" or "OR" characters in the SQL is cut at the editing process of the "Where tag".

<?xml version="1.0" encoding="utf-8" ?>
<ROOT>
  SELECT 
    XXX,
    YYY,
  FROM
    ZZZ
  <WHERE>
    WHERE
      <IF> ANDXXX = @ANDXXX</IF>
  </WHERE>
  <PARAM> ANDXXX, String, AAA </PARAM>
</ROOT>

If you give the parameters to "@andxxx",

  • Expected results
  SELECT 
    XXX,
    YYY,
  FROM
    ZZZ
  WHERE
    ANDXXX = @ANDXXX
  • Actual results
  SELECT 
    XXX,
    YYY,
  FROM
    ZZZ
  WHERE
    XXX = @ANDXXX

The head of the "AND" or "OR" is deleted.

Countermeasure

Is it like this.

 // ANDが最初に現れる位置(★半角スペースを追加)
 andIndex = where.IndexOf("AND ", startIndex, StringComparison.OrdinalIgnoreCase); 
 // ORが最初に現れる位置 (★半角スペースを追加)
 orIndex = where.IndexOf("OR ", startIndex, StringComparison.OrdinalIgnoreCase);
  • Or, put around a column in the enclosure character of DBMS.
    • For SQLServer : [OR_ColumnName]
    • For Oracle : "AND_ColumnName"

How old is Touryo?

.NETアプリケーション開発に造詣の深い棟梁さんは、おいくつくらいの方ですか?
あと Open 棟梁って名前を考えた方はおいくつですか?

Construction of the CI sites using Jenkins.

How to run the automated build and test using the Jenkins.

  • Jenkins 環境構築 ( Jenkins Environment.
    • Jenkins インストール ( Jenkins installation.
    • MSBuild プラグインインストール ( MSBuild plug-in installation.
      • [Jenkins]-[Jenkins の管理]-[システムの設定] で、
        インストールされている MSBuild のパスを設定する。
        ([Jenkins]-[Manage Jenkins]-[System Settings],
        Set the path to the MSBuild that are installed.
    • NUnit プラグインインストール ( NUnit plug-in installation.
    • ネットワーク設定 ( Network Configuration.
      • [Jenkins]-[Jenkins の管理]-[プラグインの管理]-[高度な設定] でHTTP Proxy を設定する。
        ([Jenkins]-[Manage Jenkins]-[In the Advanced Settings]-[Manage Plugin], Set the HTTP Proxy.
    • 認証設定 ( Authentication Settings.
      • [Jenkins]-[認証情報]-[グローバルドメイン]-[認証情報の追加] で、
        xxxのアカウント情報を登録する。
        ([Jenkins]-[credentials]-[Global Domain]-[Under Add authentication information],
        Register an account information xxx.
  • ジョブ作成 ( job creation.
    • [ソースコード管理] で "Git" を選択 ( Select the "Git" in the Source Code Control.
      • [Repository URL] に、Git リポジトリの URL を入力する。
        (Enter the URL of a Git repository to [Repository URL].
      • [Credentials] に、上記認証設定で追加したアカウントを選択する。
        (Select the account that you added in the authentication setting to [Credentials].
        • (ここで、最新の Git プラグインでは、
          "could not lock config file .git/config: No such file or directory"
          というエラーが発生するが、無視して構わない。)
        • (Here, in the Git the latest plug-ins, error saying
          "could not lock config file .git/config: No such file or directory"
          occurs, but may be ignored.)
    • ビルド・トリガで、"SCM をポーリング" または "定期的に実行" を選択する。
      (Select "run on a regular basis" or "poll SCM" at the build trigger.
      • "SCM をポーリング" を選択すると、( If you select "poll SCM",
        指定したタイミングで Git リポジトリを参照し、リポジトリに変更があればジョブを実行する。
        (Refer to the Git repository at the specified timing,
        the job is executed if there is a change to the repository.
      • "定期的に実行" を選択すると、( If you select "run on a regular basis",
        リポジトリへの変更の有無にかかわらず、ジョブを実行する。
        (With or without changes to the repository, the job is executed.
      • スケジュールの指定の仕方は、
        [スケジュール] テキストボックスの横の [?] ボタンを押下するとヘルプが参照できる。
        (How to specify the schedule,
        you can refer help by the presses [?] button
        that present next to the Schedule textbox button.
        • 例1:5 分おきに実行する場合 (Example 1 : If you want to run every five minutes.
          • */5 * * * *
        • 例2:金曜日の 16 時に実行する場合 (Example 2:If you want to run at 16 on Friday.
          • 0 16 * * 5
    • ビルドで、[ビルド手順の追加]-[Build a Visual Studio project or solution using MSBuild] を選択
      (Select [Add build instructions]-[Build a Visual Studio project or solution using MSBuild] at Build.
      • MSBuild Version :
        システムの設定で設定した MSBuild の名前
        (The name of the MSBuild that you set in the configuration of the system
      • MSBuild Build File :
        プロジェクトまたはソリューションのパス ( Path of the project or solution.
        • Jenkins の環境変数が使用可能
          (Environment variables Jenkins is available.
      • Command Line Arguments :
        MSBuild のオプション ( Option of MSBuild
      • Windows バッチコマンドの実行 (Running Windows batch command :
        実行するコマンド ( Command to be executed
        • Jenkins の環境変数が使用可能
          (Environment variables Jenkins is available.
      • ビルド後の処理で、[ビルド後の処理の追加]-[Publish NUnit test result report] を選択
        (Select [Add post-build processing]-[Publish NUnit test result report] at process of post-build.
        • [Test report XMLs] に、NUnit の結果ファイル (XML) へのパスを指定
          Specify the path to the (XML) file results of NUnit to [Test report XMLs].
  • ジョブ実行 ( job execution.
    • 手動で実行する場合は、Jenkins 画面左側のメニューの [ビルド実行]リンクを押下
      (If you want to run manually, pressing the menu of the left side of the screen Jenkins [Build Run] link.
    • スケジュールを設定した場合は、設定したスケジュールで自動実行される
      (If you set the schedule, it is automatically run on a schedule that you set.
  • 結果確認 ( As a result confirmed.
    • ビルドに成功したら青で、失敗したら赤で表示される
      (In the After a build, it is displayed in blue if it succeed, in red if it fails.
      • [コンソール出力] で、ログが確認できる
        In the [console output], you can be confirmed log.
      • [テスト結果] で、NUnit 実行結果が確認できる
        In the [test results], you can be confirmed NUnit execution result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.