
This Company is somehow special to me, may be coz it was the first IT company I joined in Alex/Professional life
it’s here, it has an awesome view on that green area
it is supposed to be developing ERP System for Hospitals for its parent company -which i think is Andalusia Group-
I think I’ve learned there so much, in so many branches and technical skills, was the first place I write code for semi-Fuzzy logic problem, I dove in SQL server more, I used some tools I didn’t use before or even thought I’d never use, coded for MS Office some Automation functions
studied the software development life cycle a bit deeply, and seen the SDLC in real life
kind of I changed the way I look at a problem to solve it using the programming paradigm used there -XML Programming-
and used so many tools for manipulating XML, It’s the kind of company that wants to create its own technology
This Company has one major problem, that it’s CEO is its Customer, so he’ll never get satisfied…
and to satisfy him, the product will be wrecked..
pretty obvious..
the Owner is the one who tries to put the least resources and the Client is the one who tries to get the best product, so the whole process will be very tough to get to the optimum point.
so I think he has to choose only one role !!
except that, i think that this company has the reasons to succeed, it has the experience, passion and a very friendly environment ,not talking about the IT people :huh (kidding)
ah, and about the security policy there, i completely hate it !
sorry, but i wanted to say that
I just felt it a bit humiliating to treat me as the one who wants to get the company secrets out, beside there was nothing to get out
the whole technology used is in my mind, the files i create won’t reveal anything…
actually no file would reveal something
besides it affected my work when you blocked wordpress or blogspot, programming info there is better on blogs than any documentation..
and facebook was allowed !!!
anyway, I can tell that I’ve enjoyed the work there after all, with an awesome team, helpful leader and a nerd manager..
Tagged: Alexandria, CEO, Facebook, IT Support, SDLC, XML Programming
i found nice web tool to convert VB.NET to C# and vice versa …
http://www.developerfusion.com/tools/convert/vb-to-csharp/ ,
maybe be useful
Understanding the differences between VBA and Visual Basic .NET can help you make a more informed decision about converting your code. This section examines differences in the following areas:
- Language
- Project management
- Security
- Deployment
Language Differences
Because Visual Basic .NET was designed to take advantage of the .NET Framework, it contains many changes and areas where compatibility with previous versions of the language has not been preserved. The following is a partial list of changes to the Visual Basic language in Visual Basic .NET. For more information, see Introduction to Visual Basic .NET for Visual Basic Veterans.
' Using Ctype to convert the Object.returned by Sheet1 to a Worksheet.
MsgBox(CType(ThisWorkbook.Worksheets("Sheet1"), Excel.Worksheet).Name)
ActiveDocument.Tables(1).Cell(1, 1).Range = "Name"
ThisApplication.ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "Name"
ThisApplication.ActiveDocment.Tables.Item(1).Cell(1, 1).Range.Text _
= "Name"
Selection.Find.Wrap = wdFindContinue
ThisApplication.Selection.Find.Wrap = Word.WdFindWrap.wdFindContinue
' VBA Dim mySelection as Selection Dim myOtherSelection as String Set mySelection = Selection myOtherSelection = Selection ' Visual Basic .NET Dim mySelection As Word.Selection Dim myOtherSelection As String mySelection = ThisApplication.Selection myOtherSelection = ThisApplication.Selection.Text
- Control anchoring is now possible, so that when a user resizes your form, the controls automatically resize and reposition properly.
- Setting tab order is much easier with Windows Forms. Enable tab ordering by clicking Tab Order on the View menu. Then simply click each control in the preferred order.
- Creating menus in-line is an improvement over menu creation in VBA.
- In VBA, you can show a form as vbModal or vbModeless. In Visual Basic .NET, the ShowDialog method is used to display a form modally; the Show method is used to display a form non-modally. Note, however, that the form will display non-modally, but when you click in the Word or Excel document, the form moves to the background, which can be confusing to your users.
- Many new form controls are also available in Visual Basic .NET, such as data-entry validators, common dialog boxes, hyperlinked labels, system tray icons, panels, numeric-up/downs, on-the-fly designable tree views, Help file linkers, ToolTip extenders, and more
Project Management Differences
When you start using Visual Basic .NET to create your Office solutions, one difference you will notice is the location of the code in your project. When you use VBA to create an Office solution, the code resides in modules, UserForms, and class modules within a Word template, Word document, or Excel workbook. When you use Visual Studio Tools for the Microsoft Office System, the code resides in classes and Windows Forms, which are compiled into an assembly, and is referenced by the Word or Excel document.
The Visual Studio .NET IDE has enhanced functionality, but it is similar to the VBA IDE in many ways. Each has an explorer for viewing projects, modules, forms, and references. Each provides a properties window, toolbox, object browser, and debugging capabilities. Table 1 lists some differences you might notice when managing your projects.
Table 1. Differences in the VBA and Visual Studio .NET IDE
| VBA IDE | Visual Studio .NET IDE |
|---|---|
| Project Explorer contains a dynamic list of all of the projects (templates, documents, and add-ins) that are currently open. | Solution Explorer contains a static list of one or more projects in the open solution. |
| Project files are stored in subfolders: UserForms, modules, and class modules. | Project files are stored alphabetically and are not categorized into subfolders. |
| In Word, the project contains a folder that shows the references to global templates. In Word and Excel, external references are set using theReferences command on the Tools menu.
If you create a Web reference using the Web Services Toolkit, classes are created for the Web service and all of its methods. The classes are located in the Class Modules folder. |
The project contains a folder that shows the references you have set using the Add Reference command on the Projects menu.
If you create a Web reference, the reference is located in the Web References folder. |
| Project files have distinct file extensions: UserForms (.frm), class modules (.cls), and modules (.bas). | Project files for forms, modules, and class modules all have the same .vb extension. Supporting files have other extensions (.xml, .aspx, and so on.). |
| In a VBA solution for a Word template or document, ThisDocument is located in the Microsoft Word Objects folder.
In a VBA solution for an Excel Document, ThisWorkbook and the worksheets are located in the Microsoft Excel Objects folder. |
Visual Basic .NET Word projects contain a ThisDocument code file.
Visual Basic .NET Excel projects contain a ThisWorkbook code file. |
Another difference that you will find is in the use of ActiveX controls. In VBA, ActiveX controls are top-level objects and have IntelliSense support. In Visual Basic .NET, you must define variables for the controls, use the FindControl method in Visual Studio Tools for the Microsoft Office System, and convert them to a strong type in order to access IntelliSense.
Security Differences
The Microsoft .NET Framework provides security features that you cannot take advantage of in VBA. In VBA, there are three basic security options:
- Set the security settings to high on user machines and digitally sign your code.
- Let the user decide whether or not to trust the code when presented with the macro virus warning.
- Set the security to low to allow all code to run (including malicious code). Note that this third option should never be used.
Word and Excel documents with managed code extensions that are created using Visual Basic .NET do not use Office macro security, which relies on the Office certificate store. They incorporate the standard security features available in the Microsoft .NET Framework 1.1, for example:
- Code signing is no longer necessary, as there are several types of evidence that are available for security in .NET Framework, including Application Directory, Strong Name, URL, and more.
- Administrators can use standard tools to set security policies. The security policy must grant full trust to an assembly or the code cannot execute.
- The end user cannot change security options within Word or Excel to permit untrusted code to run. If the end user opens a document with untrusted code, the code will not run.
For more information on setting security in the .NET Framework, read the Visual Studio Tools for the Microsoft Office System help topic, “Security in Office Solutions That Use Managed Code Extensions,” or see An Overview of Security in the .NET Framework.
Deployment Differences
Deploying Visual Basic .NET applications is quite different from deploying VBA applications. Visual Studio Tools for the Microsoft Office System projects usually consist of two files: the assembly, which contains the compiled code, and the document (Excel worksheet or Word document or template), which contains custom properties that point to the assembly. The document and assembly are deployed separately. Unlike many VBA projects where the code is embedded in the document, in Visual Studio Tools for the Microsoft Office System projects, the assembly can be stored in a shared network location, or it can be copied to each end user’s computer. The advantage in deploying an assembly to a network location is that it is easier to update the code because you will have only one copy of the assembly on the network share. Users can modify and customize their copy of the document and will have access to the updated assembly every time the document is opened. This happens automatically, with no user intervention.
You can understand the features of ADO.NET by comparing them to particular features of ActiveX Data Objects (ADO).
In-memory Representations of Data
In ADO, the in-memory representation of data is the recordset. In ADO.NET, it is the dataset. There are important differences between them.
Number of Tables
A recordset looks like a single table. If a recordset is to contain data from multiple database tables, it must use a JOIN query, which assembles the data from the various database tables into a single result table.
In contrast, a dataset is a collection of one or more tables. The tables within a dataset are called data tables; specifically, they are DataTable objects. If a dataset contains data from multiple database tables, it will typically contain multiple DataTable objects. That is, each DataTable object typically corresponds to a single database table or view. In this way, a dataset can mimic the structure of the underlying database.
A dataset usually also contains relationships. A relationship within a dataset is analogous to a foreign-key relationship in a database —that is, it associates rows of the tables with each other. For example, if a dataset contains a table about investors and another table about each investor’s stock purchases, it could also contain a relationship connecting each row of the investor table with the corresponding rows of the purchase table.
Because the dataset can hold multiple, separate tables and maintain information about relationships between them, it can hold much richer data structures than a recordset, including self-relating tables and tables with many-to-many relationships.
Note Data adapters, data connections, data commands, and data readers are the components that make up a .NET Framework data provider. Microsoft and third-party providers can make available other .NET Framework data providers that can be integrated into Visual Studio. For information on the different .NET Data providers, see .NET Data Providers.
Sharing Data Between Applications
Transmitting an ADO.NET dataset between applications is much easier than transmitting an ADO disconnected recordset. To transmit an ADO disconnected recordset from one component to another, you use COM marshalling. To transmit data in ADO.NET, you use a dataset, which can transmit an XML stream.
The transmission of XML files offers the following advantages over COM marshalling:
Richer data types
COM marshalling provides a limited set of data types — those defined by the COM standard. Because the transmission of datasets in ADO.NET is based on an XML format, there is no restriction on data types. Thus, the components sharing the dataset can use whatever rich set of data types they would ordinarily use.
Performance
Transmitting a large ADO recordset or a large ADO.NET dataset can consume network resources; as the amount of data grows, the stress placed on the network also rises. Both ADO and ADO.NET let you minimize which data is transmitted. But ADO.NET offers another performance advantage, in that ADO.NET does not require data-type conversions. ADO, which requires COM marshalling to transmit records sets among components, does require that ADO data types be converted to COM data types.
Penetrating Firewalls
A firewall can interfere with two components trying to transmit disconnected ADO recordsets. Remember, firewalls are typically configured to allow HTML text to pass, but to prevent system-level requests (such as COM marshalling) from passing.
Because components exchange ADO.NET datasets using XML, firewalls can allow datasets to pass.

