The topic of this event is “Web Development Technologies: ASP.NET vs. Java & JSF vs. PHP vs. Ruby”. The .NET team will present the ASP.NET, ASP.NET AJAX, ASP.NET MVC and the new ASP.NET extensions in .NET Framework 3.5. The Java team will stand up for JavaServer Faces (JSF), Google Web Toolkit (GWT), Echo Framework and other Java Web development frameworks. The PHP team will stand up for the Web frameworks in PHP, especially the Symphony framework. The Ruby team will stand for Ruby on Rails.
Venue
The event will be held on 6 March 2008, starting from 17:30 h in Park-hotel Moscow, Sofia, hall Moscow. The hall capacity is 350 people.
Sponsor
The event is sponsored by Telerik, a leading world wide vendor of User Interface (UI) components for ASP.NET and Windows Forms, and .NET Reporting solutions.

Agenda
|
Time
|
Topic |
Speakers |
| 17:30-17:50 |
Presenting the “IT Boxing Championship” initiative, the dispute topic, teams and rules |
Svetlin Nakov,The Referee Team |
| 17:50-18:10 |
Technical talk #1: ASP.NET AJAX |
Alex Thissen,The .NET Team |
| 18:10-18:30 |
Technical talk #2: Echo Framework |
Peter Milev,The Java Team |
| 18:30-18:50 |
Technical talk #3: PHP and PHP Web Frameworks |
Peter Vukadinov,The PHP Team |
| 18:50-19:10 |
Technical talk #4: ASP.NET MVC Framework |
Alex Thissen,The .NET Team |
| 19:10-19:30 |
Technical talk #5: Google Web Toolkit - Dynamic Web on Java(Script) |
Jordan Jordanov,The Java Team |
| 19:30-19:50 |
Break |
| 19:50-20:10 |
Technical talk #6: Symphony Framework for PHP |
Peter Vukadinov,The PHP Team |
| 20:10-20:30 |
Technical talk #7: ASP.NET |
The .NET Team |
| 20:30-20:50 |
Technical talk #8: JavaServer Faces (JSF) |
Nikolai Dokovski,The Java Team |
| 20:50-21:10 |
Technical talk #9: Smashing Rails |
Sava Chankov,The Ruby Team |
| 21:10-22:20 |
Open dispute and direct fight between the teams |
The .NET TeamThe PHP TeamThe Java Team The Ruby TeamThe Referee Team |
| 22:20-22:30 |
Voting, announcing the results and awarding the winners |
All visitors vote |
ASP.NET
ASP.NET is a set of Web development technologies provided by Microsoft as part of .NET Framework. It is used by developers to create dynamic Web applications and Web services. ASP.NET provides component-based architecture with comprehensive page rendering and execution model that relies on the concepts of the event-driven development. ASP.NET supports the concept of separation between the code and UI presentation and supports custom components, data binding and master pages. Developers can use C#, VB.NET and other .NET languages to create ASP.NET Web applications. ASP.NET is the best Web technology, isn’t it? If you don’t agree, come to fight at the ring.
ASP.NET AJAX
ASP.NET has a really strong story for AJAX. The AJAX implementation supports both a server centric and a client centric programming model. On the server new AJAX controls extend the Page Framework and offer the well-known control based and event-driven way of working. The AJAX controls take care of partial rendering of Web pages. Microsoft has released an impressive cross-browser compatible AJAX library on the client side. It allows you to do full client-side JavaScript development, and adds object orientation with inheritance, a type system including reflection and namespaces. And to top it all, the AJAX library is royalty-free and you can use and change it however you like. Surely no other AJAX framework can put up against this much power and survive a 12 round fight!
ASP.NET MVC Framework
Microsoft goes into a new direction of web application development with the introduction of the Model-View-Controller framework for ASP.NET. The benefits of the MVC approach include the ability to achieve and maintain a clear separation of concerns (data, presentation and actions), and also facilitates test driven development (TDD) and define page navigation rules. Microsoft’s MVC implementation is all about extensibility and flexibility. You have a free choice of the type of controller, the way URLs are routed and how views are created. The MVC Framework leverages the ASP.NET runtime and should be easy to learn for existing ASP.NET programmers, but also those coming from other runtimes and frameworks. All in all, the ASP.NET MVC Framework is sure to pack a punch. Will the combination of ASP.NET and MVC bring a quick knockout?
Java Web Technologies
The Java Enterprise platform (Java EE) provides solid foundation for development of Web applications and Web services. It introduces the concept of Web containers and Web applications. Java Web applications are built on the top of Servlet/JSP standards which serve as basis for the more complicated Web technologies. The Servlet API provides the basic execution model for the Web applications. The JavaServer Pages (JSP) technology provides additionally custom tags and tag libraries and has built-in expression language.
JavaServer Faces (JSF)
As a natural extension to the Servlet/JSP standards JavaServer Faces (JSF) provides standard component based architecture for Web applications. It provides reusable UI components and comprehensive rendering and execution model. Developers can benefit of using event driven development, data binding, control validation and page navigation rules. JSF is naturally extended to support AJAX with partial rendering and asynchronous execution and update of controls on the page. Shall the JSF gain a victory over the opponents as a technical effort or the Java team fill fall into boxing combat? Be sure to come and see.
Google Web Toolkit (GWT)
This session intends to reveal some of the benefits of GWT as UI Framework. Nowadays having a dynamic web UI is a must. Java programming is always preferred compared with pure HTML and Java Script. So combining both can really boost productivity and in the same way give us the opportunity to have a nice and flexible UI. The session will also include the usage of GWT in a real SAP project so that everybody can get a feeling for the product. Somebody mentioned JavaScript and AJAX support in .NET and PHP? No need of fight: GWT does not just use JavaScript and AJAX; those are in its blood.
Echo2 Framework
Echo2 is a platform for building Web applications that approach the capabilities of rich clients. The applications are developed using a component-oriented and event-driven API, eliminating the need to deal with HTML, JavaScript and the “page-based” nature of Web browsers. Echo2 applications are by their nature AJAX-enabled. To the developer, Echo2 works just like a user interface toolkit with and presents very simple approach to write efficient Web applications. Any AJAX pugilists?
PHP and PHP Web Frameworks
Some developers believe that PHP code is always low quality and PHP does not have good frameworks and standards for enterprise development. Is this true? What makes PHP the most widely used Web development language?
PHP frameworks are hot topic in the Web development community. Some of the most popular frameworks are: ZendFramework, Symfony, Codelighter, CakePHP, eZ Components but this list can not be either accurate or comprehensive.
PHP does not need to fight or dispute with the rest. It is the largest community and keeps the largest market share in Web technologies, isn’t it?
Symphony Framework for PHP
Symfony is a complete PHP framework designed to optimize the development of Web applications. It contains numerous tools and classes aimed at shortening the development time of a complex Web applications. Additionaly, it automates common tasks so that the developer can focus entierly on the specifics of the application. Some of the key features are: MVC separation, simple templating and helpers, cache management, smart URLs, scaffolding, multilingualism and I18N support, AJAX support and built-in unit and functional testing framework. Does anybody think Symphony is not better than ASP.NET and JSF? We shall see.
Smashing Rails
Since its inception several years ago Ruby on Rails has steadily garnered a lot of attention. The rolling stock seems not to be hype-powered only in shunting established technologies. Rather than presenting Rails the Ruby team decided to let it speak on its own. Ruby on Rails will squash the other Web technologies. Come to see this.
Teams
5 teams and 23 contestants take part in the event. The teams:
- The .NET Team (Alex Thissen from INETA, Branimir Giurov from SofiaDev, Stefan Dobrev from Avaxo, Deyan Varchev from Avaxo, Galin Iliev, Martin Kulov and Emil Stoychev) - stands up for the ASP.NET Web technologies
- The Java Team (Nikolay Dokovski from SAP Labs Bulgaria, Jordan Jordanov from SAP Labs Bulgaria, Peter Milev, Nikolay Nedyalkov from ISECA, Vesko Arnaudov from VMWare, Naiden Gochev from ProxiAD) - stands up for the Java Web technologies like JSF, GWT, Echo, etc.
- The PHP Team (Peter Vukadinov from pi consult and Valery Gantchev) - stands up for the PHP Web technologies
- The Ruby Team (Sava Chankov from Tutuf, Petyo Ivanov from 3atwork, Stanislav Bozhkov from svejo.net, Stanislav Peshterliev and Dimitar Ivanov) - stands up for the Ruby and Rails technologies
- The Referees Team (Svetlin Nakov from BASD, Dimitar Kapitanov from Telerik and Mihail Stoynov) - technologically neutral, moderate the discussion
Free Event
The event is free and the hall is large, so please come with your friends! Everyone will get small gifts from our sponsors.
Official Web Site
Visit the IT Boxing Official Web site for more information.
Posted by nakov as .net, news, java, blog at 12:20 PM EET
Comments Off
The “IT Boxing” Visited by 250 Developers!
On 11 December 2007 I organized the largest event of the Bulgarian Association of Software Developers (BASD). It was held in Sofia and was visited by 250 software engineers and thus BASD was proved to be #1 community organization in Bulgaria.

The subject of this first “IT Boxing” event was “.NET vs. Java database access technologies and ORM tools”. The .NET team presented the LINQ and the ADO.NET Entity Framework and Visual Studio 2008. The Java team presented Hibernate, Java Persistence API (JPA) and DB4O.
The Winner is the .NET Team!
The .NET Team won the first IT Boxing match named “ADO.NET Entity Framework and LINQ vs. Java Persistence API and Hibernate”. The vote of the audience stated the following results (not all visitors voted):
- The .NET Team: 136 votes
- The Java Team: 46 votes
More details about the event:
Posted by nakov as .net, news, java at 3:15 PM EET
Comments Off
Next week (11 December 2007) I organized very interesting event for developers in Sofia: IT Boxing championship where .NET and Java developers will dispute the state-of-the-art data access technologies in their platforms: http://itboxing.devbg.org/events/adonet-entity-framework-linq-vs-jpa-hibernate/.
About the IT Boxing Championship
The initiative “IT Boxing Championship” is a series of events organized by the Bulgarian Association of Software Developers (BASD) at which we invite supporters of different software technologies to an open dispute “Which technology is better?”. At these meetings the adherents of the opposing technologies defend their vision for better technology by presentations, discussions and open debate that ends up in direct fight with inflatable boxing gloves. For each IT boxing event we assign a topic for dispute and teams that stand up for contrary visions. During the fight all contestants are obligated to keep the opponent of injuring.
ADO.NET Entity Framework + LINQ vs. Java Persistence API and Hibernate
The topic of this event is “Database Access Technologies and Object-Relational Persistence Frameworks in .NET and Java”. The .NET team will present the new ADO.NET, the ADO.NET Entity Framework and LINQ in C# 3.0. The Java team will stand up for Hibernate and the Java Persistence API (JPA).
Agenda
|
Time
|
Topic |
Speakers |
| 18:00-18:20 |
Presenting the “IT Boxing Championship” initiative |
Svetlin Nakov |
| 18:20-18:30 |
Presenting the dispute topic, teams and rules |
Svetlin Nakov |
| 18:30-18:35 |
Draw lots: Who will start first |
Svetlin Nakov |
| 18:35-19:20 |
ADO.NET Entity Framework and LINQ |
The .NET Team |
| 19:20-19:35 |
Break |
|
| 19:35-20:20 |
Java Persistence API and Hibernate |
The Java Team |
| 20:20-21:30 |
Open dispute and direct fight between the teams |
The .NET TeamThe Java Team The Referee Team |
ADO.NET, ADO.NET Entity Framework and LINQ
ADO.NET is the standard data access library built in .NET Framework used by developers to access and modify data stored in relational database systems, call stored procedures and access non-relational data sources like XML.
LINQ (Language Integrated Query) is extension to C# and other .NET languages that adds native querying syntax directly into the language and thus simplifies querying data and dramatically reduces the amount of code.
ADO.NET Entity Framework is new paradigm for developing database applications. It allows developers to focus on data through an object model instead of through a logical/relational data model. It abstracts the logical database structure using a conceptual layer, a mapping layer, and a logical layer and provides support for LINQ to simplify querying.
Java Persistence API and Hibernate
Java Persistence API (JPA) is a Java framework based on the concept of object-relational mapping (ORM) that allows developers to manage relational data in Java SE and Java EE platforms. JPA defines persistent entities as lightweight Java classes that are mapped to the database tables. Entities typically have relationships with other entities, and these relationships can be specified directly in the entity class by using annotations, or in a separate XML descriptor. Once the mapping between classes and tables is defined, the persistent entities can be loaded, modified, persisted, deleted and queried by simple API.
Hibernate is a powerful, high performance object/relational persistence framework, very popular among the Java developer community. By concept it is very similar to JPA and provides mapping objects to tables, querying and manipulating persistent objects.
Teams
Three teams take part in the event:
The .NET Team – stands up for ADO.NET Entity Framework and LINQ
The Java Team – stands up for Java Persistence API and Hibernate
The Referees Team – technologically neutral, moderate the discussion
The .NET Team
Branimir Giurov is very skillful Microsoft and .NET software engineer, with many years of experience as senior developer, trainer, consultant, team leader and development manager. He’s a C# MVP and a UG Lead at SofiaDev.org. Branimir is freelance developer. Visit his blog here: http://blogs.sofiadev.org/blogs/branimir/.
Stefan Dobrev is co-owner of Avaxo Ltd., an experienced .NET developer and distinguished speaker at various Microsoft events for developers.. Visit his blog here: http://ligaz.blogspot.com.
Deyan Varchev is experienced .NET developer and a speaker at various Microsoft events for developers. Currently he is co-owner of Avaxo Ltd. where handles complex .NET and Web projects. Visit his blog here: http:// http://blog.varchev.net/.
Galin Iliev is a senior software engineer with solid experience in .NET and Microsoft technologies. He has MCPD and MCSD.NET certifications. He is Microsoft certified trainer. Now Galin works as freelance developer. Visit his blog here: http://www.galcho.com/blog/.
Dimiter Kapitanov is senior software engineer at telerik. Dimiter has solid experience in development of .NET applications and reusable components. Visit his blog here: http://blogs.telerik.com/blogs/dimitar_kapitanov/.
The Java Team
Miroslav Nachev is software engineer with more than 18 years of experience in software design and development, system integration, VoIP and tele¬communications projects. Some of the programming languages and technologies in his competence include Java, Fortran-77, Pascal, x86 assembler, C/C++, 4GL Magic, Web Services, Hibernate, JPA, XML Security & Encryption, Java Security, X.509 Certificates, XAdES, Java EE, Swing and VoIP.
Martin Valkanov is senior software engineer in eBG.bg. He has solid development experience in Java and open source technologies, Web applications, databases and enterprise systems.
Peter Milev is experienced Java engineer. He has years of experience in Java and open source technologies, focusing on Web applications with AJAX and database systems.
Svetoslav Kapralov is senior software engineer, experienced in various Java technologies and frameworks.
Vesko Arnaudov is senior software engineer in VMware Inc.. He has many years of experience as developer, team leader, trainer and consultant. His expertise includes Java, Java EE, Oracle, Web and enterprise applications.
The Referees Team
Svetlin Nakov is software engineer with more than 10 years of experience in the development of Java, .NET, Web and Win32 applications, software engineering consultant and trainer, author of 4 books and above 30 technical articles and presentations. He is one of the founders and currently chairman of the Bulgarian Association of Software Developers (BASD), director training and consulting activities in the National Academy for Software Development (NASD) and one of the founders of the Bulgarian Java User Group and author of open source projects. Visit his blog here: http://www.nakov.com/blog/.
Nikolay Todorov is team lead in Musala Soft. He has strong commercial experience with both Java and .NET (he is Microsoft Certified Application Developer with .NET) and solid practice and knowledge about software development processes, including Agile.
Stanimir Boychev is technical director and managing partner in Musala Soft. His 12+ years experience in the area of software development covers a very broad set of technologies, including architecting and leading Java EE and .NET projects.
Venue
The event will be held on 11 December 2007 (Tuesday), 18:00 h in Park Hotel “Moscow”, Sofia, Hall “Moscow”.
Sponsors
The event is sponsored by two leading software companies in Bulgaria: telerik and Musala Soft.
Posted by nakov as .net, news, java, blog at 9:55 PM EET
Comments Off
The distinguished NetBeans development evangelist Roman Strobl will come tomorrow at the SwingX and NetBeans event organized by the Bulgarian Association of Software Development (BASD) and the Bulgarian Java User Group:
http://www.devbg.org/seminars/seminar-Swing-and-NetBeans-28-November-2007/
Roman Strobl has over 7 years of experience doing software development in Java and all sorts of scripting languages. His expertise includes software development tools, Cisco IP telephony, and information security. He gets very excited about new Java technologies and tools and enjoys helping developers use them effectively. Roman works for Sun Microsystems in Prague as a technology evangelist on the NetBeans project (with more than 80 presentations of NetBeans in past 2 years at Sun). He is also a passionate blogger (among the best 10 at Sun) and he produces his own podcast about NetBeans. His blog is located at: http://blogs.sun.com/roumen/.
Posted by nakov as news, java at 3:18 AM EET
Comments Off
Bulgarian Association of Software Developers (BASD) kindly invites you to the next meeting of the Bulgarian Java User Group (BGJUG). The topic will be “Rich Client Applications using NetBeans 6 and Java Swing”. The objectives of this seminar is to show how to easily develop Rich Client applications using NetBeans 6 and Swing. The focus will be on the new features recently added to Swing.
Speaker will be Miroslav Nachev, software engineer with 18 years of experience.
More information is available from the official site of the seminar: http://www.devbg.org/seminars/seminar-Swing-and-NetBeans-28-November-2007/.
Posted by nakov as news, java, blog at 5:28 PM EET
Comments Off
Few days ago the Belgian Java Users Group (BeJUG) and the Brazilian Java Users Group (SouJava) jointly discussed a submission of few new features as language JSR for JDK7 in the Java Community Process. Lot of small nice features were introduced but one thins was still missing.
Implicit Variable Declarations
The implicit variable declarations with “var” keyword (like in C# 3.0) can significantly reduce the ammount of code developers write every day. For example the code below:
could be simplified to:
We could use even more interesting constructs like this:
The type of the “entires” and “entry” variables is implicitly defined from the right side of the expressions in the above code so we don’t want to write the boring and long type definition.
Nice! I am very happy to see this in C# 3.0. Why not in Java 7 too? What do you think?
Posted by nakov as java, blog at 3:12 AM EET
3 Comments »
GWT Tk (http://www.asquare.net/gwttk/) is an excellent open-source GWT widget library. I use it to show modal dialog boxes in my GWT applications. There is only one problem: the ModalDialog does not work with the latest version of GWT: GWT 1.4.60. I investigated where the problem comes from and I patched the file ExposedCellPanel.java to run correctly on GWT 1.4.60. Here are the changes:
The original author of GWT Tk didn’t publish a new version to support GWT 1.4.60 when it officially released so I provide my modified one here: gwttk-0.2.3-patched.zip.
Posted by nakov as java at 12:20 AM EET
Comments Off
I released a new version of my GWT Advanced Table widget. It now supports multiple rows selection:

I hope all GWT fans will enjoy using it.
Posted by nakov as java at 12:12 AM EET
2 Comments »
Bulgarian Association of Software Developers (BASD) organizes a meeting of the Bulgarian Java User Group (BGJUG) on 25 October 2007 to discuss the JavaServer Faces (JSF) technology and new trends. Speakers will be Ivan Davidov and Nikolay Dokovski.
See the official invitation here: http://www.devbg.org/seminars/seminar-JSF-25-october-2007/.
Posted by nakov as news, java at 3:48 PM EEST
Comments Off
The Bulgarian Association of Software Developers (BASD) which I lead for the last few years launches a Bulgarian Java User Group:
The groups will perform regular meetings in Sofia once monthly and will organize technical events and discussions. It will have separate web site (http://www.java-bg.net) and independent membership regardless of the membership in the association. The first meeting will be in the end of September 2007. I will post about it.
Posted by nakov as news, java, blog at 3:22 PM EEST
Comments Off