зеркало из https://github.com/mono/moma.git
11-21-2006 Jonathan Pobst <monkey@jpobst.com>
MoMA Initial Import svn path=/trunk/moma/; revision=68284
This commit is contained in:
Коммит
a96043bcd8
|
@ -0,0 +1,429 @@
|
|||
namespace MoMA
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose (bool disposing)
|
||||
{
|
||||
if (disposing && (components != null)) {
|
||||
components.Dispose ();
|
||||
}
|
||||
base.Dispose (disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent ()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager (typeof (MainForm));
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox ();
|
||||
this.NextButton = new System.Windows.Forms.Button ();
|
||||
this.BackButton = new System.Windows.Forms.Button ();
|
||||
this.label1 = new System.Windows.Forms.Label ();
|
||||
this.StepLabel = new System.Windows.Forms.Label ();
|
||||
this.IntroductionLabel = new System.Windows.Forms.Label ();
|
||||
this.AssemblyLabel = new System.Windows.Forms.Label ();
|
||||
this.AssemblyAddButton = new System.Windows.Forms.Button ();
|
||||
this.AssemblyRemoveButton = new System.Windows.Forms.Button ();
|
||||
this.AssemblyListView = new System.Windows.Forms.ListView ();
|
||||
this.columnHeader1 = new System.Windows.Forms.ColumnHeader ();
|
||||
this.MonoTodoResultsImage = new System.Windows.Forms.PictureBox ();
|
||||
this.MonoTodoResultsLabel = new System.Windows.Forms.Label ();
|
||||
this.AnalysisResultsLabel = new System.Windows.Forms.Label ();
|
||||
this.NotImplementedResultsLabel = new System.Windows.Forms.Label ();
|
||||
this.NotImplementedResultsImage = new System.Windows.Forms.PictureBox ();
|
||||
this.PInvokesResultsLabel = new System.Windows.Forms.Label ();
|
||||
this.PInvokesResultsImage = new System.Windows.Forms.PictureBox ();
|
||||
this.AssemblyInstructions = new System.Windows.Forms.Label ();
|
||||
this.MissingResultsLabel = new System.Windows.Forms.Label ();
|
||||
this.MissingResultsImage = new System.Windows.Forms.PictureBox ();
|
||||
this.ResultsText = new System.Windows.Forms.Label ();
|
||||
this.ResultsDetailLink = new System.Windows.Forms.LinkLabel ();
|
||||
this.ProjectLink = new System.Windows.Forms.LinkLabel ();
|
||||
this.SubmitLabel = new System.Windows.Forms.Label ();
|
||||
this.SubmitInstructions = new System.Windows.Forms.Label ();
|
||||
this.ViewReportButton = new System.Windows.Forms.Button ();
|
||||
this.SubmitReportButton = new System.Windows.Forms.Button ();
|
||||
this.label2 = new System.Windows.Forms.Label ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.MonoTodoResultsImage)).BeginInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NotImplementedResultsImage)).BeginInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.PInvokesResultsImage)).BeginInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.MissingResultsImage)).BeginInit ();
|
||||
this.SuspendLayout ();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox1.Image = global::MoMA.Properties.Resources.monkey;
|
||||
this.pictureBox1.Location = new System.Drawing.Point (12, 12);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size (100, 119);
|
||||
this.pictureBox1.TabIndex = 0;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// NextButton
|
||||
//
|
||||
this.NextButton.Location = new System.Drawing.Point (621, 429);
|
||||
this.NextButton.Name = "NextButton";
|
||||
this.NextButton.Size = new System.Drawing.Size (86, 30);
|
||||
this.NextButton.TabIndex = 1;
|
||||
this.NextButton.Text = "Next";
|
||||
this.NextButton.UseVisualStyleBackColor = true;
|
||||
this.NextButton.Click += new System.EventHandler (this.NextButton_Click);
|
||||
//
|
||||
// BackButton
|
||||
//
|
||||
this.BackButton.Enabled = false;
|
||||
this.BackButton.Location = new System.Drawing.Point (529, 429);
|
||||
this.BackButton.Name = "BackButton";
|
||||
this.BackButton.Size = new System.Drawing.Size (86, 30);
|
||||
this.BackButton.TabIndex = 2;
|
||||
this.BackButton.Text = "Back";
|
||||
this.BackButton.UseVisualStyleBackColor = true;
|
||||
this.BackButton.Click += new System.EventHandler (this.BackButton_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.label1.Font = new System.Drawing.Font ("Arial", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label1.Location = new System.Drawing.Point (135, 12);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size (340, 32);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Mono Migration Analyzer";
|
||||
//
|
||||
// StepLabel
|
||||
//
|
||||
this.StepLabel.AutoSize = true;
|
||||
this.StepLabel.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.StepLabel.Location = new System.Drawing.Point (12, 414);
|
||||
this.StepLabel.Name = "StepLabel";
|
||||
this.StepLabel.Size = new System.Drawing.Size (60, 14);
|
||||
this.StepLabel.TabIndex = 4;
|
||||
this.StepLabel.Text = "Step 1 of 4";
|
||||
//
|
||||
// IntroductionLabel
|
||||
//
|
||||
this.IntroductionLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.IntroductionLabel.Location = new System.Drawing.Point (138, 130);
|
||||
this.IntroductionLabel.Name = "IntroductionLabel";
|
||||
this.IntroductionLabel.Size = new System.Drawing.Size (530, 202);
|
||||
this.IntroductionLabel.TabIndex = 5;
|
||||
this.IntroductionLabel.Text = resources.GetString ("IntroductionLabel.Text");
|
||||
//
|
||||
// AssemblyLabel
|
||||
//
|
||||
this.AssemblyLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.AssemblyLabel.Location = new System.Drawing.Point (170, 100);
|
||||
this.AssemblyLabel.Name = "AssemblyLabel";
|
||||
this.AssemblyLabel.Size = new System.Drawing.Size (416, 20);
|
||||
this.AssemblyLabel.TabIndex = 6;
|
||||
this.AssemblyLabel.Text = "Choose the assemblies to analyze:";
|
||||
//
|
||||
// AssemblyAddButton
|
||||
//
|
||||
this.AssemblyAddButton.Image = global::MoMA.Properties.Resources.list_add;
|
||||
this.AssemblyAddButton.Location = new System.Drawing.Point (592, 123);
|
||||
this.AssemblyAddButton.Name = "AssemblyAddButton";
|
||||
this.AssemblyAddButton.Size = new System.Drawing.Size (30, 30);
|
||||
this.AssemblyAddButton.TabIndex = 8;
|
||||
this.AssemblyAddButton.UseVisualStyleBackColor = true;
|
||||
this.AssemblyAddButton.Click += new System.EventHandler (this.AssemblyAddButton_Click);
|
||||
//
|
||||
// AssemblyRemoveButton
|
||||
//
|
||||
this.AssemblyRemoveButton.Image = global::MoMA.Properties.Resources.list_remove;
|
||||
this.AssemblyRemoveButton.Location = new System.Drawing.Point (592, 159);
|
||||
this.AssemblyRemoveButton.Name = "AssemblyRemoveButton";
|
||||
this.AssemblyRemoveButton.Size = new System.Drawing.Size (30, 30);
|
||||
this.AssemblyRemoveButton.TabIndex = 9;
|
||||
this.AssemblyRemoveButton.UseVisualStyleBackColor = true;
|
||||
this.AssemblyRemoveButton.Click += new System.EventHandler (this.AssemblyRemoveButton_Click);
|
||||
//
|
||||
// AssemblyListView
|
||||
//
|
||||
this.AssemblyListView.Columns.AddRange (new System.Windows.Forms.ColumnHeader[] {
|
||||
this.columnHeader1});
|
||||
this.AssemblyListView.FullRowSelect = true;
|
||||
this.AssemblyListView.Location = new System.Drawing.Point (173, 123);
|
||||
this.AssemblyListView.MultiSelect = false;
|
||||
this.AssemblyListView.Name = "AssemblyListView";
|
||||
this.AssemblyListView.Size = new System.Drawing.Size (413, 145);
|
||||
this.AssemblyListView.TabIndex = 10;
|
||||
this.AssemblyListView.UseCompatibleStateImageBehavior = false;
|
||||
this.AssemblyListView.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// columnHeader1
|
||||
//
|
||||
this.columnHeader1.Text = "Assembly";
|
||||
this.columnHeader1.Width = 409;
|
||||
//
|
||||
// MonoTodoResultsImage
|
||||
//
|
||||
this.MonoTodoResultsImage.Image = global::MoMA.Properties.Resources.button_ok;
|
||||
this.MonoTodoResultsImage.Location = new System.Drawing.Point (193, 214);
|
||||
this.MonoTodoResultsImage.Name = "MonoTodoResultsImage";
|
||||
this.MonoTodoResultsImage.Size = new System.Drawing.Size (22, 22);
|
||||
this.MonoTodoResultsImage.TabIndex = 11;
|
||||
this.MonoTodoResultsImage.TabStop = false;
|
||||
//
|
||||
// MonoTodoResultsLabel
|
||||
//
|
||||
this.MonoTodoResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.MonoTodoResultsLabel.Location = new System.Drawing.Point (220, 216);
|
||||
this.MonoTodoResultsLabel.Name = "MonoTodoResultsLabel";
|
||||
this.MonoTodoResultsLabel.Size = new System.Drawing.Size (310, 20);
|
||||
this.MonoTodoResultsLabel.TabIndex = 12;
|
||||
this.MonoTodoResultsLabel.Text = "Methods marked with [MonoTodo] called: 0";
|
||||
//
|
||||
// AnalysisResultsLabel
|
||||
//
|
||||
this.AnalysisResultsLabel.Font = new System.Drawing.Font ("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.AnalysisResultsLabel.Location = new System.Drawing.Point (169, 100);
|
||||
this.AnalysisResultsLabel.Name = "AnalysisResultsLabel";
|
||||
this.AnalysisResultsLabel.Size = new System.Drawing.Size (416, 20);
|
||||
this.AnalysisResultsLabel.TabIndex = 14;
|
||||
this.AnalysisResultsLabel.Text = "Analysis Summary:";
|
||||
//
|
||||
// NotImplementedResultsLabel
|
||||
//
|
||||
this.NotImplementedResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.NotImplementedResultsLabel.Location = new System.Drawing.Point (220, 188);
|
||||
this.NotImplementedResultsLabel.Name = "NotImplementedResultsLabel";
|
||||
this.NotImplementedResultsLabel.Size = new System.Drawing.Size (395, 20);
|
||||
this.NotImplementedResultsLabel.TabIndex = 16;
|
||||
this.NotImplementedResultsLabel.Text = "Methods called that throw NotImplementedException: 0";
|
||||
//
|
||||
// NotImplementedResultsImage
|
||||
//
|
||||
this.NotImplementedResultsImage.Image = global::MoMA.Properties.Resources.button_ok;
|
||||
this.NotImplementedResultsImage.Location = new System.Drawing.Point (193, 186);
|
||||
this.NotImplementedResultsImage.Name = "NotImplementedResultsImage";
|
||||
this.NotImplementedResultsImage.Size = new System.Drawing.Size (22, 22);
|
||||
this.NotImplementedResultsImage.TabIndex = 15;
|
||||
this.NotImplementedResultsImage.TabStop = false;
|
||||
//
|
||||
// PInvokesResultsLabel
|
||||
//
|
||||
this.PInvokesResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.PInvokesResultsLabel.Location = new System.Drawing.Point (220, 160);
|
||||
this.PInvokesResultsLabel.Name = "PInvokesResultsLabel";
|
||||
this.PInvokesResultsLabel.Size = new System.Drawing.Size (310, 20);
|
||||
this.PInvokesResultsLabel.TabIndex = 19;
|
||||
this.PInvokesResultsLabel.Text = "P/Invokes called: 0";
|
||||
//
|
||||
// PInvokesResultsImage
|
||||
//
|
||||
this.PInvokesResultsImage.Image = global::MoMA.Properties.Resources.button_ok;
|
||||
this.PInvokesResultsImage.Location = new System.Drawing.Point (193, 158);
|
||||
this.PInvokesResultsImage.Name = "PInvokesResultsImage";
|
||||
this.PInvokesResultsImage.Size = new System.Drawing.Size (22, 22);
|
||||
this.PInvokesResultsImage.TabIndex = 18;
|
||||
this.PInvokesResultsImage.TabStop = false;
|
||||
//
|
||||
// AssemblyInstructions
|
||||
//
|
||||
this.AssemblyInstructions.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.AssemblyInstructions.Location = new System.Drawing.Point (173, 278);
|
||||
this.AssemblyInstructions.Name = "AssemblyInstructions";
|
||||
this.AssemblyInstructions.Size = new System.Drawing.Size (413, 54);
|
||||
this.AssemblyInstructions.TabIndex = 21;
|
||||
this.AssemblyInstructions.Text = "Select the main assembly (.exe or .dll) as well as any referenced user libraries " +
|
||||
"(.dll). (Do not select assemblies that ship with .Net, like System.Xml or Syste" +
|
||||
"m.Windows.Forms.)";
|
||||
//
|
||||
// MissingResultsLabel
|
||||
//
|
||||
this.MissingResultsLabel.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.MissingResultsLabel.Location = new System.Drawing.Point (220, 132);
|
||||
this.MissingResultsLabel.Name = "MissingResultsLabel";
|
||||
this.MissingResultsLabel.Size = new System.Drawing.Size (310, 20);
|
||||
this.MissingResultsLabel.TabIndex = 23;
|
||||
this.MissingResultsLabel.Text = "Methods that still missing in Mono: 0";
|
||||
//
|
||||
// MissingResultsImage
|
||||
//
|
||||
this.MissingResultsImage.Image = global::MoMA.Properties.Resources.button_ok;
|
||||
this.MissingResultsImage.Location = new System.Drawing.Point (193, 130);
|
||||
this.MissingResultsImage.Name = "MissingResultsImage";
|
||||
this.MissingResultsImage.Size = new System.Drawing.Size (22, 22);
|
||||
this.MissingResultsImage.TabIndex = 22;
|
||||
this.MissingResultsImage.TabStop = false;
|
||||
//
|
||||
// ResultsText
|
||||
//
|
||||
this.ResultsText.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResultsText.Location = new System.Drawing.Point (170, 278);
|
||||
this.ResultsText.Name = "ResultsText";
|
||||
this.ResultsText.Size = new System.Drawing.Size (416, 54);
|
||||
this.ResultsText.TabIndex = 24;
|
||||
this.ResultsText.Text = "Congratulations! No potential issues were detected in your assemblies. The only" +
|
||||
" thing left to do is to try running them on Mono and see what happens.";
|
||||
//
|
||||
// ResultsDetailLink
|
||||
//
|
||||
this.ResultsDetailLink.AutoSize = true;
|
||||
this.ResultsDetailLink.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResultsDetailLink.Location = new System.Drawing.Point (471, 332);
|
||||
this.ResultsDetailLink.Name = "ResultsDetailLink";
|
||||
this.ResultsDetailLink.Size = new System.Drawing.Size (115, 16);
|
||||
this.ResultsDetailLink.TabIndex = 25;
|
||||
this.ResultsDetailLink.TabStop = true;
|
||||
this.ResultsDetailLink.Text = "View Detail Report";
|
||||
this.ResultsDetailLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler (this.ResultsDetailLink_LinkClicked);
|
||||
//
|
||||
// ProjectLink
|
||||
//
|
||||
this.ProjectLink.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ProjectLink.Location = new System.Drawing.Point (210, 438);
|
||||
this.ProjectLink.Name = "ProjectLink";
|
||||
this.ProjectLink.Size = new System.Drawing.Size (172, 14);
|
||||
this.ProjectLink.TabIndex = 26;
|
||||
this.ProjectLink.TabStop = true;
|
||||
this.ProjectLink.Text = "http://www.mono-project.com";
|
||||
this.ProjectLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler (this.ProjectLink_LinkClicked);
|
||||
//
|
||||
// SubmitLabel
|
||||
//
|
||||
this.SubmitLabel.Font = new System.Drawing.Font ("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.SubmitLabel.Location = new System.Drawing.Point (173, 98);
|
||||
this.SubmitLabel.Name = "SubmitLabel";
|
||||
this.SubmitLabel.Size = new System.Drawing.Size (416, 20);
|
||||
this.SubmitLabel.TabIndex = 27;
|
||||
this.SubmitLabel.Text = "Submit Results:";
|
||||
//
|
||||
// SubmitInstructions
|
||||
//
|
||||
this.SubmitInstructions.Font = new System.Drawing.Font ("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.SubmitInstructions.Location = new System.Drawing.Point (173, 123);
|
||||
this.SubmitInstructions.Name = "SubmitInstructions";
|
||||
this.SubmitInstructions.Size = new System.Drawing.Size (416, 183);
|
||||
this.SubmitInstructions.TabIndex = 28;
|
||||
this.SubmitInstructions.Text = resources.GetString ("SubmitInstructions.Text");
|
||||
//
|
||||
// ViewReportButton
|
||||
//
|
||||
this.ViewReportButton.Location = new System.Drawing.Point (411, 325);
|
||||
this.ViewReportButton.Name = "ViewReportButton";
|
||||
this.ViewReportButton.Size = new System.Drawing.Size (86, 30);
|
||||
this.ViewReportButton.TabIndex = 29;
|
||||
this.ViewReportButton.Text = "View Report";
|
||||
this.ViewReportButton.UseVisualStyleBackColor = true;
|
||||
this.ViewReportButton.Click += new System.EventHandler (this.ViewReportButton_Click);
|
||||
//
|
||||
// SubmitReportButton
|
||||
//
|
||||
this.SubmitReportButton.Enabled = false;
|
||||
this.SubmitReportButton.Location = new System.Drawing.Point (503, 325);
|
||||
this.SubmitReportButton.Name = "SubmitReportButton";
|
||||
this.SubmitReportButton.Size = new System.Drawing.Size (86, 30);
|
||||
this.SubmitReportButton.TabIndex = 30;
|
||||
this.SubmitReportButton.Text = "Submit Report";
|
||||
this.SubmitReportButton.UseVisualStyleBackColor = true;
|
||||
this.SubmitReportButton.Click += new System.EventHandler (this.SubmitReportButton_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font ("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label2.Location = new System.Drawing.Point (12, 438);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size (63, 14);
|
||||
this.label2.TabIndex = 32;
|
||||
this.label2.Text = "Version 1.0";
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF (6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject ("$this.BackgroundImage")));
|
||||
this.ClientSize = new System.Drawing.Size (719, 471);
|
||||
this.Controls.Add (this.label2);
|
||||
this.Controls.Add (this.SubmitReportButton);
|
||||
this.Controls.Add (this.ViewReportButton);
|
||||
this.Controls.Add (this.SubmitInstructions);
|
||||
this.Controls.Add (this.SubmitLabel);
|
||||
this.Controls.Add (this.ProjectLink);
|
||||
this.Controls.Add (this.ResultsDetailLink);
|
||||
this.Controls.Add (this.ResultsText);
|
||||
this.Controls.Add (this.MissingResultsLabel);
|
||||
this.Controls.Add (this.MissingResultsImage);
|
||||
this.Controls.Add (this.label1);
|
||||
this.Controls.Add (this.PInvokesResultsLabel);
|
||||
this.Controls.Add (this.PInvokesResultsImage);
|
||||
this.Controls.Add (this.NotImplementedResultsLabel);
|
||||
this.Controls.Add (this.NotImplementedResultsImage);
|
||||
this.Controls.Add (this.AnalysisResultsLabel);
|
||||
this.Controls.Add (this.MonoTodoResultsLabel);
|
||||
this.Controls.Add (this.MonoTodoResultsImage);
|
||||
this.Controls.Add (this.AssemblyListView);
|
||||
this.Controls.Add (this.AssemblyRemoveButton);
|
||||
this.Controls.Add (this.AssemblyAddButton);
|
||||
this.Controls.Add (this.AssemblyLabel);
|
||||
this.Controls.Add (this.IntroductionLabel);
|
||||
this.Controls.Add (this.StepLabel);
|
||||
this.Controls.Add (this.BackButton);
|
||||
this.Controls.Add (this.NextButton);
|
||||
this.Controls.Add (this.pictureBox1);
|
||||
this.Controls.Add (this.AssemblyInstructions);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Name = "MainForm";
|
||||
this.Text = "MoMA: Mono Migration Analyzer";
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.MonoTodoResultsImage)).EndInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NotImplementedResultsImage)).EndInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.PInvokesResultsImage)).EndInit ();
|
||||
((System.ComponentModel.ISupportInitialize)(this.MissingResultsImage)).EndInit ();
|
||||
this.ResumeLayout (false);
|
||||
this.PerformLayout ();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Button NextButton;
|
||||
private System.Windows.Forms.Button BackButton;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label StepLabel;
|
||||
private System.Windows.Forms.Label IntroductionLabel;
|
||||
private System.Windows.Forms.Label AssemblyLabel;
|
||||
private System.Windows.Forms.Button AssemblyAddButton;
|
||||
private System.Windows.Forms.Button AssemblyRemoveButton;
|
||||
private System.Windows.Forms.ListView AssemblyListView;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||
private System.Windows.Forms.PictureBox MonoTodoResultsImage;
|
||||
private System.Windows.Forms.Label MonoTodoResultsLabel;
|
||||
private System.Windows.Forms.Label AnalysisResultsLabel;
|
||||
private System.Windows.Forms.Label NotImplementedResultsLabel;
|
||||
private System.Windows.Forms.PictureBox NotImplementedResultsImage;
|
||||
private System.Windows.Forms.Label PInvokesResultsLabel;
|
||||
private System.Windows.Forms.PictureBox PInvokesResultsImage;
|
||||
private System.Windows.Forms.Label AssemblyInstructions;
|
||||
private System.Windows.Forms.Label MissingResultsLabel;
|
||||
private System.Windows.Forms.PictureBox MissingResultsImage;
|
||||
private System.Windows.Forms.Label ResultsText;
|
||||
private System.Windows.Forms.LinkLabel ResultsDetailLink;
|
||||
private System.Windows.Forms.LinkLabel ProjectLink;
|
||||
private System.Windows.Forms.Label SubmitLabel;
|
||||
private System.Windows.Forms.Label SubmitInstructions;
|
||||
private System.Windows.Forms.Button ViewReportButton;
|
||||
private System.Windows.Forms.Button SubmitReportButton;
|
||||
private System.Windows.Forms.Label label2;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,307 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections;
|
||||
using System.Web.UI;
|
||||
using System.IO;
|
||||
using MoMA.Analyzer;
|
||||
|
||||
namespace MoMA
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
private WizardStep current_step;
|
||||
|
||||
public MainForm ()
|
||||
{
|
||||
InitializeComponent ();
|
||||
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.Introduction);
|
||||
}
|
||||
|
||||
private void ResetForm ()
|
||||
{
|
||||
IntroductionLabel.Visible = false;
|
||||
|
||||
AssemblyAddButton.Visible = false;
|
||||
AssemblyListView.Visible = false;
|
||||
AssemblyRemoveButton.Visible = false;
|
||||
AssemblyLabel.Visible = false;
|
||||
AssemblyInstructions.Visible = false;
|
||||
|
||||
AnalysisResultsLabel.Visible = false;
|
||||
MonoTodoResultsImage.Visible = false;
|
||||
MonoTodoResultsLabel.Visible = false;
|
||||
NotImplementedResultsImage.Visible = false;
|
||||
NotImplementedResultsLabel.Visible = false;
|
||||
PInvokesResultsImage.Visible = false;
|
||||
PInvokesResultsLabel.Visible = false;
|
||||
MissingResultsImage.Visible = false;
|
||||
MissingResultsLabel.Visible = false;
|
||||
ResultsDetailLink.Visible = false;
|
||||
ResultsText.Visible = false;
|
||||
|
||||
SubmitInstructions.Visible = false;
|
||||
SubmitLabel.Visible = false;
|
||||
SubmitReportButton.Visible = false;
|
||||
ViewReportButton.Visible = false;
|
||||
}
|
||||
|
||||
private void SetupForm (WizardStep step)
|
||||
{
|
||||
switch (step) {
|
||||
case WizardStep.Introduction:
|
||||
IntroductionLabel.Visible = true;
|
||||
break;
|
||||
case WizardStep.ChooseAssemblies:
|
||||
AssemblyAddButton.Visible = true;
|
||||
AssemblyListView.Visible = true;
|
||||
AssemblyRemoveButton.Visible = true;
|
||||
AssemblyLabel.Visible = true;
|
||||
AssemblyInstructions.Visible = true;
|
||||
break;
|
||||
case WizardStep.ViewResults:
|
||||
AnalysisResultsLabel.Visible = true;
|
||||
MonoTodoResultsImage.Visible = true;
|
||||
MonoTodoResultsLabel.Visible = true;
|
||||
NotImplementedResultsImage.Visible = true;
|
||||
NotImplementedResultsLabel.Visible = true;
|
||||
PInvokesResultsImage.Visible = true;
|
||||
PInvokesResultsLabel.Visible = true;
|
||||
MissingResultsImage.Visible = true;
|
||||
MissingResultsLabel.Visible = true;
|
||||
ResultsText.Visible = true;
|
||||
NextButton.Text = "Next";
|
||||
if (ResultsText.Text.StartsWith ("There"))
|
||||
ResultsDetailLink.Visible = true;
|
||||
break;
|
||||
case WizardStep.SubmitResults:
|
||||
SubmitInstructions.Visible = true;
|
||||
SubmitLabel.Visible = true;
|
||||
SubmitReportButton.Visible = true;
|
||||
ViewReportButton.Visible = true;
|
||||
NextButton.Text = "Close";
|
||||
break;
|
||||
}
|
||||
|
||||
StepLabel.Text = String.Format ("Step {0} of 4", (int)step);
|
||||
current_step = step;
|
||||
}
|
||||
|
||||
private void NextButton_Click (object sender, EventArgs e)
|
||||
{
|
||||
switch (current_step) {
|
||||
case WizardStep.Introduction:
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.ChooseAssemblies);
|
||||
break;
|
||||
case WizardStep.ChooseAssemblies:
|
||||
if (AssemblyListView.Items.Count == 0)
|
||||
{
|
||||
MessageBox.Show ("Please choose at least one assembly to analyze.");
|
||||
return;
|
||||
}
|
||||
AnalyzeAssemblies ();
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.ViewResults);
|
||||
break;
|
||||
case WizardStep.ViewResults:
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.SubmitResults);
|
||||
break;
|
||||
case WizardStep.SubmitResults:
|
||||
Application.Exit ();
|
||||
break;
|
||||
}
|
||||
|
||||
BackButton.Enabled = true;
|
||||
}
|
||||
|
||||
private void BackButton_Click (object sender, EventArgs e)
|
||||
{
|
||||
switch (current_step) {
|
||||
case WizardStep.Introduction:
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.ChooseAssemblies);
|
||||
break;
|
||||
case WizardStep.ChooseAssemblies:
|
||||
BackButton.Enabled = false;
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.Introduction);
|
||||
break;
|
||||
case WizardStep.ViewResults:
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.ChooseAssemblies);
|
||||
break;
|
||||
case WizardStep.SubmitResults:
|
||||
ResetForm ();
|
||||
SetupForm (WizardStep.ViewResults);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void AssemblyAddButton_Click (object sender, EventArgs e)
|
||||
{
|
||||
OpenFileDialog ofd = new OpenFileDialog ();
|
||||
ofd.Multiselect = true;
|
||||
ofd.Filter = "Assemblies (*.exe, *.dll)|*.exe; *.dll|All Files (*.*)|*.*";
|
||||
|
||||
if (ofd.ShowDialog () == DialogResult.OK) {
|
||||
foreach (string s in ofd.FileNames) {
|
||||
ListViewItem lvi = new ListViewItem (System.IO.Path.GetFileName (s));
|
||||
lvi.Tag = s;
|
||||
|
||||
AssemblyListView.Items.Add (lvi);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AssemblyRemoveButton_Click (object sender, EventArgs e)
|
||||
{
|
||||
if (AssemblyListView.SelectedItems.Count > 0)
|
||||
AssemblyListView.Items.Remove (AssemblyListView.SelectedItems[0]);
|
||||
}
|
||||
|
||||
private void AnalyzeAssemblies ()
|
||||
{
|
||||
AssemblyAnalyzer aa = new AssemblyAnalyzer ();
|
||||
|
||||
// Keep total counts for all assemblies for summary screen
|
||||
int monotodocount = 0;
|
||||
int notimplementedcount = 0;
|
||||
int pinvokecount = 0;
|
||||
int missingcount = 0;
|
||||
|
||||
string todo_defs = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "monotodo.txt");
|
||||
string nie_defs = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "exception.txt");
|
||||
string missing_defs = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "missing.txt");
|
||||
|
||||
// Load the definition files
|
||||
aa.LoadDefinitions (todo_defs, nie_defs, missing_defs);
|
||||
|
||||
// Scan user's assemblies for P/Invokes
|
||||
foreach (ListViewItem lvi in AssemblyListView.Items)
|
||||
aa.ScanAssemblyForPInvokes ((string)lvi.Tag);
|
||||
|
||||
// Start the results reports
|
||||
string output_path = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Reports");
|
||||
XhtmlTextWriter report = aa.BeginHtmlReport (new FileStream (Path.Combine (output_path, "output.html"), FileMode.Create));
|
||||
StreamWriter submit_report = aa.BeginTextReport (new FileStream (Path.Combine (output_path, "submit.txt"), FileMode.Create));
|
||||
|
||||
// Scan user's assemblies for issues
|
||||
foreach (ListViewItem lvi in AssemblyListView.Items)
|
||||
{
|
||||
aa.AnalyzeAssembly ((string)lvi.Tag);
|
||||
|
||||
report.WriteFullBeginTag ("h2");
|
||||
report.WriteEncodedText (Path.GetFileName ((string)lvi.Tag));
|
||||
report.WriteEndTag ("h2");
|
||||
|
||||
aa.AddResultsToHtmlReport (report);
|
||||
aa.AddResultsToTextReport (submit_report);
|
||||
|
||||
monotodocount += aa.MonoTodoResults.Count;
|
||||
notimplementedcount += aa.NotImplementedExceptionResults.Count;
|
||||
pinvokecount += aa.PInvokeResults.Count;
|
||||
missingcount += aa.MissingMethodResults.Count;
|
||||
|
||||
aa.MissingMethodResults.Clear ();
|
||||
aa.MonoTodoResults.Clear ();
|
||||
aa.NotImplementedExceptionResults.Clear ();
|
||||
aa.PInvokeResults.Clear ();
|
||||
}
|
||||
|
||||
// Finish up the reports
|
||||
aa.FinishHtmlReport (report);
|
||||
aa.FinishTextReport (submit_report);
|
||||
|
||||
// Update the summary screen
|
||||
UpdateResultsSummary (monotodocount, notimplementedcount, pinvokecount, missingcount);
|
||||
|
||||
// Enable the report submission button
|
||||
SubmitReportButton.Enabled = true;
|
||||
}
|
||||
|
||||
private void UpdateResultsSummary (int monotodocount, int notimplementedcount, int pinvokecount, int missingcount)
|
||||
{
|
||||
if (monotodocount == 0) {
|
||||
MonoTodoResultsImage.Image = MoMA.Properties.Resources.button_ok;
|
||||
MonoTodoResultsLabel.Text = "No methods marked with [MonoTodo] are called.";
|
||||
}
|
||||
else {
|
||||
MonoTodoResultsImage.Image = MoMA.Properties.Resources.dialog_warning;
|
||||
MonoTodoResultsLabel.Text = String.Format ("Methods called marked with [MonoTodo]: {0}", monotodocount);
|
||||
}
|
||||
|
||||
if (notimplementedcount == 0) {
|
||||
NotImplementedResultsImage.Image = MoMA.Properties.Resources.button_ok;
|
||||
NotImplementedResultsLabel.Text = "No methods that throw NotImplementedException are called.";
|
||||
}
|
||||
else {
|
||||
NotImplementedResultsImage.Image = MoMA.Properties.Resources.dialog_warning;
|
||||
NotImplementedResultsLabel.Text = String.Format ("Methods called that throw NotImplementedException: {0}", notimplementedcount);
|
||||
}
|
||||
|
||||
if (pinvokecount == 0) {
|
||||
PInvokesResultsImage.Image = MoMA.Properties.Resources.button_ok;
|
||||
PInvokesResultsLabel.Text = "No P/Invokes are called.";
|
||||
}
|
||||
else {
|
||||
PInvokesResultsImage.Image = MoMA.Properties.Resources.dialog_warning;
|
||||
PInvokesResultsLabel.Text = String.Format ("P/Invokes called: {0}", pinvokecount);
|
||||
}
|
||||
|
||||
if (missingcount == 0) {
|
||||
MissingResultsImage.Image = MoMA.Properties.Resources.button_ok;
|
||||
MissingResultsLabel.Text = "All methods called exist in Mono.";
|
||||
}
|
||||
else {
|
||||
MissingResultsImage.Image = MoMA.Properties.Resources.dialog_warning;
|
||||
MissingResultsLabel.Text = String.Format ("Methods that are still missing in Mono: {0}", missingcount);
|
||||
}
|
||||
|
||||
if (monotodocount + notimplementedcount + pinvokecount + missingcount == 0)
|
||||
ResultsText.Text = "Congratulations! No potential issues were detected in the selected assemblies. The only thing left to do is to try running them on Mono and see what happens.";
|
||||
else {
|
||||
ResultsText.Text = "There were potential issues detected in the selected assemblies. A report detailing each issue has been created.";
|
||||
ResultsDetailLink.Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void ResultsDetailLink_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start (Path.Combine (Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Reports"), "output.html"));
|
||||
}
|
||||
|
||||
private void ProjectLink_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start ("http://www.mono-project.com/");
|
||||
}
|
||||
|
||||
private void ViewReportButton_Click (object sender, EventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start (Path.Combine (Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Reports"), "submit.txt"));
|
||||
}
|
||||
|
||||
private void SubmitReportButton_Click (object sender, EventArgs e)
|
||||
{
|
||||
SubmitReportButton.Enabled = false;
|
||||
|
||||
string output_path = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), "Reports");
|
||||
StreamReader sr = new StreamReader (new FileStream (Path.Combine (output_path, "submit.txt"), FileMode.Open));
|
||||
|
||||
string results = sr.ReadToEnd ();
|
||||
|
||||
MoMAWebServices.MoMASubmit ws = new MoMA.MoMAWebServices.MoMASubmit ();
|
||||
|
||||
if (ws.SubmitResults (results))
|
||||
MessageBox.Show ("Results successfully submitted. Thanks!");
|
||||
else
|
||||
MessageBox.Show ("Result submission failed. Please try again later.");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,364 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="IntroductionLabel.Text" xml:space="preserve">
|
||||
<value>The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.
|
||||
|
||||
While MoMA can help show potential issues, there are many complex factors that cannot be covered by a simple tool. MoMA may fail to point out areas that will cause problems, and may point out areas which will not actually be an issue.
|
||||
|
||||
Use the results provided as a guide to get you started on porting your application, but remember the true test is actually running your application on Mono.
|
||||
|
||||
Good luck!</value>
|
||||
</data>
|
||||
<data name="SubmitInstructions.Text" xml:space="preserve">
|
||||
<value>Want to help out the Mono project? Please submit your results to the Mono team so they can prioritize their efforts based on what functionality people need most.
|
||||
|
||||
The following report has been prepared. It doesn't contain any information about your assemblies, just which incomplete methods it calls in Mono and which P/Invokes it uses. (You can view the report before sending as well.)
|
||||
|
||||
This information is invaluable to the Mono team to find which areas are missing that are needed by real-world applications.</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
HgAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,47 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public class BaseChecker
|
||||
{
|
||||
protected SortedList <string, Method> data;
|
||||
|
||||
protected BaseChecker ()
|
||||
{
|
||||
}
|
||||
|
||||
public BaseChecker (Stream input)
|
||||
{
|
||||
data = new SortedList<string, Method> ();
|
||||
|
||||
StreamReader input_reader = new StreamReader (input);
|
||||
string line;
|
||||
|
||||
while ((line = input_reader.ReadLine ()) != null)
|
||||
data[line] = new Method (line);
|
||||
}
|
||||
|
||||
public BaseChecker (SortedList <string, Method> data)
|
||||
{
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public virtual bool Matches (string method, out Method match)
|
||||
{
|
||||
if (method.Contains ("AddMemoryPressure"))
|
||||
Console.WriteLine (method);
|
||||
|
||||
if (data.ContainsKey (method)) {
|
||||
match = data[method];
|
||||
return true;
|
||||
}
|
||||
|
||||
match = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public class CheckMonoTodo : BaseChecker
|
||||
{
|
||||
public CheckMonoTodo (Stream input)
|
||||
{
|
||||
data = new SortedList<string, Method> ();
|
||||
|
||||
StreamReader input_reader = new StreamReader (input);
|
||||
string line;
|
||||
|
||||
while ((line = input_reader.ReadLine ()) != null)
|
||||
{
|
||||
int split = line.IndexOf ("-");
|
||||
|
||||
string method = line.Substring (0, split);
|
||||
string description = line.Substring (split + 1);
|
||||
|
||||
data[method] = new Method (method, description);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using Mono.Cecil;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public class CheckPInvokes : BaseChecker
|
||||
{
|
||||
public CheckPInvokes ()
|
||||
{
|
||||
data = new SortedList<string, Method> ();
|
||||
}
|
||||
|
||||
public void FindPInvokesInAssembly (string assembly)
|
||||
{
|
||||
AssemblyDefinition ad = AssemblyFactory.GetAssembly (assembly);
|
||||
|
||||
//Gets all types of the MainModule of the assembly
|
||||
foreach (TypeDefinition type in ad.MainModule.Types) {
|
||||
if (type.Name != "<Module>") {
|
||||
//Gets all methods of the current type
|
||||
foreach (MethodDefinition method in type.Methods)
|
||||
if ((method.Attributes & MethodAttributes.PInvokeImpl) == MethodAttributes.PInvokeImpl)
|
||||
data[method.ToString ()] = new Method (method.ToString (), method.PInvokeInfo.Module.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,278 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using Mono.Cecil;
|
||||
using Mono.Cecil.Cil;
|
||||
using System.Web.UI;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public class AssemblyAnalyzer
|
||||
{
|
||||
private CheckMonoTodo mono_todo;
|
||||
private BaseChecker not_implemented;
|
||||
private BaseChecker missing;
|
||||
private CheckPInvokes pinvoke;
|
||||
|
||||
private List<BaseError> mono_todo_results;
|
||||
private List<BaseError> not_implemented_results;
|
||||
private List<BaseError> missing_results;
|
||||
private List<BaseError> pinvoke_results;
|
||||
|
||||
public List<BaseError> MonoTodoResults
|
||||
{
|
||||
get { return this.mono_todo_results; }
|
||||
}
|
||||
|
||||
public List<BaseError> NotImplementedExceptionResults
|
||||
{
|
||||
get { return this.not_implemented_results; }
|
||||
}
|
||||
|
||||
public List<BaseError> MissingMethodResults
|
||||
{
|
||||
get { return this.missing_results; }
|
||||
}
|
||||
|
||||
public List<BaseError> PInvokeResults
|
||||
{
|
||||
get { return this.pinvoke_results; }
|
||||
}
|
||||
|
||||
public AssemblyAnalyzer ()
|
||||
{
|
||||
mono_todo_results = new List<BaseError> ();
|
||||
not_implemented_results = new List<BaseError> ();
|
||||
missing_results = new List<BaseError> ();
|
||||
pinvoke_results = new List<BaseError> ();
|
||||
}
|
||||
|
||||
public void LoadDefinitions (string monoTodoDefinitions, string notImplementedDefinitions, string missingDefinitions)
|
||||
{
|
||||
Stream mt = new FileStream (monoTodoDefinitions, FileMode.Open);
|
||||
Stream ni = new FileStream (notImplementedDefinitions, FileMode.Open);
|
||||
Stream mi = new FileStream (missingDefinitions, FileMode.Open);
|
||||
|
||||
LoadDefinitions (mt, ni, mi);
|
||||
|
||||
mt.Close ();
|
||||
ni.Close ();
|
||||
mi.Close ();
|
||||
}
|
||||
|
||||
public void LoadDefinitions (Stream monoTodoDefinitions, Stream notImplementedDefinitions, Stream missingDefinitions)
|
||||
{
|
||||
if (monoTodoDefinitions != null)
|
||||
mono_todo = new CheckMonoTodo (monoTodoDefinitions);
|
||||
|
||||
if (notImplementedDefinitions != null)
|
||||
not_implemented = new BaseChecker (notImplementedDefinitions);
|
||||
|
||||
if (missingDefinitions != null)
|
||||
missing = new BaseChecker (missingDefinitions);
|
||||
}
|
||||
|
||||
public void ScanAssemblyForPInvokes (string assembly)
|
||||
{
|
||||
if (pinvoke == null)
|
||||
pinvoke = new CheckPInvokes ();
|
||||
|
||||
pinvoke.FindPInvokesInAssembly (assembly);
|
||||
}
|
||||
|
||||
public void AnalyzeAssembly (string assembly)
|
||||
{
|
||||
AssemblyDefinition ad = AssemblyFactory.GetAssembly (assembly);
|
||||
|
||||
foreach (TypeDefinition type in ad.MainModule.Types) {
|
||||
if (type.Name != "<Module>") {
|
||||
foreach (MethodDefinition method in type.Methods) {
|
||||
if (method.Body != null) {
|
||||
foreach (Instruction i in method.Body.Instructions) {
|
||||
if (i.OpCode == OpCodes.Call || i.OpCode == OpCodes.Callvirt) {
|
||||
Method match;
|
||||
|
||||
if (mono_todo != null && mono_todo.Matches (i.Operand.ToString (), out match))
|
||||
mono_todo_results.Add (new MonoTodoError (new Method (method.ToString ()), match));
|
||||
|
||||
if (not_implemented != null && not_implemented.Matches (i.Operand.ToString (), out match))
|
||||
not_implemented_results.Add (new NotImplementedExceptionError (new Method (method.ToString ()), match));
|
||||
|
||||
if (pinvoke.Matches (i.Operand.ToString (), out match))
|
||||
pinvoke_results.Add (new PInvokeError (new Method (method.ToString ()), match));
|
||||
|
||||
if (missing.Matches (i.Operand.ToString (), out match))
|
||||
missing_results.Add (new MissingMethodError (new Method (method.ToString ()), match));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public XhtmlTextWriter BeginHtmlReport (Stream output)
|
||||
{
|
||||
StreamWriter sw = new StreamWriter (output);
|
||||
XhtmlTextWriter writer = new XhtmlTextWriter (sw);
|
||||
|
||||
writer.WriteBeginTag ("html");
|
||||
writer.WriteAttribute ("xmlns", "http://www.w3.org/1999/xhtml");
|
||||
writer.Write (HtmlTextWriter.TagRightChar);
|
||||
writer.WriteFullBeginTag ("head");
|
||||
|
||||
writer.WriteFullBeginTag ("title");
|
||||
writer.WriteEncodedText ("MoMa Report");
|
||||
writer.WriteEndTag ("title");
|
||||
|
||||
WriteCss (writer);
|
||||
|
||||
writer.WriteEndTag ("head");
|
||||
writer.WriteFullBeginTag ("body");
|
||||
|
||||
writer.WriteFullBeginTag ("h1");
|
||||
writer.WriteEncodedText ("MoMA Scan Results");
|
||||
writer.WriteEndTag ("h1");
|
||||
|
||||
writer.WriteBreak ();
|
||||
writer.WriteEncodedText (String.Format ("Scan time: {0}" , DateTime.Now.ToString ()));
|
||||
writer.WriteBreak ();
|
||||
writer.WriteBreak ();
|
||||
writer.Write ("For descriptions of issues and what to do, see <a href=\"http://www.mono-project.com/MoMA_-_Issue_Descriptions\">http://www.mono-project.com/MoMA_-_Issue_Descriptions</a>.");
|
||||
writer.WriteBreak ();
|
||||
writer.WriteBreak ();
|
||||
|
||||
return writer;
|
||||
}
|
||||
|
||||
public StreamWriter BeginTextReport (Stream output)
|
||||
{
|
||||
return new StreamWriter (output);
|
||||
}
|
||||
|
||||
public void AddResultsToHtmlReport (XhtmlTextWriter writer)
|
||||
{
|
||||
if (missing_results.Count + pinvoke_results.Count + not_implemented_results.Count + mono_todo_results.Count == 0) {
|
||||
writer.WriteFullBeginTag ("h3");
|
||||
writer.WriteEncodedText ("No Issues Found");
|
||||
writer.WriteEndTag ("h3");
|
||||
writer.WriteBreak ();
|
||||
}
|
||||
else {
|
||||
OutputHtmlResults (writer, "Methods missing from Mono", missing_results, "Calling Method", "Method not yet in Mono");
|
||||
OutputHtmlResults (writer, "P/Invokes into native code", pinvoke_results, "Calling Method", "P/Invoke Method", "External DLL");
|
||||
OutputHtmlResults (writer, "Methods called that throw NotImplementedException", not_implemented_results, "Calling Method", "Mono method that throws NotImplementedException");
|
||||
OutputHtmlResults (writer, "Methods called marked with [MonoTodo]", mono_todo_results, "Calling Method", "Method with [MonoTodo]", "Reason");
|
||||
}
|
||||
}
|
||||
|
||||
public void AddResultsToTextReport (StreamWriter writer)
|
||||
{
|
||||
OutputTextResults (writer, "Methods missing from Mono", missing_results);
|
||||
OutputTextResults (writer, "P/Invokes into native code", pinvoke_results);
|
||||
OutputTextResults (writer, "Methods called that throw NotImplementedException", not_implemented_results);
|
||||
OutputTextResults (writer, "Methods called marked with [MonoTodo]", mono_todo_results);
|
||||
}
|
||||
|
||||
private void OutputHtmlResults (XhtmlTextWriter writer, string heading, List<BaseError> results, params string[] tableHeaders)
|
||||
{
|
||||
if (results.Count == 0)
|
||||
return;
|
||||
|
||||
writer.WriteFullBeginTag ("h3");
|
||||
writer.WriteEncodedText (heading);
|
||||
writer.WriteEndTag ("h3");
|
||||
|
||||
writer.WriteFullBeginTag ("table");
|
||||
writer.WriteBeginTag ("tr");
|
||||
writer.WriteAttribute ("class", "header");
|
||||
writer.Write (HtmlTextWriter.TagRightChar);
|
||||
|
||||
|
||||
if (tableHeaders != null && tableHeaders.Length > 0) {
|
||||
foreach (string s in tableHeaders) {
|
||||
writer.WriteFullBeginTag ("td");
|
||||
writer.WriteEncodedText (s);
|
||||
writer.WriteEndTag ("td");
|
||||
}
|
||||
}
|
||||
|
||||
writer.WriteEndTag ("tr");
|
||||
|
||||
bool odd = false;
|
||||
string previous_class = string.Empty;
|
||||
|
||||
foreach (BaseError be in results) {
|
||||
if (previous_class != be.GetCaller ().Class) {
|
||||
writer.WriteBeginTag ("tr");
|
||||
writer.WriteAttribute ("class", "class");
|
||||
writer.Write (HtmlTextWriter.TagRightChar);
|
||||
|
||||
writer.WriteBeginTag ("td");
|
||||
writer.WriteAttribute ("colspan", "3");
|
||||
writer.Write (HtmlTextWriter.TagRightChar);
|
||||
|
||||
writer.WriteEncodedText ("Class " + be.GetCaller ().Class + ":");
|
||||
writer.WriteEndTag ("td");
|
||||
writer.WriteEndTag ("tr");
|
||||
|
||||
|
||||
}
|
||||
be.WriteHtml (writer, odd);
|
||||
odd = !odd;
|
||||
previous_class = be.GetCaller ().Class;
|
||||
}
|
||||
|
||||
writer.WriteEndTag ("table");
|
||||
writer.WriteBreak ();
|
||||
writer.WriteBreak ();
|
||||
}
|
||||
|
||||
private void OutputTextResults (StreamWriter writer, string heading, List<BaseError> results)
|
||||
{
|
||||
if (results.Count == 0)
|
||||
return;
|
||||
|
||||
writer.WriteLine ("[{0}]", heading);
|
||||
|
||||
foreach (BaseError be in results)
|
||||
be.WriteText (writer);
|
||||
}
|
||||
|
||||
public void FinishHtmlReport (XhtmlTextWriter writer)
|
||||
{
|
||||
writer.WriteEndTag ("body");
|
||||
writer.WriteEndTag ("html");
|
||||
writer.Close ();
|
||||
}
|
||||
|
||||
public void FinishTextReport (StreamWriter writer)
|
||||
{
|
||||
writer.Close ();
|
||||
}
|
||||
|
||||
public void ClearPInvokeDefinitions ()
|
||||
{
|
||||
pinvoke_results = new List<BaseError> ();
|
||||
}
|
||||
|
||||
private void WriteCss (XhtmlTextWriter writer)
|
||||
{
|
||||
writer.WriteFullBeginTag ("style");
|
||||
|
||||
writer.WriteLine ("body { background-color: #fff; color: #333; font-family: lucida grande, sans-serif; margin: 5; padding: 0; font-size: 9pt; }");
|
||||
writer.WriteLine ("table { font-size: 9pt; width: 100%; padding: 0; margin: 0; font-family: Verdana, Tahoma, Lucida Sans, Sans-Serif; border-collapse: collapse; }");
|
||||
writer.WriteLine ("table tr.header { font-weight: bold; font-size: 12px; padding: 5px; background-color: #e8f3d4; border: none; }");
|
||||
writer.WriteLine ("table tr.header td { padding: 5px; border: 1px; }");
|
||||
writer.WriteLine ("tr.odd { background-color: #F1F5FA; }");
|
||||
writer.WriteLine ("tr.class { font-weight: bold; }");
|
||||
writer.WriteLine ("h1,h2,h3,h4,h5,h6 { color: #68892f; font-family: vag rounded, vag round, arial mt rounded, arial rounded, lucida grande, myriad, andale sans, luxi sans, bitstream vera sans, tahoma, toga sans, helvetica, arial, sans-serif; margin: 0; padding: 0; }");
|
||||
writer.WriteLine ("h1 { font-size: 2.25em; }");
|
||||
writer.WriteLine ("h2 { margin-bottom: .5em; font-size: 1.75em; }");
|
||||
writer.WriteLine ("h3 { margin-bottom: .45em; font-size: 1.25em; }");
|
||||
|
||||
writer.WriteEndTag ("style");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,122 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public class Method
|
||||
{
|
||||
private string raw_method;
|
||||
private string method_output;
|
||||
private string method_output_with_class;
|
||||
private string method_class;
|
||||
private string data;
|
||||
|
||||
public Method (string method)
|
||||
{
|
||||
raw_method = method;
|
||||
|
||||
ParseMethod();
|
||||
}
|
||||
|
||||
public Method (string method, string data)
|
||||
{
|
||||
this.raw_method = method;
|
||||
this.data = data;
|
||||
|
||||
ParseMethod ();
|
||||
}
|
||||
|
||||
public string RawMethod
|
||||
{
|
||||
get { return raw_method; }
|
||||
set { raw_method = value; }
|
||||
}
|
||||
|
||||
public string Data
|
||||
{
|
||||
get { return data; }
|
||||
set { data = value; }
|
||||
}
|
||||
|
||||
public string Class
|
||||
{
|
||||
get { return method_class; }
|
||||
set { method_class = value; }
|
||||
}
|
||||
|
||||
private void ParseMethod ()
|
||||
{
|
||||
string return_type;
|
||||
string function_name;
|
||||
string[] parameters;
|
||||
|
||||
if (raw_method.Contains ("modopt("))
|
||||
{
|
||||
int mod_start = raw_method.IndexOf ("modopt(");
|
||||
int mod_end = raw_method.IndexOf (")", mod_start);
|
||||
|
||||
raw_method = raw_method.Substring (0, mod_start) + raw_method.Substring (mod_end + 2);
|
||||
}
|
||||
|
||||
return_type = raw_method.Substring (0, raw_method.IndexOf (" "));
|
||||
|
||||
int colons = raw_method.IndexOf ("::");
|
||||
int function_end = raw_method.IndexOf ("(");
|
||||
|
||||
function_name = raw_method.Substring (colons + 2, function_end - colons - 2).Replace ("::", ".");
|
||||
|
||||
string parameter_string = raw_method.Substring (function_end + 1, raw_method.Length - function_end - 2);
|
||||
|
||||
parameters = parameter_string.Split (',');
|
||||
|
||||
string final_parameters = string.Empty;
|
||||
|
||||
foreach (string p in parameters)
|
||||
final_parameters += (ConvertType (p) + ", ");
|
||||
|
||||
final_parameters = final_parameters.Substring (0, final_parameters.Length - 2);
|
||||
method_output = string.Format ("{0} {1}({2})", ConvertType (return_type), function_name, final_parameters);
|
||||
method_class = raw_method.Substring (raw_method.IndexOf (" ") + 1, colons - raw_method.IndexOf (" ") - 1);
|
||||
method_output_with_class = string.Format ("{0} {1}.{2}({3})", ConvertType (return_type), method_class.Substring (method_class.LastIndexOf (".") + 1), function_name, final_parameters);
|
||||
|
||||
}
|
||||
public override string ToString ()
|
||||
{
|
||||
return method_output;
|
||||
}
|
||||
|
||||
public string ToStringWithClass ()
|
||||
{
|
||||
return method_output_with_class;
|
||||
}
|
||||
|
||||
private string ConvertType (string type)
|
||||
{
|
||||
switch (type) {
|
||||
case "System.Void":
|
||||
return "void";
|
||||
case "System.Boolean":
|
||||
return "bool";
|
||||
case "System.Int32":
|
||||
return "int";
|
||||
case "System.String":
|
||||
return "string";
|
||||
case "System.Double":
|
||||
return "double";
|
||||
case "System.Decimal":
|
||||
return "decimal";
|
||||
case "System.Char":
|
||||
return "char";
|
||||
case "System.UInt32":
|
||||
return "uint";
|
||||
case "System.Void*":
|
||||
return "void*";
|
||||
case "System.Byte":
|
||||
return "byte";
|
||||
}
|
||||
|
||||
return type.Substring (type.LastIndexOf (".") + 1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Mono.Cecil;
|
||||
using Mono.Cecil.Cil;
|
||||
using System.IO;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public class MethodExtractor
|
||||
{
|
||||
// Parse the assemblies looking for various sticky points
|
||||
// Leave any of the SortedList parameters null that you aren't interested in
|
||||
public static void ExtractFromAssembly (string assembly, SortedList<string, Method> allMethods, SortedList<string, Method> throwsNotImplementedMethods, SortedList<string, Method> monoTodoMethods)
|
||||
{
|
||||
AssemblyDefinition ad = AssemblyFactory.GetAssembly (assembly);
|
||||
|
||||
//Gets all types of the MainModule of the assembly
|
||||
foreach (TypeDefinition type in ad.MainModule.Types) {
|
||||
if (type.Name != "<Module>") {
|
||||
//Gets all methods of the current type
|
||||
foreach (MethodDefinition method in type.Methods) {
|
||||
// We only want Public and Protected methods
|
||||
if ((method.Attributes & MethodAttributes.Family) == 0 && (method.Attributes & MethodAttributes.Public) == 0)
|
||||
continue;
|
||||
|
||||
// If adding all methods, add this method
|
||||
if (allMethods != null)
|
||||
allMethods[method.ToString ()] = new Method (method.ToString ());
|
||||
|
||||
// If adding MonoTODO methods, check this method
|
||||
if (monoTodoMethods != null)
|
||||
foreach (CustomAttribute ca in method.CustomAttributes)
|
||||
if (ca.Constructor.DeclaringType.ToString () == "System.MonoTODOAttribute")
|
||||
monoTodoMethods[method.ToString ()] = new Method (method.ToString (), ca.ConstructorParameters.Count > 0 ? ca.ConstructorParameters[0].ToString () : string.Empty);
|
||||
|
||||
// If adding methods that throw NotImplementedException, look for those
|
||||
if (throwsNotImplementedMethods != null && method.Body != null)
|
||||
foreach (Instruction i in method.Body.Instructions)
|
||||
if (i.OpCode == OpCodes.Throw)
|
||||
if (i.Previous.Operand != null && i.Previous.Operand.ToString ().StartsWith ("System.Void System.NotImplementedException"))
|
||||
throwsNotImplementedMethods[method.ToString ()] = new Method (method.ToString ());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void ComputeMethodDifference (SortedList<string, Method> master, SortedList<string, Method> subset, SortedList<string, Method> output)
|
||||
{
|
||||
// If it's in the master but not the subset, add it to the output
|
||||
foreach (string s in master.Keys)
|
||||
if (!(subset.ContainsKey (s)))
|
||||
output[s] = new Method (s);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{CC12F142-C92F-4AD0-AEA3-D94F661C557B}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>MoMA.Analyzer</RootNamespace>
|
||||
<AssemblyName>MoMA.Analyzer</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Mono.Cecil, Version=0.4.3.1, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\Cecil\gendarme\console\bin\Release\Mono.Cecil.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Analysis\BaseChecker.cs" />
|
||||
<Compile Include="AssemblyAnalyzer.cs" />
|
||||
<Compile Include="Results\BaseError.cs" />
|
||||
<Compile Include="Analysis\CheckMonoTodo.cs" />
|
||||
<Compile Include="Analysis\CheckPInvokes.cs" />
|
||||
<Compile Include="MethodExtractor.cs" />
|
||||
<Compile Include="Method.cs" />
|
||||
<Compile Include="Results\MissingMethodError.cs" />
|
||||
<Compile Include="Results\MonoTodoError.cs" />
|
||||
<Compile Include="Results\NotImplementedExceptionError.cs" />
|
||||
<Compile Include="Results\PInvokeError.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,35 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle ("MoMA.Analyzer")]
|
||||
[assembly: AssemblyDescription ("")]
|
||||
[assembly: AssemblyConfiguration ("")]
|
||||
[assembly: AssemblyCompany ("None")]
|
||||
[assembly: AssemblyProduct ("MoMA.Analyzer")]
|
||||
[assembly: AssemblyCopyright ("Copyright © None 2006")]
|
||||
[assembly: AssemblyTrademark ("")]
|
||||
[assembly: AssemblyCulture ("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible (false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid ("a86c98e8-0c8d-4041-a7dd-aefae6bedc1a")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion ("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion ("1.0.0.0")]
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
public abstract class BaseError
|
||||
{
|
||||
protected Method caller;
|
||||
protected Method callee;
|
||||
|
||||
public abstract void WriteHtml (System.Web.UI.XhtmlTextWriter tw, bool odd);
|
||||
public abstract void WriteText (System.IO.StreamWriter results);
|
||||
|
||||
public virtual Method GetCaller ()
|
||||
{
|
||||
return caller;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
class MissingMethodError : BaseError
|
||||
{
|
||||
public MissingMethodError (Method caller, Method callee)
|
||||
{
|
||||
this.caller = caller;
|
||||
this.callee = callee;
|
||||
}
|
||||
|
||||
public override void WriteHtml (System.Web.UI.XhtmlTextWriter tw, bool odd)
|
||||
{
|
||||
if (odd) {
|
||||
tw.WriteBeginTag ("tr");
|
||||
tw.WriteAttribute ("class", "odd");
|
||||
tw.Write (HtmlTextWriter.TagRightChar);
|
||||
}
|
||||
else
|
||||
tw.WriteFullBeginTag ("tr");
|
||||
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (caller.ToString ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (callee.ToStringWithClass ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteEndTag ("tr");
|
||||
}
|
||||
|
||||
public override void WriteText (System.IO.StreamWriter results)
|
||||
{
|
||||
results.WriteLine (callee.RawMethod);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
class MonoTodoError : BaseError
|
||||
{
|
||||
public MonoTodoError (Method caller, Method callee)
|
||||
{
|
||||
this.caller = caller;
|
||||
this.callee = callee;
|
||||
}
|
||||
|
||||
public override void WriteHtml (System.Web.UI.XhtmlTextWriter tw, bool odd)
|
||||
{
|
||||
if (odd) {
|
||||
tw.WriteBeginTag ("tr");
|
||||
tw.WriteAttribute ("class", "odd");
|
||||
tw.Write (HtmlTextWriter.TagRightChar);
|
||||
}
|
||||
else
|
||||
tw.WriteFullBeginTag ("tr");
|
||||
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (caller.ToString ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (callee.ToStringWithClass ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (callee.Data.Trim ().Length > 0 ? callee.Data : "Not Specified");
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteEndTag ("tr");
|
||||
}
|
||||
|
||||
public override void WriteText (System.IO.StreamWriter results)
|
||||
{
|
||||
results.WriteLine (callee.RawMethod);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
class NotImplementedExceptionError : BaseError
|
||||
{
|
||||
public NotImplementedExceptionError (Method caller, Method callee)
|
||||
{
|
||||
this.caller = caller;
|
||||
this.callee = callee;
|
||||
}
|
||||
|
||||
public override void WriteHtml (System.Web.UI.XhtmlTextWriter tw, bool odd)
|
||||
{
|
||||
if (odd) {
|
||||
tw.WriteBeginTag ("tr");
|
||||
tw.WriteAttribute ("class", "odd");
|
||||
tw.Write (HtmlTextWriter.TagRightChar);
|
||||
}
|
||||
else
|
||||
tw.WriteFullBeginTag ("tr");
|
||||
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (caller.ToString ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (callee.ToStringWithClass ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteEndTag ("tr");
|
||||
}
|
||||
|
||||
public override void WriteText (System.IO.StreamWriter results)
|
||||
{
|
||||
results.WriteLine (callee.RawMethod);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
|
||||
namespace MoMA.Analyzer
|
||||
{
|
||||
class PInvokeError : BaseError
|
||||
{
|
||||
public PInvokeError (Method caller, Method callee)
|
||||
{
|
||||
this.caller = caller;
|
||||
this.callee = callee;
|
||||
}
|
||||
|
||||
public override void WriteHtml (System.Web.UI.XhtmlTextWriter tw, bool odd)
|
||||
{
|
||||
if (odd)
|
||||
{
|
||||
tw.WriteBeginTag ("tr");
|
||||
tw.WriteAttribute ("class", "odd");
|
||||
tw.Write (HtmlTextWriter.TagRightChar);
|
||||
}
|
||||
else
|
||||
tw.WriteFullBeginTag ("tr");
|
||||
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (caller.ToString ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (callee.ToString ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteFullBeginTag ("td");
|
||||
tw.WriteEncodedText (callee.Data.ToString ());
|
||||
tw.WriteEndTag ("td");
|
||||
tw.WriteEndTag ("tr");
|
||||
}
|
||||
|
||||
public override void WriteText (System.IO.StreamWriter results)
|
||||
{
|
||||
results.WriteLine ("{0}-{1}", callee.ToString (), this.callee.Data);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,127 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D7FF97F5-1029-4886-9C9D-4EE5618836BC}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>MoMA</RootNamespace>
|
||||
<AssemblyName>MoMA</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Web References\MoMAWebServices\Reference.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WizardStep.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\monkey.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\monoback.png" />
|
||||
<None Include="Resources\button_ok.png" />
|
||||
<None Include="Resources\dialog-warning.png" />
|
||||
<None Include="Resources\list-remove.png" />
|
||||
<None Include="Resources\list-add.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="MoMA.Analyzer\MoMA.Analyzer.csproj">
|
||||
<Project>{CC12F142-C92F-4AD0-AEA3-D94F661C557B}</Project>
|
||||
<Name>MoMA.Analyzer</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferences Include="Web References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferenceUrl Include="http://jpobst.com/moma/MoMASubmit.asmx">
|
||||
<UrlBehavior>Static</UrlBehavior>
|
||||
<RelPath>Web References\MoMAWebServices\</RelPath>
|
||||
<UpdateFromURL>http://jpobst.com/moma/MoMASubmit.asmx</UpdateFromURL>
|
||||
<ServiceLocationURL>
|
||||
</ServiceLocationURL>
|
||||
<CachedDynamicPropName>
|
||||
</CachedDynamicPropName>
|
||||
<CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
|
||||
<CachedSettingsPropName>MoMA_MoMAWebServices_MoMASubmit</CachedSettingsPropName>
|
||||
</WebReferenceUrl>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="Web References\MoMAWebServices\MoMASubmit.disco" />
|
||||
<None Include="Web References\MoMAWebServices\MoMASubmit.wsdl" />
|
||||
<None Include="Web References\MoMAWebServices\Reference.map">
|
||||
<Generator>MSDiscoCodeGenerator</Generator>
|
||||
<LastGenOutput>Reference.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,5 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectView>ProjectFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoMA", "MoMA.csproj", "{D7FF97F5-1029-4886-9C9D-4EE5618836BC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoMA.Analyzer", "MoMA.Analyzer\MoMA.Analyzer.csproj", "{CC12F142-C92F-4AD0-AEA3-D94F661C557B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MoMAExtractor", "MoMAExtractor\MoMAExtractor.csproj", "{64DE84A1-C274-4875-84F2-FCA7B24104D8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{D7FF97F5-1029-4886-9C9D-4EE5618836BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D7FF97F5-1029-4886-9C9D-4EE5618836BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D7FF97F5-1029-4886-9C9D-4EE5618836BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D7FF97F5-1029-4886-9C9D-4EE5618836BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CC12F142-C92F-4AD0-AEA3-D94F661C557B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CC12F142-C92F-4AD0-AEA3-D94F661C557B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CC12F142-C92F-4AD0-AEA3-D94F661C557B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CC12F142-C92F-4AD0-AEA3-D94F661C557B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{64DE84A1-C274-4875-84F2-FCA7B24104D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{64DE84A1-C274-4875-84F2-FCA7B24104D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{64DE84A1-C274-4875-84F2-FCA7B24104D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{64DE84A1-C274-4875-84F2-FCA7B24104D8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
Двоичный файл не отображается.
|
@ -0,0 +1,54 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{64DE84A1-C274-4875-84F2-FCA7B24104D8}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>MoMAExtractor</RootNamespace>
|
||||
<AssemblyName>MoMAExtractor</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MoMA.Analyzer\MoMA.Analyzer.csproj">
|
||||
<Project>{CC12F142-C92F-4AD0-AEA3-D94F661C557B}</Project>
|
||||
<Name>MoMA.Analyzer</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,92 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using MoMA.Analyzer;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MoMAExtractor
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main (string[] args)
|
||||
{
|
||||
// I'm just interested in getting the files needed for MoMA
|
||||
// right now, this may only work on my machine :)
|
||||
|
||||
string mono_path = @"C:\Program Files\Mono-1.2\lib\mono\2.0";
|
||||
string ms_path = @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727";
|
||||
string output_path = Path.GetDirectoryName (Application.ExecutablePath);
|
||||
|
||||
List<string> mono_assemblies = GetMonoAssemblies (mono_path);
|
||||
List<string> ms_assemblies = GetMicrosoftAssemblies (ms_path);
|
||||
|
||||
SortedList<string, Method> all = new SortedList<string, Method> ();
|
||||
SortedList<string, Method> todo = new SortedList<string, Method> ();
|
||||
SortedList<string, Method> nie = new SortedList<string, Method> ();
|
||||
|
||||
foreach (string assembly in mono_assemblies)
|
||||
MethodExtractor.ExtractFromAssembly (assembly, all, nie, todo);
|
||||
|
||||
WriteListToFile (todo, Path.Combine (output_path, "monotodo.txt"), true);
|
||||
WriteListToFile (nie, Path.Combine (output_path, "exception.txt"), false);
|
||||
|
||||
todo.Clear ();
|
||||
nie.Clear ();
|
||||
|
||||
SortedList<string, Method> ms_all = new SortedList<string, Method> ();
|
||||
SortedList<string, Method> missing = new SortedList<string, Method> ();
|
||||
|
||||
foreach (string assembly in ms_assemblies)
|
||||
MethodExtractor.ExtractFromAssembly (assembly, ms_all, null, null);
|
||||
|
||||
MethodExtractor.ComputeMethodDifference (ms_all, all, missing);
|
||||
|
||||
WriteListToFile (missing, Path.Combine (output_path, "missing.txt"), false);
|
||||
|
||||
Console.WriteLine ("done");
|
||||
Console.ReadLine ();
|
||||
}
|
||||
|
||||
private static List<string> GetMonoAssemblies (string directory)
|
||||
{
|
||||
// Find all of Mono's assemblies
|
||||
List<string> assemblies = new List<string> ();
|
||||
|
||||
foreach (string f in Directory.GetFiles (directory, "*.dll"))
|
||||
if (f.Contains ("Accessibility") || f.Contains ("System") || f.Contains ("mscorlib") || f.Contains ("Microsoft"))
|
||||
assemblies.Add (f);
|
||||
|
||||
return assemblies;
|
||||
}
|
||||
|
||||
private static List<string> GetMicrosoftAssemblies (string directory)
|
||||
{
|
||||
// Find all of Microsoft's assemblies
|
||||
List<string> assemblies = new List<string> ();
|
||||
|
||||
foreach (string filepath in Directory.GetFiles (directory, "*.dll")) {
|
||||
string f = Path.GetFileName (filepath);
|
||||
|
||||
if ((f.Contains ("Accessibility") || f.Contains ("System") || f.Contains ("mscorlib") || f.Contains ("Microsoft")) && !(f.Contains ("_")) && !(f.Contains ("Thunk")) && !(f.Contains ("Wrapper")))
|
||||
assemblies.Add (filepath);
|
||||
}
|
||||
|
||||
return assemblies;
|
||||
}
|
||||
|
||||
private static void WriteListToFile (SortedList<string, Method> list, string filename, bool writeDataField)
|
||||
{
|
||||
StreamWriter sw = new StreamWriter (filename);
|
||||
|
||||
foreach (Method m in list.Values) {
|
||||
if (writeDataField)
|
||||
sw.WriteLine ("{0}-{1}", m.RawMethod, m.Data);
|
||||
else
|
||||
sw.WriteLine (m.RawMethod);
|
||||
}
|
||||
|
||||
sw.Close ();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle ("MoMAExtractor")]
|
||||
[assembly: AssemblyDescription ("")]
|
||||
[assembly: AssemblyConfiguration ("")]
|
||||
[assembly: AssemblyCompany ("None")]
|
||||
[assembly: AssemblyProduct ("MoMAExtractor")]
|
||||
[assembly: AssemblyCopyright ("Copyright © None 2006")]
|
||||
[assembly: AssemblyTrademark ("")]
|
||||
[assembly: AssemblyCulture ("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible (false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid ("e83c2e8a-45dc-404f-a964-aed716c92faf")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion ("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion ("1.0.0.0")]
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MoMA
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main ()
|
||||
{
|
||||
Application.EnableVisualStyles ();
|
||||
Application.SetCompatibleTextRenderingDefault (false);
|
||||
Application.Run (new MainForm ());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle ("MoMA")]
|
||||
[assembly: AssemblyDescription ("")]
|
||||
[assembly: AssemblyConfiguration ("")]
|
||||
[assembly: AssemblyCompany ("None")]
|
||||
[assembly: AssemblyProduct ("MoMA")]
|
||||
[assembly: AssemblyCopyright ("Copyright © None 2006")]
|
||||
[assembly: AssemblyTrademark ("")]
|
||||
[assembly: AssemblyCulture ("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible (false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid ("e2aab240-3610-486e-a326-db7aa84f741a")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion ("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion ("1.0.0.0")]
|
|
@ -0,0 +1,105 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.42
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace MoMA.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MoMA.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap button_ok {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("button_ok", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap dialog_warning {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("dialog-warning", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap list_add {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("list-add", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap list_remove {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("list-remove", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap monkey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("monkey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
internal static System.Drawing.Bitmap monoback {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("monoback", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="monkey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\monkey.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="button_ok" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\button_ok.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="dialog-warning" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\dialog-warning.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="list-remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\list-remove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="list-add" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\list-add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="monoback" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\monoback.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
|
@ -0,0 +1,36 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.42
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace MoMA.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://jpobst.com/pobst/moma/MoMASubmit.asmx")]
|
||||
public string MoMA_MoMAWebServices_MoMASubmit {
|
||||
get {
|
||||
return ((string)(this["MoMA_MoMAWebServices_MoMASubmit"]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MoMA.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="MoMA_MoMAWebServices_MoMASubmit" Type="(Web Service URL)" Scope="Application">
|
||||
<Value Profile="(Default)">http://jpobst.com/pobst/moma/MoMASubmit.asmx</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 769 B |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 954 B |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 405 B |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 292 B |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 20 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 16 KiB |
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
|
||||
<contractRef ref="http://jpobst.com/pobst/moma/MoMASubmit.asmx?wsdl" docRef="http://jpobst.com/pobst/moma/MoMASubmit.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
|
||||
<soap address="http://jpobst.com/pobst/moma/MoMASubmit.asmx" xmlns:q1="http://mono-project.com/MoMASubmit/" binding="q1:MoMASubmitSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
<soap address="http://jpobst.com/pobst/moma/MoMASubmit.asmx" xmlns:q2="http://mono-project.com/MoMASubmit/" binding="q2:MoMASubmitSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
</discovery>
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://mono-project.com/MoMASubmit/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://mono-project.com/MoMASubmit/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://mono-project.com/MoMASubmit/">
|
||||
<s:element name="SubmitResults">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="results" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="SubmitResultsResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="SubmitResultsResult" type="s:boolean" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="SubmitResultsSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:SubmitResults" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SubmitResultsSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:SubmitResultsResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="MoMASubmitSoap">
|
||||
<wsdl:operation name="SubmitResults">
|
||||
<wsdl:input message="tns:SubmitResultsSoapIn" />
|
||||
<wsdl:output message="tns:SubmitResultsSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="MoMASubmitSoap" type="tns:MoMASubmitSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="SubmitResults">
|
||||
<soap:operation soapAction="http://mono-project.com/MoMASubmit/SubmitResults" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="MoMASubmitSoap12" type="tns:MoMASubmitSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="SubmitResults">
|
||||
<soap12:operation soapAction="http://mono-project.com/MoMASubmit/SubmitResults" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="MoMASubmit">
|
||||
<wsdl:port name="MoMASubmitSoap" binding="tns:MoMASubmitSoap">
|
||||
<soap:address location="http://jpobst.com/pobst/moma/MoMASubmit.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="MoMASubmitSoap12" binding="tns:MoMASubmitSoap12">
|
||||
<soap12:address location="http://jpobst.com/pobst/moma/MoMASubmit.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
|
@ -0,0 +1,150 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.42
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.42.
|
||||
//
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace MoMA.MoMAWebServices {
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services;
|
||||
using System.ComponentModel;
|
||||
using System.Web.Services.Protocols;
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="MoMASubmitSoap", Namespace="http://mono-project.com/MoMASubmit/")]
|
||||
public partial class MoMASubmit : System.Web.Services.Protocols.SoapHttpClientProtocol {
|
||||
|
||||
private System.Threading.SendOrPostCallback SubmitResultsOperationCompleted;
|
||||
|
||||
private bool useDefaultCredentialsSetExplicitly;
|
||||
|
||||
/// <remarks/>
|
||||
public MoMASubmit() {
|
||||
this.Url = "http://jpobst.com/pobst/moma/MoMASubmit.asmx";
|
||||
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
|
||||
this.UseDefaultCredentials = true;
|
||||
this.useDefaultCredentialsSetExplicitly = false;
|
||||
}
|
||||
else {
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Url {
|
||||
get {
|
||||
return base.Url;
|
||||
}
|
||||
set {
|
||||
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
|
||||
&& (this.useDefaultCredentialsSetExplicitly == false))
|
||||
&& (this.IsLocalFileSystemWebService(value) == false))) {
|
||||
base.UseDefaultCredentials = false;
|
||||
}
|
||||
base.Url = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new bool UseDefaultCredentials {
|
||||
get {
|
||||
return base.UseDefaultCredentials;
|
||||
}
|
||||
set {
|
||||
base.UseDefaultCredentials = value;
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public event SubmitResultsCompletedEventHandler SubmitResultsCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://mono-project.com/MoMASubmit/SubmitResults", RequestNamespace="http://mono-project.com/MoMASubmit/", ResponseNamespace="http://mono-project.com/MoMASubmit/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public bool SubmitResults(string results) {
|
||||
object[] results1 = this.Invoke("SubmitResults", new object[] {
|
||||
results});
|
||||
return ((bool)(results1[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void SubmitResultsAsync(string results) {
|
||||
this.SubmitResultsAsync(results, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void SubmitResultsAsync(string results, object userState) {
|
||||
if ((this.SubmitResultsOperationCompleted == null)) {
|
||||
this.SubmitResultsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSubmitResultsOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("SubmitResults", new object[] {
|
||||
results}, this.SubmitResultsOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnSubmitResultsOperationCompleted(object arg) {
|
||||
if ((this.SubmitResultsCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.SubmitResultsCompleted(this, new SubmitResultsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
}
|
||||
|
||||
private bool IsLocalFileSystemWebService(string url) {
|
||||
if (((url == null)
|
||||
|| (url == string.Empty))) {
|
||||
return false;
|
||||
}
|
||||
System.Uri wsUri = new System.Uri(url);
|
||||
if (((wsUri.Port >= 1024)
|
||||
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")]
|
||||
public delegate void SubmitResultsCompletedEventHandler(object sender, SubmitResultsCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class SubmitResultsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal SubmitResultsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public bool Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((bool)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore 1591
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Results>
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://jpobst.com/pobst/moma/MoMASubmit.asmx?disco" filename="MoMASubmit.disco" />
|
||||
<DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="http://jpobst.com/pobst/moma/MoMASubmit.asmx?wsdl" filename="MoMASubmit.wsdl" />
|
||||
</Results>
|
||||
</DiscoveryClientResultsFile>
|
|
@ -0,0 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace MoMA
|
||||
{
|
||||
public enum WizardStep
|
||||
{
|
||||
Introduction = 1,
|
||||
ChooseAssemblies = 2,
|
||||
ViewResults = 3,
|
||||
SubmitResults = 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="MoMA.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<applicationSettings>
|
||||
<MoMA.Properties.Settings>
|
||||
<setting name="MoMA_MoMAWebServices_MoMASubmit" serializeAs="String">
|
||||
<value>http://jpobst.com/pobst/moma/MoMASubmit.asmx</value>
|
||||
</setting>
|
||||
</MoMA.Properties.Settings>
|
||||
</applicationSettings>
|
||||
</configuration>
|
Загрузка…
Ссылка в новой задаче