Tag Archives: SCOM

Reading out PS NoteProperty’s

6 Nov

 

Case:

How do i read out the IsManagementServer property on the example below ??

$X= Get-SCOMClass -Name “Microsoft.SystemCenter.ManagementServer” | Get-SCOMMonitoringObject

The output is:

[Microsoft.SystemCenter.HealthService].AuthenticationName : SRV.stateview.nl

[Microsoft.SystemCenter.HealthService].MaximumQueueSize : 104857600

[Microsoft.SystemCenter.HealthService].MaximumSizeOfAllTransferredFiles : (null)

[Microsoft.SystemCenter.HealthService].RequestCompression : True

[Microsoft.SystemCenter.HealthService].CreateListener : True

[Microsoft.SystemCenter.HealthService].Port : 5723

[Microsoft.SystemCenter.HealthService].IsRHS : True

[Microsoft.SystemCenter.HealthService].IsManagementServer : True

 

Now I want to get the IsManagementServer value

$.[Microsoft.SystemCenter.HealthService].IsManagementServer

But it Fails

$.IsManagementServer

But it Fails

How do I read it out ??

Solution:

Running the command below..

$x | GM

pointed out it was a noteproperty

image  

So since its using [] i have to use ” to make a string of it

So the correct syntax would be

$x.'[Microsoft.SystemCenter.HealthService].IsManagementServer’.value

Happy Scomming

Michel Kamp

Advertisements

Starting blogging again

6 Nov

Case:

Maybe you noticed that I didn’t post no more for a couple of month.

Analyze:

Yes I bought a new home. Knipogende emoticon  So I had to renovate it all. It took(and still takes) a lot of time. But I will try to post regular again.

WP_001616 WP_001849image

Solution:

1) do not buy a new home ! it will save you time…

2) stop blogging. …. not a option

3) start again if you have time … hmmm

I prefer #3. Knipogende emoticon

Happy scomming soon

Michel Kamp

Touchdown : ScomExcelWorkbook V2 is released

28 Jan

Hi Community,

After some delays I have finished the V2 version of the ScomExcelWorkbook.
See old  V1 post here: https://michelkamp.wordpress.com/2012/11/25/scom-and-excel-a-perfect-couple/

New features

1) More types to query

The types below can now be used in the Type column:
Events
Objects
Alerts
Performance
TaskResults
Discoveries
Rules
Overrides
Monitors
ManagementPacks

2) Combine data on same sheet

When you make a pivot table from a SCOM data sheet you will notice that if you want to combine data of 2 data sheets into one pivot table it will be a challenge to get it work. So I have made a feature that you can append data to one SCOM data sheet. The only thing you will have to do is to use the same sheet name and type in the query rows. See below for a example.

image

3) Extended Properties

Since I was too lazy to hard type every property name in a column I made it dynamic. Cost me some time to get the object type casting generic but again I learned a lot more of C# reflection.  And that’s what I do it for “learning on the job”.

4) Optimization

As always , some speed-up and code simplifying was done.

 

Okay nice but how to get it…

In my V1 version I decided to only give the download to people that did a PM. I have had a lot of PMs and good responses. This was great but took a lot of time to process. So now I will publish it on my public SkyDrive link below. But you are free to leave me a comment I really would appreciate that.

https://skydrive.live.com/redir?resid=2FFA0FC5B0B89EED!1363&authkey=!AOoo44wQmagQyOI

Download it and give it a try. Please please let me know if you like it or have suggestions/problems.

O yea before I forget:

The sheet contains sample query’s you can delete every line after row 4.  And put your own ones in. Some help can be found here:

https://michelkamp.wordpress.com/2012/12/12/your-scom-sdk-query-cheat-sheet/

 

Happy Scomming,

Michel Kamp

Your SCOM SDK Query cheat Sheet

12 Dec

So while  reading the title didn’t you had the feeling that you where back at the college banks… This time I will post a small cheat sheet that you can use in the SCOM excel Workbook is posted last time.

So let’s start.

Using the SDK you have the possibility to get SCOM related data using a sort of SQL query language. Defining a query can be tricky if you don’t know what all possibility’s are. And for sure remember that the key properties are case sensitive !

And please don’t think I found this out my self , all the credits go to the MS Product team at http://msdn.microsoft.com/en-us/library/hh328943.aspx I only wanted to make one page for all.

The query syntax can be found here : http://msdn.microsoft.com/en-us/library/bb437603.aspx (this a 2007 page but is also valid for 2012)

You will see more types of data you can get. I can already tell you that the vnext SCOmExcelWorkbook will be extended with most of the data types shown’ below.

Events

  • Id
  • OriginalId
  • MonitoringObjectId
  • MonitoringClassId
  • MonitoringObjectName
  • MonitoringObjectDisplayName
  • MonitoringObjectPath
  • MonitoringObjectFullName
  • MonitoringRuleId
  • PublisherName
  • Number
  • CategoryId
  • User
  • Channel
  • LevelId
  • LoggingComputer
  • TimeGenerated
  • TimeAdded
  • EventData
  • EventParameters

 

Alerts

  • Id
  • Name
  • Description
  • MonitoringObjectId
  • MonitoringClassId
  • MonitoringObjectName
  • MonitoringObjectDisplayName
  • MonitoringObjectPath
  • MonitoringObjectFullName
  • IsMonitorAlert
  • ProblemId
  • MonitoringRuleId
  • ResolutionState
  • Priority
  • Severity
  • Category
  • Owner
  • ResolvedBy
  • TimeRaised
  • TimeAdded
  • LastModified
  • LastModifiedBy
  • TimeResolved
  • TimeResolutionStateLastModified
  • CustomField1
  • CustomField2
  • CustomField3
  • CustomField4
  • CustomField5
  • CustomField6
  • CustomField7
  • CustomField8
  • CustomField9
  • CustomField10
  • TicketId
  • Context
  • ConnectorId
  • LastModifiedByNonConnector
  • MonitoringObjectInMaintenanceMode
  • MonitoringObjectHealthState
  • ConnectorStatus
  • NetbiosComputerName
  • NetbiosDomainName
  • PrincipalName
  • AlertParams
  • SiteName
  • MaintenanceModeLastModified
  • StateLastModified
  • Management Packs
  • Id
  • Sealed
  • Name
  • FriendlyName
  • Version
  • KeyToken
  • LastModified
  • TimeCreated
  • DisplayName
  • Description
  • VersionId

Performance

  • Id
  • MonitoringObjectId
  • MonitoringClassId
  • MonitoringObjectName
  • MonitoringObjectDisplayName
  • MonitoringObjectPath
  • MonitoringObjectFullName
  • MonitoringRuleId
  • InstanceName
  • ObjectName
  • CounterName
  • HasSignature
  • LearningMonitoringRuleId
  • LastSampledValue

Diagnostics

  • Id
  • Name
  • Accessibility
  • ManagementPackId
  • Enabled
  • TargetMonitoringClassId
  • MonitorId
  • ExecuteOnState
  • Remotable
  • Category
  • Timeout
  • TimeAdded
  • LastModified
  • DisplayName
  • Description
  • HasNonCategoryOverride

Discoveries

  • Id
  • Name
  • Accessibility
  • ManagementPackId
  • Enabled
  • TargetMonitoringClassId
  • ConfirmDelivery
  • Remotable
  • Category
  • Priority
  • TimeAdded
  • LastModified
  • DisplayName
  • Description
  • HasNonCategoryOverride

Rules

  • Id
  • Name
  • ManagementPackId
  • TargetMonitoringClassId
  • Enabled
  • Category
  • DisplayName
  • Description
  • ConfirmDelivery
  • TimeAdded
  • LastModified
  • Remotable
  • Priority
  • DiscardLevel
  • HasNonCategoryOverride

 

Monitors

  • Id
  • Name
  • ManagementPackId
  • Accessibility
  • DisplayName
  • Description
  • TargetMonitoringClassId
  • Algorithm
  • AlgorithmParameter
  • MonitoringRelationshipClassId
  • Category
  • MemberMonitorId
  • ParentMonitorId
  • IsUnitMonitor
  • IsInternalRollupMonitor
  • IsExternalRollupMonitor
  • AlertOnState
  • AlertAutoResolve
  • AlertPriority
  • AlertMessage
  • HasNonCategoryOverride

Recoveries

  • Id
  • Name
  • Accessibility
  • ManagementPackId
  • Enabled
  • TargetMonitoringClassId
  • MonitorId
  • ResetMonitor
  • ExecuteOnState
  • MonitoringDiagnosticId
  • Remotable
  • Category
  • Timeout
  • TimeAdded
  • LastModified
  • DisplayName
  • Description
  • HasNonCategoryOverride

Tasks

  • Id
  • Name
  • ManagementPackId
  • TargetMonitoringClassId
  • Enabled
  • Category
  • DisplayName
  • Description
  • Accessibility
  • Remotable
  • Timeout
  • TimeAdded
  • LastModified

TaskResults

BatchId
ErrorCode
ErrorMessage
Id
LastModified
LocationId
ManagementGroup
ManagementGroupId
Output
ProgressData
ProgressLastModified
ProgressMessage
ProgressValue
RunningAs
Status
StatusLastModified
SubmittedBy
TargetClassId
TargetObjectId
TaskId
TimeFinished
TimeScheduled
TimeStarted

Overrides

  • Id
  • Name
  • ManagementPackId
  • TargetId
  • ContextId
  • ContextObjectId
  • Value
  • Enforced
  • DisplayName
  • Description
  • TimeAdded
  • LastModified

 

Happy SCOMMING

Michel Kamp

Don’t let the data warehouse write action fool you!

26 Sep

Yes I know. It’s a long time ago I posted. Vacation and most work pressure were and are still the reason. But never less I will share a problem I undergone that looks a small one but can have big impact.

The problem.

You have a workflow that has a PowerShell/vbs script that outputs a property bag with performance data. The performance data contains multiply counters. Now the performance data is going to be written to the OPSDB and DWHDB.  All works okay, you see the performance data counters in the native console. So you say now its okay because the DWH write actions is also writing the same counters to the DWH….  but when you look in the DWH you see that only one counter is stored. But you are sure the workflow outputted multiply counters…. 

Below the performance counters in the native console. All the 4 perf counters are there (yellow) in the ops console

image

Below the DWH.

You see only one rule (yellow) , this was the first in the property bag.

clip_image002

What could be wrong ???

Analyze

The workflow looks like this:

   <Rule ID=”TransferFile.ReadSec” Enabled=”true” Target=”FileTransferClient” ConfirmDelivery=”true” Remotable=”true” Priority=”Normal” DiscardLevel=”100″>
        <Category>Custom</Category>
        <DataSources>
          <DataSource ID=”SMBFileTransfer” TypeID=”FileTransfer”>            <Debug>false</Debug>
            <IntervalSeconds>300</IntervalSeconds>
          </DataSource>
        </DataSources>
         <WriteActions>
          <WriteAction ID=”ToOps” TypeID=”SystemCenter!Microsoft.SystemCenter.CollectPerformanceData” />
          <WriteAction ID=”ToDWH” TypeID=”SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData” />
        </WriteActions>      
      </Rule>

1. Frist you check what the property bag output from the datasource SMBFileTransfer  is containing

<Collection><DataItem type=”System.PropertyBagData” time=”2012-09-20T19:55:28.0638791+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><Property Name=”Instance” VariantType=”8″>c:\destionation</Property><Property Name=”Counter” VariantType=”8″>Read Transfer Kbyte Sec</Property><Property Name=”Value” VariantType=”5″>14450.625</Property></DataItem><DataItem type=”System.PropertyBagData” time=”2012-09-20T19:55:28.1079971+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><Property Name=”Instance” VariantType=”8″>c:\destionation</Property><Property Name=”Counter” VariantType=”8″>Read Transfer Total Sec</Property><Property Name=”Value” VariantType=”5″>0.3</Property></DataItem><DataItem type=”System.PropertyBagData” time=”2012-09-20T19:55:28.1079971+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><Property Name=”Instance” VariantType=”8″>c:\destionation</Property><Property Name=”Counter” VariantType=”8″>Write Transfer Kbyte Sec</Property><Property Name=”Value” VariantType=”5″>14450.625</Property></DataItem><DataItem type=”System.PropertyBagData” time=”2012-09-20T19:55:28.1079971+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><Property Name=”Instance” VariantType=”8″>c:\destionation</Property><Property Name=”Counter” VariantType=”8″>Write Transfer Total Sec</Property><Property Name=”Value” VariantType=”5″>0.3</Property></DataItem></Collection>

You see multiply counter values that have to be converted to performance data.

2. Now we check using the WFAnalyzer the converted performance data. See below. It looks okay.

Recieved DataItem <DataItem type=”System.Performance.Data” time=”2012-09-20T19:55:28.1109383+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><TimeSampled>2012-09-20T19:55:28.0638791+02:00</TimeSampled><ObjectName>SMB File Transfer</ObjectName><CounterName>Read Transfer Kbyte Sec</CounterName><InstanceName>c:\destionation</InstanceName><IsNull Type=”Boolean”>false</IsNull><Value>14450.625</Value></DataItem>

Recieved DataItem <DataItem type=”System.Performance.Data” time=”2012-09-20T19:55:28.1109383+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><TimeSampled>2012-09-20T19:55:28.1079971+02:00</TimeSampled><ObjectName>SMB File Transfer</ObjectName><CounterName>Read Transfer Total Sec</CounterName><InstanceName>c:\destionation</InstanceName><IsNull Type=”Boolean”>false</IsNull><Value>0.3</Value></DataItem>

Recieved DataItem <DataItem type=”System.Performance.Data” time=”2012-09-20T19:55:28.1109383+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><TimeSampled>2012-09-20T19:55:28.1079971+02:00</TimeSampled><ObjectName>SMB File Transfer</ObjectName><CounterName>Write Transfer Kbyte Sec</CounterName><InstanceName>c:\destionation</InstanceName><IsNull Type=”Boolean”>false</IsNull><Value>14450.625</Value></DataItem>

Recieved DataItem <DataItem type=”System.Performance.Data” time=”2012-09-20T19:55:28.1109383+02:00″ sourceHealthServiceId=”0F6B7345-4C8E-CFAF-BD7A-454E6C94B77F”><TimeSampled>2012-09-20T19:55:28.1079971+02:00</TimeSampled><ObjectName>SMB File Transfer</ObjectName><CounterName>Write Transfer Total Sec</CounterName><InstanceName>c:\destionation</InstanceName><IsNull Type=”Boolean”>false</IsNull><Value>0.3</Value></DataItem>

3. Next step is to check the write actions. This also looks okay. The “ToDWH “ writeaction should write the data to the DWH.

<WriteActions>

<WriteAction ID=”ToOps” TypeID=”SystemCenter!Microsoft.SystemCenter.CollectPerformanceData” />

<WriteAction ID=”ToDWH” TypeID=”SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData” />

</WriteActions>

All looks okay….

Solution

After some mailing with the OM development team the answer was found: Writing multiply counters to the DWH from 1 property bag output is NOT supported! So the DWH write module has a one to one reference map that means only one rule can contain one counter. Be aware no error is reported if this happens..

The only way to solve this is to make 1 rule for every performance counter you want to store in the DWH.  Use a condition detection in the rule for filtering the correct performance counter. See below for a example.

<Rule ID=”TransferFile.ReadSec” Enabled=”true” Target=”FileTransferClient” ConfirmDelivery=”true” Remotable=”true” Priority=”Normal” DiscardLevel=”100″>
<Category>Custom</Category>
<DataSources>
<DataSource ID=”SMBFileTransfer” TypeID=”OPS.SMB.Performance.FileTransfer”> <Debug>false</Debug>
<IntervalSeconds>300</IntervalSeconds>
</DataSource>
</DataSources>
<ConditionDetection ID=”Filter” TypeID=”System!System.ExpressionFilter”>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type=”String”>CounterName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type=”String”>Read Transfer Total Sec</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID=”ToOps” TypeID=”SystemCenter!Microsoft.SystemCenter.CollectPerformanceData” />
<WriteAction ID=”ToDWH” TypeID=”SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData” />
</WriteActions>
</Rule>

THE END

Maybe this will help you. Till next Time.

Happy SCOMMING

Michel Kamp

How to check if a SNMP Trap is received.

2 Jul

I had wanted to give you a post on a new location OM2012 widget but I had some issues with the prototype and couldn’t figure it out yet. So that one is coming soon. But I still wanted to do my weekly post. So here we are.

Problem

A question I hear a lot, why is SCOM not detecting/reporting a SNMP trap. I’m sure it is send out but I do not see it in SCOM.

Analyze

Okay we could face several problems here. For example the SNMP trap isn’t send at all or it is not send/received at the SCOM agent OR it is received but the MP has a bug so the workflow isn’t processing the trap event. First I would look if the trap is received at all, because most of the time this is the problem.

Solution

There are several tools to use for this. But I like using build-in tools. So it will be WMI to use. WMI has a SNMP provider that will do the job for us. Below I will describe in simple steps how to check if a SNMP trap is coming in at all.

1. Stop the SCOM agent.

Yes it sounds strange but since the agent uses also the SNMP trap port it will block the WMI trap receiver. By stopping the SCOM agent you set the port free.

2. Install if needed the SNMP and SNMP Trap providers

SNAGHTMLc5eb2cb

3. Restart NT service “SNMP Trap” and “Windows Management Instrumentation”.

By doing this you will reactivate the Trap listener.

4. Setup the Trap event sink

We can do this in 2 ways. (1) using WBEMTEST (2) Using PowerShell.

(1) using WBEMTEST

Open a command prompt and type “WBEMTEST”

image

Press on Connect to establish the connection and fill in the namespace “root\snmp\localhost”

SNAGHTMLc66753f

 

Configure the Trap Sink press on “Notification Query” and enter

“ SELECT * FROM SnmpNotification ” (no quotes)

image

Now if there will be send a SNMP TRAP to this machine you will see this trap event in this window.

image

For example this test trap below

SNAGHTMLef0f6ea

So now you will know the TRAP is received.

(2) Using PowerShell

Start PowerShell in admin mode and look at the 2 command lines below:

# register trap
Register-WmiEvent -Query “SELECT * FROM SnmpNotification” -Namespace ‘root\snmp\localhost’  -sourceIdentifier “SNMPTRAP” -action { Write-Host [Time:] $newEvent.SourceEventArgs.NewEvent.TIME_CREATED [IP:] $newEvent.SourceEventArgs.NewEvent.AgentAddress  [OID:] $newEvent.SourceEventArgs.NewEvent.Identification  }

# use to unregister trap
Get-EventSubscriber | where {$_.SourceIdentifier  -eq ‘SNMPTRAP’} | % {Unregister-Event $_.SubscriptionID}

First execute the register trap.

Then you get a output saying the sink is started:

Id              Name            State      HasMoreData     Location             Command                 
—              —-            —–      ———–     ——–             ——-                 
34              SNMPTRAP        NotStarted False                                 Write-Host [Time:] $n…

Now generate the Trap on your snmp box. And you will see this below in the PS window.

[Time:] 129856918917535702 [IP:] 172.29.3.9 [OID:] 1.3.6.1.6.3.1.1.5.1

So now you will know the TRAP is received.

Now you unregister the TRAP by running the 2’d command

Conclusion:

You see its very easy to get this working. I prefer using PS for this. If the TRAP is received you have to use the WFanalyzer to see why it isn’t processed by the MP.

 

Happy SCOMMING

Michel Kamp

10 reasons NOT to use the Visual Studio Authoring Extensions VSAE

17 Jun

Hi this weekly post will be a short one all about the yet to be released VSAE.

Have you seen the title ?… Hmm what are you thinking now ? Not really something he would write … And you are correct its nonsense .. But I have your attention now , haven’t I…

Reason 1: SourceSafe integration

If you have read my previous post you know I really prio using SourceSafe for managing your management pack developments. And good news since the VSAE is a Visual studio project template is can be integrated out of the box with all VS supported SourceSafe systems. Just put the Solution to your SourceSafe system and every thing will be versioned. I use the good old VSS 2005 for this. But TSFS will also do the job.

image

Reason 2: MP object viewer

Yea! this feature is super. Normally you had to browse your MP by XML to view your project content. Or you use external tools for it. Now you will get it out of the box.In the View menu of the main VS window. Press Management Pack browser.

image

And you will see all the MPs in your solution/projects. Now you can browse it by type. You can even now browse SEALED mps at ease.

image 

Also when double clicking on the type. For example the discovery rule. You will be jumping directly to it in your MP.
BE AWARE THAT IF YOU DO THIS AT A SEALED MP YOU WILL BE REDIRECTED TO A READONLY VERSION OF THE MP FILE. YOU CAN’T EDIT IN THIS WINDOW. Sounds logical since it’s a sealed MP. But I had this confusion situation one’s when I clicked on my own sealed MP that I use as reference in a other MP. And was wondering why I couldn’t edit it since it was checked out by VSS…

Reason 3: Find references

You can now find at ease where you MP object is used. Just use the find references find feature. Select the MP object and right click “Find all references”

image

And you will get:

image

And of course you can double click to go to MP object ‘code’. ; – )

If you don’t see the window. Just press in the VS main menu: View –> Find MP Element Reference Results.

image

Reason 4: Simulating your workflows

Of course you will never used this , because your MPs are faultless. ;- ) The mine aren’t so I use this a lot. The Workflow simulator is integrated in VS now. Just select in the Management Pack Browser the , for example discovery , and right click “MP Simulator”. And that all.!!

image

In a separate windows the already known workflow simulator will popup.

SNAGHTMLafa5a676

Reason 5: Jump to referenced MP objects.

Very powerful feature. When you are working in your MP project at a MP object and are using for example a MP TYPE you can easily jump to this type by right click on the name and select “Go to Definition” (F12).

image

Reason 6: intellisense

If you have read my post on how to enable intellisense for OM07 MPs in VS this isn’t so new. But now it even does intellisense on references also.. this really speeds up the development time. cool

image

Remember: This intellisense is not always automatically showing up. Most of the time you must press SHIFT+Space. Example above, press the keys at the ! sign and you will prompted a dropdown list with the possible choices.  Notice that only the valid modules of type datasource are displayed. Well done Microsoft product team( s ) !

Reason 7: Build and deploy.

At the end we all have to import the MP into our dev environment to test it. Normally you will do a MP verify and then import it. You can use tasks for this in VS. I already blogged about this earlier. However in VSAE the MP is build of MP fragments and has to be compiled and build. Now the great time safer is that you can now specify the OM MNG group were this MP has to be imported after a successful build. You can even configure that the MP has to be sealed before import. And yes the version number is also incremented at build.

SNAGHTMLb111f46e

Even when the build gives errors back you will see it in the Error list window. And you can click on it to jump to the MP object. Wow never have to use CTRL+G again ; – ) 
Notice that this jump does not apply for target typo’s . I hope this will be fixed in the RTM release.

image

Reason 8: Management objects templates

You can now create/insert at ease new KPIs. Just press NEW-> Add existing Item and you can choose several KPI to create. I already blogged about this. The nice part is that you can even automate this so that you can create 100x rule at ones. I have to amid that I don’t use this templates a lot. I prefer to type it manually but sometimes I use this to get a sort of snap in fragments. Just create the KPI using the template and the look at the generated code behind and copy it. Be aware that if you change the code behind you will loose it at next build… I personally would liked if this generated code was also reflexed back against the template.

image

Reason 9: Convert your ‘old’ OM07 MPs.

Using the VSAE you can convert your OM07 MPs to the new VSAE project types. It very easy just use the “Project from existing Management Pack” , select the om07 MP and the references and a new project will be created in your solution. If you select multiply om07 MPs there will be created a new project for every MP. Very handy. The down site is however that it will put all the MP objects into one big MP fragment. I personally would liked to have seen this split-up by type or maybe converted to templates.

image

Tip: If you converted MP has images it will extract this images to resources and put them in the root of the project directory. You can create a new folder and drag them into here. Be aware that there is a little bug: The resource MP objects haven’t the images file extensions. So a build will fail. Just add the file extensions .jpg ect.. to it and it will run.

image

 

Reason 10: It just a must have.

I could continue to write about the tons of great features that are build in the VSAE but over 30min the soccer Europe 2012 game Netherlands->Portugal is going to start so I will warp it up and say:
use it use it use it use it . its no question why , just use the VSAE !

Happy scomming and till next week.

Michel Kamp