13
Innovative web programming Micro Business Solutions, Belgrade www.micro-bs.com [email protected] IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E., CTO Dušan Dimitrijević, MCP, project manager t a tjana.kovacevic@ micro-bs.com du san .dimitrijevic@ micro-bs.com

Innovative web programming Micro Business Solutions, Belgrade [email protected] IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

Embed Size (px)

Citation preview

Page 1: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

Innovative web programmingMicro Business Solutions,

Belgrade

www.micro-bs.com

[email protected]

IPSI 2004 Sveti Stefan

Tatjana Kovačević, M.Sc.E.E., CTODušan Dimitrijević, MCP, project [email protected]@micro-bs.com

Page 2: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

4.5 years of proven experience in the field of:– eCommerce products for the market– tailor-made solutions– inhouse tools to “cut the time in half”– outsourcing

A relation to IPSI and prof Milutinović is1. professional (areas overlap just a little)2. academic (PhD)3. human

Page 3: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

scalable - interconnectable – customizable

10 projects out of 15 are alive at this very moment

1. how do we make it? The first time to present it! 1st session

2. what real stuff did we make? 2nd session

HP eShop for the area of Slovenia

Solomon European Network Virtual Enterprise – still opened

MICROSOFT Serbia & Montenegro recognizes the potential of our work and from October 11th we together start a campaign Virtual Incubator –

- they promote Office 2003 OSL

- we promote eAgenda

Page 4: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

If it is possible, we can make IT.

If it is impossible, we can make IT anyway.

Dare to dream.

www.can-make-IT.com

New projects are a special chalenge rather than a scary problem!

Page 5: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

• Database:– MS SQL Server– Oracle– SQL Base

• Programming:– MS Visual Studio .NET

• over 33 man-years experience• over 15 large projects (eCommerce)• developed Micro AXIS .NET

• Web developing:– ASP.NET– C#– HTML, DHTML, Java

script– Openshop– Visual Basic .NET

Page 6: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

• Data AXIS (db framework)

• Server side viewstate

• Data Filter

• Template web controls

• Web components (web parts)

Micro AXIS

Page 7: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

MicroBS - Data AXIS

• Built on ADO.Net but on a lower level

• OleDb DataReader – much more faster than DataAdapter; accessing only data, not structure

• Data is saved in Object[] array – requiring less space

• Programmer-friendly (intellisense)

• Data is cached on application level

Page 8: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

MicroBS – server side viewstateVIEWSTATE"

value="dDwtMjczOTA4NTY2O3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDE+O2k8Mz47aTw1PjtpPDc+O2k8MTE+O2k8MTM+Oz47bDx0PDtsPGk8MT47aTwzPjtpPDU+O2k8Nz47aTw5PjtpPDExPjtpPDEzPjtpPDE1PjtpPDE3PjtpPDE5PjtpPDIxPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxwcmlqYXZhOz4+Oz47Oz47dDxwPHA8bDxUZXh0O1Zpc2libGU7PjtsPG9kamF2YTtvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxrb3JwYTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8bmFydWTFvmJpbmU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPEhvbWU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFByb21vY2lqZTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8UHJvaXp2b2RpOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxLb21wbGV0aTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtWaXNpYmxlOz47bDxQcm9maWw7bzxmPjs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8TyZuYnNwXDtuYW1hOz4+Oz47Oz47dDw7bDxpPDA+O2k8Mj47PjtsPHQ8cDw7cDxsPG9ua2V5ZG93bjs+O2w8U3VibWl0QnV0dG9uKGRvY3VtZW50LmFsbC5NYWluTWVudUNvbnRyb2xfR2xvYmFsU2VhcmNoQ29udHJvbF9idG5TZWFyY2gyKTs+Pj47Oz47dDxwPHA8bDxUZXh0Oz47bDx0cmHFvmk7Pj47Pjs7Pjs+Pjs+Pjt0PHA8cDxsPFRleHQ7PjtsPERvYnJvZG/FoWxpITs+Pjs+Ozs+O3Q8O2w8aTwwPjtpPDI+O2k8ND47PjtsPHQ8cDxwPGw8VGV4dDs+O2w8VWtvbGlrbyBzdGUgcmVnaXN0cm92YW5pIGtvcmlzbmlrIG5hxaFlIG9ubGluZSBwcm9kYXZuaWNlLCBtb2xpbW8gdmFzIGRhIHNlIHByaWphdml0ZSBwcmUgbmVnbyDFoXRvIG5hc3Rhdml0ZS4gVSBzdXByb3Rub20sIHBveml2YW1vIHZhcyBkYSBzZSByZWdpc3RydWpldGUgdSBuYcWhb2ogcHJvZGF2bmljaS47Pj47Pjs7Pjt0PDtsPGk8MT47aTwzPjtpPDU+O2k8Nz47aTw5PjtpPDExPjtpPDEzPjtpPDE1PjtpPDE3Pjs+O2w8dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltZ2t1cG9uL1NFUi9sb2dpbi5qcGc7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPEtvcmlzbmnEjWtvIGltZTs+Pjs+Ozs+O3Q8cDw7cDxsPG9ua2V5ZG93bjs+O2w8U3VibWl0QnV0dG9uKGRvY3VtZW50LmFsbC5Mb2dpbk1pbmlJbmRleF9idG5Mb2dpbik7Pj4+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8TG96aW5rYTs+Pjs+Ozs+O3Q8cDw7cDxsPG9ua2V5ZG93bjs+O2w8U3VibWl0QnV0dG9uKGRvY3VtZW50LmFsbC5Mb2dpbk1pbmlJbmRleF9idG5Mb2dpbik7Pj4+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC9pbWdrdXBvbi9TRVIvYnRuTG9naW4uanBnOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxaYWJvcmF2aWxpIHN0ZSBsb3ppbmt1Pzs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8xIxhayBpIHVrb2xpa28gc2UgbmlzdGUgcHJldGhvZG5vIHJlZ2lzdHJvdmFsaSB1IG5hxaFvaiBwcm9kYXZuaWNpLCBtb8W+ZXRlIGRhIHByZWdsZWRhdGUgbmHFoXUgcG9udWR1LCBhbGkgbmXEh2V0ZSBtb8SHaSBkYSBrcmVpcmF0ZSBuZXJ1ZMW+YmVuaWN1IHN2ZSBkb2sgc2UgbmUgcmVnaXN0cnVqZXRlLjs+Pjs+Ozs+O3Q8cDxwPGw8SW1hZ2VVcmw7PjtsPC9pbWdrdXBvbi9TRVIvYnRuUmVnaXN0ZXIuanBnOz4+Oz47Oz47Pj47dDw7bDxpPDI+O2k8ND47aTw2Pjs+O2w8dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltZ2t1cG9uL1NFUi9sb2dpbi5qcGc7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFw8Qlw+XDwvQlw+LCB2YcWhaSBwb2RhY2kgc3UgcHJvdmVyZW5pIGkgZG96dm9samVubyB2YW0gamUgZGEgaW1hdGUgcG90cHVuIHByaXN0dXAgb3ZvbSB3ZWIgcG9ydGFsdS4gSHZhbGEuOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxWYcWhYSBrb3JwYSBzYWRyxb5pIFw8Qlw+MFw8L0JcPiBhcnRpa2FsKGEpLiBBa28gc3RlIHNlIHVwcmF2byBwcmlqYXZpbGksIG92byB6bmHEjWkgZGEgamUgdmHFoWEgc3RhcmEga29ycGEgYWt0aXZpcmFuYS47Pj47Pjs7Pjs+Pjs+Pjt0PEAwPGI8QUFFQUFBRC8vLy8vQVFBQUFBQUFBQUFNQWdBQUFFZE5aV05sYmw5aU1tSXNJRlpsY25OcGIyNDlNUzR3TGpFM01EVXVNakkwTXpFc0lFTjFiSFIxY21VOWJtVjFkSEpoYkN3Z1VIVmliR2xqUzJWNVZHOXJaVzQ5Ym5Wc2JBd0RBQUFBU2tGc1lYSnBlQ3dnVm1WeWMybHZiajB4TGpJd0xqRXVNQ3dnUTNWc2RIVnlaVDF1WlhWMGNtRnNMQ0JRZFdKc2FXTkxaVZWFJoVTNSdmNtRm5aUU1BQUFBQ0FBQUFDUVFBQUFBRkJBQUFBQmRCYkdGeWFYZ3VSR0YwWVM1RVlYUmhVM1J2Y21GblpRb0FBQUFJU1hOR2FXeHNaV1FHUm1sc2JHVmtCMGx6UkdseWRIa0pTWE5FWld4bGRHVmtEa2x6U1c1RGIyeHNaV04wYVc5dURWOXBjMGxrWlc1MGFXWnBaV1FHVm1Gc2RXVnpEazl5YVdkcGJtRnNWbUZzZFdWekJVUnBjblI1RVZCeVpUVEQUFBQUFRa0ZBQUFBQUFBQUFRa0dBQUFBQ1FjQUFBQUpDQUFBQUFvUEJRQUFBQWNBQUFBQkFRRUJBUUVCQVJBR0FBQUFCd0FBQUFnTkFJQ1hmQlV0eGdnSURRQkF5OVZQcGNZSUNBZ0lBQUFBQmdrQUFBQUJRUVlLQUFBQUlVdHZiR2xyYnlERWpXVnpkRzhnYTNWd2RXcGxkR1VnYTI5dGNHcDFkR1Z5UHdZTEFBQUFBMU5GVWdvUUJ3QUFBQWNBQUFBSURRQ0FsM3dWTGNZSUNBMEFRTXZWVDZYR0NBZ0lDQUFBQUFrSkFBQUFDUW9BQUFBSkN3QUFBQW9QQ0FBQUFBY0FBQUFCQUFBQUFBQUFBQXM9Pjs7PjtsPGk8MD47aTwyPjtpPDQ+O2k8Nj47aTw4Pjs+O2w8dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltZ2t1cG9uL1NFUi9xdWVzdGlvbm5haXJlLmpwZzs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8S29saWtvIMSNZXN0byBrdXB1amV0ZSBrb21wanV0ZXI/Oz4+Oz47Oz47dDx0PDt0PGk8Mz47QDxTdmFrZSBnb2RpbmUuO1N2YWtpaCDFoWVzdCBtZXNlY2kuO8SMZcWhxIdlLjs+O0A8MjM7MjQ7MjU7Pj47Pjs7Pjt0PHA8cDxsPEltYWdlVXJsOz47bDwvaW1na3Vwb24vU0VSL2J0blZvdGUuanBnOz4+Oz47Oz47dDxwPHA8bDxJbWFnZVVybDs+O2w8L2ltZ2t1cG9uL1NFUi9idG5TdGF0aXN0aWNzLmpwZzs+Pjs+Ozs+Oz4+O3Q8O2w8aTwxPjtpPDM+Oz47bDx0PDtsPGk8MD47PjtsPHQ8QDA8YjxBQUVBQUFELy8vLy9BUUFBQUFBQUFBQU1BZ0FBQUVkTlpXTmxibDlpTW1Jc0lGWmxjbk5wYjI0OU1TNHdMakUzTURVdU1qSTBNekVzSUVOMWJIUjFjbVU5Ym1WMWRISmhiQ3dnVUhWaWJHbGpTMlY1Vkc5clpXNDliblZzYkF3REFBQUFTa0ZzWVhKcGVDd2dWbVZ5YzJsdmJqMHhMakl3TGpFdU1Dd2dRM1ZzZEhWeVpUMXVaWFYwY21Gc0xDQlFkV0pzYVdOTFpYbFViMnRsYmowNU5HWTFPV0U1T0RKa09ESm1ZV0l6QlFFQUFBQWRRV3hoY21sNExrMXZaSFZzWlVJeVdFeHZaMmxqTGtsMFpXMVlWRU1CQUFBQUIxTjBiM0poWjJVRUYwRnNZWEpwZUM1RVlYlvbnNOeEluZGV4OlByb21vdGlvbkl0ZW0wOmltZ1Byb21vdGlvbkl0ZW1JbWFnZTtQcm9tb3Rpb25zTnhJbmRleDpQcm9tb3Rpb25JdGVtMDpidG5BZGQ7UHJvbW90aW9uc054SW5kZXg6UHJvbW90aW9uSXRlbTE6aW1nUHJvbW90aW9uSXRlbUltYWdlO1Byb21vdGlvbnNOeEluZGV4OlByb21vdGlvbkl0ZW0xOmJ0bkFkZDs+Pg==" />

Page 9: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

MicroBS – server side viewstate

• Data is saved on session, without serialization• Identical use compared to client-side Viewstate• Garbage collector tracks down opened windows

with javascript and cookies• Support perisistent viewstate (state of specific

controls can be serialized to disk)• References are shared (several controls can

access same object)• Using less resources on network• Using more resources on server• “Back” in browser does not work

Page 10: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

MicroBS – Data filter

• Database table fields can be used to create query or for data binding

• Queries are dynamically created

• DataFilter can be serialized (saved)

• DataFilter support binding to another DataFilter, allowing creation of complex queries gradually

Page 11: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

MicroBS – Template web controls

• Template Edit control - automatization of simple edit forms

• Template Query control - search

• Browse dijalog (client-side)

• Formatted TextBox

• External XML file describing structure

• ASCX = XML! Precompiled and cached

Page 12: Innovative web programming Micro Business Solutions, Belgrade  office@micro-bs.com IPSI 2004 Sveti Stefan Tatjana Kovačević, M.Sc.E.E.,

MicroBS – Web components

• Advanced container with decision logic for several templated web controls

• Component coordinator is controling actions• Automated security based on permissions or

statuses; every object is set up as read-only; action buttons (add, update, delete) are hidden

• Types: Details, Attachments, Categories, Attributes, Search, etc.

• Coordinator template contains components order. Manipulation of all data types controls only one ASPX page!