The Art of NAV –Dynamics NAV 2009 network Stats

Today I prepared some stats about network traffic in NAV 2009 RTC client. You can compare the results with C/Side client (classic client).

 

Measuring: for measuring I have used the Microsoft Network Monitor for catching the NAV communication between client and DB Server/Service tier. Than I create sum of Frame Length, TCP Payload length and count of frames for the communication for each process. The results are not exact, because there are many things I didn’t take into account (cold/warm buffers, transfers of objects into classic client, used another order for measuring etc.). It means take the stats as example, how it can look like, but not as precise bandwidth measuring. Sizes are in Bytes.

Results:

Process

Frame total size (C/Side) Frame total size (RTC) Payload total size (C/Side) Payload total size (RTC) Frames count (C/Side) Frames count (RTC)

WIN

Comment

Client start

475 944 301 859 435 237 282 113 753 364

RTC

Start of client (Role center with data on RTC, Navigation Pane only on Classic)

Order list

387 740 253 255 356 366 237 775 581 286

RTC

Opening list (different size of window, in Classic opening first card and F5 on card)

Open order card

318 292 160 012 291 508 149 500 496 194

RTC

Opening card

Nothing to post

265 980 22 346 243 510 20 075 416 41

RTC

Processing

Closing order card

17 387 28 724 5 777 26 840 215 34

C/Side

Closing form

Order confirmation preview

538 989 1 000 756 504 429 939 150 640 1 108

C/Side

Printing

Open departments page

N/A 6 167 N/A 5 669 N/A 9  

Only in RTC

Adj. cost - item entries

4 453 658 51 371 3 853 774 44 075 11 108 134

RTC

Processing only

Post cost to G/L

1 910 662 3 415 814 1 599 491 3 187 554 5 749 4 190

C/Side

Processing + printing

Add line on Sales Order (filled fields Item no., location, quantity, price)

1 742 217 402 336 1 605 192 375 788 2 536 487

RTC

Processing only

Conclusion:

Form the table you can see the effect of 3-tier system. When you are processing some data, RTC is much better, because no raw data are transfered. Classic client needs to read all data to process them. But problem for RTC are Reports. When you want to print something in RTC, the client need to transfer the Flat Table structure with all the data to process them in the Reporting System Client. And this table can be big. One page with order confirmation took 1MB of data. I do not want to see some 100page report… and I am not talking about bitmaps on the report (e.g. Company logo). But because printing is not critical operation in most cases in NAV, it is OK, because critical things like data processing are 90% of whole application. When you create sum for whole data transferred for both clients, classic client transferred around 10MB and RTC only 5.5MB. Still, RTC is much better with the transfers and this difference will be much bigger in real live when you are mostly posting and sometime printing. Another difference is the Frame count. RTC is sending much less frames but they are bigger. It can lead to change in performance too. But this is question for some Network specialist.

What is you opinion? Are you happy that I created this table? Was it helpful for you?

I am waiting for your comments…

Kamil (Kine)

Posted by Kine | 6 comment(s)

What is new in Microsoft Dynamics NAV 2009

Hello all

I am happy that after long time of silence I can post this article about NAV 2009. I want to show you what is new in this version from Developer's point of view. Let's make it short:

Technology

Of course, everybody knows that NAV 2009 is 3-tier system, where you have DB Server (MS SQL 2005/2008), Service tier (processing data) and the Client tier (RoleTailored Dynamics Client - RTC). But many people think, that NAV 2009 client is "tiny" client. But this is not true. The Dynamics client is marked as "rich" client – there is no big amount of application data exchanged between client and Service tier, but there is big amount of XML data describing the Pages. I do not have stats about the amount, but because many things are configurable and all is in XML, the amount will not be too low. We will see after someone will have time to measure the data flow...

All what you can see on the client is sent to it as XML. This XML is than merged with XML data with user configuration and application setup. XML includes metadata about the fields etc. but no positions, size etc. It means all is on the Dynamics client decision, how will be each part displayed. This is done to have enough space for different devices for displaying the data. It will be just question of time when some new clients will be on the market.

As a "tiny" client can be marked the "SharePoint Dynamics client", which works as part of SharePoint site and just the resulting web page is sent to the user, but we will see.

WebService native support – this is biggest feature of this version which you can use right after you make technical upgrade. You do not need to use RTC or Service tier for that, WebService service is separate. Just publish some page or codeunit and you are ready for integration. All, including security, out of the box...

Developer environment

1) For developing is still used the C/Side classic client. No change in that. BUT! Yes, there is one change... syntax highlighting. You can see the screenshot in my previous article... I hope that some people will be very happy :-)

2) There is new object type – Page – which is like Form but for the new client – there will be needed whole new article about Pages...

3) On table fields is new property – ExtendedDatatype – [<None>,Phone No., URL, E-Mail, Ratio, Masked] – this property is used to show the data in appropriate way (as a correct hyperlink, progressbar etc.)

4) You can define field groups on the tables. These field group are used e.g. for Lookup lists. You can see more in this blog.

5) New property on boolean variables – IncludeInDataset – this property enables you to include this variable with the displayed data as new "field" to drive visibility and other properties of displayed controls on Pages.

6) Request Page on Reports – same thing as Request Form but for RTC, defined in same way as Page.

7) Layout of report for RTC client is done in Visual Studio as file with extension RDLC (Client Report Definition). It is subset of functionality of reporting services but without reporting services... ;-) This layout can be automatically suggested through function "Tool – Create Layout Suggestion" in the report designer in Classic client. Details are for separate article...

8) There are new functions on reports – REPORT.SAVEASPDF and REPORT.SAVEASEXCEL – I assume that they are working only within RTC client – it means no PDF workarounds needed, just call the function and you have the report in PDF file of your selection...

9) Dataports are replaced by XMLPort for RTC. To be able to export/import files from within RTC you need to use XMLPort, which have now many new properties to be able to work as dataport. You need to think about it much more than before, because the import/export is done on the Service tier and not on the client, it means you need to upload/download the file to the service tier first (there are new commands for that, see my article about NAV 5.0). It is for new separate article...

10) You can display BMP, EMF, GIF, ICO, JPG, PNG, TIFF, WMF pictures in the RTC (still only BMP in classic client).

What is done in another way

This is list I made from scratch and from what I remember. I know that there are more points but I miss my remarks...

1) You cannot specify where and how will be the data displayed – you can only change some metadata for the fields (Importance). But there are new possibilities to configure RTC layout.

2) No colors on Pages... sorry...

3) There is no matrix control for the RTC. It is replaced by fixed column table simulating the behavior of the matrix. It is ok for reading, but it is read-only. Edit functionality of matrix box cannot be done in this version. You can still use the Classic client for that or you can use WebService to make something like that in excel etc.

4) Errors are now handled as error bar in the RTC, not as Dialogs. There can be more errors on the page and user can solve them in any order.

5) Tabs replaced by FastTabs – sometime it means more space on screen needed to display the page...

6) You have NICE data picker if you are on Windows Vista.

7) Lookup lists with "filter as you type" on selected field. Of course – watch for performance when using that...

8) Graphs

9) Freeze Pane for tables

10) No symbols on pages (e.g. by changing font etc.) – if used for making "tree" structure, there is native support on Page (ShowAsTree, IndentationColumnName)

11) Hot keys were changed in whole application to be same as in other Microsoft applications – it can lead to some time you need to get used to new shortcuts to control the client only by keyboard. There is some area which Microsoft has for make it better, but with good feedback, it can be better in next version.

Conclusion

That's all for now. Take it as brief overview of the changes. Of course the whole RTC is big change, but to use it you need only to get used to Page designer and Report Layout tools in Visual Studio. No another change. All is still C/AL, working in same way as before. That there is C# behind you do not need to know. Open your mind for the evolution and try to find new ways how to do the things. Try to not hang on used ways, look for new opportunities you can use for you, all that is new for all of us. I know that whole Microsoft Dynamics NAV team knows the pains of the system and they are working hard on solutions. But it is not possible to release new application like that with all functionality already build in, because in this case it will be revolution and not evolution.

 

Have a nice time with NAV 2009 and I wish you many positive experiences.

 

 

 

 

 

Posted by Kine | with no comments

Microsot Dynamics NAV 2009 - C/AL colored!

Yes, it is true, NAV have syntax highlighting now! What a miracle! My live is much more bright now!

 NAV 2009 syntax highlighting

What to say? No comment... :-)

What is your comment on this?

Be redy for more NAV 2009 articles, because now, NDA over NAV 2009 is gone...

 

Posted by Kine | 9 comment(s)

The Art Of Nav – NAV 2009 CTP4 stats

Today I made some statistics about NAV 2009 CTP4 tables and compared the result with the stats for NAV 5.00SP1. There are the tables:

Tab 1) Field relations by type:

Relation Type

Count

(5.00SP1)

Count

(NAV 2009)

Difference

AVERAGE

5

5

0%

COUNT

109

193

+77%

EXIST

135

135

0%

LOOKUP

291

294

+1%

MAX

9

9

0%

MIN

14

14

0%

SUM

415

415

0%

-SUM

70

70

0%

TABLEREL

5468

5497

<1%

-EXIST

1

1

0%

Grand Total

6517

6633

+1.7%

 

You can notice, that the biggest difference is in COUNT flowfields. It is mainly because these new stacks in the new RoleTailored client.

Tab 2) Field data types:

Data type

Count

(5.00SP1)

Count

(NAV 2009)

Difference

Code

6377

6425

48

Decimal

2984

3013

29

Text

2310

2314

4

Integer

1603

1674

71

Boolean

1452

1467

15

Option

1279

1288

9

Date

1025

1044

19

Time

127

129

2

DateFormula

101

101

0

DateTime

57

59

2

BLOB

48

53

5

GUID

17

19

2

RecordID

6

6

0

Duration

2

2

0

TableFilter

1

1

0

BigInteger

1

3

2

Grand Total

17390

17598

208

 

Tab 3) Field data types including length:

Filed type and length

Count

(5.00SP1)

Count

(NAV 2009)

Difference

Code10

3387

3413

26

Decimal

2984

3013

29

Code20

2871

2889

18

Integer

1603

1674

71

Boolean

1452

1467

15

Option

1279

1288

9

Date

1025

1044

19

Text50

973

974

1

Text30

672

673

1

Text80

253

254

1

Text250

188

180

-8

Time

127

129

2

DateFormula

101

101

0

Text20

87

83

-4

DateTime

57

59

2

BLOB

48

53

5

Text10

39

39

0

Code30

35

38

3

Code3

21

21

0

Text100

20

20

0

Code250

19

20

1

Code100

17

16

-1

Code50

17

17

0

GUID

17

19

2

Text65

16

21

5

Text64

8

15

7

Text38

7

6

-1

RecordID224

6

6

0

Text200

6

6

0

Text249

6

3

-3

Text5

6

6

0

Code80

5

5

0

Text119

4

8

4

Text70

3

3

0

Code130

2

1

-1

Duration

2

2

0

Text150

2

2

0

Text19

2

1

-1

Text199

2

2

0

Text90

2

2

0

Text99

2

1

-1

BigInteger

1

3

2

Code1

1

1

0

Code2

1

1

0

Code98

1

1

0

TableFilter

1

1

0

Text118

1

1

0

Text127

1

1

0

Text131

1

1

0

Text14

1

1

0

Text149

1

1

0

Text151

1

1

0

Text220

1

1

0

Text3

1

1

0

Text31

1

1

0

Text32

1

1

0

Text63

1

1

0

Text7

1

0

-1

Code40

0

2

2

Text128

0

2

2

Text240

0

1

1

Text4

0

1

1

Grand Total

17390

17598

208

 

Tab 4) Overall stats:

 

NAV 5.00SP1

NAV 2009 CTP4

Tables

918

944 (+26)

Fields

17390

17598 (+208)

Fields per table (Avg)

18,94

18,64

Average count of relations per table

7,099

7,026

Percentage of fields referring other fields

37,47%

37,69%

Max fields in table

176 (Tab 39 - Purchase Line)

175 (Tab 27 - Item)

177 (Tab 39 - Purchase Line)

175 (Tab 27 - Item)

Max table relations per table (All)

93 (Tab 18 - Customer)

93 (Tab 18 - Customer)

Max table relations per table (Table Rel)

66 (Tab 81 - Gen. Journal Line)

66 (Tab 81 - Gen. Journal Line)

Max table relations per table (FlowFields)

63 (Tab 18 - Customer)

63 (Tab 18 - Customer)

Most referred table

266 (Tab 349 - Dimension Value)

258 (Tab 308 - No. Series)

235 (Tab 15 - G/L Account)

266 (Tab 349 - Dimension Value)

258 (Tab 308 - No. Series)

235 (Tab 15 - G/L Account)

 

As you can see, there is no big increase of table count and field count. The change is mainly because the new functionality for RTC. There are new tables with flowfields for calculating counts of documents and other information.

Posted by Kine | with no comments

The Art Of Nav – NAV 5.00SP1 Stats

Today I made some statistics about NAV 5.00SP1 tables. I know that the stats have no purpose, but you can see on them how complex the system is. It can help to someone, who just want to know, how much is something used in standard etc. There are the tables:

Tab 1) Field relations by type:

Relation Type

Count

AVERAGE

5

COUNT

109

EXIST

135

LOOKUP

291