sofia, bulgaria | 9-10 october large-scale client script development in asp.net "atlas“...

17
Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik

Upload: ginger-chandler

Post on 27-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 OctoberSofia, Bulgaria | 9-10 October

Large-Scale Client Script Development in ASP.NET "Atlas“

Large-Scale Client Script Development in ASP.NET "Atlas“

Tools, Tips, And TechniquesTools, Tips, And Techniques

Hristo Deshev

telerik

Hristo Deshev

telerik

Page 2: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Our GoalOur Goal

● Increase predictability in script development by:

● Reduce code complexity by increasing modularity.

● Explore the standard means of component interoperability Atlas offers.

● Use automated testing to improve code quality and ensure cross-browser support.

● Increase predictability in script development by:

● Reduce code complexity by increasing modularity.

● Explore the standard means of component interoperability Atlas offers.

● Use automated testing to improve code quality and ensure cross-browser support.

Page 3: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Where we are nowWhere we are now● The problems with JavaScript development

● No standard way to define reusable pieces of code.

● No definitive resource for developers that just start using the language. A lot of outdated tutorials and code out there.

● Lack of tools available to the masses.

● We have a lot of scattered gems on the web and many monstrosities that have to be killed.

● The problems with JavaScript development

● No standard way to define reusable pieces of code.

● No definitive resource for developers that just start using the language. A lot of outdated tutorials and code out there.

● Lack of tools available to the masses.

● We have a lot of scattered gems on the web and many monstrosities that have to be killed.

Page 4: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

What we wantWhat we want● The most important thing: a standard

for creating reusable components that play nice together.

● A base class library that will be available everywhere e.g. XMLHttpRequest services.

● A set of tools that abstract the most common browser peculiarities: attachEvent/addEventListener

● Development tools: IDE’s, test frameworks, profilers, etc.

● The most important thing: a standard for creating reusable components that play nice together.

● A base class library that will be available everywhere e.g. XMLHttpRequest services.

● A set of tools that abstract the most common browser peculiarities: attachEvent/addEventListener

● Development tools: IDE’s, test frameworks, profilers, etc.

Page 5: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Atlas, a step forwardAtlas, a step forward

● Base services: extending JavaScript with classes, properties, events, namespaces.

● A rich base class library: networking, UI, etc.

● A server-side model that for registering and using script components.

● Server-side controls with rich client-side behavior.

● Base services: extending JavaScript with classes, properties, events, namespaces.

● A rich base class library: networking, UI, etc.

● A server-side model that for registering and using script components.

● Server-side controls with rich client-side behavior.

Page 6: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Additional toolsAdditional tools

● A build system for packaging and releasing script code.

● Fully featured cross-browser debugging and profiling tools: largely nonexistent today.

● Strong testing is our best strategy for any larger script code base.

● A testing framework: jsUnit (www.jsunit.net) is the standard for JavaScript and works for Atlas.

● A build system for packaging and releasing script code.

● Fully featured cross-browser debugging and profiling tools: largely nonexistent today.

● Strong testing is our best strategy for any larger script code base.

● A testing framework: jsUnit (www.jsunit.net) is the standard for JavaScript and works for Atlas.

Page 7: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Script componentsScript components

● Class definitions in JavaScript

● Inheritance and interfaces

● Properties and property descriptors

● Events and delegates

● Resource management and IDisposable

● Creating components declaratively.

● Class definitions in JavaScript

● Inheritance and interfaces

● Properties and property descriptors

● Events and delegates

● Resource management and IDisposable

● Creating components declaratively.

Page 8: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 OctoberSofia, Bulgaria | 9-10 October

DemonstrationDemonstration

Creating a JavaScript component class

Creating a JavaScript component class

Page 9: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Rendering scriptsRendering scripts

● Existing problems with Page.ClientScript.RegisterClientScriptBlock(...)

● Using the Atlas ScriptManager control to register scripts, namespaces and components.

● Existing problems with Page.ClientScript.RegisterClientScriptBlock(...)

● Using the Atlas ScriptManager control to register scripts, namespaces and components.

Page 10: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 OctoberSofia, Bulgaria | 9-10 October

DemonstrationDemonstration

Registering scripts with the ScriptManager API.

Registering scripts with the ScriptManager API.

Page 11: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Introducing jsUnitIntroducing jsUnit

● Tests are defined in pages instead of classes

● setUp/tearDown for initialization and cleanup

● Defining test suites

● Running tests on different browsers and collecting test results

● Tests are defined in pages instead of classes

● setUp/tearDown for initialization and cleanup

● Defining test suites

● Running tests on different browsers and collecting test results

Page 12: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Atlas and jsUnitAtlas and jsUnit

● Two ways to test script code:

● Place a control that will render the script and write tests against the live component instance. The easiest option.

● Register the script class through the ScriptManager control and instantiate components manually. Useful if you want to test the component creation logic.

● Two ways to test script code:

● Place a control that will render the script and write tests against the live component instance. The easiest option.

● Register the script class through the ScriptManager control and instantiate components manually. Useful if you want to test the component creation logic.

Page 13: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 OctoberSofia, Bulgaria | 9-10 October

DemonstrationDemonstration

Writing tests and running them under different browsers

Writing tests and running them under different browsers

Page 14: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

Additional resourcesAdditional resources

● The official Atlas site: http://atlas.asp.net

● The Atlas Control Toolkit: http://atlas.asp.net/atlastoolkit/

● The Atlas forums: http://forums.asp.net/default.aspx?GroupID=34

● My blog:http://blogs.telerik.com/blogs/twisted_asp_net/

● The official Atlas site: http://atlas.asp.net

● The Atlas Control Toolkit: http://atlas.asp.net/atlastoolkit/

● The Atlas forums: http://forums.asp.net/default.aspx?GroupID=34

● My blog:http://blogs.telerik.com/blogs/twisted_asp_net/

Page 15: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 October

The endThe end

●Questions?●Questions?

Page 16: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 OctoberSofia, Bulgaria | 9-10 October

Please fill out the survey forms!

They are the key to amazing prizes that you can get at the end of each day

Please fill out the survey forms!

They are the key to amazing prizes that you can get at the end of each day

Thank you!Thank you!

Page 17: Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev

Sofia, Bulgaria | 9-10 OctoberSofia, Bulgaria | 9-10 October