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 ClientRTC). 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.

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.