حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim
Contact me
My Profile
Blog Author(s) حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim
Previous Months Home Archive ۱۳٩٠/۱۱/۸ ۱۳٩٠/۱/٢٧ ۱۳۸٩/۱٢/۱٤ ۱۳۸٩/۱٢/٧ ۱۳۸٩/۱۱/٢۸ ۱۳۸٩/۱۱/٢۳ More ...
      فن آوری اطلاعات و مدیریت -- ICT (ICT -Managment-High Tech)
datajs - JavaScript Library for data-centric web applications by: حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim

Contents

  1. datajs Overview
  2. API Documentation
    1. read
    2. request
    3. defaultSuccess
    4. defaultError
    5. defaultHttpClient
  3. OData
    1. OData code snippets
    2. Metadata
    3. Security
    4. Cross-domain requests
    5. OData internals

datajs Overview

datajs is a cross-browser JavaScript library that supports data-centric web applications by leveraging modern protocols and browser features. It's designed to be small, fast, and provide functionality that makes web applications first-class citizens of web data.

Currently the library offers functionality to communicate with OData services. If you're not familiar with OData, there are good resources for learning at http://www.odata.org/developers.

The library supports receiving data and submitting changes or invoking service operations. The API can be made aware of metadata in cases where it's required, and operations can be batched to minimize round-trips.

We plan to extend the level of functionality in this area, as well as providing APIs to work with local data through browser features such as IndexedDB as they become available in popular browsers.

API Documentation

OData.read

Description: Reads data from the specified URL.

OData.read = function (url | request, [success(data, response)], [error(error)], [handler], [httpClient], [metadata])

Parameters

url - A string containing the URL to which the request is sent.

request -  An Object that represents the HTTP request to be sent.

success(data, response) - A callback function that is executed if the request succeeds, taking the processed data and the server response.

error(error) - A callback function that is executed if the request fails, taking an error object.

handler - Handler object for the response data.

httpClient - Object to use as an HTTP stack.

metadata - Object describing the structural metadata to use.

Details

This function is used to read data from an OData end point. In its simplest form this function takes a URL string to which an HTTP GET request is sent.

For example you can get all available Genres in the Netflix service by making the following call.

OData.read("http://odata.netflix.com/v1/Catalog/Genres");

As part of the URI you can also pass in parameters.

OData.read("http://odata.netflix.com/v1/Catalog/Genres?$top=3");

For full documentation on OData supported URIs refer to the OData documentation on the OData site.

The success parameter of the read operation takes a callback function, which is executed if the request succeeds. If it is not defined then the default success handler is used from OData.defaultSuccess, which simply shows a dialog box with the results in a string form. It is a good practice to define your own success callback function.

OData.read("http://odata.netflix.com/v1/Catalog/Genres",
function (data, request) {
var html = "";
for (var i = 0; i < data.length; i++) {
html += "<div>" + data[i].Name + "</div>";
}
document.getElementById("target-element-id").innerHTML = html;
});

The read function also takes an error parameter which is a callback function. The error callback is executed if the request fails. If the function is not defined then the default error handler OData.defaultError is invoked causing the error to be thrown as an exception.

OData.read("http://odata.netflix.com/v1/Catalog/Genres",
function (data, request) {
var html = "";
for (var i = 0; i < data.length; i++) {
html += "<div>" + data[i].Name + "</div>";
}
document.getElementById("target-element-id").innerHTML = html;
}, function(err){
alert("Error occurred " + err.message);
});

A handler can optionally be passed to the OData.read function. By default the MIME-based handler is used, which looks at the Content-Type header and uses the correct handler to parse the payload results. For example if the response's content type header is application/json then the JSON handler would be invoked to parse the data.

The read function also takes in an httpClient object. If it is not defined then the default httpClient object is used from OData.defaultHttpClient, which is set to a library that can take an HTTP request representation and return a response message from it.

More information on how to define a custom handler and httpClient is covered under handler and httpClient documentation respectively.

The metadata parameter is optional, and defaults to OData.defaultMetadata. Handlers make use of metadata to enhance how they process data.

To allow finer control over what is sent in the request this function also allows passing in a request object instead of a simple URI string.

The following example shows how to specify the accept type inside the request object, along with success and error callback functions.

OData.read({ requestUri: "http://odata.netflix.com/v1/Catalog/Genres",
headers: { Accept: "application/json" } },
function (data, response) {
alert("Operation succeeded.");
}, function (err) {
alert("Error occurred " + err.message);
});

The read operation returns a request value. The request value supports an abort invocation to cancel progress.


Top

 

OData.request

Description: Sends a request containing OData payload to the server.

Odata.request = function (request, [success(data, response)], [error(error)], [handler], [httpClient], [metadata])

 Parameters

request - An Object that represents the HTTP request to be sent

success(data, response) - A callback function that is executed if the request succeeds, taking the processed data and the server response.

error(error)  - A callback function that is executed if the request fails, taking an error object.

handler - Handler object for the request data.

httpClient - Object to use as an HTTP stack.

metadata - Object describing the structural metadata to use.

Details

The OData.request is a low level API for fine grained control over the request. It provides optional parameters to set callback functions, custom data handler and the HTTP client to use.

This API takes a request object as the first parameter that contains the headers, the target URI, the HTTP verb, which defines which CRUD operation to perform, and lastly the data on which the action takes place.

The request object should conform to the following signature:

request = { 
headers : object, // object that contains HTTP headers as name value pairs
requestUri : string, // OData endpoint URI
method : string, // HTTP method (GET, POST, PUT, DELETE)
data : object // Payload of the request (in intermediate format)
};

The headers is an object containing key value pairs that let the user control the semantics of the HTTP request. For example user can specify the 'Accept' type for data or the version of the DataService. Whatever is defined in the headers object takes precedence over the defaults; however if a value is missing in the headers then the defaults are used. For example if the caller specifies a given DataServiceVersion, then handlers will not set the value for the DataServiceVersion header.

var request = { headers : { "DataServiceVersion": "2.0" } };

The requestUri is a string value that specifies the location on the OData endpoint to which the operation is targeted. For operations on existing items the URI should resolve to a single entity or link. For an insert operation this URI points to the resource set or collection to which the entity is inserted. For more information on OData operations refer to: http://www.odata.org/developers/protocols/operations

Here are few examples of how the requestUri would look for a given operation.

Add a new entity in an entity set
requestUri : http://services.odata.org/website/odata.svc/Customers

Add a new entity in a linked entity set
requestUri : http://services.odata.org/website/odata.svc/Customers(1)/Orders

Update an existing entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)

Update an existing linked entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)/Orders(1)

Merge an existing entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)

Merge an existing linked entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)/Orders(1)

Remove an existing entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)

Remove (i.e. set to null) a primitive property value in an existing entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)/FirstName/$value

Remove an existing linked entity
requestUri : http://services.odata.org/website/odata.svc/Customers(1)/Orders(1)

 

The method property in the request object determines, via an HTTP verb, the CRUD operation to perform. The following table shows the operations supported by the protocol and how they map to HTTP verbs.

Operation HTTP Verb
Add a new entity POST
Update an existing entity PUT
Delete an entity DELETE

The data property defines the payload of the request defined in the intermediate format. The request is passed as input to the handler object which serializes the request payload to the appropriate wire format; as controlled by the request headers. The transformed data is then stored in the body property. Finally, the modified request object is passed to the underlying network stack.

Some update operations, such as add, OData endpoint generate a response with the new item. This data is valuable because it provides useful metadata like the edit URI or concurrency information. It is also useful for any server generated property values. The response is processed by the appropriate handler. All responses trigger the invocation of either a success or error callback depending on the status of the HTTP response.

The success parameter of the request operation takes a callback function, which is executed if the request succeeds. If it is not defined then the default success handler is used from OData.defaultSuccess. It is a good practice to define your own success callback function.

The request function also takes an error parameter which is a callback function. The error callback function is executed if the request fails. If error callback function is not defined then the default error handler is used from the OData.defaultError.

Optionally a handler can be passed to the OData.request function. If it's not defined, the MIME-based handler is used, which looks at the Content-Type header and uses the correct handler to parse the payload results. For example if the data type is JSON then JSON handler would be invoked to parse the data.

The request function also takes in an httpClient object. If it is not defined then the default httpClient object is used from OData.defaultHttpClient.

Batch Operations
datajs request API also supports OData batch operations that that allow grouping multiple operations into a single HTTP request. Following two examples show how to do batch operations for GET, PUT and POST by using __batchRequests and __changeRequests
Example 1:

OData.request( {
requestUri: "http://ODataServer/FavoriteMovies.svc/$batch",
method: "POST",
data: { __batchRequests: [
{ requestUri: "BestMovies(0)", method: "GET" },
{ requestUri: "BestMovies(1)", method: "GET" }
]}
},
function (data, response) {
//success handler
}, undefined, OData.batchHandler);


Example 2:

OData.request( {
    requestUri: "http://ODataServer/FavoriteMovies.svc/$batch",
    method: "POST",
    data: { __batchRequests: [
            { __changeRequests: [
                { requestUri: "BestMovies(0)", method: "PUT", data: {MovieTitle: 'Up'} },
                { requestUri: "BestMovies", method: "POST", data: {ID: 2, MovieTitle: 'Samurai'} }
                ]
            }           
    ]}
},
function (data, response) {
    //success handler
}, undefined, OData.batchHandler);

 

Top

 

OData.defaultSuccess

Description: default callback function for APIs that succeed.

Odata.defaultSuccess = function (data, response)


Details

The OData.defaultSuccess property is used to fill in the value for calls that do not specify a success callback handler.

By default, it simply displays the string representation of data in an alert box. This is convenient for quick prototyping, for example you can type javascript:(function(){OData.read("/myservice.svc/Customers");})() in the location bar of the browser when datajs.js is available, and see the results in an alert box.

This property is not often used; instead, most API calls should include a situation-specific success handler.

Top

OData.defaultError

Description: default callback function for APIs that fail.

Odata.defaultError = function (error)

Details

The OData.defaultError property is used to fill in the value for calls that do not specify an error callback handler.

By default, it simply throws the given error, which may go unhandled and break into the debugger if one is running in the browser. This is convenient for debugging, but typically the library consumer can do something more appropriate.

This property is often used as a generic error handler hook when all or most API calls end up routing through the same error handling mechanism.

Note that the error object may contain more or less information depending on when the error was found. For example, failures that occur when a request is being sent will not have a response property, but failures that occur while processing the response typically will have this property set.

Top

OData.defaultHttpClient

Description: provides the default HTTP layer for datajs.

Odata.defaultClient = { request: function (request, success, error) } 

Details

The OData.defaultHttpClient property is used to fill in the value for calls that do not specify an HTTP client value.

The single property request provides a function that can be invoked with a request object, a success callback and an error callback.

By default, the library provides an HTTP client that relies on the XMLHttpRequest object to handle network requests.

The built-in HTTP client also provides properties to control the use of JSONP - see Cross-domain requests for additional information.

This property is typically left in its default state, although it may be replaced for advanced scenarios such as to add custom HTTP-level logging.

 Top

OData

The current OData support in datajs provides the ability to read and write to an OData service, using both the JSON and ATOM-based formats, including support for batch operations. The API is very simple and the library consists of only a few concepts.

The basic approach is as this: you can use OData.read with a URL to get data from a service, and the library will make sure that the reply comes in a consistent format. To add, update, or delete data, you can use OData.request with a request that includes the POST, PUT or DELETE methods and an object in that same format, and the library will take care of serializing it into the correct format.

For common cases, that's it. There are additional facilities to do more interesting things if you're interested, like tweaking the way the formatters work or the way that the OData.defaultHttpClient object uses the network.

Over time, we expect to build additional functionality that makes it easier to use so you don't have to deal with the payload format, or help with tracking changes, or making sure that you have a single instance if you ask multiple times for the same piece of data.

 Top

OData Snippets

The following snippet shows how to read a list of category names from the Northwind service, using jQuery to add them to an element with ID 'target-element-id'. Because the service supports JSONP, the default network library uses it even though the document comes from a different domain.

OData.read(
  "http://services.odata.org/Northwind/Northwind.svc/Categories",
  function (data) {
    var html = "";
    $.each(data, function(l) { html += "<div>" + l.CategoryName + "</div>"; });
    $(html).appendTo($("#target-element-id"));
  }
);

The following snippet shows how to add a new customer to an OData service that exposes a Customers resource set with Name, CustomerCategory and ID properties.

OData.request(
  { requestUrl: "/customer-service/Customers",
    method: "POST",
    data: { Name: "customer name", CustomerCategory: 123 } },
  function (insertedItem) {
    $("<div>inserted customer ID: " + insertedItem.ID + "</div>").appendTo($("#target-element-id"));
  }
);

TODO: add more samples, validate samples.

 Top

Metadata

Metadata is used by handlers to enhance how requests and results are processed. This corresponds to the Service Metadata Document as described in the OData documentation.

Metadata is optional for many scenarios, but it can be used to improve how server values are interpreted and annotated in their in-memory representations.

In some cases metadata makes it possible to understand models that cannot otherwise be processed correctly. For example, if a server maps an entity property outside of the entity content, the ATOM representation requires metadata to be able to extract the information from the right location in the document.

 Top

Security

The default HTTP library works by using the XMLHttpRequest object, which doesn't allow the page to get data from a server different from the one that served the page (this is often referred to as the same origin policy.).

This means that the library generally trusts the server to provide non-malicious payloads (the library is, after all, also provided by the same server).

This last point is why JSONP is disabled by default in the OData.defaultHttpClient object. If you trust the servers that you will be contacting, then you can turn support on by setting this property to true, as in the following snippet.

OData.defaultHttpClient.enableJsonpCallback = true;

To protect against man-in-the-middle attacks, you should enable and use the HTTPS protocol and refer to the data sources through 'https://' URLs.

 Top

Cross-Domain Requests

Browsers have a policy (commonly referred to as the same origin policy. that blocks requests across domain boundaries. Because of this restriction update operations cannot be performed if the web page is served by a domain and the target OData endpoint is in a different one. Users have the ability to disable this policy in the browser, however it is typically turned on by default. datajs is designed with such an assumption. The following options are available to support this scenario:

  • Have the web server provide a relaying mechanism to redirect requests to the appropriate OData endpoint.
  • Use an XDomainRequest object. This option is not available in all browsers.
  • Use cross origin XMLHttpRequest object. This option is also not available in all browsers.
  • Prompt for consent on first use. This option is not available in all browsers and generally provides a poor user experience.

Read operations are available for cross-domain requests if the OData server supports JSONP. To configure the datajs to use JSONP, set the following properties on the OData.defaultHttpClient object.

  • formatQueryString: this is a query string option inserted in the URL.
  • callbackParameterName: this is the name of a query string option that will be assigned a function name to call back into.
  • enableJsonpCallback: see Security before setting this property to true.

By default, all values except for enableJsonpCallback are set to work with the popular JSONP extension for WCF Data Services-based servers, but can be modified to any appropriate value before a request is submitted.

 Top

OData Internals

  • HTTP Client. This component makes network requests. The built-in handler is available as OData.defaultHttpClient, but can be replaced by any object with the same operations. You can easily mock it when testing your app.
  • Format handlers. These components turn raw payloads in JSON or ATOM format and turn them into a consistent in-memory representation.
  • Requests, responses and data. These are simply JavaScript objects that have certain specific members. There is no need to call constructors or anything of the sort; simply create a new object with the right shape and you're ready to go.
  • APIs. There are two APIs that can be used to read and write data, OData.read and OData.request. They simply glue all of the above with callbacks and provide a very simple way to interact with a data service.
Link      Comments () ۱۳۸٩/۱۱/٢۸

Ajax Control Toolkit by: حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim

یکی از بزرگترین و موفق ترین پروژه های متن باز مایکروسافت شامل کامپوننتها و ابزارهای گوناگون برای برنامه نویسان سیستمهای وب در محیط دات نت می باشد.این ابزار برای ساخت سایتهای نسل جدید بر روی web 2  با تکنولوژی interactive بسیار کاربردی است .

The Ajax Control Toolkit contains a rich set of controls that you can use to build highly responsive and interactive Ajax-enabled Web applications. The Ajax Control Toolkit contains more than 40 controls, including the AutoComplete, CollapsiblePanel, ColorPicker, MaskedEdit, Calendar, Accordion, and Watermark controls. Using the Ajax Control Toolkit, you can build Ajax-enabled ASP.NET Web Forms applications by dragging-and-dropping Toolkit controls from the Visual Studio Toolbox onto a Web Forms page.

 

Link      Comments () ۱۳۸٩/۱۱/٢۸

معرفی پروژه های کد باز مایکروسافت by: حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim

مایکروسافت پس از فراز نشیبهای فراوان در بدست آورن مدل تجاری مناسب برای رقابت با متن بازها ،از چند سال پیش با ظهور تکنولوژی .Net ،پروژه کد باز خود را معرفی کرد:

 

http://www.codeplex.com

 

این سایت ،سایت رسمی پروژه های متن باز مایکروسافت است .

بسیاری از منابع این سایت در ضمینه متن باز های و پروژه ها اقتباس شده از این سایت می باشد.

 

Link      Comments () ۱۳۸٩/۱۱/٢۸

فن آوری آطلاعات by: حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim

فناوری اطلاعات (فا) [۱] (به انگلیسی: Information Technology یا IT)، همچنانکه به‌وسیله انجمن فناوری اطلاعات آمریکا (ITAA‎) تعریف شده‌است، «به مطالعه، طراحی، توسعه، پیاده‌سازی، پشتیبانی یا مدیریت سیستم‌های اطلاعاتی مبتنی بر رایانه، خصوصا برنامه‌های نرم‌افزاری و سخت‌افزار رایانه می‌پردازد». به طور کوتاه، فناوری اطلاعات با مسائلی مانند استفاده از رایانه‌های الکترونیکی و نرم‌افزار سروکار دارد تا تبدیل، ذخیره، حفاظت، پردازش، انتقال و بازیابی اطلاعات به شکلی مطمئن و امن انجام پذیرد.

اخیرا تغییر اندکی در این عبارت داده می‌شود تا این اصطلاح به طور روشن دایره ارتباطات مخابراتی را نیز شامل گردد. بنابراین عده‌ای بیشتر مایلند تا عبارت «فناوری اطلاعات و ارتباطات» (Information and Communications Technology) یا به اختصار ICT را به کار برند. [۲]

فهرست مندرجات

[ویرایش] تعریف

فناوری اطلاعات بسیار از علم رایانه وسیع‌تر (و مبهم تر) است. این اصطلاح در دهه ۱۹۹۰ جایگزین اصطلاحات پردازش داده‌ها و سیستم‌های اطلاعات مدیریت شد که در دهه‌های ۱۹۷۰ و ۱۹۶۰ بسیار رایج بودند. فناوری اطلاعات معمولاً به تولید و پردازش و نگهداری و توزیع اطلاعات در موسسات بزرگ اشاره دارد.

دانش فناوری اطلاعات و رایانه با هم فرق می‌کنند، البته در موارد زیادی با هم اشتراک دارند. اگر علم رایانه را مشابه مهندسی مکانیک بگیریم، فناوری اطلاعات مشابه صنعت حمل و نقل است. در صنعت حمل و نقل، خودرو و راه‌آهن و هواپیما و کشتی داریم. همه این‌ها را مهندسان مکانیک طرح می‌کنند. در عین حال در صنعت حمل و نقل مسائل مربوط به مدیریت ناوگان و مدیریت ترافیک و تعیین استراتژی حمل و نقل در سطح شرکت و شهر و کشور مطرح است که ربط مستقیمی به مهندسی مکانیک ندارد اما فناوری اطلاعات و ارتباطات (آی‌سی‌تی) مهمترین مقوله در این زمینه‌است.

[ویرایش] عناصر اصلی

فناوری اطلاعات متشکل از چهار عنصر اساسی (انسان، ساز و کار، ابزار، ساختار) است، به طوری که در این فناوری، اطلاعات از طریق زنجیره ارزشی که از بهم پیوستن این عناصر ایجاد می‌شود جریان یافته و پیوسته تعالی و تکامل سازمان را فراراه خود قرار می‌دهد: [۳]

  • انسان: منابع انسانی، مفاهیم و اندیشه، نوآوری
  • ساز و کار: قوانین، مقررات و روشها، سازوکارهای بهبود و رشد، سازوکارهای ارزش گذاری و مالی
  • ابزار: نرم‌افزار، سخت‌افزار، شبکه و ارتباطات
  • ساختار: سازمانی، فراسازمانی مرتبط، جهانی

[ویرایش] زمینه‌های فناوری اطلاعات

امروزه معنای اصطلاح «فناوری اطلاعات» بسیار وسیع شده‌است و بسیاری از جنبه‌های محاسباتی و فناوری را دربر می‌گیرد و نسبت به قبل شناخت این اصطلاح آسان‌تر شده‌است. چتر فناوری اطلاعات تقریباً بزرگ است و بسیاری از زمینه‌ها را پوشش می‌دهد. متخصصین فناوری اطلاعات وظایف متنوعی دارد، از نصب برنامه‌های کاربردی تا طراحی شبکه‌های پیچیده رایانه‌ای و پایگاه داده‌های اطلاعاتی. چندی از زمینه‌های فعالیت متخصصین فناوری اطلاعات می‌تواند موارد زیر باشند: [۲] فناوری اطلاعات و علوم کتابداری و اطلاع رسانی ارتباط تنگاتنگی با هم دارند.

در ایران متولی اصلی فناوری اطلاعات و ارتباطات را وزارت ارتباطات و فناوری اطلاعات میدانند . [۱]

[ویرایش] فناوری اطلاعات در دانشگاه‌های ایران

در بیشتر کشورها این دانش در دانشگاه‌ها با عنوان رشته «فناوری اطلاعات» (Information Technology) شناخته می‌شود، در حالیکه در ایران بر اساس تصمیم سازمان آموزش عالی کشور عنوان «مهندسی فناوری اطلاعات» برای این رشته بکار برده می‌شود و رشته ای نیز تحت عنوان مهندسی فناوری اطلاعات و ارتباطات (ICT) به پیشنهاد وزارت ارتباطات و فناوری اطلاعات اخیراً در دانشگاههای ایران تدریس می‌شود همچنین رشته‌ای با عنوان فقط «فناوری اطلاعات» وجود ندارد.[نیازمند منبع] همچنین رشتهٔ میان‌رشته‌ای دیگری با عنوان رشته «مدیریت فناوری اطلاعات» در دانشگاه‌های ایران و دیگر کشورها وجود دارد که از ترکیب دو رشته "مدیریت" و «فناوری اطلاعات» به وجود آمده‌است. رشته مهندسی فناوری اطلاعات به چگونگی سازماندهی و ساماندهی داده‌ها می‌پردازد و رشته مدیریت فناوری اطلاعات به چگونگی تدوین سیستم و استفاده از داده‌ها می‌پردازد. هرکدام از این رشته‌ها دارای گرایش‌های ویژه خود هستند که در دانشگاه‌های ایران به شرح زیر اند:

گرایش‌های رشته مهندسی فناوری اطلاعات:

  • تجارت الکترونیکی
  • سیستم‌های چندرسانه‌ای
  • مدیریت سیستم‌های اطلاعاتی
  • امنیت اطلاعات
  • شبکه‌های کامپیوتری
  • مهندسی فناوری اطلاعات (IT)

گرایش‌های رشته مدیریت فناوری اطلاعات:

  • مدیریت منابع اطلاعاتی
  • سیستم‌های اطلاعات پیشرفته
  • نظام کیفیت فراگیر

گرایش‌های رشته مهندسی فناوری اطلاعات و ارتباطات:

  • مدیریت شبکه
  • دیتا و امنیت شبکه
  • ارتباطات سیار
  • مدیریت ارتباطات و فناوری اطلاعات
  • سیستمهای چند رسانه ای

[ویرایش] سرفصل دروس مهندسی فناوری اطلاعات

درس‌های تخصصی کارشناسی مهندسی فناوری اطلاعات عبارتند از:

  • مبانی فناوری اطلاعات
  • مهندسی فناوری اطلاعات
  • تجارت الکترونیکی
  • مدیریت و کنترل پروژه‌های فناوری اطلاعات
  • برنامه‌ریزی استراتژیک فناوری اطلاعات
  • آموزش الکترونیکی
  • محیط‌های چند رسانه‌ای
  • پروژه فناوری اطلاعات
  • کارآموزی IT
  • گرافیک کامپیوتری

[ویرایش] مهندسی فناوری اطلاعات و ارتباطات

برنامه درسی کارشناسی ناپیوسته "مهندسی تکنولوژی ارتباطات و فن آوری اطلاعات ICT" با ده گرایش در جلسه روز 25/6/85 شورای برنامه ریزی آموزش و درسی وزارت علوم تحقیقات و فناوری به تصویب نهایی رسید. این برنامه برای رفع نیازهای تخصصی وزارت ارتباطات و فن آوری اطلاعات از سوی این وزارتخانه طراحی و تدوین شده و با تأئید گروه صنعت به دبیرخانه شورا ارسال شده بود.

دکتر کشت کار معاون پژوهشی و مدیر دفتر برنامه ریزی درسی دانشگاه جامع نیز ضمن اعلام خبر فوق اظهار داشت این برنامه جهت آموزش مهندسینی طراحی شده که بتوانند نیازهای تخصصی تعداد زیادی از مشاغل مرتبط با تکنولوژی ICT را برآورده نمایند. این رشته با 10 گرایش برای ده طیف از متصدیان مشاغل مهندسی و طراحی در وزارت ارتباطات با همکاری مشترک بین این وزارتخانه، دانشگاه جامع و وزارت علوم تدوین شده است. ضمناً این رشته از سال 85 در دانشکده پست و مخابرات ایران و از سال 87 به صورت پایلوت در دانشگاه صنعتی شریف، دانشگاه علم و صنعت ایران، دانشگاه تهران و دانشگاه امیر کبیر اجرایی شد.

[ویرایش] متولی فناوری اطلاعات در ایران

در ایران همیشه بحث بر سر متولی اصلی فناوری اطلاعات وجود داشت تا با تغییر نام وزارت پست و تلگراف و تلفن در سال 1382 به وزارت ارتباطات و فناوری اطلاعات و مهمتر از آن ایجاد معاونت فناوری اطلاعات وزارت ارتباطات، خود را متولی اصلی فناوری اطلاعات در کشور مطرح ساخت. از این سال به بعد توسعه همه جانبه‌ای در این وزارتخانه صورت گرفت تا شرکتها و مراکز متعددی زیر مجموعه آن تشکل یافتند و هر یک از آنها با توانمندیها و فعالیتهای بسیار، تحولات فراوانی را شکل داده و باعث گسترش وضع ارتباطی کشور در بخش‌های پست و مخابرات شدند.معاونت فناوری اطلاعات به منظور تدوین راهبردها،سیاستها،برنامه‌های بلند مدت و اهداف کیفی و کمی بخش توسعه فناوری اطلاعات و ارائه آن به شورای عالی فناوری اطلاعات معاونتی تحت عنوان معاونت فناوری اطلاعات در ساختار سازمانی وزارت ارتباطات و فناوری اطلاعات در نظر گرفته شد. و کم کم سازمانهایی مثل سازمان فناوری اطلاعات و ارتباطات زیرساخت نیز در این رابطه شکل گرفتند . [۲]

 

منبع:http://fa.wikipedia.org

Link      Comments () ۱۳۸٩/۱۱/٢۸

استفاده از .Net برای طراحی برنامه های کاربردی Enterprise by: حنیف شیخ عبدالکریم-Hanif sheikhabdolkarim

This article is an attempt to show how to implement distributed application in .NET Framework from scratch. Indeed I can share my experience which I hope will be useful for architects (obviously beginners in architecture design) or a lead developer wants to become an architect to start with. The application will contain a simple web client CustomerOrderManagement System with our own distributed application platform.

The application will cover the following parts:

  • Part 1 (Distributed Application Layers with project details): Learn about what is layered design in distributed environment and how we are going to name it while implementing the actual app.
  • Part 2 (Database and Library Design): Learn about database design and implementing library which interacts with Edmx container.
  • Part 3 (Engine and Service Managers design): Learn how to implement the engine which has core business logic and implementing the actual WCF service with service contracts, and also how to test the service using test client.
  • Part 4 (Client implementation): Learn how to implement the actual client with MVVM pattern which invokes services.

I will try to post the remaining parts ASAP.

Prerequisites

In order to run WCF service, Database design and Silverlight application, you need the .NET Framework version 3.0, or greater. Windows Vista has the .NET Framework v3.0 installed by default, so you only need to install it if you have Windows XP SP2. To develop distributed enterprise applications, you should have Visual Studio 2008 or a later version of Visual Studio, SQL Server Management Studio Express 2005 and also the Windows SDK. Article source uses VS2010 and SQL Server Management Studio Express 2005.

Why Should I Read This Article?

You can ask this question when you read the title of the this article. If you are an architect or a lead developer who aspires to architect solutions, spend some time on this (sorry to take your valuable time). When you complete this article, you will feel that you can design any complex application very easily. I am pretty sure about this. However I am not going to talk about design principles in depth. If you want, you can learn it from Microsoft site which describes everything very clearly. In my view, describing the concepts theoretically again and again without practical implementation doesn’t make sense. So I will describe directly what, why and how to do that in real time. I always like action instead of reading action story:). Designing complex application is not an easy task. As everyone knows, many decisions need to be taken at the architecture, design, and implementation levels. These decisions will have an impact on the abilities of the application security, scalability, maintainability, and availability. This article will help you to design your application with clear separation between the layers such as Data Layer, Business Layer, Service Layer and Presentation Layer from scratch. Let’s start with action.

What Are These Layers and What Should They Provide?

Let's start by visiting each of these layers and discuss what these layers should provide and what they should not. Figure 1 shows the simplified logical component layers that this article uses to design the architecture. I am not going to include many components here again. Just see figure 1 and understand the purpose of this article right away.

AppLayer.png

(Figure 1 – Enterprise Application Layers)
  • Presentation Layer - Contains user related functionality for managing user interaction with the system, and generally consists of service calls for communicating with business logic through service layer.
  • Service Layer - Consists of service contracts and message types to communicate with the business logic to separate the business layer as an independent layer. Also this layer can be located on different tiers, or they may reside on the same tier.
  • Business Layer - This layer implements the core functionality of the system, and encapsulates the relevant business logic. It generally consists of components, some of which may expose service interfaces that other callers can use.
  • Data Access Layer – This layer communicate with database to retrieve and save the data in database using its own context. This data access layer exposes generic interfaces that the components in the business layer can consume.
  • Data Layer – This layer contains the actual business raw data. DBA can design and maintain this layer.

How Do We Implement and By Using What Technologies?

Let’s take figure 1 and add another figure along with that to describe how to implement customer order management enterprise application from scratch. Before I start discussing, I will consider some component from the layers as platform. Because this platform can be hosted anywhere and client can consume whatever they need through network. This is called distributed environment. Here we will consider our business layer, service layer and data access layer as a single platform. So those multiple client platforms (Mobile, Web, etc) can utilize our COMS(CustomerOrderManagement System). This is the major advantage of our COMS. See figure 2 and get an idea about how we are going to implement our COMS platform with technology details.

Note: Please note that COMS refers to the CustomerOrderManagement System throughout the article.

AppLayerWithProjectDetails.png - Click to enlarge image

(Figure 2 – Enterprise Application Layers With Project Details)
  • Service Libraries (Data Access Layer) - This interacts with entity framework through edmx entity container and also provides data to the service engines. We will talk more about this when we come to the library implementation.
  • Service Engines (Business Layer) – This contains core business logic implementation and it interacts with service library to get the actual database without contacting database directly. All the business validation should be implemented here for extensibility. We will talk more about this when we come to the engine implementation.
  • Service Managers (Service Layer) - This layer exposes all the COMS system functionality as WCF service which can be accessed by client from any platform. Manager never interacts with database or library directly. Because business layer contains all the validation which needs to be invoked before sending the response to the client. We will talk more about this when we come to the service manager’s implementation.
  • Client (Presentation layer) – The actual user interface which calls services. This can be any rich client, web client or mobile client or another service call. I am going to use Silverlight for implementing web client in this article. If it’s possible, I will try to post some mobile UI implementation also for testing our COMS platform as part of this article.

To be frank, I don’t know about Mobile app implementation, so I will learn and explain in one part how to make use of our COMS platform services in mobile platform. But you have to trust me and wait for a couple of weeks

Hanif Sheikhabdolkarim

Ref:http://www.codeproject.com

Link      Comments () ۱۳۸٩/۱۱/٢۸

به پرشین بلاگ خوش آمدید by: پرشین بلاگ
بنام خدا

كاربر گرامي

با سلام و احترام

پيوستن شما را به خانواده بزرگ وبلاگنويسان فارسي خوش آمد ميگوييم.
شما ميتوانيد براي آشنايي بيشتر با خدمات سايت به آدرس هاي زير مراجعه كنيد:

http://help.persianblog.ir براي راهنمايي و آموزش
http://news.persianblog.ir اخبار سايت براي اطلاع از
http://fans.persianblog.ir براي همكاري داوطلبانه در وبلاگستان
http://persianblog.ir/ourteam.aspx اسامي و لينك وبلاگ هاي تيم مديران سايت

در صورت بروز هر گونه مشكل در استفاده از خدمات سايت ميتوانيد با پست الكترونيكي :
support[at]persianblog.ir

و در صورت مشاهده تخلف با آدرس الكترونيكي
abuse[at]persianblog.ir
تماس حاصل فرماييد.

همچنين پيشنهاد ميكنيم با عضويت در جامعه مجازي ماي پرديس از خدمات اين سايت ارزشمند استفاده كنيد:
http://mypardis.com


با تشكر

مدير گروه سايتهاي پرشين بلاگ
مهدي بوترابي

http://ariagostar.com
Link      Comments () ۱۳۸٩/۱۱/٢۸

Recent Posts استفاده از تکنیکهای داده کاوی در سیستمهای لجستیکی روشهای کشف دانش از سیستمهای عملیاتی سازمانها ، استفاده از تکنیکهای داده کاوی آشنایی با استانداردهای مدیریت اطلاعات Cobit،ITIL،CMMI... IT service management Chaos theory تئوری هرج و مرج ۱۸ راه آزاد برای ذخیره هر نوع ویدئویی از اینترنت خلاصی از شر سایت های تبلیغاتی با کمک آقای گوگل و یک کلیک ساده گروه Qtel سرویس جدید سلامت و بهداشت موبایل معرفی می کند دیوار آتش و نحوه عملکرد آن Google crisis response
My Tags hanif sheikhabdolakrim (۱٢) فن آوری اطلاعات (٤) iran (٢) موبایل (٢) google (٢) داده کاوی (٢) itil (٢) managment and ict (٢) خدمات دولت الکترونیک (٢) ایران فن آوری اطلاعات (٢) it service management (٢) information technology (٢) codeplex (٢) net (۱) cobit (۱) سازمان های هوشمند (۱) logistic (۱) chilee (۱) دیواره آتش (۱) ذخیره هر نوع ویدئویی از اینترنت (۱) حنیف شیخ عبدالکریم (۱) india-chaos theory (۱) enterprise application (۱) پروژه های متن باز (۱) ajax control toolkit (۱) json (۱) web application (۱) datajs (۱) business processes (۱) programming (۱) firewall (۱) data mining (۱) net framework (۱) knowledge management (۱) هوش تجاری (۱) aspnet (۱) اپراتور سوم (۱) گوگل (۱) مایکروسافت (۱) اتاق بازرگانی (۱) دولت (۱) تحریم (۱) مدیریت دانش (۱) microsoft (۱)
My Friends نرم افزارهای Enterprise مایکروسافت asp.net http://www.codeproject.com/ کلوب مدیران و متخصصان My Pardis